[jboss-cvs] JBossAS SVN: r108029 - in trunk/weld-int: deployer/src/main/java/org/jboss/weld/integration/deployer/env and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Sep 7 23:04:04 EDT 2010
Author: marius.bogoevici
Date: 2010-09-07 23:04:03 -0400 (Tue, 07 Sep 2010)
New Revision: 108029
Added:
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java
Removed:
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
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/WeldInjector.java
Log:
Fix to support the new hierarchical deployment structure - one Injector will be deployed for each Web application
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-09-07 22:10:04 UTC (rev 108028)
+++ trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml 2010-09-08 03:04:03 UTC (rev 108029)
@@ -54,7 +54,7 @@
<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"/>
+ <bean name="WebContainerDependencyDeployer" class="org.jboss.weld.integration.deployer.env.WebContainterIntegrationDeployer"/>
<!-- Responsible for adding the Weld Manager object factory to JNDI -->
<!--<bean name="WeldJndiBinder" class="org.jboss.weld.integration.deployer.env.WeldJndiBinder">-->
Deleted: 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 2010-09-07 22:10:04 UTC (rev 108028)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainerDependencyDeployer.java 2010-09-08 03:04:03 UTC (rev 108029)
@@ -1,41 +0,0 @@
-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
- * @author Ales Justin
- */
-public class WebContainerDependencyDeployer extends AbstractSimpleRealDeployer<JBossWebMetaData>
-{
- public WebContainerDependencyDeployer()
- {
- super(JBossWebMetaData.class);
- setOutput(JBossWebMetaData.class);
- }
-
- @Override
- public void deploy(DeploymentUnit unit, JBossWebMetaData deployment) throws DeploymentException
- {
- if (DeployersUtils.isBootstrapBeanPresent(unit))
- {
- List<String> depends = deployment.getDepends();
- if (depends == null)
- {
- depends = new ArrayList<String>();
- deployment.setDepends(depends);
- }
- depends.add(DeployersUtils.getBootstrapBeanName(unit));
- }
- }
-}
Copied: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java (from rev 108010, 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/WebContainterIntegrationDeployer.java (rev 0)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java 2010-09-08 03:04:03 UTC (rev 108029)
@@ -0,0 +1,55 @@
+package org.jboss.weld.integration.deployer.env;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+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;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.weld.integration.injection.WeldInjector;
+
+/**
+ * Ensures that Weld is bootstrapped before the Web Application is started
+ * (if this is a CDI-enabled deployment)
+ *
+ * @author Marius Bogoevici
+ * @author Ales Justin
+ */
+public class WebContainterIntegrationDeployer extends AbstractSimpleRealDeployer<JBossWebMetaData>
+{
+ public WebContainterIntegrationDeployer()
+ {
+ super(JBossWebMetaData.class);
+ setOutput(JBossWebMetaData.class);
+ }
+
+ @Override
+ public void deploy(DeploymentUnit unit, JBossWebMetaData deployment) throws DeploymentException
+ {
+ if (DeployersUtils.isBootstrapBeanPresent(unit))
+ {
+ String injectorName = unit.getName() + "_WBInjector";
+ String bootstrapBeanName = DeployersUtils.getBootstrapBeanName(unit);
+
+ BeanMetaDataBuilder weldInjector = BeanMetaDataBuilder.createBuilder(injectorName, WeldInjector.class.getName());
+
+ weldInjector.addConstructorParameter(BootstrapBean.class.getName(), weldInjector.createInject(bootstrapBeanName));
+ weldInjector.addConstructorParameter(String.class.getName(), unit.getClassLoader().toString());
+ weldInjector.setDestroy("cleanup");
+ unit.addAttachment(injectorName + "_" + BeanMetaData.class.getSimpleName(), weldInjector.getBeanMetaData());
+
+ List<String> depends = deployment.getDepends();
+ if (depends == null)
+ {
+ depends = new ArrayList<String>();
+ deployment.setDepends(depends);
+ }
+ depends.add(bootstrapBeanName);
+ }
+ }
+}
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java 2010-09-07 22:10:04 UTC (rev 108028)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WeldBootstrapDeployer.java 2010-09-08 03:04:03 UTC (rev 108029)
@@ -97,12 +97,6 @@
install.addParameterMetaData(String.class.getName(), "Create");
unit.addAttachment(DeployersUtils.getBootstrapBeanAttachmentName(unit), bootstrap.getBeanMetaData());
-
- String injectorName = unit.getName() + "_WBInjector";
- BeanMetaDataBuilder weldInjector = BeanMetaDataBuilder.createBuilder(injectorName, WeldInjector.class.getName());
- weldInjector.addConstructorParameter(BootstrapBean.class.getName(), bootstrap.createInject(bootstrapName));
- weldInjector.setDestroy("cleanup");
- unit.addAttachment(injectorName + "_" + BeanMetaData.class.getSimpleName(), weldInjector.getBeanMetaData());
}
/**
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/WeldInjector.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/WeldInjector.java 2010-09-07 22:10:04 UTC (rev 108028)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/WeldInjector.java 2010-09-08 03:04:03 UTC (rev 108029)
@@ -14,12 +14,17 @@
{
private BootstrapBean bootstrapBean;
- public WeldInjector(BootstrapBean bootstrapBean)
+ private String beanDeploymentArchiveId;
+
+ public WeldInjector(BootstrapBean bootstrapBean, String beanDeploymentArchiveId)
{
if (bootstrapBean == null)
throw new IllegalArgumentException("Null bootstrap bean");
+ if (beanDeploymentArchiveId == null)
+ throw new IllegalArgumentException("Null bean deployment archive id");
this.bootstrapBean = bootstrapBean;
+ this.beanDeploymentArchiveId = beanDeploymentArchiveId;
}
public Class getInjectionClass()
@@ -34,10 +39,20 @@
public void inject(Object instance)
{
+ BeanDeploymentArchive foundBeanDeploymentArchive = null;
for (BeanDeploymentArchive beanDeploymentArchive: bootstrapBean.getDeployment().getBeanDeploymentArchives())
{
- NonContextualObjectInjectionHelper.injectNonContextualInstance(instance, bootstrapBean.getBootstrap().getManager(beanDeploymentArchive));
+ if (beanDeploymentArchive.getId().equals(beanDeploymentArchiveId))
+ {
+ foundBeanDeploymentArchive = beanDeploymentArchive;
+ }
}
+ if (foundBeanDeploymentArchive == null)
+ {
+ throw new IllegalStateException("Cannot find BeanManager for BeanDeploymentArchive with id=" + beanDeploymentArchiveId);
+ }
+ NonContextualObjectInjectionHelper.injectNonContextualInstance(instance, bootstrapBean.getBootstrap().getManager(foundBeanDeploymentArchive));
+
}
public void cleanup()
More information about the jboss-cvs-commits
mailing list