[jboss-cvs] JBossAS SVN: r106079 - in trunk/weld-int: deployer/src/main/java/org/jboss/weld/integration/deployer/env and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 16 01:34:29 EDT 2010


Author: marius.bogoevici
Date: 2010-06-16 01:34:29 -0400 (Wed, 16 Jun 2010)
New Revision: 106079

Added:
   trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainerDependencyDeployer.java
Modified:
   trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
Log:
fixes for JBAS-8102

Modified: trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
===================================================================
--- trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-06-16 03:08:16 UTC (rev 106078)
+++ trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-06-16 05:34:29 UTC (rev 106079)
@@ -51,6 +51,9 @@
   
   <!-- Responsible for adding the Weld listener to the Servlet -->
   <bean name="PostWebMetadataDeployer" class="org.jboss.weld.integration.deployer.metadata.PostWebMetadataDeployer"/>
+
+  <!-- Responsible for making sure that the CDI container is started before the web application(s)-->
+  <bean name="WebContainerDependencyDeployer" class="org.jboss.weld.integration.deployer.env.WebContainerDependencyDeployer"/>
   
   <!-- Responsible for adding the Weld Manager object factory to JNDI -->
    <!--<bean name="WeldJndiBinder" class="org.jboss.weld.integration.deployer.env.WeldJndiBinder">-->

Added: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainerDependencyDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainerDependencyDeployer.java	                        (rev 0)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainerDependencyDeployer.java	2010-06-16 05:34:29 UTC (rev 106079)
@@ -0,0 +1,41 @@
+package org.jboss.weld.integration.deployer.env;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+
+/**
+ * Ensures that Weld is bootstrapped before the Web Application is started
+ * (if this is a CDI-enabled deployment)
+ *
+ * @author Marius Bogoevici
+ */
+public class WebContainerDependencyDeployer extends AbstractSimpleRealDeployer<JBossWebMetaData>
+{
+   public WebContainerDependencyDeployer()
+   {
+      super(JBossWebMetaData.class);
+      setOutput(JBossWebMetaData.class);
+   }
+
+   @Override
+   public void deploy(DeploymentUnit unit, JBossWebMetaData deployment) throws DeploymentException
+   {
+      String bootstrapBeanName = DeployersUtils.getBootstrapBeanAttachmentName(unit.getTopLevel());
+      if (unit.getTopLevel().getAttachment(bootstrapBeanName) != null)
+      {
+         List<String> depends = deployment.getDepends();
+         if (depends == null)
+         {
+            depends = new ArrayList<String>();
+            deployment.setDepends(depends);
+         }
+         depends.add(DeployersUtils.getBootstrapBeanName(unit));
+      }
+   }
+}



More information about the jboss-cvs-commits mailing list