[webbeans-commits] Webbeans SVN: r3699 - in ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans: bootstrap and 1 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Sep 17 13:28:49 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-09-17 13:28:48 -0400 (Thu, 17 Sep 2009)
New Revision: 3699

Modified:
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderImpl.java
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployment.java
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
   ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java
Log:
Get rid of  (Extension)BeanDeployer.createBeans(), pull down AbstractBeanDeployer.deploy(). Move the ProducerField stuff from AbstractBeanDeployer into the builder/sorter and get rid of the unused methods

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderImpl.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderImpl.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderImpl.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -52,8 +52,11 @@
 import org.jboss.webbeans.bean.builder.spi.DecoratorBeanBuilder;
 import org.jboss.webbeans.bean.builder.spi.EnterpriseBeanBuilder;
 import org.jboss.webbeans.bean.builder.spi.SimpleBeanBuilder;
+import org.jboss.webbeans.bean.ee.EEResourceProducerField;
+import org.jboss.webbeans.bean.ee.PersistenceContextProducerField;
 import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
 import org.jboss.webbeans.bootstrap.ProcessObserverMethodImpl;
+import org.jboss.webbeans.ejb.EJBApiAbstraction;
 import org.jboss.webbeans.ejb.InternalEjbDescriptor;
 import org.jboss.webbeans.ejb.spi.EjbDescriptor;
 import org.jboss.webbeans.event.ObserverFactory;
@@ -61,7 +64,9 @@
 import org.jboss.webbeans.introspector.WBClass;
 import org.jboss.webbeans.introspector.WBField;
 import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.persistence.PersistenceApiAbstraction;
 import org.jboss.webbeans.resources.ClassTransformer;
+import org.jboss.webbeans.ws.WSApiAbstraction;
 
 /**
  * 
@@ -304,7 +309,20 @@
 
    protected <T> void createProducerField(Set<Bean<?>> beans, AbstractClassBean<?> declaringBean, WBField<T, ?> field)
    {
-      ProducerField<T> bean = ProducerField.of(field, declaringBean, beanManager);
+      ProducerField<T> bean;
+      if (isPersistenceContextProducerField(field))
+      {
+         bean = PersistenceContextProducerField.of(field, declaringBean, beanManager);
+      }
+      else if (isEEResourceProducerField(field))
+      {
+         bean = EEResourceProducerField.of(field, declaringBean, beanManager);
+      }
+      else
+      {
+         bean = ProducerField.of(field, declaringBean, beanManager);
+      }
+      
       beanDeployerEnvironment.addBean(bean);
       beans.add(bean);
       if (!delayInitialization)
@@ -355,4 +373,20 @@
       
       return new InternalEjbDescriptor<T>(ejbDescriptor);
    }
+   
+   protected boolean isEEResourceProducerField(WBField<?, ?> field)
+   {
+      EJBApiAbstraction ejbApiAbstraction = beanManager.getServices().get(EJBApiAbstraction.class);
+      PersistenceApiAbstraction persistenceApiAbstraction = beanManager.getServices().get(PersistenceApiAbstraction.class);
+      WSApiAbstraction wsApiAbstraction = beanManager.getServices().get(WSApiAbstraction.class);
+      return field.isAnnotationPresent(ejbApiAbstraction.EJB_ANNOTATION_CLASS) || field.isAnnotationPresent(ejbApiAbstraction.RESOURCE_ANNOTATION_CLASS) || field.isAnnotationPresent(persistenceApiAbstraction.PERSISTENCE_UNIT_ANNOTATION_CLASS) || field.isAnnotationPresent(wsApiAbstraction.WEB_SERVICE_REF_ANNOTATION_CLASS); 
+   }
+   
+   protected boolean isPersistenceContextProducerField(WBField<?, ?> field)
+   {
+      PersistenceApiAbstraction persistenceApiAbstraction = beanManager.getServices().get(PersistenceApiAbstraction.class);
+      return field.isAnnotationPresent(persistenceApiAbstraction.PERSISTENCE_CONTEXT_ANNOTATION_CLASS); 
+   }
+         
+
 }

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/AbstractBeanDeployer.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -16,35 +16,11 @@
  */
 package org.jboss.webbeans.bootstrap;
 
-import java.util.Set;
-
-import javax.inject.Inject;
-
 import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.bean.DecoratorImpl;
-import org.jboss.webbeans.bean.RIBean;
 import org.jboss.webbeans.bean.builder.InternalBeanBuilderFactory;
