[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