[jboss-cvs] JBossAS SVN: r84737 - 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
Wed Feb 25 10:16:42 EST 2009


Author: alesj
Date: 2009-02-25 10:16:42 -0500 (Wed, 25 Feb 2009)
New Revision: 84737

Modified:
   projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env/WebBeansBootstrapDeployer.java
Log:
Update bootstrap.

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-25 15:10:07 UTC (rev 84736)
+++ projects/webbeans-ri-int/trunk/microcontainer/src/main/java/org/jboss/webbeans/integration/microcontainer/deployer/env/WebBeansBootstrapDeployer.java	2009-02-25 15:16:42 UTC (rev 84737)
@@ -21,82 +21,54 @@
  */
 package org.jboss.webbeans.integration.microcontainer.deployer.env;
 
-import java.util.List;
-
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.dependency.spi.ControllerState;
+import org.jboss.beans.metadata.spi.builder.ParameterMetaDataBuilder;
 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.structure.spi.DeploymentUnit;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.dependency.spi.ControllerState;
 
 /**
  * Deploy WebBeans boostrap service.
  *
  * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
  */
-public class WebBeansBootstrapDeployer extends AbstractSimpleRealDeployer<JBossWebMetaData>
+public class WebBeansBootstrapDeployer extends AbstractSimpleRealDeployer<WebBeanDiscoveryEnvironment>
 {
    public WebBeansBootstrapDeployer()
    {
-      super(JBossWebMetaData.class);
+      super(WebBeanDiscoveryEnvironment.class);
+      setTopLevelOnly(true);
       setStage(DeploymentStages.PRE_REAL);
-      addInput(WebBeanDiscoveryEnvironment.class);
       addOutput(BeanMetaData.class);
    }
 
-   public void deploy(DeploymentUnit unit, JBossWebMetaData webMetaData) throws DeploymentException
+   public void deploy(DeploymentUnit unit, WebBeanDiscoveryEnvironment env) throws DeploymentException
    {
-      DeploymentUnit top = unit.getTopLevel();
-      String topName = top.getName();
-      String bootstrapName = topName + "_WebBeansBootstrap";
-      String bootstrapAttachmentName = bootstrapName + "_" + BeanMetaData.class.getSimpleName();
-      String webModuleName = getObjectName(webMetaData);
+      String unitName = unit.getName();
 
-      BeanMetaData bootstrapBMD = top.getAttachment(bootstrapAttachmentName, 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(), env);
+      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", "org.jboss.webbeans.integration.ejb.JBossEjbDiscovery", unit));
-            bootstrap.addPropertyMetaData("ejbResolver", createEjbConnector("JBossEjbResolver", "org.jboss.webbeans.integration.ejb.JBossEjbResolver", unit));
-            bootstrap.setCreate("initialize");
-            bootstrap.setStart("boot");
-            addLifecycleDependency(webModuleName, bootstrap);
-            unit.addAttachment(bootstrapAttachmentName, 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", "org.jboss.webbeans.integration.ejb.JBossEjbDiscovery", unit));
+      bootstrap.addPropertyMetaData("ejbResolver", createEjbConnector("JBossEjbResolver", "org.jboss.webbeans.integration.ejb.JBossEjbResolver", unit));      
+      ParameterMetaDataBuilder parameterBuilder = bootstrap.addInstallWithParameters("setApplicationContext", null, null, ControllerState.CREATE);
+      Object beanStore = null; // TODO
+      parameterBuilder.addParameterMetaData("org.jboss.webbeans.context.api.BeanStore", beanStore);
+      bootstrap.addInstallWithParameters("initialize", null, null, ControllerState.START);
+      bootstrap.addInstall("boot");
+      unit.addAttachment(bootstrapName + "_" + BeanMetaData.class.getSimpleName(), bootstrap.getBeanMetaData());
    }
 
    /**
-    * 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);
-   }
-
-   /**
     * Create ejb connector.
     *
     * @param name the connector name
@@ -112,26 +84,4 @@
       builder.addPropertyMetaData("deploymentUnit", unit);
       return builder.getBeanMetaData();
    }
-
-   /**
-    * Get web module name.
-    *
-    * @param metaData the web metadata
-    * @return web module's name
-    */
-   protected String getObjectName(JBossWebMetaData metaData)
-   {
-      // Obtain the war virtual host and context root to define a unique war name
-      String virtualHost = "";
-      List<String> hosts = metaData.getVirtualHosts();
-      if (hosts != null && hosts.size() > 0)
-      {
-         virtualHost = hosts.get(0);
-      }
-      String ctxPath = metaData.getContextRoot();
-      // The ctx path value cannot be empty in the object name
-      if (ctxPath == null || ctxPath.length() == 0)
-         ctxPath = "/";
-      return "jboss.web.deployment:war=" + virtualHost + ctxPath;
-   }
 }




More information about the jboss-cvs-commits mailing list