[jboss-cvs] JBossAS SVN: r84430 - projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 19 02:11:47 EST 2009
Author: alesj
Date: 2009-02-19 02:11:47 -0500 (Thu, 19 Feb 2009)
New Revision: 84430
Modified:
projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env/WebBeansBootstrapDeployer.java
Log:
Handle multiple web apps.
Modified: projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env/WebBeansBootstrapDeployer.java
===================================================================
--- projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env/WebBeansBootstrapDeployer.java 2009-02-19 06:39:41 UTC (rev 84429)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env/WebBeansBootstrapDeployer.java 2009-02-19 07:11:47 UTC (rev 84430)
@@ -30,7 +30,6 @@
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.deployer.DeploymentStages;
import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
-import org.jboss.deployers.spi.deployer.helpers.AttachmentLocator;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
@@ -39,41 +38,61 @@
*
* @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
*/
-public class WebBeansBootstrapDeployer extends AbstractSimpleRealDeployer<WebBeanDiscoveryEnvironment>
+public class WebBeansBootstrapDeployer extends AbstractSimpleRealDeployer<JBossWebMetaData>
{
public WebBeansBootstrapDeployer()
{
- super(WebBeanDiscoveryEnvironment.class);
- setTopLevelOnly(true);
+ super(JBossWebMetaData.class);
setStage(DeploymentStages.PRE_REAL);
- addInput(JBossWebMetaData.class);
+ addInput(WebBeanDiscoveryEnvironment.class);
addOutput(BeanMetaData.class);
}
- public void deploy(DeploymentUnit unit, WebBeanDiscoveryEnvironment deployment) throws DeploymentException
+ public void deploy(DeploymentUnit unit, JBossWebMetaData webMetaData) throws DeploymentException
{
- JBossWebMetaData webMetaData = AttachmentLocator.searchChildren(unit, JBossWebMetaData.class);
- if (webMetaData == null)
- return;
+ DeploymentUnit top = unit.getTopLevel();
+ String topName = top.getName();
+ String bootstrapName = topName + "_WebBeansBootstrap";
+ String webModuleName = getObjectName(webMetaData);
- String unitName = unit.getName();
+ BeanMetaData bootstrapBMD = top.getAttachment(bootstrapName, BeanMetaData.class);
+ if (bootstrapBMD != null)
+ {
+ BeanMetaDataBuilder bootstrap = BeanMetaDataBuilder.createBuilder(bootstrapBMD);
+ addLifecycleDependency(webModuleName, bootstrap);
+ }
+ else
+ {
+ WebBeanDiscoveryEnvironment env = top.getAttachment(WebBeanDiscoveryEnvironment.class);
+ if (env != null)
+ {
+ String envName = topName + "_JBossWebBeanDiscovery";
+ BeanMetaDataBuilder envWrapper = BeanMetaDataBuilder.createBuilder(envName, "org.jboss.webbeans.integration.jbossas.bootstrap.JBossWebBeanDiscovery");
+ envWrapper.addConstructorParameter(WebBeanDiscoveryEnvironment.class.getName(), env);
+ unit.addAttachment(envName + "_" + BeanMetaData.class.getSimpleName(), envWrapper.getBeanMetaData());
- String envName = unitName + "_JBossWebBeanDiscovery";
- BeanMetaDataBuilder envWrapper = BeanMetaDataBuilder.createBuilder(envName, "org.jboss.webbeans.integration.jbossas.bootstrap.JBossWebBeanDiscovery");
- envWrapper.addConstructorParameter(WebBeanDiscoveryEnvironment.class.getName(), deployment);
- unit.addAttachment(envName + "_" + BeanMetaData.class.getSimpleName(), envWrapper.getBeanMetaData());
+ BeanMetaDataBuilder bootstrap = BeanMetaDataBuilder.createBuilder(bootstrapName, "org.jboss.webbeans.bootstrap.WebBeansBootstrap");
+ bootstrap.addPropertyMetaData("webBeanDiscovery", bootstrap.createInject(envName));
+ bootstrap.addPropertyMetaData("ejbDiscovery", createEjbConnector("JBossEjbDiscovery", unit));
+ bootstrap.addPropertyMetaData("ejbResolver", createEjbConnector("JBossEjbResolver", unit));
+ bootstrap.setCreate("initialize");
+ bootstrap.setStart("boot");
+ addLifecycleDependency(webModuleName, bootstrap);
+ unit.addAttachment(bootstrapName + "_" + BeanMetaData.class.getSimpleName(), bootstrap.getBeanMetaData());
+ }
+ }
+ }
- String bootstrapName = unitName + "_WebBeansBootstrap";
- BeanMetaDataBuilder bootstrap = BeanMetaDataBuilder.createBuilder(bootstrapName, "org.jboss.webbeans.bootstrap.WebBeansBootstrap");
- bootstrap.addPropertyMetaData("webBeanDiscovery", bootstrap.createInject(envName));
- bootstrap.addPropertyMetaData("ejbDiscovery", createEjbConnector("JBossEjbDiscovery", unit));
- bootstrap.addPropertyMetaData("ejbResolver", createEjbConnector("JBossEjbResolver", unit));
- bootstrap.setCreate("initialize");
- bootstrap.setStart("boot");
- String webModuleName = getObjectName(webMetaData);
+ /**
+ * Add bootstrap's lifecycle dependency.
+ *
+ * @param webModuleName the web module name
+ * @param bootstrap the bootstrap bmd builder
+ */
+ protected void addLifecycleDependency(String webModuleName, BeanMetaDataBuilder bootstrap)
+ {
bootstrap.addDemand(webModuleName, ControllerState.CREATE, ControllerState.CREATE, null);
bootstrap.addDemand(webModuleName, ControllerState.START, ControllerState.START, null);
- unit.addAttachment(bootstrapName + "_" + BeanMetaData.class.getSimpleName(), bootstrap.getBeanMetaData());
}
/**
More information about the jboss-cvs-commits
mailing list