[jboss-cvs] JBossAS SVN: r102900 - in projects/weld-int/branches/6.0.0.Beta7_VFS3_int: deployer and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 24 12:17:51 EDT 2010


Author: marius.bogoevici
Date: 2010-03-24 12:17:50 -0400 (Wed, 24 Mar 2010)
New Revision: 102900

Added:
   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/JavaEEComponentJndiBinderDeployer.java
   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/WebJndiBinderDeployer.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/pom.xml
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/SessionBeanInterceptor.java
   projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/interceptor/Jsr299BindingsInterceptor.java
Log:
Bind to java:comp.

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-24 16:14:55 UTC (rev 102899)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-03-24 16:17:50 UTC (rev 102900)
@@ -53,17 +53,29 @@
   <bean name="PostWebMetadataDeployer" class="org.jboss.weld.integration.deployer.metadata.PostWebMetadataDeployer"/>
   
   <!-- Responsible for adding the Weld Manager object factory to JNDI -->
-   <bean name="WeldJndiBinder" class="org.jboss.weld.integration.deployer.env.WeldJndiBinder">
-      <start method="startService">
-         <parameter>java:BeanManagers/BeanManager</parameter>
-         <parameter>org.jboss.weld.resources.ManagerObjectFactory</parameter>
-      </start>
-      <stop method="stopService"/>
-   </bean>
+   <!--<bean name="WeldJndiBinder" class="org.jboss.weld.integration.deployer.env.WeldJndiBinder">-->
+      <!--<start method="startService">-->
+         <!--<parameter>java:app/BeanManager</parameter>-->
+         <!--<parameter>org.jboss.weld.resources.ManagerObjectFactory</parameter>-->
+      <!--</start>-->
+      <!--<stop method="stopService"/>-->
+   <!--</bean>-->
 
   <!-- Responsible for binding bean managers -->
-  <!--<bean name="JndiBinderDeployer" class="org.jboss.weld.integration.deployer.jndi.JndiBinderDeployer"/>-->
+  <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>
+      <depends>NameSpaces</depends>
+  </bean>
+
+  <bean name="WebJndiBinderDeployer" class="org.jboss.weld.integration.deployer.jndi.WebJndiBinderDeployer">
+      <constructor><parameter><inject bean="NamingJavaEEModuleInformer"/></parameter></constructor>
+      <depends>NameSpaces</depends>
+  </bean>
+
   <!-- Adds plugin to BeanMetaDataDeployer that installs WeldKernelControllerContexts -->
   <!-- bean name="WeldBeanMetaDataDeployerPlugin" class="org.jboss.weld.integration.deployer.mc.WeldBeanMetaDataDeployerPlugin"/ -->
   

Modified: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/pom.xml
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/pom.xml	2010-03-24 16:14:55 UTC (rev 102899)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/pom.xml	2010-03-24 16:17:50 UTC (rev 102900)
@@ -200,6 +200,13 @@
     </dependency>
 
     <dependency>
+        <groupId>org.jboss.reloaded</groupId>
+        <artifactId>jboss-reloaded-naming-deployers</artifactId>
+        <version>0.1.0-alpha-2</version>
+        <scope>provided</scope>
+    </dependency>
+
+    <dependency>
       <groupId>org.jboss.test</groupId>
       <artifactId>jboss-test</artifactId>
       <scope>test</scope>

Added: 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	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java	2010-03-24 16:17:50 UTC (rev 102900)
@@ -0,0 +1,55 @@
+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.reloaded.naming.spi.JavaEEComponent;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class JavaEEComponentJndiBinder
+{
+   private Logger log = Logger.getLogger(getClass());
+
+   private BootstrapBean bootstrapBean;
+   private JavaEEComponent javaEEComponent;
+   private Context context;
+
+   public JavaEEComponentJndiBinder(BootstrapBean bootstrapBean, JavaEEComponent javaEEComponent)
+   {
+      this.javaEEComponent = javaEEComponent;
+      if (bootstrapBean == null)
+         throw new RuntimeException("Bootstrap bean cannot be null");
+      this.bootstrapBean = bootstrapBean;
+   }
+
+   public void bindToJavaComp()
+   {
+      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());
+      }
+   }
+
+   public void unbind()
+   {
+      try
+      {
+         context.unbind("BeanManager");
+      }
+      catch (NamingException e)
+      {
+         log.error("Cound not unbind java:comp/BeanManager");
+      }
+   }
+
+}
\ No newline at end of file

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-24 16:17:50 UTC (rev 102900)
@@ -0,0 +1,67 @@
+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/WebCompJndiBinder.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebCompJndiBinder.java	2010-03-24 16:17:50 UTC (rev 102900)
@@ -0,0 +1,54 @@
+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");
+      }
+   }
+}

Added: 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	                        (rev 0)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java	2010-03-24 16:17:50 UTC (rev 102900)
@@ -0,0 +1,49 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+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.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.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class WebJndiBinderDeployer extends AbstractSimpleRealDeployer<JBossWebMetaData>
+{
+
+   private JavaEEModuleInformer informer;
+
+   public WebJndiBinderDeployer(JavaEEModuleInformer javaEEModuleInformer)
+   {
+      super(JBossWebMetaData.class);
+      informer = javaEEModuleInformer;
+      setOutput(BeanMetaData.class);
+   }
+
+   @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);
+      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())));
+         builder.addConstructorParameter(String.class.getName(), deploymentUnit.getName());
+         builder.addInstall("bindToJavaComp");
+         builder.addUninstall("unbind");
+         deploymentUnit.getTopLevel().addAttachment(deploymentUnit.getName() + "/Comp", builder.getBeanMetaData());
+      }
+   }
+
+
+
+}
\ No newline at end of file

Modified: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/SessionBeanInterceptor.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/SessionBeanInterceptor.java	2010-03-24 16:14:55 UTC (rev 102899)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/SessionBeanInterceptor.java	2010-03-24 16:17:50 UTC (rev 102900)
@@ -71,7 +71,7 @@
    @Resource
    private EJBContext ejbContext;
    
-   @Resource(mappedName="java:BeanManagers/BeanManager")
+   @Resource(mappedName="java:comp/BeanManager")
    private WeldManager beanManager;
    
    private CreationalContext<Object> creationalContext;

Modified: projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/interceptor/Jsr299BindingsInterceptor.java
===================================================================
--- projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/interceptor/Jsr299BindingsInterceptor.java	2010-03-24 16:14:55 UTC (rev 102899)
+++ projects/weld-int/branches/6.0.0.Beta7_VFS3_int/ejb/src/main/java/org/jboss/weld/integration/ejb/interceptor/Jsr299BindingsInterceptor.java	2010-03-24 16:17:50 UTC (rev 102900)
@@ -55,7 +55,7 @@
 
    private static final long serialVersionUID = -1999613731498564948L;
 
-   @Resource(mappedName="java:BeanManagers/BeanManager")
+   @Resource(mappedName="java:comp/BeanManager")
    private WeldManager beanManager;
 
    private InterceptorBindings interceptorBindings;




More information about the jboss-cvs-commits mailing list