[jboss-cvs] JBossAS SVN: r107918 - in trunk/weld-int: deployer/src/main/java/org/jboss/weld/integration/deployer/jndi and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 31 10:18:38 EDT 2010
Author: flavia.rainone at jboss.com
Date: 2010-08-31 10:18:37 -0400 (Tue, 31 Aug 2010)
New Revision: 107918
Added:
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanDeploymentArchiveLocator.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/FlatBeanDeploymentArchiveLocator.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanDeploymentArchiveLocator.java
Modified:
trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/AbstractJndiBinderDeployer.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinderDeployer.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java
trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/CheckableJndiBinderDeployer.java
Log:
[JBAS-8170] Port "first cut on binding BeanManagers under a unique name, and removing all dependencies on ManagerObjectFactory" from weld-snapshot branch to trunk
Modified: trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
===================================================================
--- trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml 2010-08-31 14:18:37 UTC (rev 107918)
@@ -64,10 +64,20 @@
<!--<stop method="stopService"/>-->
<!--</bean>-->
+ <!-- For non-flat deployments, comment this definition and uncomment the next one -->
+
+ <bean name="BeanDeploymentArchiveLocator" class="org.jboss.weld.integration.deployer.jndi.FlatBeanDeploymentArchiveLocator"/>
+
+ <!--<bean name="BeanDeploymentArchiveLocator" class="org.jboss.weld.integration.deployer.jndi.JBossBeanDeploymentArchiveLocator"/>-->
+
+
<!-- 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>jboss:service=Naming</depends>
+ <property name="nameSpaces"><inject bean="NameSpaces"/></property>
+ <property name="beanDeploymentArchiveLocator"><inject bean="BeanDeploymentArchiveLocator"/></property>
+ <property name="moduleInformer"><inject bean="NamingJavaEEModuleInformer"/></property>
+ </bean>
<bean name="JavaEEComponentJndiBinderDeployer" class="org.jboss.weld.integration.deployer.jndi.JavaEEComponentJndiBinderDeployer">
<constructor><parameter><inject bean="NamingJavaEEComponentInformer"/></parameter></constructor>
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/AbstractJndiBinderDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/AbstractJndiBinderDeployer.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/AbstractJndiBinderDeployer.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -37,6 +37,7 @@
import org.jboss.deployers.spi.deployer.DeploymentStages;
import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.service.NameSpaces;
import org.jboss.util.naming.NonSerializableFactory;
import org.jboss.weld.integration.deployer.DeployersUtils;
@@ -54,13 +55,13 @@
private Object thisName;
private Hashtable<String, String> jndiEnvironment = new Hashtable<String, String>();
private Context beanManagerContext;
+ private NameSpaces nameSpaces;
protected AbstractJndiBinderDeployer(Class<T> bootstrapClass)
{
if (bootstrapClass == null)
throw new IllegalArgumentException("Null bootstrap class");
- setTopLevelOnly(true);
addInput(BeanMetaData.class);
setStage(DeploymentStages.PRE_REAL);
@@ -72,18 +73,18 @@
String bootstrapName = DeployersUtils.getBootstrapBeanName(unit);
String bbAttachmentName = bootstrapName + "_" + BeanMetaData.class.getSimpleName();
- BeanMetaData bbBMD = unit.getAttachment(bbAttachmentName, BeanMetaData.class);
+ BeanMetaData bbBMD = unit.getTopLevel().getAttachment(DeployersUtils.getBootstrapBeanAttachmentName(unit), BeanMetaData.class);
if (bbBMD != null)
{
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(bbBMD);
ParameterMetaDataBuilder pmdb = builder.addInstallWithParameters("bind", thisName.toString(), ControllerState.INSTALLED, ControllerState.INSTALLED);
pmdb.addParameterMetaData(bootstrapClass.getName(), builder.createThis());
- pmdb.addParameterMetaData(String.class.getName(), unit.getSimpleName());
+ pmdb.addParameterMetaData(DeploymentUnit.class.getName(), unit);
pmdb = builder.addUninstallWithParameters("unbind", thisName.toString(), ControllerState.INSTALLED, ControllerState.INSTALLED);
pmdb.addParameterMetaData(bootstrapClass.getName(), builder.createThis());
- pmdb.addParameterMetaData(String.class.getName(), unit.getSimpleName());
+ pmdb.addParameterMetaData(DeploymentUnit.class.getName(), unit);
}
}
@@ -93,9 +94,14 @@
this.thisName = thisName;
}
+ public void setNameSpaces(NameSpaces nameSpaces)
+ {
+ this.nameSpaces = nameSpaces;
+ }
+
protected Context createContext() throws NamingException
{
- return new InitialContext(jndiEnvironment);
+ return nameSpaces.getGlobalContext();
}
public void create() throws Exception
@@ -131,9 +137,9 @@
// --- binding logic ---
- public abstract void bind(T bootstrapBean, String deploymentUnitName) throws NamingException;
+ public abstract void bind(T bootstrapBean, DeploymentUnit deploymentUnit) throws NamingException;
- public abstract void unbind(T bootstrapBean, String deploymentUnitName) throws NamingException;
+ public abstract void unbind(T bootstrapBean, DeploymentUnit deploymentUnit) throws NamingException;
protected static void addNonSerializableFactory(Hashtable<String, String> environment)
{
Added: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanDeploymentArchiveLocator.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanDeploymentArchiveLocator.java (rev 0)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanDeploymentArchiveLocator.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -0,0 +1,15 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * Returns the bean deployment archive that corresponds to a given deployment unit
+ *
+ * @author Marius Bogoevici
+ */
+public interface BeanDeploymentArchiveLocator
+{
+ BeanDeploymentArchive getBeanDeploymentArchive(BootstrapBean bootstrap, DeploymentUnit deploymentUnit);
+}
Property changes on: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanDeploymentArchiveLocator.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Added: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/FlatBeanDeploymentArchiveLocator.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/FlatBeanDeploymentArchiveLocator.java (rev 0)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/FlatBeanDeploymentArchiveLocator.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -0,0 +1,25 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * {@link BeanDeploymentArchiveLocator} implementation for flat archives
+ *
+ * @author Marius Bogoevici
+ */
+public class FlatBeanDeploymentArchiveLocator implements BeanDeploymentArchiveLocator
+{
+ public BeanDeploymentArchive getBeanDeploymentArchive(BootstrapBean bootstrap, DeploymentUnit deploymentUnit)
+ {
+ for (BeanDeploymentArchive beanDeploymentArchive: bootstrap.getDeployment().getBeanDeploymentArchives())
+ {
+ if (beanDeploymentArchive.getId().equals("flat"))
+ {
+ return beanDeploymentArchive;
+ }
+ }
+ return null;
+ }
+}
Property changes on: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/FlatBeanDeploymentArchiveLocator.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Added: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanDeploymentArchiveLocator.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanDeploymentArchiveLocator.java (rev 0)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanDeploymentArchiveLocator.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -0,0 +1,25 @@
+package org.jboss.weld.integration.deployer.jndi;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+
+/**
+ * {@link BeanDeploymentArchiveLocator} implementation for non-flat (hierarchical) archives
+ *
+ * @author Marius Bogoevici
+ */
+public class JBossBeanDeploymentArchiveLocator implements BeanDeploymentArchiveLocator
+{
+ public BeanDeploymentArchive getBeanDeploymentArchive(BootstrapBean bootstrap, DeploymentUnit deploymentUnit)
+ {
+ for (BeanDeploymentArchive beanDeploymentArchive: bootstrap.getDeployment().getBeanDeploymentArchives())
+ {
+ if (beanDeploymentArchive.getId().equals(deploymentUnit.getClassLoader().toString()))
+ {
+ return beanDeploymentArchive;
+ }
+ }
+ return null;
+ }
+}
Property changes on: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanDeploymentArchiveLocator.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaCompJndiBinder.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -23,10 +23,16 @@
import javax.enterprise.inject.spi.BeanManager;
import javax.naming.Context;
+import javax.naming.LinkRef;
import javax.naming.NamingException;
import javax.naming.Reference;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.logging.Logger;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+import org.jboss.reloaded.naming.spi.JavaEEApplication;
+import org.jboss.reloaded.naming.spi.JavaEEComponent;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
/**
* @author Marius Bogoevici
@@ -34,11 +40,13 @@
public abstract class JavaCompJndiBinder
{
protected Logger log = Logger.getLogger(getClass());
- private String deploymentUnitName;
+ private String applicationName;
+ private String moduleName;
- public JavaCompJndiBinder(String deploymentUnitName)
+ public JavaCompJndiBinder(String applicationName, String moduleName)
{
- this.deploymentUnitName = deploymentUnitName;
+ this.applicationName = applicationName;
+ this.moduleName = moduleName;
}
public void bindToJavaComp()
@@ -56,7 +64,8 @@
}
if (beanManagerContext == null)
{
- compContext.bind("BeanManager",new Reference(BeanManager.class.getName(), "org.jboss.weld.resources.ManagerObjectFactory", null));
+ String path = applicationName == null? applicationName : (applicationName + "/" + moduleName);
+ compContext.bind("BeanManager", new LinkRef("java:global/BeanManagers/" + path));
}
}
catch (NamingException e)
@@ -77,7 +86,9 @@
}
catch (NamingException e)
{
- log.error("Cound not unbind java:comp/BeanManager for " + deploymentUnitName);
+ log.error("Cound not unbind java:comp/BeanManager for " + getJavaContextDescription());
}
}
+
+
}
\ No newline at end of file
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinder.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -23,6 +23,8 @@
import javax.naming.Context;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.spi.JavaEEApplication;
import org.jboss.reloaded.naming.spi.JavaEEComponent;
/**
@@ -33,9 +35,9 @@
private JavaEEComponent javaEEComponent;
- public JavaEEComponentJndiBinder(JavaEEComponent javaEEComponent, String deploymentUnitName)
+ public JavaEEComponentJndiBinder(JavaEEComponent javaEEComponent)
{
- super(deploymentUnitName);
+ super(getApplicationForComponent(javaEEComponent) != null? getApplicationForComponent(javaEEComponent).getName(): null, javaEEComponent.getModule().getName());
this.javaEEComponent = javaEEComponent;
}
@@ -50,4 +52,10 @@
{
return javaEEComponent.getName();
}
+
+ protected static JavaEEApplication getApplicationForComponent(JavaEEComponent javaEEComponent)
+ {
+ return javaEEComponent.getModule().getApplication();
+ }
+
}
\ No newline at end of file
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEComponentJndiBinderDeployer.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -27,6 +27,7 @@
import org.jboss.deployers.spi.DeploymentException;
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.ejb.jboss.JBossSessionBean31MetaData;
import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
@@ -76,7 +77,6 @@
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(getJndiBinderName(deploymentUnit), 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());
}
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JavaEEModuleJndiBinder.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -23,6 +23,7 @@
import javax.naming.Context;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.reloaded.naming.spi.JavaEEModule;
/**
@@ -33,9 +34,9 @@
private JavaEEModule javaEEModule;
- public JavaEEModuleJndiBinder(JavaEEModule javaEEModule, String deploymentUnitName)
+ public JavaEEModuleJndiBinder(JavaEEModule javaEEModule)
{
- super(deploymentUnitName);
+ super(javaEEModule.getApplication() != null? javaEEModule.getApplication().getName(): null, javaEEModule.getName());
this.javaEEModule = javaEEModule;
}
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinderDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinderDeployer.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinderDeployer.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -31,6 +31,8 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
import org.jboss.util.naming.NonSerializableFactory;
import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
@@ -49,33 +51,59 @@
public JndiBinderDeployer()
{
super(BootstrapBean.class);
+ this.setWantComponents(false);
}
-// --- binding logic ---
+ private BeanDeploymentArchiveLocator beanDeploymentArchiveLocator;
- public void bind(BootstrapBean bootstrapBean, String deploymentUnitName) throws NamingException
+ private JavaEEModuleInformer moduleInformer;
+
+ public void setBeanDeploymentArchiveLocator(BeanDeploymentArchiveLocator beanDeploymentArchiveLocator)
{
- Map<String, BeanManager> beanManagers = new DeploymentVisitor(bootstrapBean).visit().getBeanManagers();
- Context context = getBeanManagerContext().createSubcontext(deploymentUnitName);
+ this.beanDeploymentArchiveLocator = beanDeploymentArchiveLocator;
+ }
- for (Map.Entry<String, BeanManager> entry : beanManagers.entrySet())
+ public void setModuleInformer(JavaEEModuleInformer moduleInformer)
+ {
+ this.moduleInformer = moduleInformer;
+ }
+
+ // --- binding logic ---
+
+ public void bind(BootstrapBean bootstrapBean, DeploymentUnit deploymentUnit) throws NamingException
+ {
+ Context context = getBeanManagerContext();
+
+ if (moduleInformer.getModuleType(deploymentUnit).equals(JavaEEModuleInformer.ModuleType.EJB) ||
+ moduleInformer.getModuleType(deploymentUnit).equals(JavaEEModuleInformer.ModuleType.WEB))
{
- NonSerializableFactory.rebind(context, entry.getKey(), entry.getValue());
+ BeanDeploymentArchive beanDeploymentArchive = beanDeploymentArchiveLocator.getBeanDeploymentArchive(bootstrapBean, deploymentUnit);
+ if (beanDeploymentArchive != null)
+ {
+ String applicationName = moduleInformer.getApplicationName(deploymentUnit);
+ String name = (applicationName == null) ? "" : applicationName + "/";
+ name += moduleInformer.getModulePath(deploymentUnit);
+ NonSerializableFactory.rebind(context, name, bootstrapBean.getBootstrap().getManager(beanDeploymentArchive), true);
+ }
}
}
- public void unbind(BootstrapBean bootstrapBean, String deploymentUnitName) throws NamingException
+ public void unbind(BootstrapBean bootstrapBean, DeploymentUnit deploymentUnit) throws NamingException
{
Map<String, BeanManager> beanManagers = new DeploymentVisitor(bootstrapBean).visit().getBeanManagers();
- Context context = (Context)getBeanManagerContext().lookup(deploymentUnitName); // or how do I get existing sub-context
-
- for (Map.Entry<String, BeanManager> entry : beanManagers.entrySet())
+ Context context = (Context)getBeanManagerContext();
+ String applicationName = moduleInformer.getApplicationName(deploymentUnit);
+ String topContext = applicationName != null? applicationName: moduleInformer.getModulePath(deploymentUnit);
+ try
{
- context.unbind(entry.getKey());
- NonSerializableFactory.unbind(entry.getKey());
+ Context appContext = (Context) context.lookup(topContext);
+ context.destroySubcontext(topContext);
}
+ catch (NamingException e)
+ {
+ // ignore if missing
+ }
- getBeanManagerContext().destroySubcontext(deploymentUnitName);
}
protected static class DeploymentVisitor
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/SimpleCompJndiBinder.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -26,6 +26,7 @@
import javax.naming.NamingException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.spi.JavaEEModule;
/**
* @author Marius Bogoevici
@@ -34,9 +35,10 @@
{
private DeploymentUnit deploymentUnit;
- public SimpleCompJndiBinder(DeploymentUnit deploymentUnit)
+ public SimpleCompJndiBinder(DeploymentUnit deploymentUnit, JavaEEModule javaEEModule)
{
- super(deploymentUnit.getName());
+ super(javaEEModule.getApplication()!=null?javaEEModule.getApplication().getName():null, javaEEModule.getName());
+
this.deploymentUnit = deploymentUnit;
}
@@ -52,7 +54,6 @@
finally
{
Thread.currentThread().setContextClassLoader(originalClassLoader);
- this.deploymentUnit = null;
}
}
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -53,17 +53,18 @@
BeanMetaData bbBMD = getBootstrapBeanAttachment(deploymentUnit.getTopLevel());
if (bbBMD != null && deploymentUnit.isAttachmentPresent(JBossWebMetaData.class))
{
+ AbstractInjectionValueMetaData javaModule = new AbstractInjectionValueMetaData(getModuleBeanName(deploymentUnit));
+
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(deploymentUnit.getName() + "_WebCompJndiBinder", SimpleCompJndiBinder.class.getName());
builder.addConstructorParameter(DeploymentUnit.class.getName(), deploymentUnit);
+ builder.addConstructorParameter(JavaEEModule.class.getName(), javaModule);
builder.addInstall("bindToJavaComp");
// no uninstall method for SimpleCompJndiBinder (context will be destroyed by Tomcat)
//builder.addUninstall("unbind");
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());
Modified: trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/CheckableJndiBinderDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/CheckableJndiBinderDeployer.java 2010-08-31 14:08:53 UTC (rev 107917)
+++ trunk/weld-int/deployer/src/test/java/org/jboss/test/deployers/support/deployer/CheckableJndiBinderDeployer.java 2010-08-31 14:18:37 UTC (rev 107918)
@@ -24,6 +24,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.weld.integration.deployer.jndi.AbstractJndiBinderDeployer;
/**
@@ -46,17 +47,17 @@
return ROOT;
}
- public void bind(Object bootstrapBean, String deploymentUnitName) throws NamingException
+ public void bind(Object bootstrapBean, DeploymentUnit deploymentUnit) throws NamingException
{
- Context context = getBeanManagerContext().createSubcontext(deploymentUnitName);
+ Context context = getBeanManagerContext().createSubcontext(deploymentUnit.getSimpleName());
context.bind("bootstrap", bootstrapBean);
}
- public void unbind(Object bootstrapBean, String deploymentUnitName) throws NamingException
+ public void unbind(Object bootstrapBean, DeploymentUnit deploymentUnit) throws NamingException
{
- Context context = (Context)getBeanManagerContext().lookup(deploymentUnitName);
+ Context context = (Context)getBeanManagerContext().lookup(deploymentUnit.getSimpleName());
context.unbind("bootstrap");
- getBeanManagerContext().destroySubcontext(deploymentUnitName);
+ getBeanManagerContext().destroySubcontext(deploymentUnit.getSimpleName());
}
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list