[webbeans-commits] Webbeans SVN: r798 - in ri/trunk: webbeans-ri and 15 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Jan 6 18:46:49 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-06 18:46:48 -0500 (Tue, 06 Jan 2009)
New Revision: 798

Added:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java
Removed:
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/JpaResolver.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java
Modified:
   ri/trunk/pom.xml
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/EjbResolver.java
   ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/resources/spi/Naming.java
   ri/trunk/webbeans-ri/pom.xml
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/PropertiesBasedBootstrap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextMap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventManager.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletBootstrap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ConcurrentCache.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/EventBusTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.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
Log:
rationalize SPI, switch to a returning singleton on manager deserialization (and remove implements Serializable on helper classes), add AnnotatedMember and alter InjectionPointImpl to take AnnotatedMember, wire in EjbResolver to SimpleBean field injection, refactor bootstrap slightly to inject externally specified helper classes into Manager

Modified: ri/trunk/pom.xml
===================================================================
--- ri/trunk/pom.xml	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/pom.xml	2009-01-06 23:46:48 UTC (rev 798)
@@ -85,6 +85,12 @@
             <artifactId>jsr250-api</artifactId>
             <version>1.0</version>
          </dependency>
+         
+         <dependency>
+            <groupId>javax.persistence</groupId>
+            <artifactId>persistence-api</artifactId>
+            <version>1.0</version>
+         </dependency>
 
          <dependency>
             <groupId>org.scannotation</groupId>

Modified: ri/trunk/webbeans-ri/pom.xml
===================================================================
--- ri/trunk/webbeans-ri/pom.xml	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/pom.xml	2009-01-06 23:46:48 UTC (rev 798)
@@ -46,12 +46,20 @@
       <dependency>
          <groupId>javax.ejb</groupId>
          <artifactId>ejb-api</artifactId>
+         <optional>true</optional>
       </dependency>
 
       <dependency>
          <groupId>javax.annotation</groupId>
          <artifactId>jsr250-api</artifactId>
+         <optional>true</optional>
       </dependency>
+      
+      <dependency>
+         <groupId>javax.persistence</groupId>
+         <artifactId>persistence-api</artifactId>
+         <optional>true</optional>
+      </dependency>
 
       <dependency>
          <groupId>javassist</groupId>

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -54,11 +54,13 @@
 import org.jboss.webbeans.bean.proxy.ProxyPool;
 import org.jboss.webbeans.context.ContextMap;
 import org.jboss.webbeans.ejb.EjbDescriptorCache;
+import org.jboss.webbeans.ejb.spi.EjbResolver;
 import org.jboss.webbeans.event.EventManager;
 import org.jboss.webbeans.introspector.AnnotatedItem;
 import org.jboss.webbeans.introspector.AnnotatedMethod;
 import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
 import org.jboss.webbeans.resources.spi.Naming;
+import org.jboss.webbeans.resources.spi.ResourceLoader;
 import org.jboss.webbeans.util.Reflections;
 
 /**
@@ -80,40 +82,47 @@
    public static final String JNDI_KEY = "java:comp/Manager";
 
    // The enabled deployment types from web-beans.xml
-   private List<Class<? extends Annotation>> enabledDeploymentTypes;
+   private transient List<Class<? extends Annotation>> enabledDeploymentTypes;
    // The Web Beans manager
-   private EventManager eventManager;
+   private transient final EventManager eventManager;
 
    // The bean resolver
-   // The cache can be rebuilt at any time
-   private transient Resolver resolver;
+   private transient final Resolver resolver;
    
    // The registered contexts
-   private ContextMap contextMap;
+   private transient final ContextMap contextMap;
    // The client proxy pool
-   private ProxyPool proxyPool;
+   private transient final ProxyPool proxyPool;
    // The registered beans
-   private List<Bean<?>> beans;
+   private transient List<Bean<?>> beans;
    // The registered beans, mapped by implementation class
-   private Map<Class<?>, Bean<?>> beanMap;
+   private transient final Map<Class<?>, Bean<?>> beanMap;
    // The registered decorators
-   private Set<Decorator> decorators;
+   private transient final Set<Decorator> decorators;
    // The registered interceptors
-   private Set<Interceptor> interceptors;
+   private transient final Set<Interceptor> interceptors;
+   
+   // The EJB resolver provided by the container
+   // TODO This can't be transient!
+   private transient final EjbResolver ejbResolver;
 
-   private EjbDescriptorCache ejbDescriptorCache;
+   private transient final EjbDescriptorCache ejbDescriptorCache;
+   
+   private transient final ResourceLoader resourceLoader;
 
    // The Naming (JNDI) access
-   private Naming naming;
+   private transient final Naming naming;
 
    /**
-    * Constructor
+    * Create a new manager
     * 
-    * @param enabledDeploymentTypes any enabled deployment types, an empty set
-    *           if none are specified
+    * @param ejbResolver the ejbResolver to use
     */
