[webbeans-commits] Webbeans SVN: r984 - in ri/trunk: webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap and 5 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Jan 15 11:22:45 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-15 11:22:44 -0500 (Thu, 15 Jan 2009)
New Revision: 984

Added:
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/EjbDiscovery.java
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/ForwardingEjbDiscovery.java
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/ForwardingEjbResolver.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDiscovery.java
Modified:
   ri/trunk/jboss-as/build.xml
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/WebBeanDiscovery.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletBootstrap.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDescriptor.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockWebBeanDiscovery.java
Log:
split out ejb discovery from bean discovery, restructure bootstrap to be a bit nicer

Modified: ri/trunk/jboss-as/build.xml
===================================================================
--- ri/trunk/jboss-as/build.xml	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/jboss-as/build.xml	2009-01-15 16:22:44 UTC (rev 984)
@@ -60,9 +60,10 @@
 		<copy todir="${jboss.home}/server/default/deployers/webbeans.deployer/lib-int">
          <fileset dir="target/webbeans.deployer">
             <include name="webbeans-ri.jar" />
-	    <include name="webbeans-ri-int-jbossas.jar" />
-    	    <include name="webbeans-api.jar" />
-	    <include name="webbeans-ri-spi.jar" />
+            <include name="webbeans-ri-int-jbossas.jar" />
+         	<include name="webbeans-ri-int-jboss-ejb.jar" />
+            <include name="webbeans-api.jar" />
+            <include name="webbeans-ri-spi.jar" />
          </fileset>
       </copy>
 

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -48,8 +48,9 @@
 import org.jboss.webbeans.bean.ProducerFieldBean;
 import org.jboss.webbeans.bean.ProducerMethodBean;
 import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.binding.DeployedBinding;
 import org.jboss.webbeans.binding.InitializedBinding;
-import org.jboss.webbeans.binding.DeployedBinding;
+import org.jboss.webbeans.bootstrap.spi.EjbDiscovery;
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
 import org.jboss.webbeans.ejb.EJBApiAbstraction;
 import org.jboss.webbeans.ejb.spi.EjbResolver;
@@ -130,6 +131,8 @@
    }
 
    protected abstract WebBeanDiscovery getWebBeanDiscovery();
+   
+   protected abstract EjbDiscovery getEjbDiscovery();
 
    public abstract ResourceLoader getResourceLoader();
 
@@ -298,15 +301,14 @@
          validateBootstrap();
          // Must populate EJB cache first, as we need it to detect whether a
          // bean is an EJB!
-         getManager().getEjbDescriptorCache().addAll(getWebBeanDiscovery().discoverEjbs());
+         getManager().getEjbDescriptorCache().addAll(getEjbDiscovery().discoverEjbs());
          registerBeans(getWebBeanDiscovery().discoverWebBeanClasses());
          getManager().fireEvent(getManager(), new InitializedBinding());
          List<Bean<?>> beans = getManager().getBeans();
-         log.info("Initialization completed. Validing " + beans.size() + " Web Beans");
+         log.info("Web Beans initialized. Validating beans.");
          getManager().getResolver().resolveInjectionPoints();
          BeanValidation.validate(getManager().getBeans());
          getManager().fireEvent(getManager(), new DeployedBinding());
-         log.info("Deploy complete");
       }
    }
 

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletBootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletBootstrap.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletBootstrap.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -23,6 +23,7 @@
 
 import org.jboss.webbeans.bootstrap.PropertiesBasedBootstrap;
 import org.jboss.webbeans.bootstrap.SimpleResourceLoader;
+import org.jboss.webbeans.bootstrap.spi.EjbDiscovery;
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
 import org.jboss.webbeans.context.ApplicationContext;
 import org.jboss.webbeans.context.DependentContext;
