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

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Jan 20 09:11:12 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-20 09:11:11 -0500 (Tue, 20 Jan 2009)
New Revision: 1127

Added:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java
Log:
Refactor out the bean deployer from bootstrap, remove double deploy of standard beans

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-20 14:09:25 UTC (rev 1126)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2009-01-20 14:11:11 UTC (rev 1127)
@@ -761,6 +761,11 @@
    {
       return ejbResolver;
    }
+   
+   public ResourceLoader getResourceLoader()
+   {
+      return resourceLoader;
+   }
 
    /**
     * Accesses the factory used to create each instance of InjectionPoint that

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java	2009-01-20 14:11:11 UTC (rev 1127)
@@ -0,0 +1,232 @@
+package org.jboss.webbeans.bootstrap;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Fires;
+import javax.webbeans.Initializer;
+import javax.webbeans.Observer;
+import javax.webbeans.Observes;
+import javax.webbeans.Obtains;
+import javax.webbeans.Produces;
+
+import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.bean.AbstractBean;
+import org.jboss.webbeans.bean.AbstractClassBean;
+import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.bean.EventBean;
+import org.jboss.webbeans.bean.InstanceBean;
+import org.jboss.webbeans.bean.NewEnterpriseBean;
+import org.jboss.webbeans.bean.NewSimpleBean;
+import org.jboss.webbeans.bean.ProducerFieldBean;
+import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.ejb.EJBApiAbstraction;
+import org.jboss.webbeans.event.ObserverImpl;
+import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.AnnotatedMethod;
+import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
+import org.jboss.webbeans.jsf.JSFApiAbstraction;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+import org.jboss.webbeans.servlet.ServletApiAbstraction;
+import org.jboss.webbeans.util.Reflections;
+
+public class BeanDeployer
+{
+   
+   private static final LogProvider log = Logging.getLogProvider(BeanDeployer.class);
+   
+   private final Set<AbstractBean<?, ?>> beans;
+   private final ManagerImpl manager;
+   
+   public BeanDeployer(ManagerImpl manager)
+   {
+      this.beans = new HashSet<AbstractBean<?,?>>();
+      this.manager = manager;
+   }
+   
+   public void addBean(AbstractBean<?, ?> bean)
+   {
+      this.beans.add(bean);
+   }
+   
+   public void addBeans(Set<AbstractBean<?, ?>> beans)
+   {
+      this.beans.addAll(beans);
+   }
+   
+   public void addClass(Class<?> clazz)
+   {
+      AnnotatedClass<?> annotatedClass = AnnotatedClassImpl.of(clazz);
+      if (manager.getEjbDescriptorCache().containsKey(clazz))
+      {
+         createBean(EnterpriseBean.of(annotatedClass, manager), annotatedClass, beans);
+         beans.add(NewEnterpriseBean.of(annotatedClass, manager));
+      }
+      else if (isTypeSimpleWebBean(clazz))
+      {
+         createBean(SimpleBean.of(annotatedClass, manager), annotatedClass, beans);
+         beans.add(NewSimpleBean.of(annotatedClass, manager));
+      }
+   }
+   
+   public void addClasses(Iterable<Class<?>> classes)
+   {
+      for (Class<?> clazz : classes)
+      {
+         addClass(clazz);
+      }
+   }
+   
+   public void deploy()
+   {
+      manager.setBeans(beans);
+   }
+   
+   /**
+    * Creates a Web Bean from a bean abstraction and adds it to the set of
+    * created beans
+    * 
+    * Also creates the implicit field- and method-level beans, if present
+    * 
+    * @param bean The bean representation
+    * @param beans The set of created beans
+    */
+   protected void createBean(AbstractClassBean<?> bean, AnnotatedClass<?> annotatedClass, Set<AbstractBean<?, ?>> beans)
+   {
+      
+      beans.add(bean);
+      
+      manager.getResolver().addInjectionPoints(bean.getAnnotatedInjectionPoints());
+      
+      for (AnnotatedMethod<?> producerMethod : annotatedClass.getDeclaredAnnotatedMethods(Produces.class))
+      {
+         ProducerMethodBean<?> producerMethodBean = ProducerMethodBean.of(producerMethod, bean, manager);
+         beans.add(producerMethodBean);
+         manager.getResolver().addInjectionPoints(producerMethodBean.getAnnotatedInjectionPoints());
+         registerEvents(producerMethodBean.getAnnotatedInjectionPoints(), beans);
+         log.info("Web Bean: " + producerMethodBean);
+      }
+      for (AnnotatedField<?> producerField : annotatedClass.getDeclaredAnnotatedFields(Produces.class))
+      {
+         ProducerFieldBean<?> producerFieldBean = ProducerFieldBean.of(producerField, bean, manager);
+         beans.add(producerFieldBean);
+         log.info("Web Bean: " + producerFieldBean);
+      }
+      for (AnnotatedItem<?, ?> injectionPoint : bean.getAnnotatedInjectionPoints())
+      {
+         if (injectionPoint.isAnnotationPresent(Fires.class))
+         {
+            registerEvent(injectionPoint, beans);
+         }
+         if (injectionPoint.isAnnotationPresent(Obtains.class))
+         {
+            // TODO FIx this
+            @SuppressWarnings("unchecked")
+            InstanceBean<Object, Field> instanceBean = InstanceBean.of((AnnotatedItem) injectionPoint, manager);
+            beans.add(instanceBean);
+            log.info("Web Bean: " + instanceBean);
+         }
+      }
+      for (AnnotatedMethod<?> observerMethod : annotatedClass.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
+      {
+         ObserverImpl<?> observer = ObserverImpl.of(observerMethod, bean, manager);
+         if (observerMethod.getAnnotatedParameters(Observes.class).size() == 1)
+         {
+            registerObserver(observer, observerMethod.getAnnotatedParameters(Observes.class).get(0).getType(), observerMethod.getAnnotatedParameters(Observes.class).get(0).getBindingTypesAsArray());
+         }
+         else
+         {
+            throw new DefinitionException("Observer method can only have one parameter annotated @Observes " + observer);
+         }
+
+      }
+      log.info("Web Bean: " + bean);
+   }
+   
+
+   /**
+    * Registers an observer with the getManager()
+    * 
+    * @param observer The observer
+    * @param eventType The event type to observe
+    * @param bindings The binding types to observe on
+    */
+   private <T> void registerObserver(Observer<T> observer, Class<?> eventType, Annotation[] bindings)
+   {
+      // TODO Fix this!
+      @SuppressWarnings("unchecked")
+      Class<T> clazz = (Class<T>) eventType;
+      manager.addObserver(observer, clazz, bindings);
+   }
+
+   /**
+    * Iterates through the injection points and creates and registers any Event
+    * observables specified with the @Observable annotation
+    * 
+    * @param injectionPoints A set of injection points to inspect
+    * @param beans A set of beans to add the Event beans to
+    */
+   private void registerEvents(Set<AnnotatedItem<?, ?>> injectionPoints, Set<AbstractBean<?, ?>> beans)
+   {
+      for (AnnotatedItem<?, ?> injectionPoint : injectionPoints)
+      {
+         registerEvent(injectionPoint, beans);
+      }
+   }
+
+   private void registerEvent(AnnotatedItem<?, ?> injectionPoint, Set<AbstractBean<?, ?>> beans)
+   {
+      if (injectionPoint.isAnnotationPresent(Fires.class))
+      {
+         // TODO Fix this!
+         @SuppressWarnings("unchecked")
+         EventBean<Object, Method> eventBean = EventBean.of((AnnotatedItem) injectionPoint, manager);
+         beans.add(eventBean);
+         log.info("Web Bean: " + eventBean);
+      }
+   }
+   
+   /**
+    * Indicates if the type is a simple Web Bean
+    * 
+    * @param type The type to inspect
+    * @return True if simple Web Bean, false otherwise
+    */
+   private boolean isTypeSimpleWebBean(Class<?> type)
+   {
+      EJBApiAbstraction ejbApiAbstraction = new EJBApiAbstraction(manager.getResourceLoader());
+      JSFApiAbstraction jsfApiAbstraction = new JSFApiAbstraction(manager.getResourceLoader());
+      ServletApiAbstraction servletApiAbstraction = new ServletApiAbstraction(manager.getResourceLoader());
+      // TODO: check 3.2.1 for more rules!!!!!!
+      return !type.isAnnotation() && !Reflections.isAbstract(type) && !servletApiAbstraction.SERVLET_CLASS.isAssignableFrom(type) && !servletApiAbstraction.FILTER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.SERVLET_CONTEXT_LISTENER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.HTTP_SESSION_LISTENER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.SERVLET_REQUEST_LISTENER_CLASS.isAssignableFrom(type) && !ejbApiAbstraction.ENTERPRISE_BEAN_CLASS.isAssignableFrom(type) && !jsfApiAbstraction.UICOMPONENT_CLASS.isAssignableFrom(type) && hasSimpleWebBeanConstructor(type);
+   }
+   
+
+
+   private static boolean hasSimpleWebBeanConstructor(Class<?> type)
+   {
+      try
+      {
+         type.getDeclaredConstructor();
+         return true;
+      }
+      catch (NoSuchMethodException nsme)
+      {
+         for (Constructor<?> c : type.getDeclaredConstructors())
+         {
+            if (c.isAnnotationPresent(Initializer.class))
+               return true;
+         }
+         return false;
+      }
+   }
+}


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

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-20 14:09:25 UTC (rev 1126)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-01-20 14:11:11 UTC (rev 1127)
@@ -17,58 +17,24 @@
 
 package org.jboss.webbeans.bootstrap;
 
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-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.List;
-import java.util.Set;
 