-   public ManagerImpl()
+   public ManagerImpl(Naming naming, EjbResolver ejbResolver, ResourceLoader resourceLoader)
    {
+      this.ejbResolver = ejbResolver;
+      this.naming = naming;
+      this.resourceLoader = resourceLoader;
       this.beans = new CopyOnWriteArrayList<Bean<?>>();
       this.beanMap = new ConcurrentHashMap<Class<?>, Bean<?>>();
       this.resolver = new Resolver(this);
@@ -736,10 +745,17 @@
    {
       return naming;
    }
-
-   public void setNaming(Naming naming)
+   
+   public EjbResolver getEjbResolver()
    {
-      this.naming = naming;
+      return ejbResolver;
    }
+   
+   // Serialization
+   
+   protected Object readResolve()
+   {
+      return CurrentManager.rootManager();
+   }
 
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -25,11 +25,13 @@
 import javax.annotation.PreDestroy;
 import javax.webbeans.DefinitionException;
 import javax.webbeans.Initializer;
+import javax.webbeans.InjectionPoint;
 import javax.webbeans.manager.Manager;
 
 import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.MetaDataCache;
 import org.jboss.webbeans.context.DependentContext;
+import org.jboss.webbeans.injection.InjectionPointImpl;
 import org.jboss.webbeans.introspector.AnnotatedConstructor;
 import org.jboss.webbeans.introspector.AnnotatedField;
 import org.jboss.webbeans.introspector.AnnotatedMethod;
@@ -90,7 +92,7 @@
          T instance = constructor.newInstance(manager);
          bindDecorators();
          bindInterceptors();
-         injectEjbAndCommonFields();
+         injectEjbAndCommonFields(instance);
          injectBoundFields(instance, manager);
          callInitializers(instance);
          callPostConstruct(instance);
@@ -185,9 +187,23 @@
    /**
     * Injects EJBs and common fields
     */
-   protected void injectEjbAndCommonFields()
+   protected void injectEjbAndCommonFields(T beanInstance)
    {
-      // Support common and EJB annotations
+      for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(manager.getEjbResolver().getEJBAnnotation()))
+      {
+         InjectionPoint injectionPoint = new InjectionPointImpl(field, this, beanInstance);
+         String name = manager.getEjbResolver().resolveEjb(injectionPoint);
+         Object ejbInstance = manager.getNaming().lookup(name, Object.class);
+         field.inject(beanInstance, ejbInstance);
+      }
+      
+      for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(manager.getEjbResolver().getPersistenceContextAnnotation()))
+      {
+         InjectionPoint injectionPoint = new InjectionPointImpl(field, this, beanInstance);
+         String name = manager.getEjbResolver().resolvePersistenceUnit(injectionPoint);
+         Object puInstance = manager.getNaming().lookup(name, Object.class);
+         field.inject(beanInstance, puInstance);
+      }
    }
 
    /**

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -39,7 +39,7 @@
  * 
  * @see org.jboss.webbeans.bean.proxy.ProxyMethodHandler
  */
