[jboss-cvs] JBossAS SVN: r91286 - in projects/kernel/trunk: guice-int and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 15 05:54:01 EDT 2009
Author: kabir.khan at jboss.com
Date: 2009-07-15 05:54:00 -0400 (Wed, 15 Jul 2009)
New Revision: 91286
Added:
projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java
Removed:
projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java
Modified:
projects/kernel/trunk/guice-int/.classpath
projects/kernel/trunk/guice-int/.project
projects/kernel/trunk/guice-int/pom.xml
projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceBinder.java
projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceInjectorFactory.java
projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceListener.java
projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/InstanceBinder.java
projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/KernelInstanceBinder.java
projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/spi/GuiceIntegration.java
projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceObjectsTestCase.java
projects/kernel/trunk/pom.xml
Log:
[JBKERNEL-47] Upgrade to Guice 2.0 and tidy up the examples a bit
Modified: projects/kernel/trunk/guice-int/.classpath
===================================================================
--- projects/kernel/trunk/guice-int/.classpath 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/.classpath 2009-07-15 09:54:00 UTC (rev 91286)
@@ -1,17 +1,19 @@
<classpath>
- <classpathentry kind="src" path="src/test/java" output="eclipse-target/tests-classes" including="**/*.java"/>
- <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
- <classpathentry kind="output" path="eclipse-target/classes"/>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1.1/activation-1.1.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
<classpathentry kind="var" path="M2_REPO/wutka-dtdparser/dtdparser121/1.2.1/dtdparser121-1.2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice/1.0/guice-1.0.jar" sourcepath="M2_REPO/com/google/code/guice/guice/1.0/guice-1.0-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice/2.0/guice-2.0-aopalliance.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/google/code/guice/guice/2.0/guice-2.0.jar"/>
<classpathentry kind="var" path="M2_REPO/sun-jaxb/jaxb-api/2.1.4/jaxb-api-2.1.4.jar" sourcepath="M2_REPO/sun-jaxb/jaxb-api/2.1.4/jaxb-api-2.1.4-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.13.GA/jboss-common-core-2.2.13.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.13.GA/jboss-common-core-2.2.13.GA-sources.jar"/>
- <classpathentry kind="src" path="/jboss-dependency"/>
- <classpathentry kind="src" path="/jboss-kernel"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/kernel/jboss-dependency/2.2.0-SNAPSHOT/jboss-dependency-2.2.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/kernel/jboss-dependency/2.2.0-SNAPSHOT/jboss-dependency-2.2.0-SNAPSHOT-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/kernel/jboss-kernel/2.2.0-SNAPSHOT/jboss-kernel-2.2.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/kernel/jboss-kernel/2.2.0-SNAPSHOT/jboss-kernel-2.2.0-SNAPSHOT-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/jboss/man/jboss-managed/2.1.1.CR1/jboss-managed-2.1.1.CR1.jar" sourcepath="M2_REPO/org/jboss/man/jboss-managed/2.1.1.CR1/jboss-managed-2.1.1.CR1-sources.jar"/>
@@ -26,5 +28,4 @@
<classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
<classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.9.1/xml-apis-2.9.1.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>
\ No newline at end of file
Modified: projects/kernel/trunk/guice-int/.project
===================================================================
--- projects/kernel/trunk/guice-int/.project 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/.project 2009-07-15 09:54:00 UTC (rev 91286)
@@ -1,10 +1,7 @@
<projectDescription>
<name>jboss-guice-int</name>
<comment>JBoss Microcontainer Guice Int</comment>
- <projects>
- <project>jboss-dependency</project>
- <project>jboss-kernel</project>
- </projects>
+ <projects/>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
Modified: projects/kernel/trunk/guice-int/pom.xml
===================================================================
--- projects/kernel/trunk/guice-int/pom.xml 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/pom.xml 2009-07-15 09:54:00 UTC (rev 91286)
@@ -19,6 +19,11 @@
<artifactId>guice</artifactId>
</dependency>
<dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ <classifier>aopalliance</classifier>
+ </dependency>
+ <dependency>
<groupId>org.jboss.kernel</groupId>
<artifactId>jboss-kernel</artifactId>
</dependency>
Modified: projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceBinder.java
===================================================================
--- projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceBinder.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceBinder.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -21,12 +21,12 @@
*/
package org.jboss.guice.plugins;
-import com.google.inject.Binder;
-import com.google.inject.spi.SourceProviders;
-import org.jboss.kernel.Kernel;
-import org.jboss.guice.spi.GuiceIntegration;
import org.jboss.guice.spi.ControllerContextBindFilter;
+import org.jboss.guice.spi.GuiceIntegration;
+import org.jboss.kernel.Kernel;
+import com.google.inject.Binder;
+
/**
* Microcontainer + Guice binder.
*
@@ -34,16 +34,12 @@
*/
public class GuiceBinder extends GuiceIntegration
{
- static
- {
- SourceProviders.skip(GuiceBinder.class);
- }
-
private ControllerContextBindFilter filter;
public GuiceBinder(Kernel kernel, Binder binder)
{
super(kernel, binder);
+ binder.skipSources(GuiceBinder.class);
}
public void start()
Modified: projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceInjectorFactory.java
===================================================================
--- projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceInjectorFactory.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceInjectorFactory.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -22,24 +22,26 @@
package org.jboss.guice.plugins;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.HashSet;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+
import com.google.inject.AbstractModule;
import com.google.inject.Binding;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
+import com.google.inject.MembersInjector;
+import com.google.inject.Module;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
-import com.google.inject.spi.SourceProviders;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.dependency.spi.ControllerState;
-import org.jboss.kernel.Kernel;
-import org.jboss.kernel.spi.dependency.KernelController;
-import org.jboss.kernel.spi.dependency.KernelControllerContext;
/**
* Guice Injector factory.
@@ -48,11 +50,6 @@
*/
public class GuiceInjectorFactory implements Injector
{
- static
- {
- SourceProviders.skip(GuiceInjectorFactory.class);
- }
-
private Kernel kernel;
private Injector injector;
private Set<String> objects;
@@ -82,6 +79,7 @@
{
protected void configure()
{
+ binder().skipSources(GuiceInjectorFactory.class);
KernelController controller = kernel.getController();
List<Throwable> errors = null;
for(GuiceObject gObject : guiceObjects)
@@ -170,4 +168,34 @@
{
return injector.getInstance(type);
}
+
+ public Injector createChildInjector(Iterable<? extends Module> modules)
+ {
+ return injector.createChildInjector(modules);
+ }
+
+ public Injector createChildInjector(Module... modules)
+ {
+ return injector.createChildInjector(modules);
+ }
+
+ public <T> Binding<T> getBinding(Class<T> type)
+ {
+ return injector.getBinding(type);
+ }
+
+ public <T> MembersInjector<T> getMembersInjector(Class<T> type)
+ {
+ return injector.getMembersInjector(type);
+ }
+
+ public <T> MembersInjector<T> getMembersInjector(TypeLiteral<T> typeLiteral)
+ {
+ return injector.getMembersInjector(typeLiteral);
+ }
+
+ public Injector getParent()
+ {
+ return injector.getParent();
+ }
}
Modified: projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceListener.java
===================================================================
--- projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceListener.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/GuiceListener.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -21,8 +21,6 @@
*/
package org.jboss.guice.plugins;
-import com.google.inject.Binder;
-import com.google.inject.spi.SourceProviders;
import org.jboss.guice.spi.ControllerContextBindFilter;
import org.jboss.guice.spi.GuiceIntegration;
import org.jboss.kernel.Kernel;
@@ -30,6 +28,8 @@
import org.jboss.kernel.spi.event.KernelEventListener;
import org.jboss.kernel.spi.registry.KernelRegistryEntry;
+import com.google.inject.Binder;
+
/**
* Microcontainer listener that binds newly added
* controller context to binder.
@@ -39,17 +39,13 @@
@SuppressWarnings("deprecation")
public class GuiceListener extends GuiceIntegration implements KernelEventListener
{
- static
- {
- SourceProviders.skip(GuiceListener.class);
- }
-
private org.jboss.kernel.spi.registry.KernelRegistry registry;
private ControllerContextBindFilter filter;
public GuiceListener(Kernel kernel, Binder binder)
{
super(kernel, binder);
+ binder.skipSources(GuiceListener.class);
this.registry = kernel.getRegistry();
}
Modified: projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/InstanceBinder.java
===================================================================
--- projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/InstanceBinder.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/InstanceBinder.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -23,10 +23,10 @@
import java.util.Map;
-import com.google.inject.Binder;
-import com.google.inject.spi.SourceProviders;
import org.jboss.guice.spi.BinderHolder;
+import com.google.inject.Binder;
+
/**
* Microcontainer + Guice instance binder.
*
@@ -34,16 +34,12 @@
*/
public class InstanceBinder extends BinderHolder
{
- static
- {
- SourceProviders.skip(InstanceBinder.class);
- }
-
private Map<Class<?>, Object> bindings;
public InstanceBinder(Binder binder)
{
super(binder);
+ binder.skipSources(InstanceBinder.class);
}
@SuppressWarnings("unchecked")
Modified: projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/KernelInstanceBinder.java
===================================================================
--- projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/KernelInstanceBinder.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/plugins/KernelInstanceBinder.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -23,8 +23,6 @@
import java.util.Map;
-import com.google.inject.Binder;
-import com.google.inject.spi.SourceProviders;
import org.jboss.beans.metadata.api.annotations.EntryValue;
import org.jboss.beans.metadata.api.annotations.Inject;
import org.jboss.beans.metadata.api.annotations.MapValue;
@@ -32,6 +30,8 @@
import org.jboss.beans.metadata.api.annotations.Value;
import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
+import com.google.inject.Binder;
+
/**
* Kernel instance binder.
*
@@ -39,14 +39,10 @@
*/
public class KernelInstanceBinder extends InstanceBinder
{
- static
- {
- SourceProviders.skip(KernelInstanceBinder.class);
- }
-
public KernelInstanceBinder(Binder binder)
{
super(binder);
+ binder.skipSources(KernelInstanceBinder.class);
}
@MapValue(
Modified: projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/spi/GuiceIntegration.java
===================================================================
--- projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/spi/GuiceIntegration.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/main/java/org/jboss/guice/spi/GuiceIntegration.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -21,22 +21,38 @@
*/
package org.jboss.guice.spi;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
-import com.google.inject.Binder;
-import com.google.inject.Provider;
-import com.google.inject.name.Names;
-import com.google.inject.spi.SourceProviders;
+import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
+import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
+import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
import org.jboss.beans.metadata.plugins.factory.GenericBeanFactory;
+import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
+import org.jboss.guice.plugins.GuiceInjectorFactory;
+import org.jboss.guice.plugins.GuiceObject;
import org.jboss.kernel.Kernel;
+import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
import org.jboss.kernel.plugins.config.Configurator;
import org.jboss.kernel.spi.config.KernelConfigurator;
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.reflect.spi.ClassInfo;
+import com.google.inject.Binder;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
+
/**
* Microcontainer + Guice integration.
*
@@ -44,11 +60,9 @@
*/
public abstract class GuiceIntegration extends BinderHolder
{
- static
- {
- SourceProviders.skip(GuiceIntegration.class);
- }
-
+ final static String DEFAULT_GUICE_PLUGIN_PREFIX = "GuicePlugin";
+ final static AtomicInteger GUICE_PLUGIN_COUNTER = new AtomicInteger();
+
private static final ControllerContextBindFilter ALL = new ControllerContextBindFilter()
{
public boolean bind(ControllerContext context)
@@ -62,6 +76,7 @@
protected GuiceIntegration(Kernel kernel, Binder binder)
{
super(binder);
+ binder.skipSources(GuiceIntegration.class);
if (kernel == null)
throw new IllegalArgumentException("Null kernel.");
this.controller = kernel.getController();
@@ -214,4 +229,66 @@
provider.initialize(controller);
binder.bind(type).annotatedWith(Names.named(name)).toProvider(provider);
}
+
+ public static ControllerContext registerModules(Controller controller, Module...modules)
+ {
+ return registerModules(DEFAULT_GUICE_PLUGIN_PREFIX + GUICE_PLUGIN_COUNTER.incrementAndGet(), controller, modules);
+ }
+
+ public static ControllerContext registerModules(String name, Controller controller, Module...modules)
+ {
+ try
+ {
+ if (controller instanceof KernelController == false)
+ {
+ throw new IllegalArgumentException("Controller is not an instance of KernelController");
+ }
+
+ AbstractBeanMetaData guicePlugin = new AbstractBeanMetaData(name, GuiceKernelRegistryEntryPlugin.class.getName());
+ AbstractConstructorMetaData constructor = new AbstractConstructorMetaData();
+ AbstractArrayMetaData arrayMetaData = new AbstractArrayMetaData();
+ for (Module module : modules)
+ {
+ arrayMetaData.add(new AbstractValueMetaData(module));
+ }
+ constructor.setParameters(Collections.singletonList((ParameterMetaData)new AbstractParameterMetaData(arrayMetaData)));
+ guicePlugin.setConstructor(constructor);
+ return ((KernelController)controller).install(guicePlugin);
+ }
+ catch(Throwable t)
+ {
+ throw new RuntimeException(t);
+ }
+ }
+
+ public static Injector registerInjector(String name, Controller controller, GuiceObject...guiceObjects)
+ {
+ try
+ {
+ if (controller instanceof KernelController == false)
+ {
+ throw new IllegalArgumentException("Controller is not an instance of KernelController");
+ }
+
+ AbstractBeanMetaData injectorBean = new AbstractBeanMetaData(name, 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();
+ for (GuiceObject guiceObject : guiceObjects)
+ {
+ array.add(new AbstractValueMetaData(guiceObject));
+ }
+ parameters.add(new AbstractParameterMetaData(array));
+ constructor.setParameters(parameters);
+ injectorBean.setConstructor(constructor);
+ return (Injector)((KernelController)controller).install(injectorBean).getTarget();
+ }
+ catch(Throwable t)
+ {
+ throw new RuntimeException(t);
+ }
+ }
}
Modified: projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceObjectsTestCase.java
===================================================================
--- projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceObjectsTestCase.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceObjectsTestCase.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -21,29 +21,21 @@
*/
package org.jboss.test.guice.test;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.name.Names;
import junit.framework.Test;
-import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
+
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
-import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
-import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.guice.plugins.GuiceInjectorFactory;
import org.jboss.guice.plugins.GuiceObject;
-import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
+import org.jboss.guice.spi.GuiceIntegration;
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.test.guice.support.Prototype;
import org.jboss.test.guice.support.Singleton;
+import com.google.inject.Injector;
+import com.google.inject.Key;
+import com.google.inject.name.Names;
+
/**
* Guice test case via installed objects.
*
@@ -120,25 +112,15 @@
installFactory(controller, "prototype", Prototype.class);
- 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);
+ Injector injector = GuiceIntegration.registerInjector("injector", controller, GuiceObject.ALL);
Key<Singleton> singletonKey = Key.get(Singleton.class, Names.named("singleton"));
Key<Prototype> prototypeKey = Key.get(Prototype.class, Names.named("prototype"));
ControllerContext injectorContext = controller.getInstalledContext("injector");
assertNotNull(injectorContext);
- Injector injector = (Injector)injectorContext.getTarget();
+ Injector injector2 = (Injector)injectorContext.getTarget();
+ assertSame(injector, injector2);
assertNotNull(injector.getInstance(singletonKey));
assertSame(injector.getInstance(singletonKey), injector.getInstance(singletonKey));
Deleted: projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java
===================================================================
--- projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -1,111 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.test.guice.test;
-
-import java.util.Collections;
-
-import junit.framework.Test;
-
-import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
-import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
-import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
-import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.guice.spi.GuiceKernelRegistryEntryPlugin;
-import org.jboss.kernel.spi.dependency.KernelController;
-import org.jboss.test.guice.support.Prototype;
-import org.jboss.test.guice.support.Singleton;
-import org.jboss.test.guice.support.SingletonHolder;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Key;
-import com.google.inject.Module;
-import com.google.inject.name.Names;
-
-/**
- * Inject Guice objects into MC test.
- *
- * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
- */
-public class GuiceToMCTestCase extends AbstractGuiceTest
-{
- public GuiceToMCTestCase(String name)
- {
- super(name);
- }
-
- /**
- * Setup the test
- *
- * @return the test
- */
- public static Test suite()
- {
- return suite(GuiceToMCTestCase.class);
- }
-
- public void testGuice2MC() throws Throwable
- {
- final KernelController controller = getController();
- try
- {
- AbstractBeanMetaData guicePlugin = new AbstractBeanMetaData("GuicePlugin", GuiceKernelRegistryEntryPlugin.class.getName());
- AbstractConstructorMetaData constructor = new AbstractConstructorMetaData();
- AbstractArrayMetaData arrayMetaData = new AbstractArrayMetaData();
- final Singleton singleton = new Singleton();
- final Key<Prototype> prototypeKey = Key.get(Prototype.class, Names.named("prototype"));
- final Prototype prototype = new Prototype();
- Module module = new AbstractModule()
- {
- protected void configure()
- {
- bind(Singleton.class).toInstance(singleton);
- bind(prototypeKey).toInstance(prototype);
- }
- };
- arrayMetaData.add(new AbstractValueMetaData(module));
- constructor.setParameters(Collections.singletonList((ParameterMetaData)new AbstractParameterMetaData(arrayMetaData)));
- guicePlugin.setConstructor(constructor);
- controller.install(guicePlugin);
-
- BeanMetaData holderBean = new AbstractBeanMetaData("holder", SingletonHolder.class.getName());
- controller.install(holderBean);
-
- ControllerContext holderContext = controller.getInstalledContext("holder");
- assertNotNull(holderContext);
- SingletonHolder holder = (SingletonHolder)holderContext.getTarget();
- assertNotNull(holder);
- assertEquals(singleton, holder.getSingleton());
-
- ControllerContext prototypeContext = controller.getInstalledContext(prototypeKey);
- assertNotNull(prototypeContext);
- assertEquals(prototype, prototypeContext.getTarget());
- }
- finally
- {
- controller.shutdown();
- }
- }
-}
Copied: projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java (from rev 91100, projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java)
===================================================================
--- projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java (rev 0)
+++ projects/kernel/trunk/guice-int/src/test/java/org/jboss/test/guice/test/GuiceToMCTestCase.java 2009-07-15 09:54:00 UTC (rev 91286)
@@ -0,0 +1,98 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.guice.test;
+
+import junit.framework.Test;
+
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.guice.spi.GuiceIntegration;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.test.guice.support.Prototype;
+import org.jboss.test.guice.support.Singleton;
+import org.jboss.test.guice.support.SingletonHolder;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Key;
+import com.google.inject.Module;
+import com.google.inject.name.Names;
+
+/**
+ * Inject Guice objects into MC test.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class GuiceToMCTestCase extends AbstractGuiceTest
+{
+ public GuiceToMCTestCase(String name)
+ {
+ super(name);
+ }
+
+ /**
+ * Setup the test
+ *
+ * @return the test
+ */
+ public static Test suite()
+ {
+ return suite(GuiceToMCTestCase.class);
+ }
+
+ public void testGuice2MC() throws Throwable
+ {
+ final KernelController controller = getController();
+ try
+ {
+ final Singleton singleton = new Singleton();
+ final Key<Prototype> prototypeKey = Key.get(Prototype.class, Names.named("prototype"));
+ final Prototype prototype = new Prototype();
+ Module module = new AbstractModule()
+ {
+ protected void configure()
+ {
+ bind(Singleton.class).toInstance(singleton);
+ bind(prototypeKey).toInstance(prototype);
+ }
+ };
+ GuiceIntegration.registerModules(controller, module);
+
+ BeanMetaData holderBean = new AbstractBeanMetaData("holder", SingletonHolder.class.getName());
+ controller.install(holderBean);
+
+ ControllerContext holderContext = controller.getInstalledContext("holder");
+ assertNotNull(holderContext);
+ SingletonHolder holder = (SingletonHolder)holderContext.getTarget();
+ assertNotNull(holder);
+ assertEquals(singleton, holder.getSingleton());
+
+ ControllerContext prototypeContext = controller.getInstalledContext(prototypeKey);
+ assertNotNull(prototypeContext);
+ assertEquals(prototype, prototypeContext.getTarget());
+ }
+ finally
+ {
+ controller.shutdown();
+ }
+ }
+}
Modified: projects/kernel/trunk/pom.xml
===================================================================
--- projects/kernel/trunk/pom.xml 2009-07-15 09:46:41 UTC (rev 91285)
+++ projects/kernel/trunk/pom.xml 2009-07-15 09:54:00 UTC (rev 91286)
@@ -50,7 +50,7 @@
<version.ant.junit>1.6.5</version.ant.junit>
<version.jboss.drools>4.0.1</version.jboss.drools>
<version.jboss.jbpm>3.1.1</version.jboss.jbpm>
- <version.google.guice>1.0</version.google.guice>
+ <version.google.guice>2.0</version.google.guice>
<version.jboss.byteman>1.0.2</version.jboss.byteman>
</properties>
@@ -282,6 +282,12 @@
<version>${version.google.guice}</version>
</dependency>
<dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ <classifier>aopalliance</classifier>
+ <version>${version.google.guice}</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.byteman</groupId>
<artifactId>byteman</artifactId>
<version>${version.jboss.byteman}</version>
More information about the jboss-cvs-commits
mailing list