[weld-commits] Weld SVN: r4578 - core/trunk/tests/src/main/java/org/jboss/weld/test.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Mon Nov 2 19:05:50 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-02 19:05:50 -0500 (Mon, 02 Nov 2009)
New Revision: 4578

Added:
   core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java
Log:
Split out how we locate the bean manager for the test

Added: core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java
===================================================================
--- core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java	                        (rev 0)
+++ core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java	2009-11-03 00:05:50 UTC (rev 4578)
@@ -0,0 +1,61 @@
+package org.jboss.weld.test;
+
+import org.jboss.testharness.impl.runner.servlet.ServletTestRunner;
+import org.jboss.weld.BeanManagerImpl;
+import org.jboss.weld.Container;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.servlet.ServletHelper;
+
+public class BeanManagerLocator
+{
+   
+   public static BeanManagerLocator INSTANCE = new BeanManagerLocator();
+   
+   private BeanManagerLocator()
+   {
+      // TODO Auto-generated constructor stub
+   }
+   
+   private BeanDeploymentArchive testArchive;
+   
+   public BeanManagerImpl locate()
+   {
+      if (ServletTestRunner.getCurrentServletContext() != null)
+      {
+         return ServletHelper.getModuleBeanManager(ServletTestRunner.getCurrentServletContext());
+      }
+      else if (getTestArchive() != null)
+      {
+         return Container.instance().beanDeploymentArchives().get(getTestArchive());
+      }
+      else
+      {
+         throw new IllegalStateException();
+      }
+   }
+   
+   private BeanDeploymentArchive getTestArchive()
+   {
+      if (testArchive == null)
+      {
+         try
+         {
+            testArchive = (BeanDeploymentArchive) Class.forName("org.jboss.weld.mock.MockBeanDeploymentArchive").newInstance();
+         }
+         catch (InstantiationException e)
+         {
+            throw new IllegalStateException(e);
+         }
+         catch (IllegalAccessException e)
+         {
+            throw new IllegalStateException(e);
+         }
+         catch (ClassNotFoundException e)
+         {
+            throw new IllegalStateException(e);
+         }
+      }
+      return testArchive;
+   }
+
+}


Property changes on: core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native



More information about the weld-commits mailing list