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