-public class ProxyPool implements Serializable
+public class ProxyPool
 {
    private static final long serialVersionUID = 9029999149357529341L;
 

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/PropertiesBasedBootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/PropertiesBasedBootstrap.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/PropertiesBasedBootstrap.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -24,8 +24,6 @@
 
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
-import org.jboss.webbeans.resource.DefaultNaming;
-import org.jboss.webbeans.resources.spi.Naming;
 import org.jboss.webbeans.resources.spi.ResourceLoader;
 import org.jboss.webbeans.servlet.ServletBootstrap;
 import org.jboss.webbeans.util.DeploymentProperties;
@@ -40,6 +38,7 @@
  */
 public abstract class PropertiesBasedBootstrap extends WebBeansBootstrap
 {
+
    // The log provider
    private static final LogProvider log = Logging.getLogProvider(ServletBootstrap.class);
    
@@ -101,25 +100,6 @@
    }
    
    /**
-    * Initializes the naming provider
-    * 
-    * Only safe to call once resourceloader and deployment properties are set
-    */
-   protected void initProperties()
-   {
-      Constructor<? extends Naming> namingConstructor = getClassConstructor(getDeploymentProperties(), getResourceLoader(), Naming.PROPERTY_NAME, Naming.class);
-      if (namingConstructor != null)
-      {
-         getManager().setNaming(newInstance(namingConstructor));
-      }
-      else
-      {
-         getManager().setNaming(new DefaultNaming());
-      }
-   }
-   
-   
-   /**
     * Gets the deployment properties
     * 
     * @return The deployment properties

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-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -30,6 +30,7 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -53,6 +54,7 @@
 import org.jboss.webbeans.binding.InitializedBinding;
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
 import org.jboss.webbeans.ejb.EJBApiAbstraction;
+import org.jboss.webbeans.ejb.spi.EjbResolver;
 import org.jboss.webbeans.event.ObserverImpl;
 import org.jboss.webbeans.introspector.AnnotatedField;
 import org.jboss.webbeans.introspector.AnnotatedItem;
@@ -60,6 +62,7 @@
 import org.jboss.webbeans.jsf.JSFApiAbstraction;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
+import org.jboss.webbeans.resources.spi.Naming;
 import org.jboss.webbeans.resources.spi.ResourceLoader;
 import org.jboss.webbeans.servlet.ServletApiAbstraction;
 import org.jboss.webbeans.transaction.Transaction;
@@ -76,13 +79,20 @@
    // The log provider
    private static LogProvider log = Logging.getLogProvider(WebBeansBootstrap.class);
    
-   protected void registerManager()
+   // The Web Beans manager
+   private ManagerImpl manager;
+   
+   protected void initManager(Naming naming, EjbResolver ejbResolver, ResourceLoader resourceLoader)
    {
-      getManager().getNaming().bind(ManagerImpl.JNDI_KEY, getManager());
-      CurrentManager.setRootManager(getManager());
+      this.manager = new ManagerImpl(naming, ejbResolver, resourceLoader);
+      manager.getNaming().bind(ManagerImpl.JNDI_KEY, getManager());
+      CurrentManager.setRootManager(manager);
    }
    
-   public abstract ManagerImpl getManager();
+   public ManagerImpl getManager()
+   {
+      return manager;
+   }
 
    protected abstract WebBeanDiscovery getWebBeanDiscovery();
 
@@ -140,6 +150,18 @@
       {
    
          @Override
+         protected void initConstructor()
+         {
+            // No - op, no constructor needed
+         }
+         
+         @Override
+         protected void initInjectionPoints()
+         {
+            injectionPoints = Collections.emptySet();
+         }
+         
+         @Override
          public ManagerImpl create()
          {
             return managerImpl;

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextMap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextMap.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextMap.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -37,7 +37,6 @@
  */
 public class ContextMap extends ConcurrentCache<Class<? extends Annotation>, List<Context>>
 {
-   private static final long serialVersionUID = 1L;
 
    /**
     * Gets the dependent context

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventManager.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/event/EventManager.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -17,7 +17,6 @@
 
 package org.jboss.webbeans.event;
 
-import java.io.Serializable;
 import java.lang.annotation.Annotation;
 import java.util.HashSet;
 import java.util.List;
@@ -40,16 +39,14 @@
  * @author David Allen
  * 
  */
-public class EventManager implements Serializable
+public class EventManager
 {
-   private static final long serialVersionUID = 1L;
 
    /**
     * An event type -> observer list map
     */
-   private class RegisteredObserversMap extends ForwardingMap<Class<?>, List<EventObserver<?>>> implements Serializable
+   private class RegisteredObserversMap extends ForwardingMap<Class<?>, List<EventObserver<?>>>
    {
-      private static final long serialVersionUID = 1L;
 
       // The map delegate
       private ConcurrentHashMap<Class<?>, List<EventObserver<?>>> delegate;

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -27,7 +27,7 @@
 import javax.webbeans.Standard;
 import javax.webbeans.manager.Bean;
 
-import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedMember;
+import org.jboss.webbeans.introspector.AnnotatedMember;
 
 /**
  * The container provided implementation for InjectionPoint beans
@@ -38,7 +38,7 @@
 @Dependent
 public class InjectionPointImpl implements InjectionPoint
 {
-   private final AbstractAnnotatedMember<?, ? extends Member> memberInjectionPoint;
+   private final AnnotatedMember<?, ?> memberInjectionPoint;
    private final Bean<?> bean;
    private final Object beanInstance;
 
@@ -49,7 +49,7 @@
     * @param bean The bean being injected
     * @param beanInstance The instance of the bean being injected
     */
-   public InjectionPointImpl(AbstractAnnotatedMember<?, ? extends Member> injectedMember, Bean<?> bean, Object beanInstance)
+   public InjectionPointImpl(AnnotatedMember<?, ?> injectedMember, Bean<?> bean, Object beanInstance)
    {
       this.memberInjectionPoint = injectedMember;
       this.bean = bean;
@@ -83,7 +83,7 @@
 
    public Member getMember()
    {
-      return this.memberInjectionPoint.getDelegate();
+      return this.memberInjectionPoint.getMember();
    }
 
    public Type getType()

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedConstructor.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -29,7 +29,7 @@
  * @author Pete Muir
  * 
  */
-public interface AnnotatedConstructor<T> extends AnnotatedItem<T, Constructor<T>>
+public interface AnnotatedConstructor<T> extends AnnotatedMember<T, Constructor<T>>
 {
 
    /**

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedField.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -28,7 +28,7 @@
  * @author Pete Muir
  *
  */
-public interface AnnotatedField<T> extends AnnotatedItem<T, Field>
+public interface AnnotatedField<T> extends AnnotatedMember<T, Field>
 {
    
    /**
@@ -39,26 +39,46 @@
    public Field getAnnotatedField();
    
    /**
-    * Injects an instance
+    * Injects into the field using the value provided by the manager.
     * 
-    * @param instance The instance to inject
+    * @param declaringInstance The instance to inject into
     * @param manager The Web Beans manager
     */
-   public void inject(Object instance, Manager manager);
+   public void inject(Object declaringInstance, Manager manager);
    
    /**
     * Injects an instance
     * 
-    * @param instance The instance to inject
-    * @param manager The Web Beans manager
+    * 
+    * @param declaringInstance The instance to inject into
+    * @param value The value to inject
     */
-   public void injectIntoInstance(Object instance, Manager manager);
+   public void inject(Object declaringInstance, Object value);
    
    /**
+    * Injects into the field using the value provided by the manager
+    * 
+    * Unlike {@link #inject(Object, Manager)} the field injected into is 
+    * discovered from the declaring instance. This is slower, but safe to use
+    * with proxies.
+    * 
+    * @param declaringInstance The instance to inject into
+    * @param value The value to inject
+    */
+   public void injectIntoInstance(Object declaringInstance, Object value);
+   
+   /**
     * Injects an instance
     * 
-    * @param instance The instance to inject
+    * Unlike {@link #inject(Object, Manager)} the field injected into is 
+    * discovered from the declaring instance. This is slower, but safe to use
+    * with proxies.
+    * 
+    * @param declaringInstance The instance to inject
+    * @param manager The Web Beans manager
     */
+   public void injectIntoInstance(Object declaringInstance, Manager manager);
+   
    public T get(Object instance);
    
    /**

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMember.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.introspector;
+
+import java.lang.reflect.Member;
+
+public interface AnnotatedMember<T, S extends Member> extends AnnotatedItem<T, S>
+{
+   
+   public S getMember();
+   
+}


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

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedMethod.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -41,7 +41,7 @@
  * @author Pete Muir
  * 
  */
-public interface AnnotatedMethod<T> extends AnnotatedItem<T, Method>
+public interface AnnotatedMethod<T> extends AnnotatedMember<T, Method>
 {
    @SuppressWarnings("unchecked")
    public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Disposes.class, Observes.class, Fires.class, IfExists.class, BeforeTransactionCompletion.class, AfterTransactionCompletion.class, AfterTransactionFailure.class, AfterTransactionSuccess.class));

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -27,6 +27,7 @@
 import javax.webbeans.BindingType;
 import javax.webbeans.manager.Manager;
 
+import org.jboss.webbeans.introspector.AnnotatedMember;
 import org.jboss.webbeans.introspector.AnnotatedParameter;
 import org.jboss.webbeans.util.Reflections;
 import org.jboss.webbeans.util.Strings;
@@ -43,7 +44,7 @@
  * @param <T>
  * @param <S>
  */
-public abstract class AbstractAnnotatedMember<T, S extends Member> extends AbstractAnnotatedItem<T, S>
+public abstract class AbstractAnnotatedMember<T, S extends Member> extends AbstractAnnotatedItem<T, S> implements AnnotatedMember<T, S>
 {
    /**
     * An annotation type -> list of annotations map
@@ -172,5 +173,10 @@
       toString = "Abstract annotated member " + getName();
       return toString;
    }   
+   
+   public S getMember()
+   {
+      return getDelegate();
+   }
 
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -62,6 +62,7 @@
    {
       super(buildAnnotationMap(field), field);
       this.field = field;
+      field.setAccessible(true);
       this.declaringClass = declaringClass;
       if (field.getGenericType() instanceof ParameterizedType)
       {
@@ -129,6 +130,16 @@
    {
       Reflections.setAndWrap(getName(), instance, getValue(manager));
    }
+   
+   public void inject(Object instance, Object value)
+   {
+      Reflections.setAndWrap(getDelegate(), instance, value);
+   }
+   
+   public void injectIntoInstance(Object instance, Object value)
+   {
+      Reflections.setAndWrap(getName(), instance, value);
+   }
 
    @SuppressWarnings("unchecked")
    public T get(Object instance)

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-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletBootstrap.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -21,7 +21,6 @@
 
 import javax.servlet.ServletContext;
 
-import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.bootstrap.PropertiesBasedBootstrap;
 import org.jboss.webbeans.bootstrap.SimpleResourceLoader;
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
@@ -29,6 +28,9 @@
 import org.jboss.webbeans.context.DependentContext;
 import org.jboss.webbeans.context.RequestContext;
 import org.jboss.webbeans.context.SessionContext;
+import org.jboss.webbeans.ejb.spi.EjbResolver;
+import org.jboss.webbeans.resource.DefaultNaming;
+import org.jboss.webbeans.resources.spi.Naming;
 import org.jboss.webbeans.resources.spi.ResourceLoader;
 import org.jboss.webbeans.util.DeploymentProperties;
 
@@ -39,8 +41,7 @@
  */
 public class ServletBootstrap extends PropertiesBasedBootstrap
 {
-   // The Web Beans manager
-   private ManagerImpl manager;
+   
    // The resource loader
    private ResourceLoader resourceLoader;
    // The discover implementation
@@ -50,8 +51,6 @@
    
    public ServletBootstrap(ServletContext servletContext)
    {
-      // Create the manager
-      this.manager = new ManagerImpl();
       
       // Create a simpple resource loader based for initial loading 
       this.resourceLoader = new SimpleResourceLoader();
@@ -64,9 +63,8 @@
          this.resourceLoader = newInstance(resourceLoaderConstructor, servletContext);
       }
       
-      // Now safe to initialize other properties and register the manager
-      super.initProperties();
-      super.registerManager();
+      // 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);
@@ -87,6 +85,37 @@
       ApplicationContext.INSTANCE.setBeanMap(new ApplicationBeanMap(servletContext));
    }
 
+   private void initManager(ServletContext servletContext)
+   {
+      initManager(getNaming(servletContext), getEjbResolver(servletContext), getResourceLoader());
+   }
+   
+   public Naming getNaming(ServletContext servletContext)
+   {
+      Constructor<? extends Naming> namingConstructor = getClassConstructor(getDeploymentProperties(), getResourceLoader(), Naming.PROPERTY_NAME, Naming.class, ServletContext.class);
+      if (namingConstructor != null)
+      {
+         return newInstance(namingConstructor, servletContext);
+      }
+      else
+      {
+         return new DefaultNaming();
+      }
+   }
+   
+   public EjbResolver getEjbResolver(ServletContext servletContext)
+   {
+      Constructor<? extends EjbResolver> constructor = getClassConstructor(getDeploymentProperties(), getResourceLoader(), EjbResolver.PROPERTY_NAME, EjbResolver.class, ServletContext.class);
+      if (constructor != null)
+      {
+         return newInstance(constructor, servletContext);
+      }
+      else
+      {
+         throw new IllegalStateException("Unable to find a EjbResolver, check Web Beans is correctly installed in your container");
+      }
+   }
+
    @Override
    protected DeploymentProperties getDeploymentProperties()
    {
@@ -105,10 +134,4 @@
       return webBeanDiscovery;
    }
    
-   @Override
-   public ManagerImpl getManager()
-   {
-      return manager;
-   }
-   
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ConcurrentCache.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ConcurrentCache.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ConcurrentCache.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -17,7 +17,6 @@
 
 package org.jboss.webbeans.util;
 
-import java.io.Serializable;
 import java.util.Map;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentHashMap;
@@ -32,9 +31,8 @@
  * 
  * @author Pete Muir
  */
-public class ConcurrentCache<K, V> extends ForwardingMap<K, Future<V>> implements Serializable
+public class ConcurrentCache<K, V> extends ForwardingMap<K, Future<V>>
 {
-   private static final long serialVersionUID = 1L;
 
    // The backing map with the value wrapped in a Future instance
    private ConcurrentHashMap<K, Future<V>> map;

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-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/AbstractTest.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -11,18 +11,20 @@
 import javax.webbeans.Standard;
 
 import org.jboss.webbeans.CurrentManager;
+import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.bean.AbstractClassBean;
 import org.jboss.webbeans.bean.BeanFactory;
 import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
 import org.jboss.webbeans.test.annotations.HornedAnimalDeploymentType;
 import org.jboss.webbeans.test.mock.MockBootstrap;
 import org.jboss.webbeans.test.mock.MockEjbDescriptor;
-import org.jboss.webbeans.test.mock.MockManagerImpl;
 import org.testng.annotations.BeforeMethod;
 
 public class AbstractTest
 {
-   protected MockManagerImpl manager;
+   protected static final int BUILT_IN_BEANS = 3;
+   
+   protected ManagerImpl manager;
    protected MockBootstrap webBeansBootstrap;
 
    public static boolean visited = false;

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-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/BoostrapTest.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -26,7 +26,6 @@
 import org.jboss.webbeans.test.beans.Tiger;
 import org.jboss.webbeans.test.beans.Tuna;
 import org.jboss.webbeans.test.ejb.valid.Hound;
-import org.jboss.webbeans.test.mock.MockManagerImpl;
 import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
 import org.testng.annotations.Test;
 
@@ -39,7 +38,7 @@
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
       for (Bean<?> bean : beans)
       {
          if (bean instanceof AbstractBean)
@@ -56,7 +55,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : beans)
       {
@@ -74,7 +73,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Tuna.class, Salmon.class, SeaBass.class, Sole.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 4 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 4 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : beans)
       {
@@ -100,7 +99,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TarantulaProducer.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 2 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 2 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : beans)
       {
@@ -122,7 +121,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 4 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 4 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : beans)
       {
@@ -148,7 +147,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 8 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 8 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : beans)
       {
@@ -181,7 +180,7 @@
    {
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TarantulaProducer.class));
       webBeansBootstrap.boot();
-      assert manager.getBeans().size() == 2 + MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.getBeans().size() == 2 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : manager.getBeans())
       {
@@ -203,7 +202,7 @@
    {
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class));
       webBeansBootstrap.boot();
-      assert manager.getBeans().size() == 8 + MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.getBeans().size() == 8 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : manager.getBeans())
       {
@@ -244,7 +243,7 @@
       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.boot();
       
-      assert manager.getBeans().size() == 8 + MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.getBeans().size() == 8 + BUILT_IN_BEANS;
       Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
       for (Bean<?> bean : manager.getBeans())
       {

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBusTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBusTest.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/EventBusTest.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -40,7 +40,6 @@
 import org.jboss.webbeans.test.ejb.invalid.YorkshireTerrier;
 import org.jboss.webbeans.test.ejb.valid.BullTerrier;
 import org.jboss.webbeans.test.ejb.valid.Pomeranian;
-import org.jboss.webbeans.test.mock.MockManagerImpl;
 import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
 import org.testng.annotations.Test;
 
@@ -327,7 +326,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Pomeranian.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
       Set<Observer<String>> observers = manager.resolveObservers("An event");
       assert observers.size() == 2;
    }
@@ -339,7 +338,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TibetanTerrier.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
       Set<Observer<String>> observers = manager.resolveObservers("An event");
       assert observers.size() == 1;
    }
@@ -382,7 +381,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Pomeranian.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
 
       // Resolve registered observers with an event containing no binding types
       Set<Observer<String>> resolvedObservers = manager.resolveObservers("A new event");
@@ -584,7 +583,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TeaCupPomeranian.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
       manager.fireEvent("Another event");
    }
 
@@ -595,7 +594,7 @@
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TeaCupPomeranian.class));
       webBeansBootstrap.boot();
       List<Bean<?>> beans = manager.getBeans();
-      assert beans.size() == 1 + MockManagerImpl.BUILT_IN_BEANS;
+      assert beans.size() == 1 + BUILT_IN_BEANS;
       manager.fireEvent(new Integer(1));
    }
 

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -43,7 +43,6 @@
 import org.jboss.webbeans.test.bindings.BindingTypeWithBindingArrayTypeMemberAnnotationLiteral;
 import org.jboss.webbeans.test.bindings.ChunkyAnnotationLiteral;
 import org.jboss.webbeans.test.bindings.ExpensiveAnnotationLiteral;
-import org.jboss.webbeans.test.mock.MockManagerImpl;
 import org.testng.annotations.Test;
 
 @SpecVersion("20081206")
@@ -277,7 +276,7 @@
       
       Set<Bean<Object>> beans = manager.resolveByType(Object.class);
       
-      assert manager.resolveByType(Object.class).size() == 3 +  MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.resolveByType(Object.class).size() == 3 +  BUILT_IN_BEANS;
       assert manager.resolveByType(Object.class).contains(plaiceBean);
       assert manager.resolveByType(Object.class).contains(salmonBean);
       assert manager.resolveByType(Object.class).contains(soleBean);

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-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/SimpleBeanModelTest.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -38,7 +38,6 @@
 import org.jboss.webbeans.test.beans.nonBeans.ServletRequestListenerBean;
 import org.jboss.webbeans.test.beans.nonBeans.UIComponentBean;
 import org.jboss.webbeans.test.bindings.SynchronousAnnotationLiteral;
-import org.jboss.webbeans.test.mock.MockManagerImpl;
 import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
 import org.testng.annotations.Test;
 
@@ -90,7 +89,7 @@
    {
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(FilterBean.class, HttpSessionListenerBean.class, ServletBean.class, ServletContextListenerBean.class, ServletRequestListenerBean.class)), null, new HashSet<Class<?>>()));
       webBeansBootstrap.boot();
-      assert manager.getBeans().size() == MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.getBeans().size() == BUILT_IN_BEANS;
    }
    
    @Test
@@ -98,7 +97,7 @@
    {
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(EnterpriseBeanWebBean.class)), null, new HashSet<Class<?>>()));
       webBeansBootstrap.boot();
-      assert manager.getBeans().size() == MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.getBeans().size() == BUILT_IN_BEANS;
    }
    
    @Test
@@ -106,7 +105,7 @@
    {
       webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(new HashSet<Class<?>>(Arrays.asList(UIComponentBean.class)), null, new HashSet<Class<?>>()));
       webBeansBootstrap.boot();
-      assert manager.getBeans().size() == MockManagerImpl.BUILT_IN_BEANS;
+      assert manager.getBeans().size() == BUILT_IN_BEANS;
    }
    
    @Test(groups="stub")

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-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -1,5 +1,11 @@
 package org.jboss.webbeans.test.mock;
 
+import java.lang.annotation.Annotation;
+
+import javax.ejb.EJB;
+import javax.persistence.PersistenceContext;
+import javax.webbeans.InjectionPoint;
+
 import org.jboss.webbeans.bootstrap.WebBeansBootstrap;
 import org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery;
 import org.jboss.webbeans.context.ApplicationContext;
@@ -7,29 +13,74 @@
 import org.jboss.webbeans.context.RequestContext;
 import org.jboss.webbeans.context.SessionContext;
 import org.jboss.webbeans.context.beanmap.SimpleBeanMap;