@@ -43,39 +44,29 @@
 {
    
    // The resource loader
-   private ResourceLoader resourceLoader;
+   private final ResourceLoader resourceLoader;
    // The discover implementation
-   private WebBeanDiscovery webBeanDiscovery;
+   private final WebBeanDiscovery webBeanDiscovery;
+   
+   private final EjbDiscovery ejbDiscovery;
+   
    // The deployment properties
-   private DeploymentProperties deploymentProperties;
+   private final DeploymentProperties deploymentProperties;
    
    public ServletBootstrap(ServletContext servletContext)
    {
       
       // Create a simpple resource loader based for initial loading 
-      this.resourceLoader = new SimpleResourceLoader();
-      this.deploymentProperties = new DeploymentProperties(resourceLoader);
+      ResourceLoader temporaryResourceLoader = new SimpleResourceLoader();
+      this.deploymentProperties = new DeploymentProperties(temporaryResourceLoader);
       
-      // Attempt to create a plugin resource loader
-      Constructor<? extends ResourceLoader> resourceLoaderConstructor = getClassConstructor(deploymentProperties, resourceLoader, ResourceLoader.PROPERTY_NAME, ResourceLoader.class, ServletContext.class);
-      if (resourceLoaderConstructor != null)
-      {
-         this.resourceLoader = newInstance(resourceLoaderConstructor, servletContext);
-      }
+      this.resourceLoader = createResourceLoader(servletContext, temporaryResourceLoader);
       
       // Now safe to initialize the manager
       initManager(servletContext);
       
-      // Attempt to create a plugin web beans discovery
-      Constructor<? extends WebBeanDiscovery> webBeanDiscoveryConstructor = getClassConstructor(deploymentProperties, resourceLoader, WebBeanDiscovery.PROPERTY_NAME, WebBeanDiscovery.class, ServletContext.class);
-      if (webBeanDiscoveryConstructor == null)
-      {
-         throw new IllegalStateException("Cannot load Web Bean discovery plugin! Check if Web Beans is properly installed into your container");
-      }
-      else
-      {
-         this.webBeanDiscovery = newInstance(webBeanDiscoveryConstructor, servletContext);
-      }
+      this.webBeanDiscovery = createWebBeanDiscovery(servletContext);
+      this.ejbDiscovery = createEjbDiscovery(servletContext);
       
       // Register the contexts for the Servlet environment
       getManager().addContext(DependentContext.INSTANCE);
@@ -87,10 +78,10 @@
 
    private void initManager(ServletContext servletContext)
    {
-      initManager(getNaming(servletContext), getEjbResolver(servletContext), getResourceLoader());
+      initManager(createNaming(servletContext), createEjbResolver(servletContext), getResourceLoader());
    }
    
-   public Naming getNaming(ServletContext servletContext)
+   protected Naming createNaming(ServletContext servletContext)
    {
       Constructor<? extends Naming> namingConstructor = getClassConstructor(getDeploymentProperties(), getResourceLoader(), Naming.PROPERTY_NAME, Naming.class, ServletContext.class);
       if (namingConstructor != null)
@@ -103,7 +94,7 @@
       }
    }
    
-   public EjbResolver getEjbResolver(ServletContext servletContext)
+   protected EjbResolver createEjbResolver(ServletContext servletContext)
    {
       Constructor<? extends EjbResolver> constructor = getClassConstructor(getDeploymentProperties(), getResourceLoader(), EjbResolver.PROPERTY_NAME, EjbResolver.class, ServletContext.class);
       if (constructor != null)
@@ -115,6 +106,47 @@
          throw new IllegalStateException("Unable to find a EjbResolver, check Web Beans is correctly installed in your container");
       }
    }
+   
+   protected EjbDiscovery createEjbDiscovery(ServletContext servletContext)
+   {
+      Constructor<? extends EjbDiscovery> constructor = getClassConstructor(getDeploymentProperties(), getResourceLoader(), EjbDiscovery.PROPERTY_NAME, EjbDiscovery.class, ServletContext.class);
+      if (constructor != null)
+      {
+         return newInstance(constructor, servletContext);
+      }
+      else
+      {
+         throw new IllegalStateException("Unable to find a EjbDiscovery, check Web Beans is correctly installed in your container");
+      }
+   }
+   
+   protected WebBeanDiscovery createWebBeanDiscovery(ServletContext servletContext)
+   {
+      // Attempt to create a plugin web beans discovery
+      Constructor<? extends WebBeanDiscovery> webBeanDiscoveryConstructor = getClassConstructor(deploymentProperties, resourceLoader, WebBeanDiscovery.PROPERTY_NAME, WebBeanDiscovery.class, ServletContext.class);
+      if (webBeanDiscoveryConstructor == null)
+      {
+         throw new IllegalStateException("Cannot load Web Bean discovery plugin! Check if Web Beans is properly installed into your container");
+      }
+      else
+      {
+         return newInstance(webBeanDiscoveryConstructor, servletContext);
+      }
+   }
+   
+   protected ResourceLoader createResourceLoader(ServletContext servletContext, ResourceLoader resourceLoader)
+   {
+      // Attempt to create a plugin resource loader
+      Constructor<? extends ResourceLoader> resourceLoaderConstructor = getClassConstructor(deploymentProperties, resourceLoader, ResourceLoader.PROPERTY_NAME, ResourceLoader.class, ServletContext.class);
+      if (resourceLoaderConstructor != null)
+      {
+         return newInstance(resourceLoaderConstructor, servletContext);
+      }
+      else
+      {
+         return resourceLoader;
+      }
+   }
 
    @Override
    protected DeploymentProperties getDeploymentProperties()