-import javax.webbeans.DefinitionException;
-import javax.webbeans.Fires;
-import javax.webbeans.Initializer;
-import javax.webbeans.Observer;
-import javax.webbeans.Observes;
-import javax.webbeans.Obtains;
-import javax.webbeans.Produces;
-import javax.webbeans.manager.Bean;
-
 import org.jboss.webbeans.CurrentManager;
 import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.bean.AbstractBean;
-import org.jboss.webbeans.bean.AbstractClassBean;
-import org.jboss.webbeans.bean.EnterpriseBean;
-import org.jboss.webbeans.bean.EventBean;
-import org.jboss.webbeans.bean.InstanceBean;
-import org.jboss.webbeans.bean.NewEnterpriseBean;
-import org.jboss.webbeans.bean.NewSimpleBean;
-import org.jboss.webbeans.bean.ProducerFieldBean;
-import org.jboss.webbeans.bean.ProducerMethodBean;
 import org.jboss.webbeans.bean.SimpleBean;
 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;
-import org.jboss.webbeans.event.ObserverImpl;
 import org.jboss.webbeans.introspector.AnnotatedClass;
-import org.jboss.webbeans.introspector.AnnotatedField;
-import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.AnnotatedMethod;
 import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
-import org.jboss.webbeans.jsf.JSFApiAbstraction;
 import org.jboss.webbeans.literal.DeployedLiteral;
 import org.jboss.webbeans.literal.InitializedLiteral;
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.resources.spi.NamingContext;
 import org.jboss.webbeans.resources.spi.ResourceLoader;