+import org.jboss.webbeans.ejb.spi.EjbResolver;
+import org.jboss.webbeans.resources.spi.Naming;
 import org.jboss.webbeans.resources.spi.ResourceLoader;
 
 public class MockBootstrap extends WebBeansBootstrap
 { 
    
+   private static final Naming MOCK_NAMING = new Naming()
+   {
+
+      public void bind(String key, Object value)
+      {
+         // no-op
+      }
+
+      public <T> T lookup(String name, Class<? extends T> expectedType)
+      {
+         // No-op
+         return null;
+      }
+      
+   };
+   
+   private static final EjbResolver MOCK_EJB_RESOLVER = new EjbResolver()
+   {
+
+      public Class<? extends Annotation> getEJBAnnotation()
+      {
+         return EJB.class;
+      }
+
+      public Class<? extends Annotation> getPersistenceContextAnnotation()
+      {
+         return PersistenceContext.class;
+      }
+
+      public String resolveEjb(InjectionPoint injectionPoint)
+      {
+         // TODO Implement EJB resolution for Unit tests
+         return null;
+      }
+
+      public String resolvePersistenceUnit(InjectionPoint injectionPoint)
+      {
+         // TODO Implement PU resolution for Unit tests
+         return null;
+      }
+
+
+      
+   };
+   
    private WebBeanDiscovery webBeanDiscovery;
    private ResourceLoader resourceLoader;
-   private MockManagerImpl manager;
    
    public MockBootstrap()
    {
-      this.manager = new MockManagerImpl();
       this.resourceLoader = new MockResourceLoader();
-      registerManager();
+      initManager(MOCK_NAMING, MOCK_EJB_RESOLVER, resourceLoader);
       registerStandardBeans();
       
       // Set up the mock contexts
-      manager.addContext(RequestContext.INSTANCE);
+      getManager().addContext(RequestContext.INSTANCE);
       SessionContext.INSTANCE.setBeanMap(new SimpleBeanMap());
-      manager.addContext(SessionContext.INSTANCE);
+      getManager().addContext(SessionContext.INSTANCE);
       ApplicationContext.INSTANCE.setBeanMap(new SimpleBeanMap());
-      manager.addContext(ApplicationContext.INSTANCE);
-      manager.addContext(DependentContext.INSTANCE);
+      getManager().addContext(ApplicationContext.INSTANCE);
+      getManager().addContext(DependentContext.INSTANCE);
    }
    
    protected void registerStandardBeans()
@@ -53,11 +104,5 @@
    {
       return resourceLoader;
    }
-
-   @Override
-   public MockManagerImpl getManager()
-   {
-      return manager;
-   }
    
 }

Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockManagerImpl.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -1,33 +0,0 @@
-package org.jboss.webbeans.test.mock;
-
-import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.resources.spi.Naming;
-
-public class MockManagerImpl extends ManagerImpl
-{
-   
-   private Naming naming = new Naming()
-   {
-
-      public void bind(String key, Object value)
-      {
-         // no-op
-      }
-
-      public <T> T lookup(String name, Class<? extends T> expectedType)
-      {
-         // No-op
-         return null;
-      }
-      
-   };
-   
-   public static int BUILT_IN_BEANS = 3;
-   
-   @Override
-   public Naming getNaming()
-   {
-      return naming;
-   }
-   
-}

