Am 13.04.2012 17:43 schrieb "Vincent Massol" <[email protected]>:
Hi devs,
We already have ApplicationStartedEvent and ApplicationReadyEvent (when
DB is ready). We also need an event when the wiki is ready since in s a multiwiki environment when you create a new wiki for example, you might need to init some stuff (like initialize mandatory classes). It's also needed the first time a request comes in for a given wiki.
Thus I propose to add a WikiReadyEvent next to ApplicationStartedEvent
and to send it in XWiki.updateDatabase():
... synchronized (wikiName) { if (!wikiList.contains(wikiName)) { wikiList.add(wikiName);
// Make sure these classes exists if (initClasses) { initializeMandatoryClasses(context); getPluginManager().virtualInit(context); getRenderingEngine().virtualInit(context); }
--> send WikiReadyEvent here
} }
Is it a good practise to call event listeners in the synchronized block? (see Brian Götz, Java Concurrence in Practise, never call alien code from a synchronized block) My 2cents Richard
WDYT?
Note that I was tempted to have a WikiCreatedEvent event sent when creating a wiki but that wouldn't fill the use case of initializing the wiki on the first request to it.
Thanks -Vincent _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs