[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