Anamaria Stoica wrote: > It looks like you can bind an instance to type in Guice. This is done either > with Instance Bindings, > @Provides Methods or Provider Bindings, depending on the complexity of the > class. > (http://code.google.com/p/google-guice/wiki/Bindings) > > All bindings are defined in a class that extends AbstractModule, this would > be > XWSocialModule in my code ( > https://svn.xwiki.org/svnroot/xwiki/sandbox/gsoc/opensocial/xwiki-social-opensocial/src/main/java/org/xwiki/opensocial/social/XWSocialModule.java). > > > These modules are then passed as arguments to Guice.createInjector(), which > builds the injector. > In my application, the injector is build by GuiceServletContextListener ( > http://svn.apache.org/repos/asf/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/GuiceServletContextListener.java) > This servlet takes the context parameters defined in my web.xml; these are: > > <context-param> > <param-name>guice-modules</param-name> > <param-value> > org.apache.shindig.common.PropertiesModule: > org.apache.shindig.gadgets.DefaultGuiceModule: > org.apache.shindig.gadgets.oauth.OAuthModule: > org.apache.shindig.common.cache.ehcache.EhCacheModule: > org.xwiki.opensocial.social.XWSocialModule > </param-value> > </context-param> > > <listener> > > <listener-class>org.xwiki.container.servlet.XWikiServletContextListener</listener-class> > </listener> > > Now, all I need to do is bind the instance of PersonServiceXW after it has > been initialized by XWiki's Component Manager. > The binding will be done in XWSocialModule, using one of the instance > binding methods (Instance Bindings, > @Provides Methods or Provider Bindings). > > My questions are: > 1. How do I make sure PersonServiceXW has been initialized already by the > XWiki CM before binding it for Guice ?
List GuiceServletContextListener AFTER XWikiServletContextListener in web.xml. The servlet spec specifies that listeners are called in the order they are encountered in web.xml, and XWikiServletContextListener is the one that starts our component manager. > 2. How do I get the initialized PersonServiceXW instance from XWSocialModule? com.xpn.xwiki.web.Utils.getComponent(PersonServiceXW.class) -- Sergiu Dumitriu http://purl.org/net/sergiu/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