-import org.jboss.webbeans.servlet.ServletApiAbstraction;
 import org.jboss.webbeans.transaction.Transaction;
 import org.jboss.webbeans.util.BeanValidation;
-import org.jboss.webbeans.util.Reflections;
 
 /**
  * Common bootstrapping functionality that is run at application startup and
@@ -153,16 +119,6 @@
    }
 
    /**
-    * Register any beans defined by the provided classes with the getManager()
-    * 
-    * @param classes The classes to register
-    */
-   protected void registerBeans(Class<?>... classes)
-   {
-      registerBeans(new HashSet<Class<?>>(Arrays.asList(classes)));
-   }
-
-   /**
     * Register the bean with the getManager(), including any standard (built in)
     * beans
     * 
@@ -170,122 +126,15 @@
     */
    protected void registerBeans(Iterable<Class<?>> classes)
    {
-      Set<AbstractBean<?, ?>> beans = createBeans(classes);
-      beans.addAll(createStandardBeans());
-      getManager().setBeans(beans);
+      BeanDeployer beanDeployer = new BeanDeployer(manager);
+      beanDeployer.addClasses(classes);
+      beanDeployer.addBean(ManagerBean.of(manager));
+      beanDeployer.addClass(Transaction.class);
+      beanDeployer.deploy();
    }
 
 
