[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