[webbeans-commits] Webbeans SVN: r3703 - in ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans: builder/sorter and 1 other directory.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Sep 17 17:25:02 EDT 2009
Author: kabir.khan at 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 at 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);
- }
}
More information about the weld-commits
mailing list