@@ -133,5 +165,11 @@
    {
       return webBeanDiscovery;
    }
+
+   @Override
+   protected EjbDiscovery getEjbDiscovery()
+   {
+      return ejbDiscovery;
+   }
    
 }

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -158,7 +158,7 @@
 
    protected <T> void addToEjbCache(Class<T> clazz)
    {
-      manager.getEjbDescriptorCache().add(new MockEjbDescriptor<T>(clazz));
+      manager.getEjbDescriptorCache().add(MockEjbDescriptor.of(clazz));
    }
 
    protected byte[] serialize(Object instance) throws IOException

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -1,8 +1,6 @@
 package org.jboss.webbeans.test;
 
-import java.util.Arrays;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
@@ -232,7 +230,7 @@
    @Test(groups="bootstrap")
    public void testDiscover()
    {
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class))));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class));
       webBeansBootstrap.boot();
       
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
@@ -266,7 +264,7 @@
    public void testInitializedEvent()
    {
       assert !InitializedObserver.observered;
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(InitializedObserver.class))));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(InitializedObserver.class));
       webBeansBootstrap.boot();
       
       assert InitializedObserver.observered;
@@ -275,14 +273,14 @@
    @Test(groups="bootstrap")
    public void testRequestContextActiveDuringInitializtionEvent()
    {
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(InitializedObserverWhichUsesRequestContext.class, Tuna.class)), null, new HashSet<Class<?>>()));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(InitializedObserverWhichUsesRequestContext.class, Tuna.class));
       webBeansBootstrap.boot();
    }
    
    @Test(groups={"bootstrap", "broken"})
    public void testApplicationContextActiveDuringInitializtionEvent()
    {
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(InitializedObserverWhichUsesApplicationContext.class, LadybirdSpider.class)), null, new HashSet<Class<?>>()));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(InitializedObserverWhichUsesApplicationContext.class, LadybirdSpider.class));
       webBeansBootstrap.boot();
    }
    

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -1,9 +1,7 @@
 package org.jboss.webbeans.test;
 
 import java.lang.annotation.Annotation;
-import java.util.Arrays;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -85,7 +83,7 @@
    @Test
    public void testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()
    {
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(FilterBean.class, HttpSessionListenerBean.class, ServletBean.class, ServletContextListenerBean.class, ServletRequestListenerBean.class)), null, new HashSet<Class<?>>()));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(FilterBean.class, HttpSessionListenerBean.class, ServletBean.class, ServletContextListenerBean.class, ServletRequestListenerBean.class));
       webBeansBootstrap.boot();
       assert manager.getBeans().size() == BUILT_IN_BEANS;
    }
@@ -93,7 +91,7 @@
    @Test
    public void testClassesImplementingEnterpriseBeanInterfaceNotDiscoveredAsSimpleBean()
    {
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(EnterpriseBeanWebBean.class)), null, new HashSet<Class<?>>()));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(EnterpriseBeanWebBean.class));
       webBeansBootstrap.boot();
       assert manager.getBeans().size() == BUILT_IN_BEANS;
    }
@@ -101,7 +99,7 @@
    @Test
    public void testClassExtendingUiComponentNotDiscoveredAsSimpleBean()
    {
-      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(UIComponentBean.class)), null, new HashSet<Class<?>>()));
+      webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(UIComponentBean.class));
       webBeansBootstrap.boot();
       assert manager.getBeans().size() == BUILT_IN_BEANS;
    }

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -16,6 +16,7 @@
 import javax.webbeans.InjectionPoint;
 
 import org.jboss.webbeans.bootstrap.WebBeansBootstrap;
+import org.jboss.webbeans.bootstrap.spi.EjbDiscovery;
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
 import org.jboss.webbeans.context.ApplicationContext;
 import org.jboss.webbeans.context.DependentContext;
@@ -161,6 +162,7 @@
    };
    
    private WebBeanDiscovery webBeanDiscovery;
+   private EjbDiscovery ejbDiscovery;
    private ResourceLoader resourceLoader;
    
    private MockNaming mockNaming;
@@ -189,6 +191,10 @@
    public void setWebBeanDiscovery(WebBeanDiscovery webBeanDiscovery)
    {
       this.webBeanDiscovery = webBeanDiscovery;
+      if (webBeanDiscovery != null)
+      {
+         this.ejbDiscovery = new MockEjbDiscovery(webBeanDiscovery.discoverWebBeanClasses());
+      }
    }
    
    @Override
