[jboss-cvs] JBossAS SVN: r102937 - in projects/weld-int/branches/6.0.0.Beta7_VFS3_int: deployer/src/main/java/org/jboss/weld/integration/deployer/jndi and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 24 23:52:45 EDT 2010


Author: marius.bogoevici
Date: 2010-03-24 23:52:43 -0400 (Wed, 24 Mar 2010)
New Revision: 102937

Added:
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java
Removed:
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java
Modified:
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java
Log:
fixing some JNDI issues


Modified: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-03-25 02:15:12 UTC (rev 102936)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-03-25 03:52:43 UTC (rev 102937)
@@ -62,9 +62,9 @@
    <!--</bean>-->
 
   <!-- Responsible for binding bean managers -->
-  <bean name="JndiBinderDeployer" class="org.jboss.weld.integration.deployer.jndi.JndiBinderDeployer">
-      <depends>NameSpaces</depends>
-  </bean>
+  <!--<bean name="JndiBinderDeployer" class="org.jboss.weld.integration.deployer.jndi.JndiBinderDeployer">-->
+      <!--<depends>NameSpaces</depends>-->
+  <!--</bean>-->
 
   <bean name="JavaEEComponentJndiBinderDeployer" class="org.jboss.weld.integration.deployer.jndi.JavaEEComponentJndiBinderDeployer">
       <constructor><parameter><inject bean="NamingJavaEEComponentInformer"/></parameter></constructor>

Added: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -0,0 +1,50 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import javax.enterprise.inject.spi.BeanManager;
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.Reference;
+
+import org.jboss.logging.Logger;
+
+/**
+ * @author Marius Bogoevici
+ */
+public abstract class JavaCompJndiBinder
+{
+   protected Logger log = Logger.getLogger(getClass());
+   private String deploymentUnitName;
+
+   public JavaCompJndiBinder(String deploymentUnitName)
+   {
+      this.deploymentUnitName = deploymentUnitName;
+   }
+
+   public void bindToJavaComp()
+   {
+      try
+      {
+         getJavaCompContext().bind("BeanManager",new Reference(BeanManager.class.getName(), "org.jboss.weld.resources.ManagerObjectFactory", null));      
+      }
+      catch (NamingException e)
+      {
+         log.error("Could not bound BeanManager on " + getJavaContextDescription());
+      }
+   }
+
+   protected abstract Context getJavaCompContext() throws NamingException;
+
+   protected abstract String getJavaContextDescription();
+
+   public void unbind()
+   {
+      try
+      {
+         getJavaCompContext().unbind("BeanManager");
+      }
+      catch (NamingException e)
+      {
+         log.error("Cound not unbind java:comp/BeanManager for " + deploymentUnitName);
+      }
+   }
+}

Modified: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java	2010-03-25 02:15:12 UTC (rev 102936)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -1,8 +1,10 @@
 package org.jboss.weld.integration.deployer.jndi;
 
+import javax.enterprise.inject.spi.BeanManager;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
+import javax.naming.Reference;
 
 import org.jboss.logging.Logger;
 import org.jboss.reloaded.naming.spi.JavaEEComponent;
@@ -11,45 +13,26 @@
 /**
  * @author Marius Bogoevici
  */
-public class JavaEEComponentJndiBinder
+public class JavaEEComponentJndiBinder extends JavaCompJndiBinder
 {
-   private Logger log = Logger.getLogger(getClass());
 
-   private BootstrapBean bootstrapBean;
    private JavaEEComponent javaEEComponent;
-   private Context context;
 
-   public JavaEEComponentJndiBinder(BootstrapBean bootstrapBean, JavaEEComponent javaEEComponent)
+   public JavaEEComponentJndiBinder(JavaEEComponent javaEEComponent, String deploymentUnitName)
    {
+      super(deploymentUnitName);
       this.javaEEComponent = javaEEComponent;
-      if (bootstrapBean == null)
-         throw new RuntimeException("Bootstrap bean cannot be null");
-      this.bootstrapBean = bootstrapBean;
    }
 
-   public void bindToJavaComp()
+   @Override
+   protected Context getJavaCompContext()
    {
-      try
-      {
-         context = javaEEComponent.getContext();
-         context.bind("BeanManager",bootstrapBean.getBootstrap().getManager(bootstrapBean.getDeployment().getFlatBeanDeploymentArchive()));
-      }
-      catch (NamingException e)
-      {
-         log.error("No java:comp context found for " + javaEEComponent.getName());
-      }
+      return javaEEComponent.getContext();
    }
 
-   public void unbind()
+   @Override
+   protected String getJavaContextDescription()
    {
-      try
-      {
-         context.unbind("BeanManager");
-      }
-      catch (NamingException e)
-      {
-         log.error("Cound not unbind java:comp/BeanManager");
-      }
+      return javaEEComponent.getName();
    }
-
 }