Modified: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/EjbResolver.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/EjbResolver.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/EjbResolver.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -1,5 +1,9 @@
 package org.jboss.webbeans.ejb.spi;
 
+import java.lang.annotation.Annotation;
+
+import javax.webbeans.InjectionPoint;
+
 /**
  * A container should implement this interface to allow the Web Beans RI to
  * resolve EJBs and JPA persistence units
@@ -9,41 +13,27 @@
  */
 public interface EjbResolver
 {
+   
+   public static final String PROPERTY_NAME = EjbResolver.class.getName();
+   
    /**
-    * Resolve the EJB for the given parameters
+    * Resolve the JNDI name for the @EJB injection point
     * 
-    * @param name
-    *           The logical name of the ejb reference within the declaring
-    *           component's (java:comp/env) environment.
-    * @param beanName
-    *           The ejb-name of the Enterprise Java Bean to which this reference
-    *           is mapped. Only applicable if the target EJB is defined within
-    *           the same application or stand-alone module as the declaring
-    *           component.
-    * @param beanInterface
-    *           Holds one of the following interface types of the target EJB : [
-    *           Local business interface, Remote business interface, Local Home
-    *           interface, Remote Home interface ]
-    * @param mappedName
-    *           The product specific name of the EJB component to which this ejb
-    *           reference should be mapped. This mapped name is often a global
-    *           JNDI name, but may be a name of any form. Application servers
-    *           are not required to support any particular form or type of
-    *           mapped name, nor the ability to use mapped names. The mapped
-    *           name is product-dependent and often installation-dependent. No
-    *           use of a mapped name is portable.
-    * @return
+    * @param injectionPoint The injection point metadata
+    * @return the JNDI name
     */
-   public Object resolveEjb(String name, String beanName, Class<?> beanInterface, String mappedName);
+   public String resolveEjb(InjectionPoint injectionPoint);
    
    /**
-    * Resolve the persistence unit for the given peristence unit name
+    * Resolve the JNDI name for the @PersistenceContext injection point
     * 
-    * @param persistenceUnitName
-    *           the name of the persistence unit to resolve, if null, the
-    *           default persistence unit for the application should be resolved
-    * @return the resolved persistence unit
+    * @param injectionPoint The injection point metadata
+    * @return the JNDI name
     */
-   public Object resolvePersistenceUnit(String persistenceUnitName);
+   public String resolvePersistenceUnit(InjectionPoint injectionPoint);
    
+   public Class<? extends Annotation> getEJBAnnotation();
+   
+   public Class<? extends Annotation> getPersistenceContextAnnotation();
+   
 }

