[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