\ No newline at end of file

Deleted: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java	2010-03-25 02:15:12 UTC (rev 102936)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -1,67 +0,0 @@
-package org.jboss.weld.integration.deployer.jndi;
-
-import static org.jboss.reloaded.naming.deployers.util.AnnotationHelper.annotation;
-
-import org.jboss.beans.metadata.api.model.InjectOption;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.dependency.plugins.graph.Search;
-import org.jboss.dependency.spi.graph.SearchInfo;
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.DeploymentStage;
-import org.jboss.deployers.spi.deployer.DeploymentStages;
-import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
-import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
-import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.plugins.scope.ApplicationScope;
-import org.jboss.metadata.plugins.scope.DeploymentScope;
-import org.jboss.metadata.plugins.scope.InstanceScope;
-import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
-import org.jboss.reloaded.naming.spi.JavaEEComponent;
-import org.jboss.weld.integration.deployer.DeployersUtils;
-import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
-
-/**
- * @author Marius Bogoevici
- */
-public class JavaEEComponentJndiBinderDeployer extends AbstractSimpleRealDeployer<JBossEnterpriseBeanMetaData>
-{
-
-   private JavaEEComponentInformer informer;
-
-   public JavaEEComponentJndiBinderDeployer(JavaEEComponentInformer javaEEComponentInformer)
-   {
-      super(JBossEnterpriseBeanMetaData.class);
-      informer = javaEEComponentInformer;
-      setComponentsOnly(true);
-      setOutput(BeanMetaData.class);
-   }
-
-   @Override
-   public void deploy(DeploymentUnit deploymentUnit, JBossEnterpriseBeanMetaData jBossEnterpriseBeanMetaData) throws DeploymentException
-   {
-      BeanMetaDataBuilder builder  = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_CompJndiBinder", JavaEEComponentJndiBinder.class.getName());
-      builder.addConstructorParameter(BootstrapBean.class.getName(), new AbstractInjectionValueMetaData(DeployersUtils.getBootstrapBeanName(deploymentUnit.getTopLevel())));
-      AbstractInjectionValueMetaData javaComponent = new AbstractInjectionValueMetaData(getComponentBeanName(deploymentUnit));
-      builder.addConstructorParameter(JavaEEComponent.class.getName(), javaComponent);
-      builder.addInstall("bindToJavaComp");
-      deploymentUnit.getParent().addAttachment(deploymentUnit.getName()+"/Comp", builder.getBeanMetaData());
-
-   }
-
-   private String getComponentBeanName(DeploymentUnit deploymentUnit)
-   {
-      String appName = informer.getApplicationName(deploymentUnit);
-      String moduleName = informer.getModulePath(deploymentUnit);
-      String componentName = informer.getComponentName(deploymentUnit);
-      String name = "jboss.naming:";
-      if(appName != null)
-         name += "application=" + appName + ",";
-      name += "module=" + moduleName + ",component=" + componentName;
-      return name;
-   }
-
-}

