[jboss-cvs] JBossAS SVN: r92724 - in projects/webbeans-ri-int/trunk: deployer and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 24 01:53:22 EDT 2009


Author: marius.bogoevici
Date: 2009-08-24 01:53:22 -0400 (Mon, 24 Aug 2009)
New Revision: 92724

Added:
   projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/
   projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/NonContextualObjectInjectionHelper.java
   projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/WebBeansInjector.java
Modified:
   projects/webbeans-ri-int/trunk/deployer/pom.xml
   projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/WebBeansBootstrapDeployer.java
   projects/webbeans-ri-int/trunk/pom.xml
Log:
JBAS-7046,WBINT-5: WebBeans Deployer registers a special Injector to be used by the tomcat-as integration for processing the resources. It is currently based on the assumption that the deployment is flat, but this subject to change in the future.

Modified: projects/webbeans-ri-int/trunk/deployer/pom.xml
===================================================================
--- projects/webbeans-ri-int/trunk/deployer/pom.xml	2009-08-24 05:49:49 UTC (rev 92723)
+++ projects/webbeans-ri-int/trunk/deployer/pom.xml	2009-08-24 05:53:22 UTC (rev 92724)
@@ -274,6 +274,10 @@
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+    	<groupId>org.jboss.ejb3</groupId>
+        <artifactId>jboss-ejb3-core</artifactId>
+    </dependency>
       
    </dependencies>
 

Modified: projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/WebBeansBootstrapDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/WebBeansBootstrapDeployer.java	2009-08-24 05:49:49 UTC (rev 92723)
+++ projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/deployer/env/WebBeansBootstrapDeployer.java	2009-08-24 05:53:22 UTC (rev 92724)
@@ -33,6 +33,8 @@
 import org.jboss.webbeans.context.api.BeanStore;
 import org.jboss.webbeans.context.api.helpers.ConcurrentHashMapBeanStore;
 import org.jboss.webbeans.integration.deployer.DeployersUtils;
+import org.jboss.webbeans.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.webbeans.integration.injection.WebBeansInjector;
 
 /**
  * Deploy WebBeans boostrap service.
@@ -85,7 +87,12 @@
       install.addParameterMetaData(String.class.getName(), "Start");
       install.addParameterMetaData(String.class.getName(), "Start");
       
-      unit.addAttachment(bootstrapName + "_" + BeanMetaData.class.getSimpleName(), bootstrap.getBeanMetaData());      
+      unit.addAttachment(bootstrapName + "_" + BeanMetaData.class.getSimpleName(), bootstrap.getBeanMetaData());
+
+      String injectorName = unit.getName() + "_WBInjector";
+      BeanMetaDataBuilder webBeansInjector = BeanMetaDataBuilder.createBuilder(injectorName, WebBeansInjector.class.getName());
+      webBeansInjector.addConstructorParameter(BootstrapBean.class.getName(), bootstrap.createInject(bootstrapName));
+      unit.addAttachment(injectorName + "_" + BeanMetaData.class.getSimpleName(), webBeansInjector.getBeanMetaData());
    }
 
    /**

Added: projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/NonContextualObjectInjectionHelper.java
===================================================================
--- projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/NonContextualObjectInjectionHelper.java	                        (rev 0)
+++ projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/NonContextualObjectInjectionHelper.java	2009-08-24 05:53:22 UTC (rev 92724)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.integration.injection;
+
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.InjectionTarget;
+import javax.enterprise.context.spi.CreationalContext;
+
+/**
+ * Adds support for injecting into 
+ * @author: Marius Bogoevici
+ */
+public class NonContextualObjectInjectionHelper
+{
+   public static void injectNonContextualInstance(Object o, BeanManager webBeansManager)
+   {
+      CreationalContext<Object> creationalContext =  webBeansManager.createCreationalContext(null);
+      InjectionTarget<Object> injectionTarget = (InjectionTarget<Object>) webBeansManager.createInjectionTarget(webBeansManager.createAnnotatedType(o.getClass()));
+      injectionTarget.inject(o, creationalContext);
+   }
+}

Added: projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/WebBeansInjector.java
===================================================================
--- projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/WebBeansInjector.java	                        (rev 0)
+++ projects/webbeans-ri-int/trunk/deployer/src/main/java/org/jboss/webbeans/integration/injection/WebBeansInjector.java	2009-08-24 05:53:22 UTC (rev 92724)
@@ -0,0 +1,43 @@
+package org.jboss.webbeans.integration.injection;
+
+import org.jboss.ejb3.BeanContext;
+import org.jboss.injection.Injector;
+import org.jboss.webbeans.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.webbeans.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.webbeans.servlet.api.ServletServices;
+
+/**
+ *
+ * Injector for injecting Web Beans into Servlets and other Web Artifacts
+ *
+ * @author: Marius Bogoevici
+ */
+public class WebBeansInjector implements Injector
+{
+   private BootstrapBean bootstrapBean;
+
+   public WebBeansInjector(BootstrapBean bootstrapBean)
+   {
+      this.bootstrapBean = bootstrapBean;
+   }
+
+   public Class getInjectionClass()
+   {
+      return null;
+   }
+
+   public void inject(BeanContext ctx)
+   {
+      //no-op
+   }
+
+   public void inject(Object instance)
+   {
+      // assume that the deployment is flat. If this changes, the servlet context
+      // needs to be passed along
+      ServletServices services = bootstrapBean.getBootstrap().getServices().get(ServletServices.class);
+      BeanDeploymentArchive beanDeploymentArchive = services.getBeanDeploymentArchive(null);
+      NonContextualObjectInjectionHelper.injectNonContextualInstance(instance, bootstrapBean.getBootstrap().getManager(beanDeploymentArchive));
+   }
+
+}

Modified: projects/webbeans-ri-int/trunk/pom.xml
===================================================================
--- projects/webbeans-ri-int/trunk/pom.xml	2009-08-24 05:49:49 UTC (rev 92723)
+++ projects/webbeans-ri-int/trunk/pom.xml	2009-08-24 05:53:22 UTC (rev 92724)
@@ -35,6 +35,7 @@
     <version.jboss.metadata>1.0.0.GA</version.jboss.metadata>
     <version.jbossxb>2.0.1.GA</version.jbossxb>
     <version.jboss.ejb3>1.0.0</version.jboss.ejb3>
+    <version.jboss.ejb3.core>1.1.5</version.jboss.ejb3.core>
     <version.jboss.ejb3.endpoint>0.1.3</version.jboss.ejb3.endpoint>
     <version.jboss.jpa>1.0.0-CR1</version.jboss.jpa>
     <version.servlet.api>2.5</version.servlet.api>
@@ -360,6 +361,12 @@
          <version>${version.jboss.ejb3}</version>
       </dependency>
 
+      <dependency>
+         <groupId>org.jboss.ejb3</groupId>
+         <artifactId>jboss-ejb3-core</artifactId>
+         <version>${version.jboss.ejb3.core}</version>
+         <scope>provided</scope>
+      </dependency>
 
       <dependency>
          <groupId>org.jboss.ejb3</groupId>




More information about the jboss-cvs-commits mailing list