-import org.jboss.webbeans.bean.builder.spi.DecoratorBeanBuilder;
-import org.jboss.webbeans.bean.builder.spi.EnterpriseBeanBuilder;
-import org.jboss.webbeans.bean.builder.spi.SimpleBeanBuilder;
-import org.jboss.webbeans.ejb.EJBApiAbstraction;
-import org.jboss.webbeans.ejb.InternalEjbDescriptor;
-import org.jboss.webbeans.event.ObserverMethodImpl;
-import org.jboss.webbeans.introspector.WBClass;
-import org.jboss.webbeans.introspector.WBField;
-import org.jboss.webbeans.jsf.JsfApiAbstraction;
-import org.jboss.webbeans.log.LogProvider;
-import org.jboss.webbeans.log.Logging;
-import org.jboss.webbeans.persistence.PersistenceApiAbstraction;
-import org.jboss.webbeans.servlet.ServletApiAbstraction;
-import org.jboss.webbeans.util.Reflections;
-import org.jboss.webbeans.ws.WSApiAbstraction;
 
-public class AbstractBeanDeployer
-{
-   
-   private static final LogProvider log = Logging.getLogProvider(AbstractBeanDeployer.class);
-   
+public abstract class AbstractBeanDeployer
+{   
    private final BeanManagerImpl manager;
    private final BeanDeployerEnvironment environment;
    
@@ -68,96 +44,6 @@
       return beanBuilderFactory;
    }
    
-   public AbstractBeanDeployer deploy()
-   {
-      Set<RIBean<?>> beans = getEnvironment().getBeans();
-      // ensure that all decorators are initialized before initializing 
-      // the rest of the beans
-      for (DecoratorImpl<?> bean : getEnvironment().getDecorators())
-      {
-         bean.initialize(getEnvironment());
-         manager.addDecorator(bean);
-         log.debug("Bean: " + bean);
-      }
-      for (RIBean<?> bean : beans)
-      {
-         bean.initialize(getEnvironment());
-         manager.addBean(bean);
-         log.debug("Bean: " + bean);
-      }
-      for (ObserverMethodImpl<?, ?> observer : getEnvironment().getObservers())
-      {
-         log.debug("Observer : " + observer);
-         if (observer instanceof ObserverMethodImpl<?, ?>)
-         {
-            observer.initialize();
-         }
-         manager.addObserver(observer);
-      }
-      
-      return this;
-   }
-
-   protected <T> void createSimpleBean(WBClass<T> annotatedClass)
-   {
-   	SimpleBeanBuilder<T> builder = beanBuilderFactory.getInternalSimpleBeanBuilder(manager, annotatedClass);
-   }
-   
-   protected <T> void createDecorator(WBClass<T> annotatedClass)
-   {
-   	DecoratorBeanBuilder<T> builder = beanBuilderFactory.getInternalDecoratorBeanBuilder(manager, annotatedClass);
-   }
-   
-   protected <T> void createEnterpriseBean(InternalEjbDescriptor<T> ejbDescriptor)
-   {
-     // TODO Don't create enterprise bean if it has no local interfaces!
-	   EnterpriseBeanBuilder<T> builder = beanBuilderFactory.getInternalEnterpriseBeanBuilder(manager, ejbDescriptor);
-   }
-   
-   /**
-    * 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 isTypeManagedBeanOrDecorator(WBClass<?> clazz)
-   {
-      Class<?> javaClass = clazz.getJavaClass();
-      EJBApiAbstraction ejbApiAbstraction = manager.getServices().get(EJBApiAbstraction.class);
-      JsfApiAbstraction jsfApiAbstraction = manager.getServices().get(JsfApiAbstraction.class);
-      ServletApiAbstraction servletApiAbstraction = manager.getServices().get(ServletApiAbstraction.class);
-      return !clazz.isNonStaticMemberClass() &&
-             !Reflections.isParamerterizedTypeWithWildcard(javaClass) && 
-             !servletApiAbstraction.SERVLET_CLASS.isAssignableFrom(javaClass) && 
-             !servletApiAbstraction.FILTER_CLASS.isAssignableFrom(javaClass) && 
-             !servletApiAbstraction.SERVLET_CONTEXT_LISTENER_CLASS.isAssignableFrom(javaClass) && 
-             !servletApiAbstraction.HTTP_SESSION_LISTENER_CLASS.isAssignableFrom(javaClass) && 
-             !servletApiAbstraction.SERVLET_REQUEST_LISTENER_CLASS.isAssignableFrom(javaClass) && 
-             !ejbApiAbstraction.ENTERPRISE_BEAN_CLASS.isAssignableFrom(javaClass) && 
-             !jsfApiAbstraction.UICOMPONENT_CLASS.isAssignableFrom(javaClass) && 
-             hasSimpleWebBeanConstructor(clazz);
-   }
-   
-   protected boolean isEEResourceProducerField(WBField<?, ?> field)
-   {
-      EJBApiAbstraction ejbApiAbstraction = manager.getServices().get(EJBApiAbstraction.class);
-      PersistenceApiAbstraction persistenceApiAbstraction = manager.getServices().get(PersistenceApiAbstraction.class);
-      WSApiAbstraction wsApiAbstraction = manager.getServices().get(WSApiAbstraction.class);
-      return field.isAnnotationPresent(ejbApiAbstraction.EJB_ANNOTATION_CLASS) || field.isAnnotationPresent(ejbApiAbstraction.RESOURCE_ANNOTATION_CLASS) || field.isAnnotationPresent(persistenceApiAbstraction.PERSISTENCE_UNIT_ANNOTATION_CLASS) || field.isAnnotationPresent(wsApiAbstraction.WEB_SERVICE_REF_ANNOTATION_CLASS); 
-   }
-   
-   protected boolean isPersistenceContextProducerField(WBField<?, ?> field)
-   {
-      PersistenceApiAbstraction persistenceApiAbstraction = manager.getServices().get(PersistenceApiAbstraction.class);
-      return field.isAnnotationPresent(persistenceApiAbstraction.PERSISTENCE_CONTEXT_ANNOTATION_CLASS); 
-   }
-   
-   private static boolean hasSimpleWebBeanConstructor(WBClass<?> type)
-   {
-      return type.getNoArgsWBConstructor() != null || type.getAnnotatedWBConstructors(Inject.class).size() > 0;
-   }
-      
    public BeanDeployerEnvironment getEnvironment()
    {
       return environment;

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -120,12 +120,6 @@
       return this;
    }
 
-   public AbstractBeanDeployer createBeans()
-   {
-      return this;
-   }
-
-   @Override
    public AbstractBeanDeployer deploy()
    {
       Sorter sorter = Sorter.createSorter(getManager(), classes, getEnvironment().getEjbDescriptors());

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployment.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployment.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployment.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -132,7 +132,6 @@
          beanDeployer.addClass(NumericConversationIdGenerator.class);
          beanDeployer.addClass(HttpSessionManager.class);
       }
-      beanDeployer.createBeans().deploy();
+      beanDeployer.deploy();
    }
-
 }

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -44,35 +44,35 @@
       this.extensions = new HashSet<Extension>();
    }
    
-   public AbstractBeanDeployer createBeans()
+   public void addExtensions(Iterable<Extension> extensions)
    {
+      for (Extension extension : extensions)
+      {
+         addExtension(extension);
+      }
+   }
+   
+   public void addExtension(Extension extension)
+   {
+      this.extensions.add(extension);
+   }
+
+   public AbstractBeanDeployer deploy()
+   {
       ClassTransformer classTransformer = Container.instance().deploymentServices().get(ClassTransformer.class);
       for (Extension extension : extensions)
       {
-         @SuppressWarnings("unchecked")
          WBClass<Extension> clazz = (WBClass<Extension>) classTransformer.loadClass(extension.getClass());
          
          ExtensionBean bean = new ExtensionBean(getManager(), clazz, extension);
          bean.initialize(getEnvironment());
          getEnvironment().addBean(bean);
+         getManager().addBean(bean);
          
          InternalObserverMethodBuilder<Extension> observerMethodBuilder = getBeanBuilderFactory().getInternalObserverMethodBuilder(getManager(), clazz);
          observerMethodBuilder.createObserverMethods(bean, clazz);
       }
       return this;
    }
-   
-   public void addExtensions(Iterable<Extension> extensions)
-   {
-      for (Extension extension : extensions)
-      {
-         addExtension(extension);
-      }
-   }
-   
-   public void addExtension(Extension extension)
-   {
-      this.extensions.add(extension);
-   }
 
 }

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -248,7 +248,7 @@
          
          ExtensionBeanDeployer extensionBeanDeployer = new ExtensionBeanDeployer(deploymentManager);
          extensionBeanDeployer.addExtensions(ServiceLoader.load(Extension.class));
-         extensionBeanDeployer.createBeans().deploy();
+         extensionBeanDeployer.deploy();
          
          // Add the Deployment BeanManager Bean to the Deployment BeanManager
          deploymentManager.addBean(new ManagerBean(deploymentManager));

Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java	2009-09-17 16:23:54 UTC (rev 3698)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java	2009-09-17 17:28:48 UTC (rev 3699)
@@ -165,7 +165,6 @@
     */
    protected boolean isTypeManagedBeanOrDecorator(WBClass<?> clazz)
    {
-      //FIXME duplicates AbstractBeanDeployer.isTypeManagedBeanOrDecorator() - extract utility method
       Class<?> javaClass = clazz.getJavaClass();
 
       return !clazz.isNonStaticMemberClass() &&




More information about the weld-commits mailing list