[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