-
    /**
-    * Creates the standard beans used internally by the RI
-    * 
-    * @return A set containing the created beans
-    */
-   protected Set<AbstractBean<?, ?>> createStandardBeans()
-   {
-      Set<AbstractBean<?, ?>> beans = new HashSet<AbstractBean<?, ?>>();
-      createSimpleBean(Transaction.class, beans);
-      beans.add(ManagerBean.of(manager));
-      return beans;
-   }
-   
-   private <T> void createSimpleBean(Class<T> clazz, Set<AbstractBean<?, ?>> beans)
-   {
-      AnnotatedClass<T> annotatedClass = AnnotatedClassImpl.of(clazz);
-      createBean(SimpleBean.of(annotatedClass, manager), annotatedClass, beans);
-   }
-
-   /**
-    * Creates Web Beans from a set of classes
-    * 
-    * Iterates over the classes and creates a Web Bean of the corresponding
-    * type. Also register the beans injection points with the resolver. If the
-    * bean has producer methods, producer beans are created for these and those
-    * injection points are also registered.
-    * 
-    * @param classes The classes to adapt
-    * @return A set of adapted Web Beans
-    */
-   protected Set<AbstractBean<?, ?>> createBeans(Iterable<Class<?>> classes)
-   {
-      Set<AbstractBean<?, ?>> beans = new HashSet<AbstractBean<?, ?>>();
-      for (Class<?> clazz : classes)
-      {
-         AnnotatedClass<?> annotatedClass = AnnotatedClassImpl.of(clazz);
-         if (getManager().getEjbDescriptorCache().containsKey(clazz))
-         {
-            createBean(EnterpriseBean.of(annotatedClass, getManager()), annotatedClass, beans);
-            beans.add(NewEnterpriseBean.of(annotatedClass, manager));
-         }
-         else if (isTypeSimpleWebBean(clazz))
-         {
-            createBean(SimpleBean.of(annotatedClass, manager), annotatedClass, beans);
-            beans.add(NewSimpleBean.of(annotatedClass, manager));
-         }
-      }
-      return beans;
-   }
-
-   /**
-    * Creates a Web Bean from a bean abstraction and adds it to the set of
-    * created beans
-    * 
-    * Also creates the implicit field- and method-level beans, if present
-    * 
-    * @param bean The bean representation
-    * @param beans The set of created beans
-    */
-   protected void createBean(AbstractClassBean<?> bean, AnnotatedClass<?> annotatedClass, Set<AbstractBean<?, ?>> beans)
-   {
-      beans.add(bean);
-      getManager().getResolver().addInjectionPoints(bean.getAnnotatedInjectionPoints());
-      for (AnnotatedMethod<?> producerMethod : annotatedClass.getDeclaredAnnotatedMethods(Produces.class))
-      {
-         ProducerMethodBean<?> producerMethodBean = ProducerMethodBean.of(producerMethod, bean, getManager());
-         beans.add(producerMethodBean);
-         getManager().getResolver().addInjectionPoints(producerMethodBean.getAnnotatedInjectionPoints());
-         registerEvents(producerMethodBean.getAnnotatedInjectionPoints(), beans);
-         log.info("Web Bean: " + producerMethodBean);
-      }
-      for (AnnotatedField<?> producerField : annotatedClass.getDeclaredAnnotatedFields(Produces.class))
-      {
-         ProducerFieldBean<?> producerFieldBean = ProducerFieldBean.of(producerField, bean, getManager());
-         beans.add(producerFieldBean);
-         log.info("Web Bean: " + producerFieldBean);
-      }
-      for (AnnotatedItem<?, ?> injectionPoint : bean.getAnnotatedInjectionPoints())
-      {
-         if (injectionPoint.isAnnotationPresent(Fires.class))
-         {
-            registerEvent(injectionPoint, beans);
-         }
-         if (injectionPoint.isAnnotationPresent(Obtains.class))
-         {
-            // TODO FIx this
-            @SuppressWarnings("unchecked")
-            InstanceBean<Object, Field> instanceBean = InstanceBean.of((AnnotatedItem) injectionPoint, getManager());
-            beans.add(instanceBean);
-            log.info("Web Bean: " + instanceBean);
-         }
-      }
-      for (AnnotatedMethod<?> observerMethod : annotatedClass.getDeclaredMethodsWithAnnotatedParameters(Observes.class))
-      {
-         ObserverImpl<?> observer = ObserverImpl.of(observerMethod, bean, getManager());
-         if (observerMethod.getAnnotatedParameters(Observes.class).size() == 1)
-         {
-            registerObserver(observer, observerMethod.getAnnotatedParameters(Observes.class).get(0).getType(), observerMethod.getAnnotatedParameters(Observes.class).get(0).getBindingTypesAsArray());
-         }
-         else
-         {
-            throw new DefinitionException("Observer method can only have one parameter annotated @Observes " + observer);
-         }
-
-      }
-      log.info("Web Bean: " + bean);
-   }
-
-   /**
     * Starts the boot process.
     * 
     * Discovers the beans and registers them with the getManager(). Also
@@ -304,7 +153,6 @@
          getManager().getEjbDescriptorCache().addAll(getEjbDiscovery().discoverEjbs());
          registerBeans(getWebBeanDiscovery().discoverWebBeanClasses());
          getManager().fireEvent(getManager(), new InitializedLiteral());
-         List<Bean<?>> beans = getManager().getBeans();
          log.info("Web Beans initialized. Validating beans.");
          getManager().getResolver().resolveInjectionPoints();
          BeanValidation.validate(getManager().getBeans());
@@ -323,79 +171,4 @@
       return pkg != null ? pkg.getImplementationVersion() : null;
    }
 
-   /**
-    * Registers an observer with the getManager()
-    * 
-    * @param observer The observer
-    * @param eventType The event type to observe
-    * @param bindings The binding types to observe on
-    */
-   private <T> void registerObserver(Observer<T> observer, Class<?> eventType, Annotation[] bindings)
-   {
-      // TODO Fix this!
-      @SuppressWarnings("unchecked")
-      Class<T> clazz = (Class<T>) eventType;
-      getManager().addObserver(observer, clazz, bindings);
-   }
-
-   /**
-    * Iterates through the injection points and creates and registers any Event
-    * observables specified with the @Observable annotation
-    * 
-    * @param injectionPoints A set of injection points to inspect
-    * @param beans A set of beans to add the Event beans to
-    */
-   private void registerEvents(Set<AnnotatedItem<?, ?>> injectionPoints, Set<AbstractBean<?, ?>> beans)
-   {
-      for (AnnotatedItem<?, ?> injectionPoint : injectionPoints)
-      {
-         registerEvent(injectionPoint, beans);
-      }
-   }
-
-   private void registerEvent(AnnotatedItem<?, ?> injectionPoint, Set<AbstractBean<?, ?>> beans)
-   {
-      if (injectionPoint.isAnnotationPresent(Fires.class))
-      {
-         // TODO Fix this!
-         @SuppressWarnings("unchecked")
-         EventBean<Object, Method> eventBean = EventBean.of((AnnotatedItem) injectionPoint, getManager());
-         beans.add(eventBean);
-         log.info("Web Bean: " + eventBean);
-      }
-   }
-
-   /**
-    * Indicates if the type is a simple Web Bean
-    * 
-    * @param type The type to inspect
-    * @return True if simple Web Bean, false otherwise
-    */
-   protected boolean isTypeSimpleWebBean(Class<?> type)
-   {
-      EJBApiAbstraction ejbApiAbstraction = new EJBApiAbstraction(getResourceLoader());
-      JSFApiAbstraction jsfApiAbstraction = new JSFApiAbstraction(getResourceLoader());
-      ServletApiAbstraction servletApiAbstraction = new ServletApiAbstraction(getResourceLoader());
-      // TODO: check 3.2.1 for more rules!!!!!!
-      return !type.isAnnotation() && !Reflections.isAbstract(type) && !servletApiAbstraction.SERVLET_CLASS.isAssignableFrom(type) && !servletApiAbstraction.FILTER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.SERVLET_CONTEXT_LISTENER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.HTTP_SESSION_LISTENER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.SERVLET_REQUEST_LISTENER_CLASS.isAssignableFrom(type) && !ejbApiAbstraction.ENTERPRISE_BEAN_CLASS.isAssignableFrom(type) && !jsfApiAbstraction.UICOMPONENT_CLASS.isAssignableFrom(type) && hasSimpleWebBeanConstructor(type);
-   }
-
-   private static boolean hasSimpleWebBeanConstructor(Class<?> type)
-   {
-      try
-      {
-         type.getDeclaredConstructor();
-         return true;
-      }
-      catch (NoSuchMethodException nsme)
-      {
-         for (Constructor<?> c : type.getDeclaredConstructors())
-         {
-            if (c.isAnnotationPresent(Initializer.class))
-               return true;
-         }
-         return false;
-      }
-   }
-
 }

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-20 14:09:25 UTC (rev 1126)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/MockBootstrap.java	2009-01-20 14:11:11 UTC (rev 1127)
@@ -171,7 +171,6 @@
       this.resourceLoader = new MockResourceLoader();
       this.mockNaming = new MockNaming();
       initManager(mockNaming, MOCK_EJB_RESOLVER, resourceLoader);
