[dev] [commits] Horde branch develop updated. fa956a4d83a7227e2a5d47bfe87185854e151fbc

Michael J Rubinsky mrubinsk at horde.org
Mon Feb 13 06:48:46 UTC 2012


Quoting Michael M Slusarz <slusarz at horde.org>:

> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>
>> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>>
>>> Quoting Michael M Slusarz <slusarz at horde.org>:
>>>
>>>> The branch "develop" has been updated.
>>>> The following is a summary of the commits.
>>>>
>>>> from: 7d25aac13b55d57d01aadd7d70b674af04bed9e0
>>>>
>>>> fa956a4 Clean up Kronolith_App#_init()
>>>>
>>>> -----------------------------------------------------------------------
>>>>
>>>> commit fa956a4d83a7227e2a5d47bfe87185854e151fbc
>>>> Author: Michael M Slusarz <slusarz at horde.org>
>>>> Date:   Sun Feb 12 20:43:32 2012 -0700
>>>>
>>>>  Clean up Kronolith_App#_init()
>>>>
>>>>  Get rid of global kronolith_shares variable.
>>>>  Only set timezone/set link tags if kronolith is the current application.
>>>
>>>
>>> This still doesn't solve the rpc.php access issue though. When  
>>> accessing horde's RPC interface, 'Horde' is *always* the  
>>> $initialApp. Any application API calls that the RPC request makes  
>>> occur after appInit() is already called for 'Horde'. This means in  
>>> Kronolith_Applciation::_init(), Kronolith::initialize() will now  
>>> *never* be called when accessed via RPC since it is wrapped by the  
>>> check for kronolith being the $initialApp.
>>
>> Actually, thinking this through even more, it will break any API  
>> access to kronolith when kronolith wasn't the initialApp, including  
>> loading the initial portal page - the kronolith share list would  
>> not be able to be built in the sidebar.
>
> You can still load shares when creating the sidebar.  But the  
> sidebar won't be created until later in the page load.  As long as  
> this doesn't happen in _init(), we are fine.

This is currently broken though, because Kronolith::initialize() is  
where we determine what shares (and other, non-share based calendars)  
are available. I just tested this, and in fact the sidebar does not  
contain the calendar list when viewing the horde portal.

> _init() is for bootstrapping only.  You can't call  
> registry/horde-wide things in there due to the chicken/egg problem.   
> _init() is not designed to set up the full application environment.
>
> So that does mean that the timezone stuff needs to go someplace  
> else.  Maybe Kronolith::initialize()?  But it can't be done in  
> _init().

Ok, so then the solution is to refactor again to remove  
Kronolith::initialize() from _init(). It was nice to have it done in  
one central place, but I'm seeing that this is not going to be  
possible with the current way apps are initialized.

> The linkTags() can stay as-is for now - it is only used if Kronolith  
> is the current active application.
>
> All of this came to light a few weeks ago when doing some  
> xdebugging.  In so many words: the SAPO folks were not very happy at  
> all to see that a large portion of a page access for things like  
> viewing a message were being spent in kronolith (or, more broadly,  
> any application), even if NOTHING on the page ever directly accessed  
> those applications.  I agree.  The two culprits were application  
> notification handling and alarm checking.

Agreed, though don't the changes in Core border on a BC break since  
updating Core without updating Kronolith would lead to broken RPC  
usage, including SyncML and ActiveSync?

-- 
mike

The Horde Project (www.horde.org)
mrubinsk at horde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6096 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.horde.org/archives/dev/attachments/20120213/c891afc5/attachment-0001.bin>


More information about the dev mailing list