[weld-commits] Weld SVN: r4577 - core/trunk/impl/src/main/java/org/jboss/weld/resources.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Mon Nov 2 19:04:35 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-02 19:04:35 -0500 (Mon, 02 Nov 2009)
New Revision: 4577

Modified:
   core/trunk/impl/src/main/java/org/jboss/weld/resources/ManagerObjectFactory.java
Log:
Slightly less fragile strategy for locaing the manager

Modified: core/trunk/impl/src/main/java/org/jboss/weld/resources/ManagerObjectFactory.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resources/ManagerObjectFactory.java	2009-11-03 00:01:39 UTC (rev 4576)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resources/ManagerObjectFactory.java	2009-11-03 00:04:35 UTC (rev 4577)
@@ -17,27 +17,30 @@
 package org.jboss.weld.resources;
 
 import java.util.Hashtable;
+import java.util.Map.Entry;
 
 import javax.naming.Context;
 import javax.naming.Name;
+import javax.naming.NamingException;
 import javax.naming.spi.ObjectFactory;
 
+import org.jboss.weld.BeanManagerImpl;
 import org.jboss.weld.Container;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
 
 public class ManagerObjectFactory implements ObjectFactory
 {
    
    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception
    {
-      // Temp hack for JBoss Flat Deployment
-      if (Container.instance().beanDeploymentArchives().size() == 1)
+      for (Entry<BeanDeploymentArchive, BeanManagerImpl> entry : Container.instance().beanDeploymentArchives().entrySet())
       {
-         return Container.instance().beanDeploymentArchives().entrySet().iterator().next().getValue().getCurrent();
+         if (entry.getKey().getId().equals("flat"))
+         {
+            return entry.getValue().getCurrent();
+         }
       }
-      else
-      {
-         throw new UnsupportedOperationException("Unable to determine which manager to return");
-      }
+      throw new NamingException("Unable to locate BeanManager");
    }
    
 }



More information about the weld-commits mailing list