[webbeans-commits] Webbeans SVN: r3704 - ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 17:41:23 -0400 (Thu, 17 Sep 2009)
New Revision: 3704
Modified:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java
Log:
Unused imports
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java 2009-09-17 21:41:23 UTC (rev 3704)
@@ -21,10 +21,8 @@
*/
package org.jboss.webbeans.builder.sorter;
-import java.util.HashSet;
import java.util.Set;
-import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.ObserverMethod;
import org.jboss.webbeans.BeanManagerImpl;
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java 2009-09-17 21:41:23 UTC (rev 3704)
@@ -21,11 +21,6 @@
*/
package org.jboss.webbeans.builder.sorter;
-import java.util.Collections;
-import java.util.Set;
-
-import javax.enterprise.inject.spi.Bean;
-
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3703 - in ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans: builder/sorter and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 17:25:02 -0400 (Thu, 17 Sep 2009)
New Revision: 3703
Removed:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java
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/builder/sorter/ClassBeanDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java
Log:
Build and deploy the beans from within the deployment items
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 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -21,18 +21,12 @@
import java.util.Set;
import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.ObserverMethod;
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.Container;
-import org.jboss.webbeans.bean.DecoratorImpl;
import org.jboss.webbeans.bean.builtin.AbstractBuiltInBean;
-import org.jboss.webbeans.builder.sorter.DecoratorDeploymentItem;
import org.jboss.webbeans.builder.sorter.DeploymentItem;
-import org.jboss.webbeans.builder.sorter.DeploymentSorterAction;
-import org.jboss.webbeans.builder.sorter.SessionBeanDeploymentItem;
-import org.jboss.webbeans.builder.sorter.ManagedBeanDeploymentItem;
import org.jboss.webbeans.builder.sorter.Sorter;
import org.jboss.webbeans.ejb.EjbDescriptors;
import org.jboss.webbeans.event.ObserverMethodImpl;
@@ -114,12 +108,10 @@
Sorter sorter = Sorter.createSorter(getManager(), classes, getEnvironment().getEjbDescriptors());
List<DeploymentItem<?>> sortedItems = sorter.sort();
- DeploymentItemDeployerAction deployerAction = new DeploymentItemDeployerAction();
Set<ObserverMethod<?, ?>> observers = new HashSet<ObserverMethod<?, ?>>();
for (DeploymentItem<?> item : sortedItems)
{
- item.executeAction(deployerAction);
- observers.addAll(item.getObserverMethods(getManager(), getEnvironment()));
+ observers.addAll(item.deployBeans(getManager(), getEnvironment()));
}
for (ObserverMethod<?, ?> observer : observers)
@@ -139,42 +131,4 @@
getEnvironment().addBean(bean);
getManager().addBean(bean);
}
-
- private class DeploymentItemDeployerAction implements DeploymentSorterAction
- {
- public Object execute(SessionBeanDeploymentItem<?> deploymentItem)
- {
- return deployBean(deploymentItem);
- }
-
- public Object execute(ManagedBeanDeploymentItem<?> deploymentItem)
- {
- return deployBean(deploymentItem);
- }
-
- public Object execute(DecoratorDeploymentItem<?> deploymentItem)
- {
- Set<Bean<?>> beans = deploymentItem.getBeans(getManager(), getEnvironment());
- if (beans.size() != 1)
- throw new IllegalStateException("Expected exactly one bean: " + beans);
-
- Bean<?> bean = beans.iterator().next();
-
- //TODO remove this cast
- getManager().addDecorator((DecoratorImpl<?>)bean);
- log.debug("Decorator: " + bean);
- return null;
- }
-
- private Object deployBean(DeploymentItem<?> deploymentItem)
- {
- Set<Bean<?>> beans = deploymentItem.getBeans(getManager(), getEnvironment());
- for (Bean<?> bean : beans)
- {
- getManager().addBean(bean);
- log.debug("Bean: " + bean);
- }
- return null;
- }
- }
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java 2009-09-17 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -28,9 +28,14 @@
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.Specializes;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.ObserverMethod;
+import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.WBMethod;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
/**
*
@@ -39,6 +44,8 @@
*/
public abstract class ClassBeanDeploymentItem<T> extends DeploymentItem<T>
{
+ private static final LogProvider log = Logging.getLogProvider(ClassBeanDeploymentItem.class);
+
private boolean initialized;
private final Sorter sorter;
@@ -99,4 +106,19 @@
{
return sorter.findDeploymentItem(clazz);
}
+
+ @Override
+ void deployBeans(BeanManagerImpl manager)
+ {
+ for (Bean<?> bean : getBeans())
+ {
+ manager.addBean(bean);
+ log.debug("Bean: " + bean);
+ }
+ }
+
+ void setValues(Set<ObserverMethod<T, ?>> observers, Set<Bean<?>> beans)
+ {
+ super.setValues(observers, beans.toArray(new Bean<?>[beans.size()]));
+ }
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java 2009-09-17 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -28,10 +28,13 @@
import javax.enterprise.inject.spi.ObserverMethod;
import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.bean.DecoratorImpl;
import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
import org.jboss.webbeans.bean.builder.spi.DecoratorBeanBuilder;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
/**
*
@@ -40,6 +43,8 @@
*/
public class DecoratorDeploymentItem<T> extends DeploymentItem<T>
{
+ private static final LogProvider log = Logging.getLogProvider(ClassBeanDeploymentItem.class);
+
private DecoratorDeploymentItem(WBClass<T> clazz)
{
super(clazz);
@@ -54,20 +59,19 @@
public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
{
DecoratorBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getDecoratorBeanBuilder(manager, getWBClass());
- setValues(createSet(builder.getBean()), (Set<ObserverMethod<T, ?>>)null);
+ setValues((Set<ObserverMethod<T, ?>>)null, builder.getBean());
}
- private Set<Bean<?>> createSet(Bean<T> bean)
- {
- @SuppressWarnings("unchecked")
- Set<Bean<?>> beans = new HashSet();
- beans.add(bean);
- return beans;
- }
-
@Override
- public void executeAction(DeploymentSorterAction action)
+ void deployBeans(BeanManagerImpl manager)
{
- action.execute(this);
+ if (getBeans() == null)
+ throw new IllegalStateException("Beans not initialized");
+ if (getBeans().length != 1)
+ throw new IllegalStateException("Expected exactly one bean: " + getBeans());
+
+ //TODO remove this cast
+ manager.addDecorator((DecoratorImpl<?>)getBeans()[0]);
+ log.debug("Decorator: " + getBeans()[0]);
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java 2009-09-17 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -46,9 +46,9 @@
// Cached string representation
private String toString;
- Set<Bean<?>> beans;
+ private Bean<?>[] beans;
- Set<ObserverMethod<T, ?>> observers;
+ private Set<ObserverMethod<T, ?>> observers;
DeploymentItem(WBClass<T> clazz)
{
@@ -97,12 +97,15 @@
return toString;
}
- abstract void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment);
-
- public abstract void executeAction(DeploymentSorterAction action);
-
- void setValues(Set<Bean<?>> beans, Set<ObserverMethod<T, ?>> observers)
+ public Set<ObserverMethod<T, ?>> deployBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
{
+ initialiseBeans(manager, environment);
+ deployBeans(manager);
+ return observers;
+ }
+
+ void setValues(Set<ObserverMethod<T, ?>> observers, Bean<?>...beans)
+ {
if (beans == null)
throw new IllegalArgumentException("Null beans");
@@ -112,21 +115,14 @@
else
this.observers = observers;
}
-
- public Set<Bean<?>> getBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
+
+ Bean<?>[] getBeans()
{
- if (beans == null)
- initialiseBeans(manager, environment);
-
return beans;
}
- public Set<ObserverMethod<T, ?>> getObserverMethods(BeanManagerImpl manager, BeanDeployerEnvironment environment)
- {
- if (beans == null)
- initialiseBeans(manager, environment);
-
- return observers;
- }
+ abstract void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment);
+
+ abstract void deployBeans(BeanManagerImpl manager);
}
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java 2009-09-17 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -1,36 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.webbeans.builder.sorter;
-
-/**
- *
- * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public interface DeploymentSorterAction
-{
- Object execute(SessionBeanDeploymentItem<?> deploymentItem);
-
- Object execute(ManagedBeanDeploymentItem<?> deploymentItem);
-
- Object execute(DecoratorDeploymentItem<?> deploymentItem);
-}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java 2009-09-17 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -21,6 +21,11 @@
*/
package org.jboss.webbeans.builder.sorter;
+import java.util.Collections;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
+
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
@@ -60,12 +65,6 @@
public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
{
SimpleBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getSimpleBeanBuilder(manager, getWBClass());
- setValues(builder.getBeans(), builder.getObserverMethods());
+ setValues(builder.getObserverMethods(), builder.getBeans());
}
-
- @Override
- public void executeAction(DeploymentSorterAction action)
- {
- action.execute(this);
- }
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java 2009-09-17 20:47:40 UTC (rev 3702)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java 2009-09-17 21:25:02 UTC (rev 3703)
@@ -67,12 +67,6 @@
public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
{
EnterpriseBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getEnterpriseBeanBuilder(manager, ejbDescriptor);
- setValues(builder.getBeans(), builder.getObserverMethods());
+ setValues(builder.getObserverMethods(), builder.getBeans());
}
-
- @Override
- public void executeAction(DeploymentSorterAction action)
- {
- action.execute(this);
- }
}
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3702 - ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 16:47:40 -0400 (Thu, 17 Sep 2009)
New Revision: 3702
Added:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java
Log:
Add to DeploymentItem hierarchy
Added: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java (rev 0)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ClassBeanDeploymentItem.java 2009-09-17 20:47:40 UTC (rev 3702)
@@ -0,0 +1,102 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.webbeans.builder.sorter;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.Specializes;
+
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBMethod;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class ClassBeanDeploymentItem<T> extends DeploymentItem<T>
+{
+ private boolean initialized;
+
+ private final Sorter sorter;
+
+ private List<ClassBeanDeploymentItem<?>> dependencies = Collections.emptyList();
+
+ ClassBeanDeploymentItem(Sorter sorter, WBClass<T> clazz)
+ {
+ super(clazz);
+ this.sorter = sorter;
+ }
+
+ abstract ClassBeanDeploymentItem<? super T> getSuperClassDependency();
+
+ void initialize()
+ {
+ if (!initialized)
+ {
+ if (isSpecializing())
+ {
+ addDependency(getSuperClassDependency());
+ }
+ else
+ {
+ Set<WBMethod<?, ?>> producerMethods = getWBClass().getDeclaredWBAnnotatedMethods(Produces.class);
+ if (!producerMethods.isEmpty())
+ {
+ for (WBMethod<?, ?> producerMethod : producerMethods)
+ {
+ if (producerMethod.getAnnotation(Specializes.class) != null)
+ {
+ addDependency(getSuperClassDependency());
+ break;
+ }
+ }
+ }
+ }
+
+ initialized = true;
+ }
+ }
+
+ void addDependency(ClassBeanDeploymentItem<?> dependency)
+ {
+ if (dependencies == Collections.EMPTY_LIST)
+ dependencies = new ArrayList<ClassBeanDeploymentItem<?>>();
+
+ dependencies.add(dependency);
+ }
+
+ List<ClassBeanDeploymentItem<?>> getDependencies()
+ {
+ initialize();
+ return dependencies;
+ }
+
+ ClassBeanDeploymentItem<? super T> findDeploymentItem(WBClass<?> clazz)
+ {
+ return sorter.findDeploymentItem(clazz);
+ }
+}
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3701 - in ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans: builder/sorter and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 16:45:33 -0400 (Thu, 17 Sep 2009)
New Revision: 3701
Added:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java
Removed:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/EjbDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SimpleDeploymentItem.java
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/builder/sorter/DecoratorDeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java
Log:
Tidy up the Sorter + DeploymentItem hierarchy
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 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -31,8 +31,8 @@
import org.jboss.webbeans.builder.sorter.DecoratorDeploymentItem;
import org.jboss.webbeans.builder.sorter.DeploymentItem;
import org.jboss.webbeans.builder.sorter.DeploymentSorterAction;
-import org.jboss.webbeans.builder.sorter.EjbDeploymentItem;
-import org.jboss.webbeans.builder.sorter.SimpleDeploymentItem;
+import org.jboss.webbeans.builder.sorter.SessionBeanDeploymentItem;
+import org.jboss.webbeans.builder.sorter.ManagedBeanDeploymentItem;
import org.jboss.webbeans.builder.sorter.Sorter;
import org.jboss.webbeans.ejb.EjbDescriptors;
import org.jboss.webbeans.event.ObserverMethodImpl;
@@ -142,12 +142,12 @@
private class DeploymentItemDeployerAction implements DeploymentSorterAction
{
- public Object execute(EjbDeploymentItem<?> deploymentItem)
+ public Object execute(SessionBeanDeploymentItem<?> deploymentItem)
{
return deployBean(deploymentItem);
}
- public Object execute(SimpleDeploymentItem<?> deploymentItem)
+ public Object execute(ManagedBeanDeploymentItem<?> deploymentItem)
{
return deployBean(deploymentItem);
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java 2009-09-17 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DecoratorDeploymentItem.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -21,7 +21,6 @@
*/
package org.jboss.webbeans.builder.sorter;
-import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -41,15 +40,14 @@
*/
public class DecoratorDeploymentItem<T> extends DeploymentItem<T>
{
- DecoratorDeploymentItem(Set<DeploymentItem<?>> allItems, WBClass<T> clazz)
+ private DecoratorDeploymentItem(WBClass<T> clazz)
{
- super(allItems, clazz);
+ super(clazz);
}
-
- @Override
- DeploymentItem<T> getSuperClassDependency()
+
+ static <T> DecoratorDeploymentItem<T> createItem(WBClass<T> clazz)
{
- return null;
+ return new DecoratorDeploymentItem<T>(clazz);
}
@Override
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java 2009-09-17 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -21,12 +21,9 @@
*/
package org.jboss.webbeans.builder.sorter;
-import java.util.ArrayList;
import java.util.Collections;
-import java.util.List;
import java.util.Set;
-import javax.enterprise.inject.Produces;
import javax.enterprise.inject.Specializes;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.ObserverMethod;
@@ -34,7 +31,6 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBClass;
-import org.jboss.webbeans.introspector.WBMethod;
/**
*
@@ -43,12 +39,6 @@
*/
public abstract class DeploymentItem<T>
{
- private final Set<DeploymentItem<?>> allItems;
-
- private boolean initialized;
-
- private List<DeploymentItem<?>> dependencies = Collections.emptyList();
-
private WBClass<T> clazz;
private volatile int hashCode;
@@ -60,74 +50,16 @@
Set<ObserverMethod<T, ?>> observers;
- DeploymentItem(Set<DeploymentItem<?>> allItems, WBClass<T> clazz)
+ DeploymentItem(WBClass<T> clazz)
{
- this.allItems = allItems;
this.clazz = clazz;
}
- void initialize()
- {
- if (!initialized)
- {
- if (isSpecializing())
- {
- addDependency(getSuperClassDependency());
- }
- else
- {
- Set<WBMethod<?, ?>> producerMethods = getWBClass().getDeclaredWBAnnotatedMethods(Produces.class);
- if (!producerMethods.isEmpty())
- {
- for (WBMethod<?, ?> producerMethod : producerMethods)
- {
- if (producerMethod.getAnnotation(Specializes.class) != null)
- {
- addDependency(getSuperClassDependency());
- break;
- }
- }
- }
- }
-
- initialized = true;
- }
- }
-
-
-
- void addDependency(DeploymentItem<?> dependency)
- {
- if (dependencies == Collections.EMPTY_LIST)
- dependencies = new ArrayList<DeploymentItem<?>>();
-
- dependencies.add(dependency);
- }
-
-
- <X> DeploymentItem<X> findDeploymentItem(DeploymentItem<X> item)
- {
- for (DeploymentItem<?> candidate : allItems)
- {
- if (candidate.equals(item))
- return (DeploymentItem<X>)candidate;
- }
- return null;
- }
-
- abstract DeploymentItem<? super T> getSuperClassDependency();
-
public WBClass<T> getWBClass()
{
return clazz;
}
- List<DeploymentItem<?>> getDependencies()
- {
- initialize();
- return dependencies;
- }
-
boolean isSpecializing()
{
return clazz.isAnnotationPresent(Specializes.class);
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java 2009-09-17 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentSorterAction.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -28,9 +28,9 @@
*/
public interface DeploymentSorterAction
{
- Object execute(EjbDeploymentItem<?> deploymentItem);
+ Object execute(SessionBeanDeploymentItem<?> deploymentItem);
- Object execute(SimpleDeploymentItem<?> deploymentItem);
+ Object execute(ManagedBeanDeploymentItem<?> deploymentItem);
Object execute(DecoratorDeploymentItem<?> deploymentItem);
}
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/EjbDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/EjbDeploymentItem.java 2009-09-17 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/EjbDeploymentItem.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -1,93 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.webbeans.builder.sorter;
-
-import java.util.Collections;
-import java.util.Set;
-
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.ObserverMethod;
-
-import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
-import org.jboss.webbeans.bean.builder.spi.EnterpriseBeanBuilder;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.ejb.EjbDescriptors;
-import org.jboss.webbeans.ejb.InternalEjbDescriptor;
-import org.jboss.webbeans.introspector.WBClass;
-
-/**
- *
- * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class EjbDeploymentItem<T> extends DeploymentItem<T>
-{
- private InternalEjbDescriptor<T> ejbDescriptor;
- private EjbDescriptors allDescriptors;
-
- private Set<Bean<?>> beans;
- private ObserverMethod<T, ?> observerMethods;
-
- EjbDeploymentItem(Set<DeploymentItem<?>> allItems, EjbDescriptors allDescriptors, WBClass<T> clazz, InternalEjbDescriptor<T> ejbDescriptor)
- {
- super(allItems, clazz);
- this.ejbDescriptor = ejbDescriptor;
- this.allDescriptors = allDescriptors;
- }
-
- DeploymentItem<? super T> getSuperClassDependency()
- {
- //This needs revisiting
- Class<?> superClass = getWBClass().getWBSuperclass().getJavaClass();
- for (InternalEjbDescriptor<?> ejb : allDescriptors)
- {
- if (ejb.getBeanClass().equals(superClass))
- {
- @SuppressWarnings("unchecked")
- DeploymentItem<? super T> item = new EjbDeploymentItem(null, null, getWBClass().getWBSuperclass(), ejb);
- DeploymentItem<? super T> found = findDeploymentItem(item);
- if (found == null || found instanceof EjbDeploymentItem == false)
- {
- throw new DefinitionException(toString() + " annotation defined specializing EJB must have EJB superclass " + ejbDescriptor.getEjbName() + "(" + ejbDescriptor.getBeanClass() + ")");
- }
- return found;
- }
- }
-
- throw new DefinitionException(toString() + " does not specialize an EJB " + ejbDescriptor.getEjbName() + "(" + ejbDescriptor.getBeanClass() + ")");
- }
-
- @Override
- public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
- {
- EnterpriseBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getEnterpriseBeanBuilder(manager, ejbDescriptor);
- setValues(builder.getBeans(), builder.getObserverMethods());
- }
-
- @Override
- public void executeAction(DeploymentSorterAction action)
- {
- action.execute(this);
- }
-}
Copied: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java (from rev 3698, ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SimpleDeploymentItem.java)
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java (rev 0)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/ManagedBeanDeploymentItem.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -0,0 +1,71 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.webbeans.builder.sorter;
+
+import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.DefinitionException;
+import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
+import org.jboss.webbeans.bean.builder.spi.SimpleBeanBuilder;
+import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
+import org.jboss.webbeans.introspector.WBClass;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class ManagedBeanDeploymentItem<T> extends ClassBeanDeploymentItem<T>
+{
+ private ManagedBeanDeploymentItem(Sorter sorter, WBClass<T> clazz)
+ {
+ super(sorter, clazz);
+ }
+
+ static <T> ManagedBeanDeploymentItem<T> createItem(Sorter sorter, WBClass<T> clazz)
+ {
+ return new ManagedBeanDeploymentItem<T>(sorter, clazz);
+ }
+
+ ClassBeanDeploymentItem<? super T> getSuperClassDependency()
+ {
+ ClassBeanDeploymentItem<? super T> found = findDeploymentItem(getWBClass().getWBSuperclass());
+ if (found == null || found instanceof ManagedBeanDeploymentItem == false)
+ {
+ throw new DefinitionException("Simple bean must specialize a simple bean " + getWBClass());
+ }
+
+ return found;
+ }
+
+ @Override
+ public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
+ {
+ SimpleBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getSimpleBeanBuilder(manager, getWBClass());
+ setValues(builder.getBeans(), builder.getObserverMethods());
+ }
+
+ @Override
+ public void executeAction(DeploymentSorterAction action)
+ {
+ action.execute(this);
+ }
+}
Copied: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java (from rev 3698, ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/EjbDeploymentItem.java)
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java (rev 0)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SessionBeanDeploymentItem.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -0,0 +1,78 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.webbeans.builder.sorter;
+
+import org.jboss.webbeans.BeanManagerImpl;
+import org.jboss.webbeans.Container;
+import org.jboss.webbeans.DefinitionException;
+import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
+import org.jboss.webbeans.bean.builder.spi.EnterpriseBeanBuilder;
+import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
+import org.jboss.webbeans.ejb.InternalEjbDescriptor;
+import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.resources.ClassTransformer;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class SessionBeanDeploymentItem<T> extends ClassBeanDeploymentItem<T>
+{
+ private InternalEjbDescriptor<T> ejbDescriptor;
+
+ private static final ClassTransformer classTransformer = Container.instance().deploymentServices().get(ClassTransformer.class);
+
+ private SessionBeanDeploymentItem(Sorter sorter, WBClass<T> clazz, InternalEjbDescriptor<T> ejbDescriptor)
+ {
+ super(sorter, clazz);
+ this.ejbDescriptor = ejbDescriptor;
+ }
+
+ static <T> SessionBeanDeploymentItem<T> createItem(Sorter sorter, InternalEjbDescriptor<T> ejbDescriptor)
+ {
+ return new SessionBeanDeploymentItem<T>(sorter, classTransformer.loadClass(ejbDescriptor.getBeanClass()), ejbDescriptor);
+ }
+
+ ClassBeanDeploymentItem<? super T> getSuperClassDependency()
+ {
+ ClassBeanDeploymentItem<? super T> found = findDeploymentItem(getWBClass().getWBSuperclass());
+ if (found == null || found instanceof SessionBeanDeploymentItem == false)
+ {
+ throw new DefinitionException(toString() + " annotation defined specializing EJB must have EJB superclass " + ejbDescriptor.getEjbName() + "(" + ejbDescriptor.getBeanClass() + ")");
+ }
+ return found;
+ }
+
+ @Override
+ public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
+ {
+ EnterpriseBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getEnterpriseBeanBuilder(manager, ejbDescriptor);
+ setValues(builder.getBeans(), builder.getObserverMethods());
+ }
+
+ @Override
+ public void executeAction(DeploymentSorterAction action)
+ {
+ action.execute(this);
+ }
+}
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SimpleDeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SimpleDeploymentItem.java 2009-09-17 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/SimpleDeploymentItem.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -1,69 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file in the
-* distribution for a full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.webbeans.builder.sorter;
-
-import java.util.Set;
-
-import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bean.builder.spi.BeanBuilderFactory;
-import org.jboss.webbeans.bean.builder.spi.SimpleBeanBuilder;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.introspector.WBClass;
-
-/**
- *
- * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class SimpleDeploymentItem<T> extends DeploymentItem<T>
-{
- SimpleDeploymentItem(Set<DeploymentItem<?>> allItems, WBClass<T> clazz)
- {
- super(allItems, clazz);
- }
-
- DeploymentItem<? super T> getSuperClassDependency()
- {
- DeploymentItem<? super T> item = new SimpleDeploymentItem(null, getWBClass().getWBSuperclass());
- DeploymentItem<? super T> found = findDeploymentItem(item);
- if (found == null || found instanceof SimpleDeploymentItem == false)
- {
- throw new DefinitionException("Simple bean must specialize a simple bean " + getWBClass());
- }
-
- return found;
- }
-
- @Override
- public void initialiseBeans(BeanManagerImpl manager, BeanDeployerEnvironment environment)
- {
- SimpleBeanBuilder<T> builder = BeanBuilderFactory.getInstance().getSimpleBeanBuilder(manager, getWBClass());
- setValues(builder.getBeans(), builder.getObserverMethods());
- }
-
- @Override
- public void executeAction(DeploymentSorterAction action)
- {
- action.execute(this);
- }
-}
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 18:34:45 UTC (rev 3700)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java 2009-09-17 20:45:33 UTC (rev 3701)
@@ -22,9 +22,8 @@
package org.jboss.webbeans.builder.sorter;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashSet;
-import java.util.LinkedHashSet;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
@@ -38,7 +37,6 @@
import org.jboss.webbeans.ejb.InternalEjbDescriptor;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.jsf.JsfApiAbstraction;
-import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.servlet.ServletApiAbstraction;
import org.jboss.webbeans.util.Reflections;
@@ -53,8 +51,6 @@
private final EjbDescriptors ejbDescriptors;
- private final ClassTransformer classTransformer;
-
private final EJBApiAbstraction ejbApiAbstraction;
private final JsfApiAbstraction jsfApiAbstraction;
@@ -63,17 +59,16 @@
private final List<DeploymentItem<?>> decoratorItems = new ArrayList<DeploymentItem<?>>();
- private final LinkedHashSet<DeploymentItem<?>> unsortedItems = new LinkedHashSet<DeploymentItem<?>>();
+ private final LinkedHashMap<WBClass<?>, ClassBeanDeploymentItem<?>> unsortedClassBeanItems = new LinkedHashMap<WBClass<?>, ClassBeanDeploymentItem<?>>();
private final List<DeploymentItem<?>> sortedItems = new ArrayList<DeploymentItem<?>>();
private final List<DeploymentItem<?>> visitedItems = new ArrayList<DeploymentItem<?>>();
- private Sorter(Set<WBClass<?>> classes, EjbDescriptors ejbDescriptors, ClassTransformer classTransformer,
+ private Sorter(Set<WBClass<?>> classes, EjbDescriptors ejbDescriptors,
EJBApiAbstraction ejbApiAbstraction, JsfApiAbstraction jsfApiAbstraction, ServletApiAbstraction servletApiAbstraction)
{
this.classes = classes;
- this.classTransformer = classTransformer;
this.ejbDescriptors = ejbDescriptors;
this.ejbApiAbstraction = ejbApiAbstraction;
this.jsfApiAbstraction = jsfApiAbstraction;
@@ -82,18 +77,17 @@
public static Sorter createSorter(BeanManagerImpl beanManager, Set<WBClass<?>> classes, EjbDescriptors ejbDescriptors)
{
- ClassTransformer classTransformer = beanManager.getServices().get(ClassTransformer.class);
EJBApiAbstraction ejbApiAbstraction = beanManager.getServices().get(EJBApiAbstraction.class);
JsfApiAbstraction jsfApiAbstraction = beanManager.getServices().get(JsfApiAbstraction.class);
ServletApiAbstraction servletApiAbstraction = beanManager.getServices().get(ServletApiAbstraction.class);
- Sorter sorter = new Sorter(classes, ejbDescriptors, classTransformer, ejbApiAbstraction, jsfApiAbstraction, servletApiAbstraction);
- sorter.createDeploymentItems();
+ Sorter sorter = new Sorter(classes, ejbDescriptors, ejbApiAbstraction, jsfApiAbstraction, servletApiAbstraction);
+ sorter.initialiseDeploymentItems();
return sorter;
}
- private void createDeploymentItems()
+ private void initialiseDeploymentItems()
{
for (WBClass<?> clazz : classes)
{
@@ -102,7 +96,7 @@
{
if (clazz.isAnnotationPresent(Decorator.class))
{
- decoratorItems.add(new DecoratorDeploymentItem(Collections.unmodifiableSet(unsortedItems), clazz));
+ decoratorItems.add(DecoratorDeploymentItem.createItem(clazz));
}
else if (clazz.isAnnotationPresent(Interceptor.class))
{
@@ -110,24 +104,23 @@
}
else if (!clazz.isAbstract())
{
- unsortedItems.add(new SimpleDeploymentItem(Collections.unmodifiableSet(unsortedItems), clazz));
+ unsortedClassBeanItems.put(clazz, ManagedBeanDeploymentItem.createItem(this, clazz));
}
}
}
for (InternalEjbDescriptor<?> ejb : ejbDescriptors)
{
- WBClass<?> clazz = classTransformer.loadClass(ejb.getBeanClass());
- unsortedItems.add(new EjbDeploymentItem(Collections.unmodifiableSet(unsortedItems), ejbDescriptors, clazz, ejb));
+ SessionBeanDeploymentItem<?> item = SessionBeanDeploymentItem.createItem(this, ejb);
+ unsortedClassBeanItems.put(item.getWBClass(), item);
}
}
public List<DeploymentItem<?>> sort()
{
//No need to sort the disposal method beans anymore since the disposal method must be in the same bean
-
- for (DeploymentItem<?> item : unsortedItems)
+ for (ClassBeanDeploymentItem<?> item : unsortedClassBeanItems.values())
{
- Set<DeploymentItem<?>> cycles = new HashSet<DeploymentItem<?>>();
+ Set<ClassBeanDeploymentItem<?>> cycles = new HashSet<ClassBeanDeploymentItem<?>>();
visit(item, cycles);
}
@@ -138,7 +131,7 @@
return result;
}
- private void visit(DeploymentItem<?> item, Set<DeploymentItem<?>> cycles)
+ private void visit(ClassBeanDeploymentItem<?> item, Set<ClassBeanDeploymentItem<?>> cycles)
{
if (cycles.contains(item))
throw new RuntimeException("Cycle for " + item);
@@ -148,7 +141,7 @@
{
visitedItems.add(item);
- for (DeploymentItem<?> dependencyItem : item.getDependencies())
+ for (ClassBeanDeploymentItem<?> dependencyItem : item.getDependencies())
{
visit(dependencyItem, cycles);
}
@@ -184,4 +177,9 @@
//FIXME duplicates AbstractBeanDeployer.hasSimpleWebBeanConstructor() - extract utility method
return type.getNoArgsWBConstructor() != null || type.getAnnotatedWBConstructors(Inject.class).size() > 0;
}
+
+ <T> ClassBeanDeploymentItem<T> findDeploymentItem(WBClass<?> clazz)
+ {
+ return (ClassBeanDeploymentItem<T>)unsortedClassBeanItems.get(clazz);
+ }
}
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3700 - ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 14:34:45 -0400 (Thu, 17 Sep 2009)
New Revision: 3700
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/BeanDeployment.java
Log:
Drive the addition of built in beans from BeanDeployment as was the case before
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 17:28:48 UTC (rev 3699)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-09-17 18:34:45 UTC (rev 3700)
@@ -28,14 +28,6 @@
import org.jboss.webbeans.Container;
import org.jboss.webbeans.bean.DecoratorImpl;
import org.jboss.webbeans.bean.builtin.AbstractBuiltInBean;
-import org.jboss.webbeans.bean.builtin.DefaultValidatorBean;
-import org.jboss.webbeans.bean.builtin.DefaultValidatorFactoryBean;
-import org.jboss.webbeans.bean.builtin.InjectionPointBean;
-import org.jboss.webbeans.bean.builtin.ManagerBean;
-import org.jboss.webbeans.bean.builtin.PrincipalBean;
-import org.jboss.webbeans.bean.builtin.UserTransactionBean;
-import org.jboss.webbeans.bean.builtin.facade.EventBean;
-import org.jboss.webbeans.bean.builtin.facade.InstanceBean;
import org.jboss.webbeans.builder.sorter.DecoratorDeploymentItem;
import org.jboss.webbeans.builder.sorter.DeploymentItem;
import org.jboss.webbeans.builder.sorter.DeploymentSorterAction;
@@ -48,9 +40,6 @@
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.security.spi.SecurityServices;
-import org.jboss.webbeans.transaction.spi.TransactionServices;
-import org.jboss.webbeans.validation.spi.ValidationServices;
/**
* @author pmuir
@@ -125,8 +114,6 @@
Sorter sorter = Sorter.createSorter(getManager(), classes, getEnvironment().getEjbDescriptors());
List<DeploymentItem<?>> sortedItems = sorter.sort();
- addBuiltInBeans();
-
DeploymentItemDeployerAction deployerAction = new DeploymentItemDeployerAction();
Set<ObserverMethod<?, ?>> observers = new HashSet<ObserverMethod<?, ?>>();
for (DeploymentItem<?> item : sortedItems)
@@ -147,29 +134,8 @@
return this;
}
- private void addBuiltInBeans()
+ public void addBuiltinBean(AbstractBuiltInBean<?> bean)
{
- addBuiltinBean(new ManagerBean(getManager()));
- addBuiltinBean(new InjectionPointBean(getManager()));
- addBuiltinBean(new EventBean(getManager()));
- addBuiltinBean(new InstanceBean(getManager()));
- if (getManager().getServices().contains(TransactionServices.class))
- {
- addBuiltinBean(new UserTransactionBean(getManager()));
- }
- if (getManager().getServices().contains(SecurityServices.class))
- {
- addBuiltinBean(new PrincipalBean(getManager()));
- }
- if (getManager().getServices().contains(ValidationServices.class))
- {
- addBuiltinBean(new DefaultValidatorBean(getManager()));
- addBuiltinBean(new DefaultValidatorFactoryBean(getManager()));
- }
- }
-
- private void addBuiltinBean(AbstractBuiltInBean<?> bean)
- {
getEnvironment().addBean(bean);
getManager().addBean(bean);
}
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 17:28:48 UTC (rev 3699)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployment.java 2009-09-17 18:34:45 UTC (rev 3700)
@@ -124,6 +124,10 @@
public void deployBeans(Environment environment)
{
beanDeployer.addClasses(beanDeploymentArchive.getBeanClasses());
+ beanDeployer.addBuiltinBean(new ManagerBean(beanManager));
+ beanDeployer.addBuiltinBean(new InjectionPointBean(beanManager));
+ beanDeployer.addBuiltinBean(new EventBean(beanManager));
+ beanDeployer.addBuiltinBean(new InstanceBean(beanManager));
if (!environment.equals(Environments.SE))
{
beanDeployer.addClass(ConversationImpl.class);
@@ -132,6 +136,19 @@
beanDeployer.addClass(NumericConversationIdGenerator.class);
beanDeployer.addClass(HttpSessionManager.class);
}
+ if (beanManager.getServices().contains(TransactionServices.class))
+ {
+ beanDeployer.addBuiltinBean(new UserTransactionBean(beanManager));
+ }
+ if (beanManager.getServices().contains(SecurityServices.class))
+ {
+ beanDeployer.addBuiltinBean(new PrincipalBean(beanManager));
+ }
+ if (beanManager.getServices().contains(ValidationServices.class))
+ {
+ beanDeployer.addBuiltinBean(new DefaultValidatorBean(beanManager));
+ beanDeployer.addBuiltinBean(new DefaultValidatorFactoryBean(beanManager));
+ }
beanDeployer.deploy();
}
}
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3699 - in ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans: bootstrap and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)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() &&
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3698 - in ri/branches/kabir-builder: impl/src/main/java/org/jboss/webbeans/bootstrap and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 12:23:54 -0400 (Thu, 17 Sep 2009)
New Revision: 3698
Added:
ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/EmployeeProducer.java
ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SpecializedEmployeeProducer.java
Modified:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.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/builder/sorter/Sorter.java
Log:
@Specialized on producer methods need to be taken into account, as well @Specialized on class itself which was already done. TCK back at 100%, time to clean up the code
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java 2009-09-17 15:02:18 UTC (rev 3697)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java 2009-09-17 16:23:54 UTC (rev 3698)
@@ -271,7 +271,6 @@
@Override
protected void specialize(BeanDeployerEnvironment environment)
{
- System.out.println("======> " + this);
WBMethod<?, ?> superClassMethod = getDeclaringBean().getAnnotatedItem().getWBSuperclass().getWBMethod(getAnnotatedItem().getAnnotatedMethod());
if (environment.getProducerMethod(superClassMethod) == null)
{
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 15:02:18 UTC (rev 3697)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-09-17 16:23:54 UTC (rev 3698)
@@ -122,26 +122,6 @@
public AbstractBeanDeployer createBeans()
{
-// for (WBClass<?> clazz : classes)
-// {
-// boolean managedBeanOrDecorator = !getEnvironment().getEjbDescriptors().contains(clazz.getJavaClass()) && isTypeManagedBeanOrDecorator(clazz);
-// if (managedBeanOrDecorator && clazz.isAnnotationPresent(Decorator.class))
-// {
-// createDecorator(clazz);
-// }
-// else if (managedBeanOrDecorator && clazz.isAnnotationPresent(Interceptor.class))
-// {
-// //createInterceptor(clazz);
-// }
-// else if (managedBeanOrDecorator && !clazz.isAbstract())
-// {
-// createSimpleBean(clazz);
-// }
-// }
-// for (InternalEjbDescriptor<?> ejbDescriptor : getEnvironment().getEjbDescriptors())
-// {
-// createEnterpriseBean(ejbDescriptor);
-// }
return this;
}
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 15:02:18 UTC (rev 3697)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/Sorter.java 2009-09-17 16:23:54 UTC (rev 3698)
@@ -30,6 +30,7 @@
import javax.decorator.Decorator;
import javax.inject.Inject;
+import javax.interceptor.Interceptor;
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.ejb.EJBApiAbstraction;
@@ -103,6 +104,10 @@
{
decoratorItems.add(new DecoratorDeploymentItem(Collections.unmodifiableSet(unsortedItems), clazz));
}
+ else if (clazz.isAnnotationPresent(Interceptor.class))
+ {
+ //Don't add as a bean
+ }
else if (!clazz.isAbstract())
{
unsortedItems.add(new SimpleDeploymentItem(Collections.unmodifiableSet(unsortedItems), clazz));
Added: ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/EmployeeProducer.java
===================================================================
--- ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/EmployeeProducer.java (rev 0)
+++ ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/EmployeeProducer.java 2009-09-17 16:23:54 UTC (rev 3698)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.webbeans.test.unit.builder.sorter;
+
+import javax.enterprise.inject.Produces;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class EmployeeProducer
+{
+ @Produces
+ public Employee getEmployee()
+ {
+ return null;
+ }
+}
Added: ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SpecializedEmployeeProducer.java
===================================================================
--- ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SpecializedEmployeeProducer.java (rev 0)
+++ ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SpecializedEmployeeProducer.java 2009-09-17 16:23:54 UTC (rev 3698)
@@ -0,0 +1,39 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.webbeans.test.unit.builder.sorter;
+
+import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.Specializes;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class SpecializedEmployeeProducer extends EmployeeProducer
+{
+ @Produces @Override @Specializes
+ public Employee getEmployee()
+ {
+ return null;
+ }
+}
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3697 - in ri/branches/kabir-builder: impl/src/main/java/org/jboss/webbeans/builder/sorter and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: kabir.khan(a)jboss.com
Date: 2009-09-17 11:02:18 -0400 (Thu, 17 Sep 2009)
New Revision: 3697
Modified:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java
ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SorterTest.java
Log:
@Specialized on producer methods need to be taken into account, as well @Specialized on class itself which was already done
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java 2009-09-17 12:54:36 UTC (rev 3696)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java 2009-09-17 15:02:18 UTC (rev 3697)
@@ -271,6 +271,7 @@
@Override
protected void specialize(BeanDeployerEnvironment environment)
{
+ System.out.println("======> " + this);
WBMethod<?, ?> superClassMethod = getDeclaringBean().getAnnotatedItem().getWBSuperclass().getWBMethod(getAnnotatedItem().getAnnotatedMethod());
if (environment.getProducerMethod(superClassMethod) == null)
{
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java 2009-09-17 12:54:36 UTC (rev 3696)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/builder/sorter/DeploymentItem.java 2009-09-17 15:02:18 UTC (rev 3697)
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Set;
+import javax.enterprise.inject.Produces;
import javax.enterprise.inject.Specializes;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.ObserverMethod;
@@ -33,6 +34,7 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBClass;
+import org.jboss.webbeans.introspector.WBMethod;
/**
*
@@ -72,10 +74,28 @@
{
addDependency(getSuperClassDependency());
}
+ else
+ {
+ Set<WBMethod<?, ?>> producerMethods = getWBClass().getDeclaredWBAnnotatedMethods(Produces.class);
+ if (!producerMethods.isEmpty())
+ {
+ for (WBMethod<?, ?> producerMethod : producerMethods)
+ {
+ if (producerMethod.getAnnotation(Specializes.class) != null)
+ {
+ addDependency(getSuperClassDependency());
+ break;
+ }
+ }
+ }
+ }
+
initialized = true;
}
}
+
+
void addDependency(DeploymentItem<?> dependency)
{
if (dependencies == Collections.EMPTY_LIST)
Modified: ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SorterTest.java
===================================================================
--- ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SorterTest.java 2009-09-17 12:54:36 UTC (rev 3696)
+++ ri/branches/kabir-builder/tests/src/test/java/org/jboss/webbeans/test/unit/builder/sorter/SorterTest.java 2009-09-17 15:02:18 UTC (rev 3697)
@@ -183,6 +183,13 @@
}
}
+ @Test
+ public void testSpecializingProducerMethod()
+ {
+ assertArrays(sortClasses(EmployeeProducer.class, SpecializedEmployeeProducer.class), EmployeeProducer.class, SpecializedEmployeeProducer.class);
+ assertArrays(sortClasses(SpecializedEmployeeProducer.class, EmployeeProducer.class), EmployeeProducer.class, SpecializedEmployeeProducer.class);
+ }
+
private OrderedEjbDescriptors createEjbDescriptors(Class<?>...classes)
{
OrderedEjbDescriptors descriptors = new OrderedEjbDescriptors();
16 years, 7 months
[webbeans-commits] Webbeans SVN: r3695 - in examples/trunk: jsf and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-09-17 08:50:01 -0400 (Thu, 17 Sep 2009)
New Revision: 3695
Added:
examples/trunk/jsf/
examples/trunk/jsf/jsf2/
examples/trunk/jsf/login/
examples/trunk/jsf/numberguess/
examples/trunk/jsf/servlet-numberguess/
examples/trunk/jsf/translator/
Removed:
examples/trunk/jsf/jsf2/build.xml
examples/trunk/jsf/jsf2/pom.xml
examples/trunk/jsf/jsf2/src/
examples/trunk/jsf2/
examples/trunk/login/
examples/trunk/numberguess/
examples/trunk/servlet-numberguess/
examples/trunk/translator/
Log:
move jsf examples to jsf dir
Copied: examples/trunk/jsf/jsf2 (from rev 3694, examples/trunk/jsf2)
Deleted: examples/trunk/jsf/jsf2/build.xml
===================================================================
--- examples/trunk/jsf2/build.xml 2009-09-17 11:16:27 UTC (rev 3694)
+++ examples/trunk/jsf/jsf2/build.xml 2009-09-17 12:50:01 UTC (rev 3695)
@@ -1,7 +0,0 @@
-<project basedir="." name="Numberguess Example Build" default="restart">
-
- <property name="example.name" value="webbeans-numberguess-jsf2" />
-
- <import file="../build.xml" />
-
-</project>
Deleted: examples/trunk/jsf/jsf2/pom.xml
===================================================================
--- examples/trunk/jsf2/pom.xml 2009-09-17 11:16:27 UTC (rev 3694)
+++ examples/trunk/jsf/jsf2/pom.xml 2009-09-17 12:50:01 UTC (rev 3695)
@@ -1,71 +0,0 @@
-<?xml version="1.0"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.jboss.webbeans.examples</groupId>
- <artifactId>webbeans-examples-parent</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- </parent>
-
- <groupId>org.jboss.webbeans.examples</groupId>
- <artifactId>webbeans-numberguess-jsf2</artifactId>
- <packaging>war</packaging>
- <name>Web Beans Examples: Numberguess for JSF2</name>
-
- <pluginRepositories>
- <pluginRepository>
- <id>codehaus snapshot repository</id>
- <url>http://snapshots.repository.codehaus.org/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- </pluginRepository>
- </pluginRepositories>
-
- <dependencies>
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <scope>test</scope>
- <classifier>jdk15</classifier>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.webbeans</groupId>
- <artifactId>jsr299-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.faces</groupId>
- <artifactId>jsf-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
-<!-- <dependency>-->
-<!-- <groupId>javax.el</groupId>-->
-<!-- <artifactId>el-ri</artifactId>-->
-<!-- <exclusions>-->
-<!-- <exclusion>-->
-<!-- <groupId>javax.el</groupId>-->
-<!-- <artifactId>el-api</artifactId>-->
-<!-- </exclusion>-->
-<!-- </exclusions>-->
-<!-- <scope>runtime</scope>-->
-<!-- </dependency>-->
-
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>jsr250-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- </dependencies>
-
- <build>
- <finalName>webbeans-numberguess-jsf2</finalName>
- </build>
-
-</project>
-
Copied: examples/trunk/jsf/login (from rev 3623, examples/trunk/login)
Copied: examples/trunk/jsf/numberguess (from rev 3623, examples/trunk/numberguess)
Copied: examples/trunk/jsf/servlet-numberguess (from rev 3623, examples/trunk/servlet-numberguess)
Copied: examples/trunk/jsf/translator (from rev 3623, examples/trunk/translator)
16 years, 7 months