Added: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -0,0 +1,85 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import static org.jboss.reloaded.naming.deployers.util.AnnotationHelper.annotation;
+
+import org.jboss.beans.metadata.api.model.InjectOption;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.dependency.plugins.graph.Search;
+import org.jboss.dependency.spi.graph.SearchInfo;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStage;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.jpa.javaee.JavaEEModuleInformer;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.plugins.scope.ApplicationScope;
+import org.jboss.metadata.plugins.scope.DeploymentScope;
+import org.jboss.metadata.plugins.scope.InstanceScope;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
+import org.jboss.reloaded.naming.spi.JavaEEComponent;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class JavaEEComponentJndiBinderDeployer extends AbstractSimpleRealDeployer<JBossEnterpriseBeanMetaData>
+{
+
+   private JavaEEComponentInformer informer;
+
+   public JavaEEComponentJndiBinderDeployer(JavaEEComponentInformer javaEEComponentInformer)
+   {
+      super(JBossEnterpriseBeanMetaData.class);
+      informer = javaEEComponentInformer;
+      setComponentsOnly(true);
+      setOutput(BeanMetaData.class);
+   }
+
+   @Override
+   public void deploy(DeploymentUnit deploymentUnit, JBossEnterpriseBeanMetaData jBossEnterpriseBeanMetaData) throws DeploymentException
+   {
+      BeanMetaData bbBMD = getBootstrapBeanAttachment(deploymentUnit.getTopLevel());
+      if (bbBMD == null)
+      {
+         return;
+      }
+
+      if (informer.getModuleType(deploymentUnit).equals(org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer.ModuleType.EJB))
+      {
+         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_CompJndiBinder", JavaEEComponentJndiBinder.class.getName());
+         AbstractInjectionValueMetaData javaComponent = new AbstractInjectionValueMetaData(getComponentBeanName(deploymentUnit));
+         builder.addConstructorParameter(JavaEEComponent.class.getName(), javaComponent);
+         builder.addConstructorParameter(String.class.getName(), deploymentUnit.getName());
+         builder.addInstall("bindToJavaComp");
+         deploymentUnit.getParent().addAttachment(deploymentUnit.getName() + "_JavaCompBinder", builder.getBeanMetaData());
+      }
+   }
+
+   private BeanMetaData getBootstrapBeanAttachment(DeploymentUnit deploymentUnit)
+   {
+      String bootstrapName = DeployersUtils.getBootstrapBeanName(deploymentUnit.getTopLevel());
+      String bbAttachmentName = bootstrapName + "_" + BeanMetaData.class.getSimpleName();
+
+      BeanMetaData bbBMD = deploymentUnit.getTopLevel().getAttachment(bbAttachmentName, BeanMetaData.class);
+      return bbBMD;
+   }
+
+   private String getComponentBeanName(DeploymentUnit deploymentUnit)
+   {
+      String appName = informer.getApplicationName(deploymentUnit);
+      String moduleName = informer.getModulePath(deploymentUnit);
+      String componentName = informer.getComponentName(deploymentUnit);
+      String name = "jboss.naming:";
+      if(appName != null)
+         name += "application=" + appName + ",";
+      name += "module=" + moduleName + ",component=" + componentName;
+      return name;
+   }
+
+}

Added: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -0,0 +1,33 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import javax.naming.Context;
+
+import org.jboss.reloaded.naming.spi.JavaEEComponent;
+import org.jboss.reloaded.naming.spi.JavaEEModule;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class JavaEEModuleJndiBinder extends JavaCompJndiBinder
+{
+
+   private JavaEEModule javaEEModule;
+
+   public JavaEEModuleJndiBinder(JavaEEModule javaEEModule, String deploymentUnitName)
+   {
+      super(deploymentUnitName);
+      this.javaEEModule = javaEEModule;
+   }
+
+   @Override
+   protected Context getJavaCompContext()
+   {
+      return javaEEModule.getContext();
+   }
+
+   @Override
+   protected String getJavaContextDescription()
+   {
+      return javaEEModule.getName();
+   }
+}
\ No newline at end of file

Copied: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java (from rev 102900, projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java)
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -0,0 +1,33 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import javax.enterprise.inject.spi.BeanManager;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.Reference;
+
+import org.jboss.logging.Logger;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class SimpleCompJndiBinder extends JavaCompJndiBinder
+{
+   public SimpleCompJndiBinder(String deploymentUnitName)
+   {
+      super(deploymentUnitName);
+   }
+
+   @Override
+   protected Context getJavaCompContext() throws NamingException
+   {
+      return ((Context) new InitialContext().lookup("java:comp"));
+   }
+
+   @Override
+   protected String getJavaContextDescription()
+   {
+     return "JNDI java:comp";
+   }
+}

Deleted: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java	2010-03-25 02:15:12 UTC (rev 102936)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -1,54 +0,0 @@
-package org.jboss.weld.integration.deployer.jndi;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import org.jboss.logging.Logger;
-import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
-
-/**
- * @author Marius Bogoevici
- */
-public class WebCompJndiBinder
-{
-   private Logger log = Logger.getLogger(getClass());
-
-   private BootstrapBean bootstrapBean;
-   private String deploymentUnitName;
-   private Context context;
-
-   public WebCompJndiBinder(BootstrapBean bootstrapBean, String deploymentUnitName)
-   {
-      this.deploymentUnitName = deploymentUnitName;
-      if (bootstrapBean == null)
-         throw new RuntimeException("Bootstrap bean cannot be null");
-      this.bootstrapBean = bootstrapBean;
-   }
-
-   public void bindToJavaComp()
-   {
-      try
-      {
-         context = ((Context) new InitialContext().lookup("java:comp/"));
-         context.bind("BeanManager",bootstrapBean.getBootstrap().getManager(bootstrapBean.getDeployment().getFlatBeanDeploymentArchive()));
-      }
-      catch (NamingException e)
-      {
-         log.error("No java:comp context found for " + deploymentUnitName);
-      }
-   }
-
-
-   public void unbind()
-   {
-      try
-      {
-         context.unbind("BeanManager");
-      }
-      catch (NamingException e)
-      {
-         log.error("Cound not unbind java:comp/BeanManager");
-      }
-   }
-}

