[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