Author: pete.muir(a)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");
}
}
Show replies by date