-      registerStandardBeans();
       setupContexts();
    }
    
@@ -183,11 +182,6 @@
       getManager().addContext(new MockDependentContext());
    }
    
-   protected void registerStandardBeans()
-   {
-      getManager().setBeans(createStandardBeans());
-   }
-   
    public void setWebBeanDiscovery(WebBeanDiscovery webBeanDiscovery)
    {
       this.webBeanDiscovery = webBeanDiscovery;

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java	2009-01-20 14:09:25 UTC (rev 1126)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java	2009-01-20 14:11:11 UTC (rev 1127)
@@ -7,9 +7,20 @@
 public class ManagerTest extends AbstractTest
 {
    @Test(groups={"manager", "injection", "deployment"}) @SpecAssertion(section="5.8")
-   public void testInjectingManager()
+   public void testInjectingManager() throws Exception
    {
-      FishFarmOffice fishFarmOffice = createSimpleBean(FishFarmOffice.class).create();
-      assert fishFarmOffice.manager != null;
+      deployBeans(FishFarmOffice.class);
+      new RunInDependentContext()
+      {
+         
+         @Override
+         protected void execute() throws Exception
+         {
+            FishFarmOffice fishFarmOffice = manager.getInstanceByType(FishFarmOffice.class);
+            assert fishFarmOffice.manager != null;
+         }
+         
+      }.run();
+      
    }  
 }




More information about the weld-commits mailing list