[jboss-cvs] JBossAS SVN: r109325 - trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 15 00:28:52 EST 2010
Author: marius.bogoevici
Date: 2010-11-15 00:28:52 -0500 (Mon, 15 Nov 2010)
New Revision: 109325
Modified:
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java
trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java
Log:
JBAS-8641
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java 2010-11-15 04:56:42 UTC (rev 109324)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java 2010-11-15 05:28:52 UTC (rev 109325)
@@ -21,9 +21,7 @@
*/
package org.jboss.weld.integration.deployer.jndi;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
+import javax.naming.*;
import javax.naming.spi.ObjectFactory;
import java.util.Hashtable;
import java.util.Map;
@@ -40,11 +38,12 @@
{
public Object getObjectInstance(Object o, Name name, Context context, Hashtable<?, ?> hashtable) throws Exception
{
- ClassLoader tccl = Thread.currentThread().getContextClassLoader();
- Container container = Container.instance();
- if (Container.available() && tccl != null)
+ Reference reference = (Reference) o;
+ StringRefAddr refAddr = (StringRefAddr) reference.get(JndiBinder.REFADDR_ID);
+ if (Container.available())
{
- String beanManagerId = IdFactory.getIdFromClassLoader(tccl);
+ Container container = Container.instance();
+ String beanManagerId = (String)refAddr.getContent();
for (Map.Entry<BeanDeploymentArchive, BeanManagerImpl> mapElement : container.beanDeploymentArchives().entrySet())
{
if (mapElement.getKey().getId().equals(beanManagerId))
Modified: trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java 2010-11-15 04:56:42 UTC (rev 109324)
+++ trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java 2010-11-15 05:28:52 UTC (rev 109325)
@@ -25,6 +25,7 @@
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.Reference;
+import javax.naming.StringRefAddr;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.deployers.spi.DeploymentException;
@@ -35,6 +36,7 @@
import org.jboss.reloaded.naming.service.NameSpaces;
import org.jboss.weld.integration.deployer.DeployersUtils;
import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.weld.integration.util.IdFactory;
/**
* This deployer intercepts BootstrapBean metadata,
@@ -48,6 +50,9 @@
public class JndiBinder
{
public static final String BEAN_MANAGER_JNDI_SUBCONTEXT = "cdi";
+
+ public static final String REFADDR_ID = "id";
+
private Context beanManagerContext;
private NameSpaces nameSpaces;
private JavaEEModuleInformer moduleInformer;
@@ -149,7 +154,9 @@
{
String path = getJndiPath(unit);
Context subcontext = Util.createSubcontext(rootContext, path);
- subcontext.bind("BeanManager", new Reference(BeanManager.class.getName(), "org.jboss.weld.integration.deployer.jndi.JBossBeanManagerObjectFactory", null));
+ Reference reference = new Reference(BeanManager.class.getName(), "org.jboss.weld.integration.deployer.jndi.JBossBeanManagerObjectFactory", null);
+ reference.add(new StringRefAddr(REFADDR_ID, IdFactory.getIdFromClassLoader(unit.getClassLoader())));
+ subcontext.bind("BeanManager", reference);
}
}
catch (NamingException e)
More information about the jboss-cvs-commits
mailing list