[jboss-dev-forums] [Design the new POJO MicroContainer] - Microcontainer + Guice
alesj
do-not-reply at jboss.com
Wed Sep 19 15:03:08 EDT 2007
Another quick thing I hacked up - this time during vacation (yup, I know, I suck at 100% relaxing) and finalized while waiting for jbossas trunk to be Mavenized.
What you can do now is these three approaches of MC + Guice integration:
1) programmatically
| Injector injector = Guice.createInjector(new AbstractModule()
| {
| protected void configure()
| {
| bind(Controller.class).toInstance(controller);
| bind(Singleton.class).toProvider(GuiceIntegration.fromMicrocontainer(Singleton.class, "singleton"));
| bind(Prototype.class).toProvider(GuiceIntegration.fromMicrocontainer(Prototype.class, "prototype"));
| }
| });
|
2) through metadata
| AbstractBeanMetaData injectorBean = new AbstractBeanMetaData("injector", GuiceInjectorFactory.class.getName());
| AbstractConstructorMetaData constructor = new AbstractConstructorMetaData();
| constructor.setFactoryClass(GuiceInjectorFactory.class.getName());
| constructor.setFactoryMethod("createInjector");
| List<ParameterMetaData> parameters = new ArrayList<ParameterMetaData>();
| parameters.add(new AbstractParameterMetaData(new AbstractDependencyValueMetaData(KernelConstants.KERNEL_NAME)));
| AbstractArrayMetaData array = new AbstractArrayMetaData();
| array.add(new AbstractValueMetaData(GuiceObject.ALL));
| parameters.add(new AbstractParameterMetaData(array));
| constructor.setParameters(parameters);
| injectorBean.setConstructor(constructor);
| controller.install(injectorBean);
|
| ControllerContext injectorContext = controller.getInstalledContext("injector");
| assertNotNull(injectorContext);
| Injector injector = (Injector)injectorContext.getTarget();
|
3) XML
| <bean name="injector" class="org.jboss.guice.plugins.GuiceInjectorFactory">
| <constructor factoryClass="org.jboss.guice.plugins.GuiceInjectorFactory" factoryMethod="createInjector">
| <parameter>jboss.kernel:service=Kernel</parameter>
| <parameter>
| <array>
| <bean name="BindAll" class="org.jboss.guice.plugins.AllGuiceObject">
| <constructor factoryClass="org.jboss.guice.plugins.AllGuiceObject" factoryMethod="getInstance"/>
| </bean>
| </array>
| </parameter>
| </constructor>
| </bean>
|
Or check out GuiceTestSuite. ;-)
I've commited the code --> adding new guice-int module.
Will add some docs asap.
OK, back to ProfileService ...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4086288#4086288
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4086288
More information about the jboss-dev-forums
mailing list