[webbeans-commits] Webbeans SVN: r3715 - in ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans: bean/builder and 4 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Mon Sep 21 17:13:40 EDT 2009
Author: kabir.khan at jboss.com
Date: 2009-09-21 17:13:38 -0400 (Mon, 21 Sep 2009)
New Revision: 3715
Added:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java
Removed:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingDecorator.java
Modified:
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractReceiverBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DecoratorImpl.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethod.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewManagedBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewSessionBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerField.java
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/RIBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/SessionBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractClassBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractProducerBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractReceiverBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderFactoryImpl.java
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/DecoratorBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DisposalMethodBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ManagedBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewManagedBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewSessionBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerFieldBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerMethodBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/RIBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/SessionBeanBuilder.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builtin/AbstractBuiltInBean.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ee/EEResourceProducerField.java
ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.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/util/Reflections.java
Log:
TCK 100%
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -18,6 +18,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@@ -25,18 +26,14 @@
import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Specializes;
import javax.enterprise.inject.spi.Bean;
-import javax.inject.Named;
import javax.inject.Qualifier;
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.WBInjectionPoint;
import org.jboss.webbeans.introspector.WBAnnotated;
import org.jboss.webbeans.introspector.WBField;
import org.jboss.webbeans.introspector.WBParameter;
-import org.jboss.webbeans.literal.AnyLiteral;
-import org.jboss.webbeans.literal.DefaultLiteral;
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.metadata.cache.MergedStereotypes;
@@ -47,16 +44,13 @@
* An abstract bean representation common for all beans
*
* @author Pete Muir
- *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ *
* @param <T> the type of bean
* @param <E> the Class<?> of the bean type
*/
public abstract class AbstractBean<T, E> extends RIBean<T>
{
-
-// private static final Annotation ANY_LITERAL = new AnyLiteral();
-// private static final Annotation CURRENT_LITERAL = new DefaultLiteral();
-//
private final boolean proxyable;
// Logger
@@ -141,12 +135,16 @@
* Initializes the bean and its metadata
*/
@Override
- public void initialize(BeanDeployerEnvironment environment)
+ public void initialize()
{
- checkDelegateInjectionPoints();
+ if (!initialized)
+ {
+ checkDelegateInjectionPoints();
+ initialized = true;
+ }
}
- protected void checkDelegateInjectionPoints()
+ public void checkDelegateInjectionPoints()
{
if (this.delegateInjectionPoints.size() > 0)
{
@@ -173,7 +171,7 @@
protected Set<WBInjectionPoint<?, ?>> getDelegateInjectionPoints()
{
- return delegateInjectionPoints;
+ return Collections.unmodifiableSet(delegateInjectionPoints);
}
private boolean checkInjectionPointsAreSerializable()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -47,8 +47,8 @@
* An abstract bean representation common for class-based beans
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
- * @param <T>
* @param <E>
*/
public abstract class AbstractClassBean<T> extends AbstractBean<T, Class<T>> implements InjectionTarget<T>
@@ -88,13 +88,13 @@
Set<Type> types,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean serializable,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy)
{
@@ -113,13 +113,13 @@
};
this.dependencies = dependencies;
this.proxyClassForDecorators = proxyClassForDecorators;
- this.decorators = decorators;
this.postConstruct = postConstruct;
this.preDestroy = preDestroy;
this.injectableFields = initInjectableFields();
this.initializerMethods = initInitializerMethods();
checkBeanImplementation();
+ this.decorators = decorators;
checkType();
}
@@ -133,6 +133,11 @@
return this.decorators != null && this.decorators.size() > 0;
}
+ protected List<Decorator<?>> initDecorators()
+ {
+ return getManager().resolveDecorators(getTypes(), getQualifiers());
+ }
+
protected T applyDecorators(T instance, CreationalContext<T> creationalContext, InjectionPoint originalInjectionPoint)
{
List<SerializableBeanInstance<DecoratorImpl<Object>, Object>> decoratorInstances = new ArrayList<SerializableBeanInstance<DecoratorImpl<Object>,Object>>();
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -36,7 +36,6 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBMember;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
@@ -50,6 +49,7 @@
* The implicit producer bean
*
* @author Gavin King
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T>
* @param <S>
@@ -88,48 +88,6 @@
return getDeclaringBean().getBeanClass();
}
-// /**
-// * Initializes the API types
-// */
-// @Override
-// protected void initTypes()
-// {
-// if (getType().isArray() || getType().isPrimitive())
-// {
-// Set<Type> types = new HashSet<Type>();
-// types = new HashSet<Type>();
-// types.add(getType());
-// types.add(Object.class);
-// super.types = types;
-// }
-// else if (getType().isInterface())
-// {
-// Set<Type> types = new HashSet<Type>();
-// types.add(Object.class);
-// types.addAll(getAnnotatedItem().getTypeClosure());
-// super.types = types;
-// }
-// else
-// {
-// super.initTypes();
-// }
-// }
-
-// /**
-// * Initializes the type
-// */
-// protected void initType()
-// {
-// try
-// {
-// this.type = getAnnotatedItem().getJavaClass();
-// }
-// catch (ClassCastException e)
-// {
-// throw new RuntimeException(" Cannot cast producer type " + getAnnotatedItem().getJavaClass() + " to bean type " + (getDeclaredBeanType() == null ? " unknown " : getDeclaredBeanType()), e);
-// }
-// }
-
/**
* Gets the declared bean type
*
@@ -175,11 +133,13 @@
* Initializes the bean and its metadata
*/
@Override
- public void initialize(BeanDeployerEnvironment environment)
+ public void initialize()
{
- getDeclaringBean().initialize(environment);
- super.initialize(environment);
- checkProducerReturnType();
+ if (!isInitialized())
+ {
+ super.initialize();
+ checkProducerReturnType();
+ }
}
/**
@@ -234,38 +194,6 @@
}
}
-// @Override
-// protected void initScopeType()
-// {
-// Set<Annotation> scopeAnnotations = new HashSet<Annotation>();
-// scopeAnnotations.addAll(getAnnotatedItem().getMetaAnnotations(Scope.class));
-// scopeAnnotations.addAll(getAnnotatedItem().getMetaAnnotations(NormalScope.class));
-// if (scopeAnnotations.size() > 1)
-// {
-// throw new DefinitionException("At most one scope may be specified");
-// }
-// if (scopeAnnotations.size() == 1)
-// {
-// this.scopeType = scopeAnnotations.iterator().next().annotationType();
-// log.trace("Scope " + scopeType + " specified by annotation");
-// return;
-// }
-//
-// initScopeTypeFromStereotype();
-//
-// if (this.scopeType == null)
-// {
-// this.scopeType = Dependent.class;
-// log.trace("Using default @Dependent scope");
-// }
-// }
-//
-// @Override
-// protected void initSerializable()
-// {
-// // No-op
-// }
-
@Override
public boolean isSerializable()
{
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractReceiverBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractReceiverBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/AbstractReceiverBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -22,10 +22,8 @@
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.Alternative;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.context.WBCreationalContext;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
@@ -33,6 +31,7 @@
/**
* @author pmuir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
*/
public abstract class AbstractReceiverBean<T, S extends Member> extends AbstractBean<T, S>
@@ -60,12 +59,6 @@
this.declaringBean = declaringBean;
}
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
- super.initialize(environment);
- }
-
/**
* Gets the receiver of the product
*
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DecoratorImpl.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DecoratorImpl.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DecoratorImpl.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -22,6 +22,7 @@
import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import javax.enterprise.inject.spi.Decorator;
@@ -29,42 +30,27 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.MethodInjectionPoint;
import org.jboss.webbeans.injection.WBInjectionPoint;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.WBMethod;
import org.jboss.webbeans.metadata.cache.MergedStereotypes;
+/**
+ *
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
public class DecoratorImpl<T> extends ManagedBean<T> implements Decorator<T>
{
- public static <T> Decorator<T> wrapForResolver(final Decorator<T> decorator)
- {
- return new ForwardingDecorator<T>()
- {
+ private WBInjectionPoint<?, ?> delegateInjectionPoint;
+ private final Set<Annotation> delegateBindings = new HashSet<Annotation>();
+ private Type delegateType;
+ private Set<Type> delegateTypes;
+ private Set<Type> decoratedTypes;
- @Override
- public Set<Annotation> getQualifiers()
- {
- return delegate().getDelegateQualifiers();
- }
-
- @Override
- public Set<Type> getTypes()
- {
- return delegate().getTypes();
- }
-
- @Override
- protected Decorator<T> delegate()
- {
- return decorator;
- }
-
- };
- }
-
/**
* Creates a decorator bean
*
@@ -78,6 +64,7 @@
String name,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
@@ -86,21 +73,16 @@
WBMethod<?, ?> preDestroy,
ManagedBean<?> specializedBean)
{
- return new DecoratorImpl<T>(clazz, manager, name, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
+ return new DecoratorImpl<T>(clazz, manager, name, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
postConstruct, preDestroy, specializedBean);
}
- private WBInjectionPoint<?, ?> delegateInjectionPoint;
- private Set<Annotation> delegateBindings;
- private Type delegateType;
- private Set<Type> delegateTypes;
- private Set<Type> decoratedTypes;
-
protected DecoratorImpl(WBClass<T> type,
BeanManagerImpl manager,
String name,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
@@ -109,22 +91,15 @@
WBMethod<?, ?> preDestroy,
ManagedBean<?> specializedBean)
{
- super(type, manager, name, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies, null, null,
+ super(type, manager, name, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies, null,
postConstruct, preDestroy, specializedBean);
- }
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
- if (!isInitialized())
- {
- super.initialize(environment);
- initDelegateInjectionPoint();
- initDecoratedTypes();
- initDelegateBindings();
- initDelegateType();
- checkDelegateType();
- }
+ checkDelegateInjectionPoints();
+ initDelegateInjectionPoint();
+ initDecoratedTypes();
+ initDelegateBindings();
+ initDelegateType();
+ checkDelegateType();
}
protected void initDecoratedTypes()
@@ -140,7 +115,7 @@
}
@Override
- protected void checkDelegateInjectionPoints()
+ public void checkDelegateInjectionPoints()
{
for (WBInjectionPoint<?, ?> injectionPoint : getDelegateInjectionPoints())
{
@@ -161,7 +136,6 @@
protected void initDelegateBindings()
{
- this.delegateBindings = new HashSet<Annotation>();
this.delegateBindings.addAll(this.delegateInjectionPoint.getQualifiers());
}
@@ -245,4 +219,8 @@
return super.toString("decorator");
}
+ protected boolean initInjectionPointsAreSerializable()
+ {
+ return false;
+ }
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethod.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethod.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethod.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -20,7 +20,6 @@
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
@@ -31,12 +30,16 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.MethodInjectionPoint;
import org.jboss.webbeans.introspector.WBMethod;
import org.jboss.webbeans.metadata.cache.MergedStereotypes;
import org.jboss.webbeans.util.Reflections;
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
public class DisposalMethod<T> extends AbstractReceiverBean<T, Method>
{
@@ -57,19 +60,10 @@
super(declaringBean, manager, name, type, types, mergedStereotypes, null, policy, Reflections.isSerializable(type), proxyable, bindings);
this.disposalMethodInjectionPoint = MethodInjectionPoint.of(this, disposalMethod);
this.id = createId("DisposalMethod-" + declaringBean.getName() + "-" + disposalMethod.getSignature().toString());
-// initBindings();
-// initType();
-// initTypes();
- }
-
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
addInjectionPoint(disposalMethodInjectionPoint);
- super.initialize(environment);
checkDisposalMethod();
}
-
+
@Override
public WBMethod<T, ?> getAnnotatedItem()
{
@@ -104,12 +98,6 @@
}
@Override
- public Set<Type> getTypes()
- {
- return types;
- }
-
- @Override
public String toString()
{
return disposalMethodInjectionPoint.toString();
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -1,172 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.bean;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Set;
-
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.InjectionPoint;
-
-/**
- * A delegating bean
- *
- * @author Pete Muir
- *
- * @param <T>
- */
-public abstract class ForwardingBean<T> implements Bean<T>
-{
-
- /**
- * Creates an instance of the delegate
- *
- * @return an instance of the delegate
- */
- public T create(CreationalContext<T> creationalContext)
- {
- return delegate().create(creationalContext);
- }
-
- /**
- * Abstract getter for the delegate
- *
- * @return The delegate
- */
- protected abstract Bean<T> delegate();
-
- /**
- * Destroys an instance through the delegate
- *
- * @param instance The instance to destroy
- */
- public void destroy(T instance, CreationalContext<T> creationalContext)
- {
- delegate().destroy(instance, creationalContext);
- }
-
- /**
- * Compares an object with the delegate
- *
- * @return True if equals, false otherwise
- */
- @Override
- public boolean equals(Object obj)
- {
- return delegate().equals(obj);
- }
-
- public Class<?> getBeanClass()
- {
- return delegate().getBeanClass();
- }
-
- /**
- * Gets the binding types of the delegate
- *
- * @return The binding types
- */
- public Set<Annotation> getQualifiers()
- {
- return delegate().getQualifiers();
- }
-
- public Set<InjectionPoint> getInjectionPoints()
- {
- return delegate().getInjectionPoints();
- }
-
- /**
- * Gets the name of the delegate
- *
- * @return The name
- */
- public String getName()
- {
- return delegate().getName();
- }
-
- /**
- * The stereotypes applied to this bean
- *
- * @return stereotypes if any
- */
- public Set<Class<? extends Annotation>> getStereotypes()
- {
- return delegate().getStereotypes();
- }
-
- /**
- * Gets the scope type of the delegate
- *
- * @return The scope type
- */
- public Class<? extends Annotation> getScope()
- {
- return delegate().getScope();
- }
-
- /**
- * Gets the API types of the delegate
- *
- * @return The API types
- */
- public Set<Type> getTypes()
- {
- return delegate().getTypes();
- }
-
- /**
- * Gets the hash code of the delegate
- *
- * @return The hash code
- */
- @Override
- public int hashCode()
- {
- return delegate().hashCode();
- }
-
- /**
- * Indicates if the delegate is nullable
- *
- * @return True if nullable, false otherwise
- */
- public boolean isNullable()
- {
- return delegate().isNullable();
- }
-
- public boolean isAlternative()
- {
- return delegate().isAlternative();
- }
-
- /**
- * Returns a string representation
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- return "ForwardingBean " + getName() + " for " + delegate().toString();
- }
-
-}
Copied: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java (from rev 3713, ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingBean.java)
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java (rev 0)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.bean;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Set;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+/**
+ * A delegating bean
+ *
+ * @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ *
+ * @param <T>
+ */
+public abstract class ForwardingBean<T> implements Bean<T>
+{
+
+ /**
+ * Creates an instance of the delegate
+ *
+ * @return an instance of the delegate
+ */
+ public T create(CreationalContext<T> creationalContext)
+ {
+ return delegate().create(creationalContext);
+ }
+
+ /**
+ * Abstract getter for the delegate
+ *
+ * @return The delegate
+ */
+ protected abstract Bean<T> delegate();
+
+ /**
+ * Destroys an instance through the delegate
+ *
+ * @param instance The instance to destroy
+ */
+ public void destroy(T instance, CreationalContext<T> creationalContext)
+ {
+ delegate().destroy(instance, creationalContext);
+ }
+
+ /**
+ * Compares an object with the delegate
+ *
+ * @return True if equals, false otherwise
+ */
+ @Override
+ public boolean equals(Object obj)
+ {
+ return delegate().equals(obj);
+ }
+
+ public Class<?> getBeanClass()
+ {
+ return delegate().getBeanClass();
+ }
+
+ /**
+ * Gets the binding types of the delegate
+ *
+ * @return The binding types
+ */
+ public Set<Annotation> getQualifiers()
+ {
+ return delegate().getQualifiers();
+ }
+
+ public Set<InjectionPoint> getInjectionPoints()
+ {
+ return delegate().getInjectionPoints();
+ }
+
+ /**
+ * Gets the name of the delegate
+ *
+ * @return The name
+ */
+ public String getName()
+ {
+ return delegate().getName();
+ }
+
+ /**
+ * The stereotypes applied to this bean
+ *
+ * @return stereotypes if any
+ */
+ public Set<Class<? extends Annotation>> getStereotypes()
+ {
+ return delegate().getStereotypes();
+ }
+
+ /**
+ * Gets the scope type of the delegate
+ *
+ * @return The scope type
+ */
+ public Class<? extends Annotation> getScope()
+ {
+ return delegate().getScope();
+ }
+
+ /**
+ * Gets the API types of the delegate
+ *
+ * @return The API types
+ */
+ public Set<Type> getTypes()
+ {
+ return delegate().getTypes();
+ }
+
+ /**
+ * Gets the hash code of the delegate
+ *
+ * @return The hash code
+ */
+ @Override
+ public int hashCode()
+ {
+ return delegate().hashCode();
+ }
+
+ /**
+ * Indicates if the delegate is nullable
+ *
+ * @return True if nullable, false otherwise
+ */
+ public boolean isNullable()
+ {
+ return delegate().isNullable();
+ }
+
+ public boolean isAlternative()
+ {
+ return delegate().isAlternative();
+ }
+
+ /**
+ * Returns a string representation
+ *
+ * @return The string representation
+ */
+ @Override
+ public String toString()
+ {
+ return "ForwardingBean " + getName() + " for " + delegate().toString();
+ }
+
+}
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.bean;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Set;
-
-import javax.enterprise.inject.spi.Decorator;
-
-public abstract class ForwardingDecorator<T> extends ForwardingBean<T> implements Decorator<T>
-{
-
- @Override
- protected abstract Decorator<T> delegate();
-
- public Set<Type> getDecoratedTypes()
- {
- return delegate().getDecoratedTypes();
- }
-
- public Set<Annotation> getDelegateQualifiers()
- {
- return delegate().getDelegateQualifiers();
- }
-
- public Type getDelegateType()
- {
- return delegate().getDelegateType();
- }
-
-}
Added: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java (rev 0)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ForwardingDecorator.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.bean;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Decorator;
+
+
+public abstract class ForwardingDecorator<T> extends ForwardingBean<T> implements Decorator<T>
+{
+
+ @Override
+ protected abstract Decorator<T> delegate();
+
+ public Set<Type> getDecoratedTypes()
+ {
+ return delegate().getDecoratedTypes();
+ }
+
+ public Set<Annotation> getDelegateQualifiers()
+ {
+ return delegate().getDelegateQualifiers();
+ }
+
+ public Type getDelegateType()
+ {
+ return delegate().getDelegateType();
+ }
+
+}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -28,7 +28,6 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.ConstructorInjectionPoint;
import org.jboss.webbeans.injection.InjectionContextImpl;
import org.jboss.webbeans.injection.WBInjectionPoint;
@@ -48,6 +47,7 @@
* Represents a simple bean
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T> The type (class) of the bean
*/
@@ -80,18 +80,18 @@
String name,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
ManagedBean<?> specializedBean)
{
- return new ManagedBean<T>(clazz, manager, name, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy, specializedBean);
+ return new ManagedBean<T>(clazz, manager, name, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy, specializedBean);
}
/**
@@ -105,18 +105,18 @@
String name,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
ManagedBean<?> specializedBean)
{
- super(type, manager, name, type.getTypeClosure(), mergedStereotypes, scopeType, policy, Reflections.isSerializable(type.getJavaClass()), proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy);
+ super(type, manager, name, type.getTypeClosure(), mergedStereotypes, scopeType, decorators, policy, Reflections.isSerializable(type.getJavaClass()), proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy);
this.specializedBean = specializedBean;
this.constructor = initConstructor();
this.ejbInjectionPoints = Beans.getEjbInjectionPoints(this, getAnnotatedItem(), getManager());
@@ -213,21 +213,6 @@
}
/**
- * Initializes the bean and its metadata
- */
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
- if (!isInitialized())
- {
- super.initialize(environment);
-// initPostConstruct();
-// initPreDestroy();
- }
- }
-
-
- /**
* Validates the type
*/
protected void checkType()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewManagedBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewManagedBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewManagedBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -34,6 +34,7 @@
* Represents a @New simple bean
*
* @author Nicklas Karlsson
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*/
public class NewManagedBean<T> extends ManagedBean<T> implements NewBean
{
@@ -50,18 +51,18 @@
String name,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
ManagedBean<?> specializedBean)
{
- return new NewManagedBean<T>(clazz, manager, name, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy, specializedBean);
+ return new NewManagedBean<T>(clazz, manager, name, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy, specializedBean);
}
private Set<Annotation> bindings;
@@ -77,18 +78,18 @@
String name,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
ManagedBean<?> specializedBean)
{
- super(type, manager, name, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy, specializedBean);
+ super(type, manager, name, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy, specializedBean);
this.bindings = new HashSet<Annotation>();
this.bindings.add(new NewLiteral()
{
@@ -129,18 +130,7 @@
return null;
}
- /**
- * Gets the bindings
- *
- * @returns @New
- */
@Override
- public Set<Annotation> getQualifiers()
- {
- return bindings;
- }
-
- @Override
public boolean isSpecializing()
{
return false;
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewSessionBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewSessionBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/NewSessionBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -37,6 +37,7 @@
* Represents a @New enterprise bean
*
* @author Nicklas Karlsson
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*/
public class NewSessionBean<T> extends SessionBean<T> implements NewBean
{
@@ -54,20 +55,20 @@
Set<Type> types,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
Class<T> proxyClass,
SessionBean<?> specializedBean)
{
WBClass<T> type = manager.getServices().get(ClassTransformer.class).loadClass(ejbDescriptor.getBeanClass());
- return new NewSessionBean<T>(type, ejbDescriptor, manager, name, types, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy, proxyClass, specializedBean);
+ return new NewSessionBean<T>(type, ejbDescriptor, manager, name, types, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy, proxyClass, specializedBean);
}
private Set<Annotation> bindings;
@@ -85,19 +86,19 @@
Set<Type> types,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
Class<T> proxyClass,
SessionBean<?> specializedBean)
{
- super(type, ejbDescriptor, manager, name, types, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy, proxyClass, specializedBean);
+ super(type, ejbDescriptor, manager, name, types, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy, proxyClass, specializedBean);
this.bindings = new HashSet<Annotation>();
this.bindings.add(new NewLiteral()
{
@@ -137,17 +138,6 @@
{
return null;
}
-
- /**
- * Gets the bindings
- *
- * @returns @New
- */
- @Override
- public Set<Annotation> getQualifiers()
- {
- return bindings;
- }
@Override
public boolean isSpecializing()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerField.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerField.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerField.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -25,7 +25,6 @@
import javax.enterprise.context.spi.CreationalContext;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBField;
import org.jboss.webbeans.metadata.cache.MergedStereotypes;
import org.jboss.webbeans.util.Names;
@@ -34,6 +33,7 @@
* Represents a producer field
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T>
*/
@@ -87,23 +87,9 @@
{
super(declaringBean, manager, name, type, types, mergedStereotypes, scopeType, policy, proxyable, bindings);
this.field = field;
-// initType();
-// initTypes();
-// initBindings();
this.id = createId("ProducerField-" + declaringBean.getType().getName() + "-"+ field.getName());
-// initStereotypes();
-// initPolicy();
}
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
- if (!isInitialized())
- {
- super.initialize(environment);
- }
- }
-
public void destroy(T instance, CreationalContext<T> creationalContext)
{
dispose(instance);
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-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ProducerMethod.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -29,7 +29,6 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.MethodInjectionPoint;
import org.jboss.webbeans.injection.ParameterInjectionPoint;
import org.jboss.webbeans.introspector.WBMethod;
@@ -99,6 +98,8 @@
this.disposalMethodBean = disposalMethodBean;
this.specializedBean = specializedBean;
this.id = createId("ProducerMethod-" + declaringBean.getType().getName() + "-" + method.getSignature().toString());
+ initProducerMethodInjectableParameters();
+ checkProducerMethod();
}
public T produce(CreationalContext<T> creationalContext)
@@ -115,20 +116,6 @@
}
/**
- * Initializes the bean and its metadata
- */
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
- if (!isInitialized())
- {
- initProducerMethodInjectableParameters();
- super.initialize(environment);
- checkProducerMethod();
- }
- }
-
- /**
* Initializes the injection points
*/
protected void initProducerMethodInjectableParameters()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/RIBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -26,7 +26,6 @@
import javax.enterprise.inject.spi.InjectionPoint;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.WBInjectionPoint;
/**
@@ -65,7 +64,7 @@
return getType();
}
- public abstract void initialize(BeanDeployerEnvironment environment);
+ public abstract void initialize();
public abstract boolean isSpecializing();
@@ -80,6 +79,7 @@
public abstract Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints();
+ @SuppressWarnings("unchecked")
public Set<InjectionPoint> getInjectionPoints()
{
return (Set) getAnnotatedInjectionPoints();
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/SessionBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/SessionBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/SessionBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -38,7 +38,6 @@
import org.jboss.webbeans.bean.proxy.EnterpriseBeanInstance;
import org.jboss.webbeans.bean.proxy.EnterpriseBeanProxyMethodHandler;
import org.jboss.webbeans.bean.proxy.Marker;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.ejb.InternalEjbDescriptor;
import org.jboss.webbeans.ejb.api.SessionObjectReference;
import org.jboss.webbeans.ejb.spi.EjbServices;
@@ -55,6 +54,7 @@
* An enterprise bean representation
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T> The type (class) of the bean
*/
@@ -83,20 +83,20 @@
Set<Type> types,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<javax.enterprise.inject.spi.Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<javax.enterprise.inject.spi.Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
Class<T> proxyClass,
SessionBean<?> specializedBean)
{
WBClass<T> type = manager.getServices().get(ClassTransformer.class).loadClass(ejbDescriptor.getBeanClass());
- return new SessionBean<T>(type, ejbDescriptor, manager, name, types, mergedStereotypes, scopeType, policy, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy, proxyClass, specializedBean);
+ return new SessionBean<T>(type, ejbDescriptor, manager, name, types, mergedStereotypes, scopeType, decorators, policy, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy, proxyClass, specializedBean);
}
/**
@@ -112,53 +112,29 @@
Set<Type> types,
MergedStereotypes<T, Class<T>> mergedStereotypes,
Class<? extends Annotation> scopeType,
+ List<javax.enterprise.inject.spi.Decorator<?>> decorators,
boolean policy,
boolean proxyable,
Set<Annotation> bindings,
Set<String> dependencies,
Class<T> proxyClassForDecorators,
- List<javax.enterprise.inject.spi.Decorator<?>> decorators,
WBMethod<?, ?> postConstruct,
WBMethod<?, ?> preDestroy,
Class<T> proxyClass,
SessionBean<?> specializedBean)
{
- super(type, manager, name, types, mergedStereotypes, scopeType, policy, false, proxyable, bindings, dependencies,
- proxyClassForDecorators, decorators, postConstruct, preDestroy);
+ super(type, manager, name, types, mergedStereotypes, scopeType, decorators, policy, false, proxyable, bindings, dependencies,
+ proxyClassForDecorators, postConstruct, preDestroy);
this.ejbDescriptor = ejbDescriptor;
this.proxyClass = proxyClass;
this.specializedBean = specializedBean;
- }
- /**
- * Initializes the bean and its metadata
- */
- @Override
- public void initialize(BeanDeployerEnvironment environment)
- {
- if (!isInitialized())
- {
- super.initialize(environment);
-// initProxyClass();
- checkEJBTypeAllowed();
- checkConflictingRoles();
- checkObserverMethods();
- checkScopeAllowed();
- }
+ checkEJBTypeAllowed();
+ checkConflictingRoles();
+ checkObserverMethods();
+ checkScopeAllowed();
}
-// protected void initProxyClass()
-// {
-// Set<Type> types = new LinkedHashSet<Type>(getTypes());
-// types.add(EnterpriseBeanInstance.class);
-// types.add(Serializable.class);
-// ProxyFactory proxyFactory = Proxies.getProxyFactory(types);
-//
-// @SuppressWarnings("unchecked")
-// Class<T> proxyClass = proxyFactory.createClass();
-//
-// this.proxyClass = proxyClass;
-// }
/**
* Validates for non-conflicting roles
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -21,8 +21,6 @@
import java.util.HashSet;
import java.util.Set;
-import javax.decorator.Decorates;
-import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Alternative;
import javax.enterprise.inject.Specializes;
import javax.enterprise.inject.spi.Bean;
@@ -34,22 +32,19 @@
import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.AbstractBean;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.WBInjectionPoint;
import org.jboss.webbeans.introspector.WBAnnotated;
-import org.jboss.webbeans.introspector.WBField;
-import org.jboss.webbeans.introspector.WBParameter;
import org.jboss.webbeans.literal.AnyLiteral;
import org.jboss.webbeans.literal.DefaultLiteral;
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.metadata.cache.MergedStereotypes;
-import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.util.Reflections;
/**
- * An abstract bean representation common for all beans
+ * Builder for An abstract bean representation common for all beans
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T> the type of bean
* @param <E> the Class<?> of the bean type
@@ -64,25 +59,31 @@
// Logger
private final Log log = Logging.getLog(AbstractBeanBuilder.class);
+
// The binding types
protected Set<Annotation> bindings;
+
// The name
protected String name;
+
// The scope type
protected Class<? extends Annotation> scopeType;
+
// The merged stereotypes
private MergedStereotypes<T, E> mergedStereotypes;
+
// Is it a policy, either defined by stereotypes or directly?
private boolean policy;
+
// The type
protected Class<T> type;
+
// The API types
protected Set<Type> types;
- // The injection points
- private Set<WBInjectionPoint<?, ?>> injectionPoints;
- private Set<WBInjectionPoint<?, ?>> delegateInjectionPoints;
+
// If the type a primitive?
private boolean primitive;
+
// The Web Beans manager
protected BeanManagerImpl manager;
@@ -106,8 +107,6 @@
{
super(manager);
this.manager = manager;
- this.injectionPoints = new HashSet<WBInjectionPoint<?, ?>>();
- this.delegateInjectionPoints = new HashSet<WBInjectionPoint<?,?>>();
}
/**
@@ -129,7 +128,6 @@
initScopeType();
initSerializable();
initProxyable();
- checkDelegateInjectionPoints();
}
void initStereotypes()
@@ -137,36 +135,6 @@
mergedStereotypes = new MergedStereotypes<T, E>(getAnnotatedItem().getMetaAnnotations(Stereotype.class), manager);
}
- void checkDelegateInjectionPoints()
- {
- if (this.delegateInjectionPoints.size() > 0)
- {
- throw new DefinitionException("Cannot place @Decorates at an injection point which is not on a Decorator " + this);
- }
- }
-
- void addInjectionPoint(WBInjectionPoint<?, ?> injectionPoint)
- {
- if (injectionPoint.isAnnotationPresent(Decorates.class))
- {
- this.delegateInjectionPoints.add(injectionPoint);
- }
- injectionPoints.add(injectionPoint);
- }
-
- void addInjectionPoints(Iterable<? extends WBInjectionPoint<?, ?>> injectionPoints)
- {
- for (WBInjectionPoint<?, ?> injectionPoint : injectionPoints)
- {
- addInjectionPoint(injectionPoint);
- }
- }
-
- Set<WBInjectionPoint<?, ?>> getDelegateInjectionPoints()
- {
- return delegateInjectionPoints;
- }
-
/**
* Initializes the API types
*/
@@ -251,24 +219,6 @@
this.primitive = Reflections.isPrimitive(getType());
}
- boolean checkInjectionPointsAreSerializable()
- {
- boolean passivating = manager.getServices().get(MetaAnnotationStore.class).getScopeModel(this.getScope()).isPassivating();
- for (WBInjectionPoint<?, ?> injectionPoint : getAnnotatedInjectionPoints())
- {
- Annotation[] bindings = injectionPoint.getMetaAnnotationsAsArray(Qualifier.class);
- Bean<?> resolvedBean = manager.getBeans(injectionPoint.getJavaClass(), bindings).iterator().next();
- if (passivating)
- {
- if (Dependent.class.equals(resolvedBean.getScope()) && !Reflections.isSerializable(resolvedBean.getBeanClass()) && (((injectionPoint instanceof WBField<?, ?>) && !((WBField<?, ?>) injectionPoint).isTransient()) || (injectionPoint instanceof WBParameter<?, ?>)))
- {
- return false;
- }
- }
- }
- return true;
- }
-
/**
* Initializes the scope type
*/
@@ -305,9 +255,6 @@
{
this.name = getSpecializedBean().getName();
}
-
- throw new RuntimeException("Next line commented");
- //manager.getSpecializedBeans().put(getSpecializedBean(), this);
}
void preSpecialize(BeanDeployerEnvironment environment)
@@ -355,12 +302,6 @@
@Override
abstract AbstractBean<?, ?> getSpecializedBean();
- @Override
- Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints()
- {
- return injectionPoints;
- }
-
/**
* Gets the merged stereotypes of the bean
*
@@ -453,13 +394,6 @@
return primitive;
}
- boolean isSerializable()
- {
- // TODO WTF - why are we not caching the serializability of injection
- // points!
- return serializable && checkInjectionPointsAreSerializable();
- }
-
void initSerializable()
{
serializable = Reflections.isSerializable(type);
@@ -486,6 +420,11 @@
{
return policy;
}
+
+ boolean isSerializable()
+ {
+ return serializable;
+ }
@Override
boolean isSpecializing()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractClassBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractClassBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractClassBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -18,6 +18,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
@@ -25,6 +26,7 @@
import java.util.Set;
import javassist.util.proxy.ProxyFactory;
+import javassist.util.proxy.ProxyObject;
import javax.enterprise.context.Dependent;
import javax.enterprise.context.NormalScope;
@@ -36,6 +38,9 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.AbstractBean;
+import org.jboss.webbeans.bean.DecoratorImpl;
+import org.jboss.webbeans.bean.SerializableBeanInstance;
+import org.jboss.webbeans.bean.proxy.DecoratorProxyMethodHandler;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.FieldInjectionPoint;
import org.jboss.webbeans.injection.MethodInjectionPoint;
@@ -48,9 +53,11 @@
import org.jboss.webbeans.util.Strings;
/**
- * An abstract bean representation common for class-based beans
+ * Builder for class-based beans
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T>
* @param <E>
@@ -144,54 +151,53 @@
T applyDecorators(T instance, CreationalContext<T> creationalContext, InjectionPoint originalInjectionPoint)
{
- throw new RuntimeException("NYI");
-// List<SerializableBeanInstance<DecoratorImpl<Object>, Object>> decoratorInstances = new ArrayList<SerializableBeanInstance<DecoratorImpl<Object>,Object>>();
-// InjectionPoint ip = originalInjectionPoint;
-// boolean outside = decoratorStackPosition.get().intValue() == 0;
-// try
-// {
-// int i = decoratorStackPosition.get();
-// while (i < decorators.size())
-// {
-// Decorator<?> decorator = decorators.get(i);
-// if (decorator instanceof DecoratorImpl<?>)
-// {
-// decoratorStackPosition.set(++i);
-//
-// @SuppressWarnings("unchecked")
-// DecoratorImpl<Object> decoratorBean = (DecoratorImpl<Object>) decorator;
-//
-// Object decoratorInstance = getManager().getReference(ip, decorator, creationalContext);
-// decoratorInstances.add(new SerializableBeanInstance<DecoratorImpl<Object>, Object>(decoratorBean, decoratorInstance));
-// ip = decoratorBean.getDelegateInjectionPoint();
-// }
-// else
-// {
-// throw new IllegalStateException("Cannot operate on non container provided decorator " + decorator);
-// }
-// }
-// }
-// finally
-// {
-// if (outside)
-// {
-// decoratorStackPosition.remove();
-// }
-// }
-// try
-// {
-// T proxy = proxyClassForDecorators.newInstance();
-// ((ProxyObject) proxy).setHandler(new DecoratorProxyMethodHandler(decoratorInstances, instance));
-// return proxy;
-// }
-// catch (InstantiationException e)
-// {
-// throw new RuntimeException("Could not instantiate decorator proxy for " + toString(), e);
-// }
-// catch (IllegalAccessException e)
-// {
-// throw new RuntimeException("Could not access bean correctly when creating decorator proxy for " + toString(), e);
-// }
+ List<SerializableBeanInstance<DecoratorImpl<Object>, Object>> decoratorInstances = new ArrayList<SerializableBeanInstance<DecoratorImpl<Object>,Object>>();
+ InjectionPoint ip = originalInjectionPoint;
+ boolean outside = decoratorStackPosition.get().intValue() == 0;
+ try
+ {
+ int i = decoratorStackPosition.get();
+ while (i < decorators.size())
+ {
+ Decorator<?> decorator = decorators.get(i);
+ if (decorator instanceof DecoratorImpl<?>)
+ {
+ decoratorStackPosition.set(++i);
+
+ @SuppressWarnings("unchecked")
+ DecoratorImpl<Object> decoratorBean = (DecoratorImpl<Object>) decorator;
+
+ Object decoratorInstance = getManager().getReference(ip, decorator, creationalContext);
+ decoratorInstances.add(new SerializableBeanInstance<DecoratorImpl<Object>, Object>(decoratorBean, decoratorInstance));
+ ip = decoratorBean.getDelegateInjectionPoint();
+ }
+ else
+ {
+ throw new IllegalStateException("Cannot operate on non container provided decorator " + decorator);
+ }
+ }
+ }
+ finally
+ {
+ if (outside)
+ {
+ decoratorStackPosition.remove();
+ }
+ }
+ try
+ {
+ T proxy = proxyClassForDecorators.newInstance();
+ ((ProxyObject) proxy).setHandler(new DecoratorProxyMethodHandler(decoratorInstances, instance));
+ return proxy;
+ }
+ catch (InstantiationException e)
+ {
+ throw new RuntimeException("Could not instantiate decorator proxy for " + toString(), e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new RuntimeException("Could not access bean correctly when creating decorator proxy for " + toString(), e);
+ }
}
List<Decorator<?>> getDecorators()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractProducerBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractProducerBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractProducerBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -49,9 +49,10 @@
import org.jboss.webbeans.util.Reflections;
/**
- * The implicit producer bean
+ * Builder for producer beans
*
* @author Gavin King
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T>
* @param <S>
@@ -170,7 +171,7 @@
@Override
void initialize(BeanDeployerEnvironment environment)
{
- getDeclaringBean().initialize(environment);
+ getDeclaringBean().initialize();
super.initialize(environment);
checkProducerReturnType();
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractReceiverBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractReceiverBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/AbstractReceiverBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -30,6 +30,7 @@
/**
* @author pmuir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
*/
abstract class AbstractReceiverBeanBuilder<T, S extends Member> extends AbstractBeanBuilder<T, S>
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderFactoryImpl.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderFactoryImpl.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderFactoryImpl.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -39,6 +39,7 @@
import org.jboss.webbeans.ejb.spi.EjbDescriptor;
/**
+ * Factory to create the builders
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision: 1.1 $
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-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/BeanBuilderImpl.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -178,25 +178,6 @@
private Set<Bean<?>> createSimpleBeans(WBClass<T> clazz)
{
-// beans = new LinkedHashSet<Bean<?>>();
-// ManagedBeanBuilder<T> mainBuilder = ManagedBeanBuilder.of(clazz, beanManager);
-//
-// mainBean = bean;
-//
-// beanDeployerEnvironment.addBean(bean);
-// beans.add(bean);
-//
-// createSubBeans(beans, bean);
-//
-// NewManagedBean<T> newBean = NewManagedBean.of(clazz, beanManager);
-// beanDeployerEnvironment.addBean(newBean);
-// beans.add(newBean);
-// this.newBean = newBean;
-//
-// if (!delayInitialization)
-// newBean.initialize(beanDeployerEnvironment);
-//
-// return beans;
beans = new LinkedHashSet<Bean<?>>();
ManagedBeanBuilder<T> builder = ManagedBeanBuilder.of(clazz, beanManager);
@@ -221,27 +202,6 @@
private Set<Bean<?>> createEnterpriseBeans(InternalEjbDescriptor<T> ejbDescriptor)
{
-// beans = new LinkedHashSet<Bean<?>>();
-// SessionBean<T> bean = SessionBean.of(ejbDescriptor, beanManager);
-// mainBean = bean;
-//
-// beanDeployerEnvironment.addBean(bean);
-// beans.add(bean);
-// if (!delayInitialization)
-// bean.initialize(beanDeployerEnvironment);
-//
-// createSubBeans(beans, bean);
-//
-// NewSessionBean<T> newBean = NewSessionBean.of(ejbDescriptor, beanManager);
-// beanDeployerEnvironment.addBean(newBean);
-// beans.add(newBean);
-// this.newBean = newBean;
-//
-// if (!delayInitialization)
-// newBean.initialize(beanDeployerEnvironment);
-//
-// return beans;
-
beans = new LinkedHashSet<Bean<?>>();
SessionBeanBuilder<T> builder = SessionBeanBuilder.of(ejbDescriptor, beanManager);
@@ -264,15 +224,6 @@
private Bean<T> createDecorator(WBClass<T> annotatedClass)
{
-// DecoratorImpl<T> bean = DecoratorImpl.of(annotatedClass, beanManager);
-// mainBean = bean;
-//
-// beanDeployerEnvironment.addBean(bean);
-// if (!delayInitialization)
-// bean.initialize(beanDeployerEnvironment);
-//
-// return bean;
-
DecoratorBuilder<T> builder = DecoratorBuilder.of(annotatedClass, beanManager);
builder.initialize(beanDeployerEnvironment);
DecoratorImpl<T> bean = builder.createBean();
@@ -319,11 +270,6 @@
{
for (WBMethod<?, ?> method : annotatedClass.getWBDeclaredMethodsWithAnnotatedParameters(Disposes.class))
{
-// DisposalMethod<?> disposalBean = DisposalMethod.of(beanManager, method, declaringBean);
-// beanDeployerEnvironment.addBean(disposalBean);
-// //Do not delay initialization of decorator beans, they get initialized right away in the original impl
-// disposalBean.initialize(beanDeployerEnvironment);
-
DisposalMethodBuilder<?> builder = DisposalMethodBuilder.of(beanManager, method, declaringBean);
//Do not delay initialization of decorator beans, they get initialized right away in the original impl
builder.initialize(beanDeployerEnvironment);
@@ -335,12 +281,6 @@
protected <T> void createProducerMethod(Set<Bean<?>> beans, AbstractClassBean<?> declaringBean, WBMethod<T, ?> annotatedMethod)
{
-// ProducerMethod<T> bean = ProducerMethod.of(annotatedMethod, declaringBean, beanManager);
-// beanDeployerEnvironment.addBean(bean);
-// beans.add(bean);
-// if (!delayInitialization)
-// bean.initialize(beanDeployerEnvironment);
-
ProducerMethodBuilder<T> builder = ProducerMethodBuilder.of(annotatedMethod, declaringBean, beanManager);
builder.initialize(beanDeployerEnvironment);
ProducerMethod<T> bean = builder.createBean();
@@ -358,25 +298,6 @@
protected <T> void createProducerField(Set<Bean<?>> beans, AbstractClassBean<?> declaringBean, WBField<T, ?> field)
{
-// 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)
-// bean.initialize(beanDeployerEnvironment);
-
ProducerFieldBuilder<T> builder = ProducerFieldBuilder.of(field, declaringBean, beanManager);
builder.initialize(beanDeployerEnvironment);
ProducerField<T> bean = builder.createBean();
@@ -397,14 +318,6 @@
protected <X, T> ObserverMethodImpl<X, T> createObserverMethod(RIBean<X> declaringBean, WBMethod<T, X> method)
{
-// ObserverMethodImpl<X, T> observer = ObserverFactory.create(method, declaringBean, beanManager);
-// ProcessObserverMethod<?, ?> event = createProcessObserverMethodEvent(observer, method);
-// beanManager.fireEvent(event);
-// beanDeployerEnvironment.addObserver(observer);
-// if (!delayInitialization)
-// observer.initialize();
-// return observer;
-
ObserverMethodImpl<X, T> observer = ObserverFactory.create(method, declaringBean, beanManager);
ProcessObserverMethod<?, ?> event = createProcessObserverMethodEvent(observer, method);
beanManager.fireEvent(event);
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DecoratorBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DecoratorBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DecoratorBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -18,23 +18,23 @@
import java.io.Serializable;
import java.lang.annotation.Annotation;
-import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.inject.spi.Decorator;
-import javax.inject.Inject;
import org.jboss.webbeans.BeanManagerImpl;
-import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.DecoratorImpl;
+import org.jboss.webbeans.bean.ForwardingDecorator;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.MethodInjectionPoint;
-import org.jboss.webbeans.injection.WBInjectionPoint;
import org.jboss.webbeans.introspector.WBClass;
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
class DecoratorBuilder<T> extends ManagedBeanBuilder<T>
{
@@ -77,8 +77,6 @@
return new DecoratorBuilder<T>(clazz, manager);
}
- private WBInjectionPoint<?, ?> delegateInjectionPoint;
- private Set<Annotation> delegateBindings;
private Type delegateType;
private Set<Type> delegateTypes;
private Set<Type> decoratedTypes;
@@ -94,11 +92,7 @@
if (!isInitialized())
{
super.initialize(environment);
- initDelegateInjectionPoint();
initDecoratedTypes();
- initDelegateBindings();
- initDelegateType();
- checkDelegateType();
}
}
@@ -109,82 +103,6 @@
this.decoratedTypes.remove(Serializable.class);
}
- void initDelegateInjectionPoint()
- {
- this.delegateInjectionPoint = getDelegateInjectionPoints().iterator().next();
- }
-
- @Override
- void checkDelegateInjectionPoints()
- {
- for (WBInjectionPoint<?, ?> injectionPoint : getDelegateInjectionPoints())
- {
- if (injectionPoint instanceof MethodInjectionPoint<?, ?> && !injectionPoint.isAnnotationPresent(Inject.class))
- {
- throw new DefinitionException("Method with @Decorates parameter must be an initializer method " + injectionPoint);
- }
- }
- if (getDelegateInjectionPoints().size() == 0)
- {
- throw new DefinitionException("No delegate injection points defined " + this);
- }
- else if (getDelegateInjectionPoints().size() > 1)
- {
- throw new DefinitionException("Too many delegate injection point defined " + this);
- }
- }
-
- void initDelegateBindings()
- {
- this.delegateBindings = new HashSet<Annotation>();
- this.delegateBindings.addAll(this.delegateInjectionPoint.getQualifiers());
- }
-
- void initDelegateType()
- {
- this.delegateType = this.delegateInjectionPoint.getBaseType();
- this.delegateTypes = new HashSet<Type>();
- delegateTypes.add(delegateType);
- }
-
- void checkDelegateType()
- {
- for (Type decoratedType : getDecoratedTypes())
- {
- if (decoratedType instanceof Class)
- {
- if (!((Class<?>) decoratedType).isAssignableFrom(delegateInjectionPoint.getJavaClass()))
- {
- throw new DefinitionException("The delegate type must extend or implement every decorated type. Decorated type " + decoratedType + "." + this );
- }
- }
- else if (decoratedType instanceof ParameterizedType)
- {
- ParameterizedType parameterizedType = (ParameterizedType) decoratedType;
- if (!delegateInjectionPoint.isParameterizedType())
- {
- throw new DefinitionException("The decorated type is parameterized, but the delegate type isn't. Delegate type " + delegateType + "." + this);
- }
- if (!Arrays.equals(delegateInjectionPoint.getActualTypeArguments(), parameterizedType.getActualTypeArguments()));
- Type rawType = ((ParameterizedType) decoratedType).getRawType();
- if (rawType instanceof Class && !((Class<?>) rawType).isAssignableFrom(delegateInjectionPoint.getJavaClass()))
- {
- throw new DefinitionException("The delegate type must extend or implement every decorated type. Decorated type " + decoratedType + "." + this );
- }
- else
- {
- throw new IllegalStateException("Unable to process " + decoratedType);
- }
-
- }
- }
- }
-
- Set<Annotation> getDelegateQualifiers()
- {
- return delegateBindings;
- }
-
Type getDelegateType()
{
return delegateType;
@@ -195,11 +113,6 @@
return decoratedTypes;
}
- WBInjectionPoint<?, ?> getDelegateInjectionPoint()
- {
- return delegateInjectionPoint;
- }
-
/**
* The type closure of the delegate type
*
@@ -229,11 +142,12 @@
@Override
DecoratorImpl<T> createBean()
{
- return DecoratorImpl.of(getAnnotatedItem(),
+ DecoratorImpl<T> bean = DecoratorImpl.of(getAnnotatedItem(),
getManager(),
name,
getMergedStereotypes(),
getScope(),
+ null,
isAlternative(),
isProxyable(),
bindings,
@@ -241,5 +155,9 @@
getPostConstruct(),
getPreDestroy(),
getSpecializedBean());
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DisposalMethodBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DisposalMethodBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/DisposalMethodBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -38,12 +38,16 @@
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBMethod;
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
class DisposalMethodBuilder<T> extends AbstractReceiverBeanBuilder<T, Method>
{
protected WBMethod<T, ?> disposalMethod;
- //protected MethodInjectionPoint<T, ?> disposalMethodInjectionPoint;
private final String id;
DisposalMethodBuilder(BeanManagerImpl manager, WBMethod<T, ?> disposalMethod, AbstractClassBean<?> declaringBean)
@@ -88,7 +92,6 @@
{
// At least 1 parameter exists, already checked in constructor
this.bindings = new HashSet<Annotation>();
- //this.bindings.addAll(disposalMethodInjectionPoint.getWBParameters().get(0).getQualifiers());
this.bindings.addAll(disposalMethod.getWBParameters().get(0).getQualifiers());
initDefaultBindings();
}
@@ -101,7 +104,6 @@
{
Set<Type> types = new HashSet<Type>();
types = new HashSet<Type>();
- //types.addAll(disposalMethodInjectionPoint.getAnnotatedParameters(Disposes.class).get(0).getTypeClosure());
types.addAll(disposalMethod.getAnnotatedWBParameters(Disposes.class).get(0).getTypeClosure());
types.add(Object.class);
super.types = types;
@@ -238,7 +240,7 @@
DisposalMethod<T> createBean()
{
- return DisposalMethod.of(manager,
+ DisposalMethod<T> bean = DisposalMethod.of(manager,
name,
disposalMethod,
getDeclaringBean(),
@@ -248,5 +250,9 @@
isAlternative(),
isProxyable(),
bindings);
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
}
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -1,172 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.bean.builder;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Set;
-
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.InjectionPoint;
-
-/**
- * A delegating bean
- *
- * @author Pete Muir
- *
- * @param <T>
- */
-public abstract class ForwardingBean<T> implements Bean<T>
-{
-
- /**
- * Creates an instance of the delegate
- *
- * @return an instance of the delegate
- */
- public T create(CreationalContext<T> creationalContext)
- {
- return delegate().create(creationalContext);
- }
-
- /**
- * Abstract getter for the delegate
- *
- * @return The delegate
- */
- protected abstract Bean<T> delegate();
-
- /**
- * Destroys an instance through the delegate
- *
- * @param instance The instance to destroy
- */
- public void destroy(T instance, CreationalContext<T> creationalContext)
- {
- delegate().destroy(instance, creationalContext);
- }
-
- /**
- * Compares an object with the delegate
- *
- * @return True if equals, false otherwise
- */
- @Override
- public boolean equals(Object obj)
- {
- return delegate().equals(obj);
- }
-
- public Class<?> getBeanClass()
- {
- return delegate().getBeanClass();
- }
-
- /**
- * Gets the binding types of the delegate
- *
- * @return The binding types
- */
- public Set<Annotation> getQualifiers()
- {
- return delegate().getQualifiers();
- }
-
- public Set<InjectionPoint> getInjectionPoints()
- {
- return delegate().getInjectionPoints();
- }
-
- /**
- * Gets the name of the delegate
- *
- * @return The name
- */
- public String getName()
- {
- return delegate().getName();
- }
-
- /**
- * The stereotypes applied to this bean
- *
- * @return stereotypes if any
- */
- public Set<Class<? extends Annotation>> getStereotypes()
- {
- return delegate().getStereotypes();
- }
-
- /**
- * Gets the scope type of the delegate
- *
- * @return The scope type
- */
- public Class<? extends Annotation> getScope()
- {
- return delegate().getScope();
- }
-
- /**
- * Gets the API types of the delegate
- *
- * @return The API types
- */
- public Set<Type> getTypes()
- {
- return delegate().getTypes();
- }
-
- /**
- * Gets the hash code of the delegate
- *
- * @return The hash code
- */
- @Override
- public int hashCode()
- {
- return delegate().hashCode();
- }
-
- /**
- * Indicates if the delegate is nullable
- *
- * @return True if nullable, false otherwise
- */
- public boolean isNullable()
- {
- return delegate().isNullable();
- }
-
- public boolean isAlternative()
- {
- return delegate().isAlternative();
- }
-
- /**
- * Returns a string representation
- *
- * @return The string representation
- */
- @Override
- public String toString()
- {
- return "ForwardingBean " + getName() + " for " + delegate().toString();
- }
-
-}
Deleted: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingDecorator.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingDecorator.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ForwardingDecorator.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.webbeans.bean.builder;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Set;
-
-import javax.enterprise.inject.spi.Decorator;
-
-public abstract class ForwardingDecorator<T> extends ForwardingBean<T> implements Decorator<T>
-{
-
- @Override
- protected abstract Decorator<T> delegate();
-
- public Set<Type> getDecoratedTypes()
- {
- return delegate().getDecoratedTypes();
- }
-
- public Set<Annotation> getDelegateQualifiers()
- {
- return delegate().getDelegateQualifiers();
- }
-
- public Type getDelegateType()
- {
- return delegate().getDelegateType();
- }
-
-}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ManagedBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ManagedBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ManagedBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -17,11 +17,11 @@
package org.jboss.webbeans.bean.builder;
import javax.enterprise.inject.spi.Decorator;
-import javax.enterprise.inject.spi.InjectionPoint;
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.AbstractClassBean;
+import org.jboss.webbeans.bean.DecoratorImpl;
import org.jboss.webbeans.bean.ManagedBean;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.introspector.WBClass;
@@ -34,9 +34,10 @@
import org.jboss.webbeans.util.Reflections;
/**
- * Represents a simple bean
+ * Builder for simple beans
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T> The type (class) of the bean
*/
@@ -76,21 +77,6 @@
initBindings();
}
- InjectionPoint attachCorrectInjectionPoint()
- {
- Decorator<?> decorator = getDecorators().get(getDecorators().size() - 1);
- if (decorator instanceof DecoratorBuilder<?>)
- {
- DecoratorBuilder<?> decoratorBean = (DecoratorBuilder<?>) decorator;
- InjectionPoint outerDelegateInjectionPoint = decoratorBean.getDelegateInjectionPoint();
- return getManager().replaceOrPushCurrentInjectionPoint(outerDelegateInjectionPoint);
- }
- else
- {
- throw new IllegalStateException("Cannot operate on user defined decorator");
- }
- }
-
/**
* Initializes the bean and its metadata
*/
@@ -131,9 +117,9 @@
}
for (Decorator<?> decorator : getDecorators())
{
- if (decorator instanceof DecoratorBuilder<?>)
+ if (decorator instanceof DecoratorImpl<?>)
{
- DecoratorBuilder<?> decoratorBean = (DecoratorBuilder<?>) decorator;
+ DecoratorImpl<?> decoratorBean = (DecoratorImpl<?>) decorator;
for (WBMethod<?, ?> decoratorMethod : decoratorBean.getAnnotatedItem().getWBMethods())
{
WBMethod<?, ?> method = getAnnotatedItem().getWBMethod(decoratorMethod.getSignature());
@@ -232,20 +218,24 @@
@Override
ManagedBean<T> createBean()
{
- return ManagedBean.of(
+ ManagedBean<T> bean = ManagedBean.of(
getAnnotatedItem(),
getManager(),
name,
getMergedStereotypes(),
getScope(),
+ getDecorators(),
isAlternative(),
isProxyable(),
bindings,
getSuperclasses(),
getProxyClassForDecorators(),
- getDecorators(),
getPostConstruct(),
getPreDestroy(),
getSpecializedBean());
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewManagedBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewManagedBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewManagedBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -28,9 +28,10 @@
import org.jboss.webbeans.literal.NewLiteral;
/**
- * Represents a @New simple bean
+ * Builder for a @New simple bean
*
* @author Nicklas Karlsson
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*/
class NewManagedBeanBuilder<T> extends ManagedBeanBuilder<T>
{
@@ -118,20 +119,24 @@
@Override
NewManagedBean<T> createBean()
{
- return NewManagedBean.of(
+ NewManagedBean<T> bean = NewManagedBean.of(
getAnnotatedItem(),
getManager(),
name,
getMergedStereotypes(),
getScope(),
+ getDecorators(),
isAlternative(),
isAlternative(),
bindings,
getSuperclasses(),
getProxyClassForDecorators(),
- getDecorators(),
getPostConstruct(),
getPreDestroy(),
getSpecializedBean());
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewSessionBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewSessionBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/NewSessionBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -30,9 +30,10 @@
import org.jboss.webbeans.resources.ClassTransformer;
/**
- * Represents a @New enterprise bean
+ * Builder for a @New enterprise bean
*
* @author Nicklas Karlsson
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*/
class NewSessionBeanBuilder<T> extends SessionBeanBuilder<T>
{
@@ -127,22 +128,26 @@
@Override
NewSessionBean<T> createBean()
{
- return NewSessionBean.of(getEjbDescriptor(),
+ NewSessionBean<T> bean = NewSessionBean.of(getEjbDescriptor(),
getManager(),
name,
types,
getMergedStereotypes(),
getScope(),
+ getDecorators(),
isAlternative(),
isProxyable(),
bindings,
getSuperclasses(),
getProxyClassForDecorators(),
- getDecorators(),
getPostConstruct(),
getPreDestroy(),
getProxyClass(),
getSpecializedBean());
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerFieldBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerFieldBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerFieldBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -35,9 +35,10 @@
import org.jboss.webbeans.ws.WSApiAbstraction;
/**
- * Represents a producer field
+ * Builder for a producer field
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T>
*/
@@ -157,9 +158,10 @@
public ProducerField<T> createBean()
{
+ ProducerField<T> bean = null;
if (isPersistenceContextProducerField(field))
{
- return PersistenceContextProducerField.of(field,
+ bean = PersistenceContextProducerField.of(field,
getDeclaringBean(),
manager,
name,
@@ -174,7 +176,7 @@
}
else if (isEEResourceProducerField(field))
{
- return EEResourceProducerField.of(field,
+ bean = EEResourceProducerField.of(field,
getDeclaringBean(),
manager,
name,
@@ -188,7 +190,7 @@
}
else
{
- return ProducerField.of(field,
+ bean = ProducerField.of(field,
getDeclaringBean(),
manager,
name,
@@ -200,6 +202,9 @@
isProxyable(),
bindings);
}
+
+ bean.initialize();
+ return bean;
}
private Set<Class<? extends Annotation>> createEmptyStereotypes()
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerMethodBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerMethodBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/ProducerMethodBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -37,9 +37,10 @@
import org.jboss.webbeans.util.Names;
/**
- * Represents a producer method bean
+ * Builder for a producer method bean
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T>
*/
@@ -245,7 +246,7 @@
public ProducerMethod<T> createBean()
{
- return ProducerMethod.of(method,
+ ProducerMethod<T> bean = ProducerMethod.of(method,
getDeclaringBean(),
manager,
name,
@@ -258,5 +259,9 @@
bindings,
disposalMethodBean,
specializedBean);
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/RIBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/RIBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/RIBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -17,23 +17,21 @@
package org.jboss.webbeans.bean.builder;
import java.lang.annotation.Annotation;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;
import javax.enterprise.context.Dependent;
-import javax.enterprise.inject.spi.InjectionPoint;
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bean.RIBean;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
-import org.jboss.webbeans.injection.WBInjectionPoint;
/**
- * Abstract base class with functions specific to RI built-in beans
+ * Builder for RI built-in beans
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*/
abstract class RIBeanBuilder<T>
{
@@ -82,14 +80,6 @@
abstract boolean isPrimitive();
- abstract Set<WBInjectionPoint<?, ?>> getAnnotatedInjectionPoints();
-
- @SuppressWarnings("unchecked")
- Set<InjectionPoint> getInjectionPoints()
- {
- return (Set) getAnnotatedInjectionPoints();
- }
-
abstract RIBean<?> getSpecializedBean();
abstract String getId();
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/SessionBeanBuilder.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/SessionBeanBuilder.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builder/SessionBeanBuilder.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -30,7 +30,6 @@
import javax.decorator.Decorator;
import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observes;
import javax.interceptor.Interceptor;
@@ -41,19 +40,17 @@
import org.jboss.webbeans.bean.proxy.EnterpriseBeanInstance;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.ejb.InternalEjbDescriptor;
-import org.jboss.webbeans.ejb.api.SessionObjectReference;
import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
-import org.jboss.webbeans.ejb.spi.EjbServices;
import org.jboss.webbeans.introspector.WBClass;
import org.jboss.webbeans.introspector.WBMethod;
import org.jboss.webbeans.resources.ClassTransformer;
-import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Proxies;
/**
- * An enterprise bean representation
+ * Builder for session beans
*
* @author Pete Muir
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
*
* @param <T> The type (class) of the bean
*/
@@ -313,22 +310,26 @@
@Override
SessionBean<T> createBean()
{
- return SessionBean.of(getEjbDescriptor(),
+ SessionBean<T> bean = SessionBean.of(getEjbDescriptor(),
getManager(),
name,
types,
getMergedStereotypes(),
getScope(),
+ getDecorators(),
isAlternative(),
isProxyable(),
bindings,
getSuperclasses(),
getProxyClassForDecorators(),
- getDecorators(),
getPostConstruct(),
getPreDestroy(),
getProxyClass(),
getSpecializedBean());
+
+ bean.initialize();
+ registerSpecializedBean(bean);
+ return bean;
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builtin/AbstractBuiltInBean.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builtin/AbstractBuiltInBean.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/builtin/AbstractBuiltInBean.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -26,7 +26,6 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bean.RIBean;
-import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.WBInjectionPoint;
import org.jboss.webbeans.literal.AnyLiteral;
import org.jboss.webbeans.literal.DefaultLiteral;
@@ -46,7 +45,7 @@
}
@Override
- public void initialize(BeanDeployerEnvironment environment)
+ public void initialize()
{
// No-op
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ee/EEResourceProducerField.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ee/EEResourceProducerField.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bean/ee/EEResourceProducerField.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -77,11 +77,11 @@
}
@Override
- public void initialize(BeanDeployerEnvironment environment)
+ public void initialize()
{
if (!isInitialized())
{
- super.initialize(environment);
+ super.initialize();
checkEEResource();
}
}
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployerEnvironment.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -78,7 +78,7 @@
else
{
ProducerMethod<?> bean = producerMethodBeanMap.get(method);
- bean.initialize(this);
+ bean.initialize();
return bean;
}
}
@@ -92,7 +92,7 @@
else
{
AbstractClassBean<?> bean = classBeanMap.get(clazz);
- bean.initialize(this);
+ bean.initialize();
return bean;
}
}
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-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/bootstrap/ExtensionBeanDeployer.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -65,7 +65,7 @@
WBClass<Extension> clazz = (WBClass<Extension>) classTransformer.loadClass(extension.getClass());
ExtensionBean bean = new ExtensionBean(getManager(), clazz, extension);
- bean.initialize(getEnvironment());
+ bean.initialize();
getEnvironment().addBean(bean);
getManager().addBean(bean);
Modified: ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-09-21 17:08:54 UTC (rev 3714)
+++ ri/branches/kabir-builder/impl/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-09-21 21:13:38 UTC (rev 3715)
@@ -302,8 +302,6 @@
*/
public static boolean isPrimitive(Class<?> type)
{
- if (type == null)
- throw new NullPointerException();
return type.isPrimitive();
}
@@ -787,6 +785,8 @@
*/
public static boolean isAssignableFrom(Set<Type> types1, Set<Type> types2)
{
+ if (types1 == null)
+ throw new NullPointerException();
for (Type type : types1)
{
if (isAssignableFrom(type, types2))
More information about the weld-commits
mailing list