Deleted: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/JpaResolver.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/JpaResolver.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/ejb/spi/JpaResolver.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -1,23 +0,0 @@
-package org.jboss.webbeans.ejb.spi;
-
-/**
- * A container should implement this interface to allow the Web Beans RI to
- * resolve JPA persistence units
- * 
- * @author Pete Muir
- *
- */
-public interface JpaResolver
-{
-   
-   /**
-    * Resolve the persistence unit for the given peristence unit name
-    * 
-    * @param persistenceUnitName
-    *           the name of the persistence unit to resolve, if null, the
-    *           default persistence unit for the application should be resolved
-    * @return the resolved persistence unit
-    */
-   public Object resolvePersistenceUnit(String persistenceUnitName);
-   
-}

Modified: ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/resources/spi/Naming.java
===================================================================
--- ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/resources/spi/Naming.java	2009-01-06 23:37:27 UTC (rev 797)
+++ ri/trunk/webbeans-ri-spi/src/main/java/org/jboss/webbeans/resources/spi/Naming.java	2009-01-06 23:46:48 UTC (rev 798)
@@ -17,10 +17,7 @@
 
 package org.jboss.webbeans.resources.spi;
 
-import java.io.Serializable;
-
-
-public interface Naming extends Serializable
+public interface Naming
 {
    
    public static final String PROPERTY_NAME = Naming.class.getName();




More information about the weld-commits mailing list