Hi, We just updated the Struts 2 Guice plugin so that it will be compatible with Guice 3. However, the main class of the plugin, Struts2Factory<http://code.google.com/p/google-guice/source/browse/trunk/extensions/struts2/src/com/google/inject/struts2/Struts2Factory.java>, is being created via xwork's injection mechanism and then statically injected by Guice so that we can get a reference to the Guice injector. We'd like to avoid static injection whenever possible, so I'm wondering if anyone more familiar with Struts/XWork has a better idea.
In struts-plugin.xml<http://code.google.com/p/google-guice/source/browse/trunk/extensions/struts2/src/struts-plugin.xml>we overrode the default ObjectFactory: <bean type="com.opensymphony.xwork2.ObjectFactory" name="guice" class="com.google.inject.struts2.Struts2Factory"/> We now require that the user create a Struts2GuicePluginModule<http://code.google.com/p/google-guice/source/browse/trunk/extensions/struts2/src/com/google/inject/struts2/Struts2GuicePluginModule.java>when setting up their GuiceServletContextListener<http://code.google.com/p/google-guice/source/browse/trunk/extensions/struts2/example/src/com/google/inject/struts2/example/ExampleListener.java> and this will statically inject the Guice Injector into the Struts2Factory<http://code.google.com/p/google-guice/source/browse/trunk/extensions/struts2/src/com/google/inject/struts2/Struts2Factory.java> . Is there anyway to set the Struts2Factory as the Object factory without specifying it in the xml? It be nice if we could do this in code somehow so that we could provide an instance of the Guice injector. Or perhaps after the object factory is created, is there some way that we can get a reference to it and manually insert the injector ourselves to avoid the use of static injection? Thanks, Ben