Am 13.04.2012 17:43 schrieb "Vincent Massol" <vincent(a)massol.net>et>:
 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
 devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/devs