@@ -207,5 +213,11 @@
    {
       return mockNaming;
    }
+
+   @Override
+   protected EjbDiscovery getEjbDiscovery()
+   {
+      return ejbDiscovery;
+   }
    
 }

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDescriptor.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDescriptor.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDescriptor.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -21,8 +21,13 @@
    private final String ejbName;
    private final List<BusinessInterfaceDescriptor<?>> localInterfaces;
    private final HashSet<Method> removeMethods;
+   
+   public static <T> MockEjbDescriptor<T> of(Class<T> type)
+   {
+      return new MockEjbDescriptor<T>(type);
+   }
 
-   public MockEjbDescriptor(final Class<T> type)
+   private MockEjbDescriptor(final Class<T> type)
    {
       this.type = type;
       this.ejbName = type.getSimpleName();

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDiscovery.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDiscovery.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDiscovery.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -0,0 +1,48 @@
+package org.jboss.webbeans.test.mock;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.ejb.MessageDriven;
+import javax.ejb.Stateful;
+import javax.ejb.Stateless;
+
+import org.jboss.webbeans.bootstrap.spi.EjbDiscovery;
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
+
+public class MockEjbDiscovery implements EjbDiscovery
+{
+   
+   private final List<EjbDescriptor<?>> ejbs;
+
+   public MockEjbDiscovery(Iterable<Class<?>> allClasses)
+   {
+      
+      this.ejbs = new ArrayList<EjbDescriptor<?>>();
+      for (Class<?> ejbClass : discoverEjbs(allClasses))
+      {
+         this.ejbs.add(MockEjbDescriptor.of(ejbClass));
+      }
+   }
+
+   public Iterable<EjbDescriptor<?>> discoverEjbs()
+   {
+      return ejbs;
+   }
+   
+   protected static Iterable<Class<?>> discoverEjbs(Iterable<Class<?>> webBeanClasses)
+   {
+      Set<Class<?>> ejbs = new HashSet<Class<?>>();
+      for (Class<?> clazz : webBeanClasses)
+      {
+         if (clazz.isAnnotationPresent(Stateless.class) || clazz.isAnnotationPresent(Stateful.class) || clazz.isAnnotationPresent(MessageDriven.class)) 
+         {
+            ejbs.add(clazz);
+         }
+      }
+      return ejbs;
+   }
+   
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockEjbDiscovery.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockWebBeanDiscovery.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockWebBeanDiscovery.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockWebBeanDiscovery.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -1,18 +1,10 @@
 package org.jboss.webbeans.test.mock;
 
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
 
-import javax.ejb.MessageDriven;
-import javax.ejb.Stateful;
-import javax.ejb.Stateless;
-
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
-import org.jboss.webbeans.ejb.spi.EjbDescriptor;
 
 public class MockWebBeanDiscovery implements WebBeanDiscovery
 {
@@ -21,33 +13,20 @@
 
    private Iterable<URL> webBeansXmlFiles = new HashSet<URL>();
 
-   private List<EjbDescriptor<?>> ejbs = new ArrayList<EjbDescriptor<?>>();
-
    /**
     * Simple constructor that auto discovers EJBs
     * @param webBeanClasses
     */
    public MockWebBeanDiscovery(Class<?>... webBeanClasses)
    {
-      this(Arrays.asList(webBeanClasses));
+      this(Arrays.asList(webBeanClasses), null);
    }
    
-   public MockWebBeanDiscovery(Iterable<Class<?>> webBeanClasses)
+   public MockWebBeanDiscovery(Iterable<Class<?>> webBeanClasses, Iterable<URL> webBeansXmlFiles)
    {
-      this(webBeanClasses, null, discoverEjbs(webBeanClasses));
-   }
-   
-   @SuppressWarnings("unchecked")
-   public MockWebBeanDiscovery(Iterable<Class<?>> webBeanClasses, Iterable<URL> webBeansXmlFiles, Iterable<Class<?>> ejbs)
-   {
       super();
       this.webBeanClasses = webBeanClasses;
       this.webBeansXmlFiles = webBeansXmlFiles;
-      this.ejbs = new ArrayList<EjbDescriptor<?>>();
-      for (Class<?> ejbClass : ejbs)
-      {
-         this.ejbs.add(new MockEjbDescriptor(ejbClass));
-      }
    }
 
    public Iterable<Class<?>> discoverWebBeanClasses()
@@ -55,27 +34,9 @@
       return webBeanClasses;
    }
 
-   public Iterable<EjbDescriptor<?>> discoverEjbs()
-   {
-      return ejbs;
-   }
-
    public Iterable<URL> discoverWebBeansXml()
    {
       return webBeansXmlFiles;
    }
-   
-   protected static Iterable<Class<?>> discoverEjbs(Iterable<Class<?>> webBeanClasses)
-   {
-      Set<Class<?>> ejbs = new HashSet<Class<?>>();
-      for (Class<?> clazz : webBeanClasses)
-      {
-         if (clazz.isAnnotationPresent(Stateless.class) || clazz.isAnnotationPresent(Stateful.class) || clazz.isAnnotationPresent(MessageDriven.class)) 
-         {
-            ejbs.add(clazz);
-         }
-      }
-      return ejbs;
-   }
 
 }

Added: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/EjbDiscovery.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/EjbDiscovery.java	                        (rev 0)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/EjbDiscovery.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.webbeans.bootstrap.spi;
+
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
+
+
+
+/**
+ * A container should implement this interface to allow the Web Beans RI to
+ * discover the EJBs the application contains
+ * 
+ * @author Pete Muir
+ *
+ */
+public interface EjbDiscovery
+{
+   public static final String PROPERTY_NAME = EjbDiscovery.class.getName();
+   
+   /**
+    * Gets a descriptor for each EJB in the application
+    * 
+    * @return The bean class to descriptor map 
+    */
+   public Iterable<EjbDescriptor<?>> discoverEjbs();
+   
+}


Property changes on: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/EjbDiscovery.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/ForwardingEjbDiscovery.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/ForwardingEjbDiscovery.java	                        (rev 0)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/ForwardingEjbDiscovery.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.bootstrap.spi;
+
+import org.jboss.webbeans.ejb.spi.EjbDescriptor;
+
+public abstract class ForwardingEjbDiscovery implements EjbDiscovery
+{
+   
+   protected abstract EjbDiscovery delegate();
+   
+   public Iterable<EjbDescriptor<?>> discoverEjbs()
+   {
+      return delegate().discoverEjbs();
+   }
+   
+}


Property changes on: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/ForwardingEjbDiscovery.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/WebBeanDiscovery.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/WebBeanDiscovery.java	2009-01-15 15:23:12 UTC (rev 983)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/bootstrap/spi/WebBeanDiscovery.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -19,8 +19,6 @@
 
 import java.net.URL;
 
-import org.jboss.webbeans.ejb.spi.EjbDescriptor;
-
 /**
  * A container should implement this interface to allow the Web Beans RI to
  * discover the Web Beans to deploy
@@ -46,11 +44,4 @@
     */
    public Iterable<URL> discoverWebBeansXml();
    
-   /**
-    * Gets a descriptor for each EJB in the application
-    * 
-    * @return The bean class to descriptor map 
-    */
-   public Iterable<EjbDescriptor<?>> discoverEjbs();
-   
 }