Modified: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java	2010-03-25 02:15:12 UTC (rev 102936)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java	2010-03-25 03:52:43 UTC (rev 102937)
@@ -8,6 +8,8 @@
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
 import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+import org.jboss.reloaded.naming.spi.JavaEEComponent;
+import org.jboss.reloaded.naming.spi.JavaEEModule;
 import org.jboss.weld.integration.deployer.DeployersUtils;
 import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
 
@@ -29,21 +31,46 @@
    @Override
    public void deploy(DeploymentUnit deploymentUnit, JBossWebMetaData jBossWebMetaData) throws DeploymentException
    {
-      String bootstrapName = DeployersUtils.getBootstrapBeanName(deploymentUnit.getTopLevel());
-      String bbAttachmentName = bootstrapName + "_" + BeanMetaData.class.getSimpleName();
-
-      BeanMetaData bbBMD = deploymentUnit.getTopLevel().getAttachment(bbAttachmentName, BeanMetaData.class);
+      BeanMetaData bbBMD = getBootstrapBeanAttachment(deploymentUnit.getTopLevel());
       if (bbBMD != null && informer.getModuleType(deploymentUnit).equals(JavaEEModuleInformer.ModuleType.WEB))
       {
-         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_CompJndiBinder", WebCompJndiBinder.class.getName());
-         builder.addConstructorParameter(BootstrapBean.class.getName(), new AbstractInjectionValueMetaData(DeployersUtils.getBootstrapBeanName(deploymentUnit.getTopLevel())));
+         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_WebCompJndiBinder", SimpleCompJndiBinder.class.getName());
          builder.addConstructorParameter(String.class.getName(), deploymentUnit.getName());
          builder.addInstall("bindToJavaComp");
          builder.addUninstall("unbind");
-         deploymentUnit.getTopLevel().addAttachment(deploymentUnit.getName() + "/Comp", builder.getBeanMetaData());
+         deploymentUnit.getTopLevel().addAttachment(deploymentUnit.getName() + "_WebCompJndiBinder", builder.getBeanMetaData());
+
+         BeanMetaDataBuilder moduleBinderBuilder = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_JavaModuleJndiBinder", JavaEEModuleJndiBinder.class.getName());
+         AbstractInjectionValueMetaData javaModule = new AbstractInjectionValueMetaData(getModuleBeanName(deploymentUnit));
+         moduleBinderBuilder.addConstructorParameter(JavaEEModule.class.getName(), javaModule);
+         moduleBinderBuilder.addConstructorParameter(String.class.getName(), deploymentUnit.getName());
+         moduleBinderBuilder.addInstall("bindToJavaComp");
+         moduleBinderBuilder.addUninstall("unbind");
+         deploymentUnit.getTopLevel().addAttachment(deploymentUnit.getName() + "_JavaModuleJndiBinder", moduleBinderBuilder.getBeanMetaData());
       }
    }
 
+   private BeanMetaData getBootstrapBeanAttachment(DeploymentUnit deploymentUnit)
+   {
+      String bootstrapName = DeployersUtils.getBootstrapBeanName(deploymentUnit.getTopLevel());
+      String bbAttachmentName = bootstrapName + "_" + BeanMetaData.class.getSimpleName();
 
+      BeanMetaData bbBMD = deploymentUnit.getTopLevel().getAttachment(bbAttachmentName, BeanMetaData.class);
+      return bbBMD;
+   }
 
+   private String getModuleBeanName(DeploymentUnit deploymentUnit)
+   {
+      String appName = informer.getApplicationName(deploymentUnit);
+      String moduleName = informer.getModulePath(deploymentUnit);
+      String name = "jboss.naming:";
+      if (appName != null)
+      {
+         name += "application=" + appName + ",";
+      }
+      name += "module=" + moduleName;
+      return name;
+   }
+
+
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list