[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