Added: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/ForwardingEjbResolver.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/ForwardingEjbResolver.java	                        (rev 0)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/ForwardingEjbResolver.java	2009-01-15 16:22:44 UTC (rev 984)
@@ -0,0 +1,44 @@
+package org.jboss.webbeans.ejb.spi;
+
+import java.lang.annotation.Annotation;
+
+import javax.webbeans.InjectionPoint;
+
+import org.jboss.webbeans.resources.spi.Naming;
+
+public abstract class ForwardingEjbResolver implements EjbResolver
+{
+   
+   public abstract EjbResolver delegate();
+   
+   public Class<? extends Annotation> getEJBAnnotation()
+   {
+      return delegate().getEJBAnnotation();
+   }
+   
+   public Class<? extends Annotation> getPersistenceContextAnnotation()
+   {
+      return delegate().getPersistenceContextAnnotation();
+   }
+   
+   public Class<? extends Annotation> getResourceAnnotation()
+   {
+      return delegate().getResourceAnnotation();
+   }
+   
+   public Object resolveEjb(InjectionPoint injectionPoint, Naming naming)
+   {
+      return delegate().resolveEjb(injectionPoint, naming);
+   }
+   
+   public Object resolvePersistenceContext(InjectionPoint injectionPoint, Naming naming)
+   {
+      return delegate().resolvePersistenceContext(injectionPoint, naming);
+   }
+   
+   public Object resolveResource(InjectionPoint injectionPoint, Naming naming)
+   {
+      return delegate().resolveResource(injectionPoint, naming);
+   }
+   
+}


Property changes on: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/ForwardingEjbResolver.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain




More information about the weld-commits mailing list