On Mon, Mar 26, 2012 at 4:31 PM, Vincent Massol <[email protected]> wrote:
> Hi Thomas,
>
> On Mar 26, 2012, at 3:54 PM, Thomas Mortagne wrote:
>
>> commons does not seems to be the right place according to your
>> description. It would probably fit better in the platform-bridge since
>> it's going to be used by component that need to either use the bridge
>> or directly use oldcore to access the database. that's also where the
>> document related events are located.
>
> ok I hesitated because we already have application-wide events there (even 
> though it's not their correct place).

Yes thosed should probably be in the container api

>
> Anyway I'm fine with the bridge (which also isn't the correct final place ;)).

Well bridge fit well with temporary stuff caused by limitation in the
current storage impl ;)

>
> Apart from this, are you ok with doing this?

Yes, I think it's probably the third vote on the subject but always
pushed  back because it was not the cleanest on the long run :)

Here is my +1.

>
> Thanks
> -Vincent
>
>>
>> On Mon, Mar 26, 2012 at 9:54 AM, Vincent Massol <[email protected]> wrote:
>>> I forgot to mention one thing.
>>>
>>> What I'm proposing here is a stopgap solution so that we can progress with 
>>> other refactorings. In the future the solution as I see it is to keep using 
>>> the ApplicationStartedEvent but introduce event listener priorities and 
>>> refactor XWiki startup so that the XWiki object (and thus the database 
>>> initialization) is created at startup and not during the first HTTP request.
>>>
>>> Thanks
>>> -Vincent
>>>
>>> On Mar 25, 2012, at 6:43 PM, Vincent Massol wrote:
>>>
>>>> Hi devs,
>>>>
>>>> I'd like to quickly add a new ApplicationReadyEvent and send when we 
>>>> initialize the XWiki class the first time:
>>>>
>>>> Index: 
>>>> ../xwiki-commons/xwiki-commons-core/xwiki-commons-observation/xwiki-commons-observation-api/src/main/java/org/xwiki/observation/event/ApplicationReadyEvent.java
>>>> ===================================================================
>>>> --- 
>>>> ../xwiki-commons/xwiki-commons-core/xwiki-commons-observation/xwiki-commons-observation-api/src/main/java/org/xwiki/observation/event/ApplicationReadyEvent.java
>>>>   (revision )
>>>> +++ 
>>>> ../xwiki-commons/xwiki-commons-core/xwiki-commons-observation/xwiki-commons-observation-api/src/main/java/org/xwiki/observation/event/ApplicationReadyEvent.java
>>>>   (revision )
>>>> @@ -0,0 +1,35 @@
>>>> +/*
>>>> + * See the NOTICE file distributed with this work for additional
>>>> + * information regarding copyright ownership.
>>>> + *
>>>> + * This is free software; you can redistribute it and/or modify it
>>>> + * under the terms of the GNU Lesser General Public License as
>>>> + * published by the Free Software Foundation; either version 2.1 of
>>>> + * the License, or (at your option) any later version.
>>>> + *
>>>> + * This software is distributed in the hope that it will be useful,
>>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>>>> + * Lesser General Public License for more details.
>>>> + *
>>>> + * You should have received a copy of the GNU Lesser General Public
>>>> + * License along with this software; if not, write to the Free
>>>> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
>>>> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
>>>> + */
>>>> +package org.xwiki.observation.event;
>>>> +
>>>> +/**
>>>> + * An event triggered when the XWiki application is ready to service 
>>>> requests.
>>>> + *
>>>> + * @version $Id$
>>>> + * @since 4.0M2
>>>> + */
>>>> +public class ApplicationReadyEvent implements Event
>>>> +{
>>>> +    @Override
>>>> +    public boolean matches(Object otherEvent)
>>>> +    {
>>>> +        return this.getClass().isAssignableFrom(otherEvent.getClass());
>>>> +    }
>>>> +}
>>>> Index: 
>>>> xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/XWiki.java
>>>> ===================================================================
>>>> --- 
>>>> xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/XWiki.java
>>>>  (revision 6ddfc45a6aa807ac4b6a9bc9e101c042d0f0dd3d)
>>>> +++ 
>>>> xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/XWiki.java
>>>>  (revision )
>>>> @@ -109,6 +109,7 @@
>>>> import org.xwiki.model.reference.WikiReference;
>>>> import org.xwiki.observation.EventListener;
>>>> import org.xwiki.observation.ObservationManager;
>>>> +import org.xwiki.observation.event.ApplicationReadyEvent;
>>>> import org.xwiki.observation.event.Event;
>>>> import org.xwiki.query.QueryException;
>>>> import org.xwiki.rendering.macro.wikibridge.WikiMacroInitializer;
>>>> @@ -808,7 +809,12 @@
>>>>         // that we need DB access to be available (at component 
>>>> initialization) to make this possible.
>>>>         registerWikiMacros();
>>>>
>>>> -        Utils.<ObservationManager> getComponent((Type) 
>>>> ObservationManager.class).addListener(this);
>>>> +        ObservationManager observationManager =
>>>> +            Utils.<ObservationManager> getComponent((Type) 
>>>> ObservationManager.class);
>>>> +        observationManager.addListener(this);
>>>> +
>>>> +        // Send Event to signal that the application is ready to service 
>>>> requests.
>>>> +        observationManager.notify(new ApplicationReadyEvent(), this);
>>>>     }
>>>>
>>>>     /**
>>>>
>>>>
>>>> The rationale is that a lot of code require to know when the application 
>>>> is ready for servicing and need to listen to this event and right now 
>>>> we're postponing implementing several refactorings in XWiki because of 
>>>> this missing event.
>>>>
>>>> WDYT?
>>>>
>>>> Thanks
>>>> -Vincent
>>>>
>>>
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>>
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to