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
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to