You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/07/07 21:46:06 UTC
svn commit: r791957 [2/2] - in
/incubator/openwebbeans/trunk/webbeans-impl/src:
main/java/org/apache/webbeans/component/
main/java/org/apache/webbeans/component/creation/
main/java/org/apache/webbeans/config/
main/java/org/apache/webbeans/lifecycle/ ma...
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContainerDeployer.java Tue Jul 7 19:46:05 2009
@@ -16,7 +16,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
import java.net.URL;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
@@ -24,15 +26,24 @@
import javax.enterprise.context.ScopeType;
import javax.enterprise.inject.deployment.Specializes;
+import javax.enterprise.inject.spi.AnnotatedField;
+import javax.enterprise.inject.spi.AnnotatedMethod;
+import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.Decorator;
import javax.enterprise.inject.spi.InjectionPoint;
+import javax.enterprise.inject.spi.Producer;
import javax.enterprise.inject.stereotype.Model;
import javax.interceptor.Interceptor;
import org.apache.webbeans.WebBeansConstants;
import org.apache.webbeans.component.ManagedBean;
+import org.apache.webbeans.component.ProducerFieldBean;
+import org.apache.webbeans.component.ProducerMethodBean;
import org.apache.webbeans.component.WebBeansType;
+import org.apache.webbeans.component.creation.ManagedBeanCreatorImpl;
+import org.apache.webbeans.component.creation.BeanCreator.MetaDataProvider;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.decorator.DecoratorUtil;
import org.apache.webbeans.decorator.WebBeansDecorator;
@@ -43,6 +54,18 @@
import org.apache.webbeans.exception.inject.InconsistentSpecializationException;
import org.apache.webbeans.intercept.webbeans.WebBeansInterceptor;
import org.apache.webbeans.logger.WebBeansLogger;
+import org.apache.webbeans.portable.AnnotatedElementFactory;
+import org.apache.webbeans.portable.creation.InjectionTargetProducer;
+import org.apache.webbeans.portable.events.ProcessAnnotatedTypeImpl;
+import org.apache.webbeans.portable.events.ProcessBeanImpl;
+import org.apache.webbeans.portable.events.ProcessInjectionTargetImpl;
+import org.apache.webbeans.portable.events.ProcessManagedBeanImpl;
+import org.apache.webbeans.portable.events.ProcessProducerFieldImpl;
+import org.apache.webbeans.portable.events.ProcessProducerImpl;
+import org.apache.webbeans.portable.events.ProcessProducerMethodImpl;
+import org.apache.webbeans.portable.events.discovery.AfterBeanDiscoveryImpl;
+import org.apache.webbeans.portable.events.discovery.AfterDeploymentValidationImpl;
+import org.apache.webbeans.portable.events.discovery.BeforeBeanDiscoveryImpl;
import org.apache.webbeans.spi.JNDIService;
import org.apache.webbeans.spi.ServiceLoader;
import org.apache.webbeans.spi.deployer.MetaDataDiscoveryService;
@@ -60,12 +83,20 @@
@SuppressWarnings("unchecked")
public class WebBeansContainerDeployer
{
- private static WebBeansLogger logger = WebBeansLogger.getLogger(WebBeansContainerDeployer.class);
+ //Logger instance
+ private static final WebBeansLogger logger = WebBeansLogger.getLogger(WebBeansContainerDeployer.class);
+ /**Deployment is started or not*/
protected boolean deployed = false;
+ /**XML Configurator*/
protected WebBeansXMLConfigurator xmlConfigurator = null;
+ /**
+ * Creates a new deployer with given xml configurator.
+ *
+ * @param xmlConfigurator xml configurator
+ */
public WebBeansContainerDeployer(WebBeansXMLConfigurator xmlConfigurator)
{
this.xmlConfigurator = xmlConfigurator;
@@ -99,22 +130,35 @@
JNDIService service = ServiceLoader.getService(JNDIService.class);
service.bind(WebBeansConstants.WEB_BEANS_MANAGER_JNDI_NAME, BeanManagerImpl.getManager());
+ //Fire Event
+ fireBeforeBeanDiscoveryEvent();
+
+ //Deploy bean from XML. Also configures deployments, interceptors, decorators.
deployFromXML(scanner);
+
+ //Checking stereotype conditions
checkStereoTypes(scanner);
+
+ //Configure Interceptors
configureInterceptors(scanner);
+
+ //Configure Decorators
configureDecorators(scanner);
+
+ //Discover classpath classes
deployFromClassPath(scanner);
+ //Check Specialization
checkSpecializations(scanner);
- //Fire @Initialized Event
- fireInitializeEvent();
+ //Fire Event
+ fireAfterBeanDiscoveryEvent();
//Validate injection Points
validateInjectionPoints();
- //Fire @Deployed Event
- fireDeployedEvent();
+ //Fire Event
+ fireAfterDeploymentValidationEvent();
deployed = true;
}
@@ -137,20 +181,37 @@
}
}
- private void fireInitializeEvent()
+ /**
+ * Fires event before bean discovery.
+ */
+ private void fireBeforeBeanDiscoveryEvent()
{
- //BeanManager manager = ManagerImpl.getManager();
- //manager.fireEvent(manager, new Annotation[] { new BeforeBeanDiscoveryLiteral() });
+ BeanManager manager = BeanManagerImpl.getManager();
+ manager.fireEvent(new BeforeBeanDiscoveryImpl(),new Annotation[0]);
}
-
- private void fireDeployedEvent()
+ /**
+ * Fires event after bean discovery.
+ */
+ private void fireAfterBeanDiscoveryEvent()
{
- //BeanManager manager = ManagerImpl.getManager();
- //manager.fireEvent(manager, new Annotation[] { new AfterBeanDiscoveryLiteral() });
+ BeanManager manager = BeanManagerImpl.getManager();
+ manager.fireEvent(new AfterBeanDiscoveryImpl(),new Annotation[0]);
}
+ /**
+ * Fires event after deployment valdiation.
+ */
+ private void fireAfterDeploymentValidationEvent()
+ {
+ BeanManager manager = BeanManagerImpl.getManager();
+ manager.fireEvent(new AfterDeploymentValidationImpl(),new Annotation[0]);
+ }
+
+ /**
+ * Validate all injection points.
+ */
private void validateInjectionPoints()
{
logger.info("Validation of injection points are started");
@@ -196,7 +257,11 @@
logger.info("All injection points are validated succesfully");
}
-
+ /**
+ * Validates beans.
+ *
+ * @param beans deployed beans
+ */
private void validate(Set<Bean<?>> beans)
{
BeanManagerImpl manager = BeanManagerImpl.getManager();
@@ -217,7 +282,12 @@
}
-
+ /**
+ * Discovers and deploys classes from class path.
+ *
+ * @param scanner discovery scanner
+ * @throws ClassNotFoundException if class not found
+ */
protected void deployFromClassPath(MetaDataDiscoveryService scanner) throws ClassNotFoundException
{
logger.info("Deploying configurations from class files is started");
@@ -242,10 +312,10 @@
continue;
}
- if (SimpleWebBeansConfigurator.isSimpleWebBean(implClass))
+ if (ManagedBeanConfigurator.isSimpleWebBean(implClass))
{
logger.info("Simple WebBeans Component with class name : " + componentClassName + " is found");
- defineSimpleWebBeans(implClass);
+ defineManagedBean(implClass);
}
else if (EJBWebBeansConfigurator.isEJBWebBean(implClass))
{
@@ -258,7 +328,15 @@
logger.info("Deploying configurations from class files is ended");
}
-
+
+ /**
+ * Discovers and deploys classes from XML.
+ *
+ * NOTE : Currently XML file is just used for configuring.
+ *
+ * @param scanner discovery scanner
+ * @throws WebBeansDeploymentException if exception
+ */
protected void deployFromXML(MetaDataDiscoveryService scanner) throws WebBeansDeploymentException
{
logger.info("Deploying configurations from XML files is started");
@@ -298,7 +376,13 @@
logger.info("Deploying configurations from XML is ended succesfully");
}
-
+
+ /**
+ * Discovers and deploys interceptors.
+ *
+ * @param scanner discovery scanner
+ * @throws ClassNotFoundException if class not found
+ */
protected void configureInterceptors(MetaDataDiscoveryService scanner) throws ClassNotFoundException
{
logger.info("Configuring the Interceptors is started");
@@ -315,7 +399,7 @@
logger.info("Simple WebBeans Interceptor Component with class name : " + interceptorClazz + " is found");
- defineSimpleWebBeansInterceptors(implClass);
+ defineInterceptors(implClass);
}
}
@@ -323,6 +407,12 @@
}
+ /**
+ * Discovers and deploys decorators.
+ *
+ * @param scanner discovery scanner
+ * @throws ClassNotFoundException if class not found
+ */
protected void configureDecorators(MetaDataDiscoveryService scanner) throws ClassNotFoundException
{
logger.info("Configuring the Decorators is started");
@@ -337,7 +427,7 @@
Class<?> implClass = ClassUtil.getClassFromName(decoratorClazz);
logger.info("Simple WebBeans Decorator Component with class name : " + decoratorClazz + " is found");
- defineSimpleWebBeansDecorators(implClass);
+ defineDecorators(implClass);
}
}
@@ -500,22 +590,148 @@
StereoTypeManager.getInstance().addStereoTypeModel(model);
}
- protected <T> void defineSimpleWebBeans(Class<T> clazz)
+ /**
+ * Defines and creates a new {@link ManagedBean}.
+ *
+ * <p>
+ * It fires each event that is defined in the specification
+ * section 11.5, <b>Container Lifecycle Events</b>
+ * </p>
+ *
+ * @param <T> bean class
+ * @param clazz managed bean class
+ */
+ protected <T> void defineManagedBean(Class<T> clazz)
{
- ManagedBean<T> component = null;
-
if (!AnnotationUtil.isAnnotationExistOnClass(clazz, Interceptor.class) && !AnnotationUtil.isAnnotationExistOnClass(clazz, javax.decorator.Decorator.class))
{
- component = SimpleWebBeansConfigurator.define(clazz, WebBeansType.SIMPLE);
- if (component != null)
+ AnnotatedType<T> annotatedType = AnnotatedElementFactory.newAnnotatedType(clazz);
+
+ ProcessAnnotatedTypeImpl<T> processAnnotatedEvent = new ProcessAnnotatedTypeImpl<T>(annotatedType);
+
+ //Fires ProcessAnnotatedType
+ BeanManagerImpl.getManager().fireEvent(processAnnotatedEvent, new Annotation[0]);
+
+ ManagedBean<T> managedBean = new ManagedBean<T>(clazz,WebBeansType.MANAGED);
+ ManagedBeanCreatorImpl<T> managedBeanCreator = new ManagedBeanCreatorImpl<T>(managedBean);
+
+ if(processAnnotatedEvent.isVeto())
+ {
+ return;
+ }
+
+ if(processAnnotatedEvent.isSet())
+ {
+ managedBeanCreator.setMetaDataProvider(MetaDataProvider.THIRDPARTY);
+ }
+
+ InjectionTargetProducer<T> injectionTarget = new InjectionTargetProducer<T>(managedBean);
+ ProcessInjectionTargetImpl<T> processInjectionTargetEvent = new ProcessInjectionTargetImpl<T>(injectionTarget,annotatedType);
+
+ //Fires ProcessInjectionTarget
+ BeanManagerImpl.getManager().fireEvent(processInjectionTargetEvent, new Annotation[0]);
+
+ if(processInjectionTargetEvent.isSet())
+ {
+ managedBeanCreator.setInjectedTarget(processInjectionTargetEvent.getInjectionTarget());
+ }
+
+ Set<ProducerMethodBean<?>> producerMethods = managedBeanCreator.defineProducerMethods();
+ Map<ProducerMethodBean<?>,AnnotatedMethod<?>> annotatedMethods = new HashMap<ProducerMethodBean<?>, AnnotatedMethod<?>>();
+ for(ProducerMethodBean<?> producerMethod : producerMethods)
+ {
+ AnnotatedMethod<?> method = AnnotatedElementFactory.newAnnotatedMethod(producerMethod.getCreatorMethod(), producerMethod.getParent().getReturnType());
+ ProcessProducerImpl<?, ?> producerEvent = new ProcessProducerImpl(method);
+
+ //Fires ProcessProducer for methods
+ BeanManagerImpl.getManager().fireEvent(producerEvent, new Annotation[0]);
+
+ annotatedMethods.put(producerMethod, method);
+
+ if(producerEvent.isProducerSet())
+ {
+ producerMethod.setProducer((Producer) managedBeanCreator.getProducer());
+ }
+
+ producerEvent.setProducerSet(false);
+ }
+
+ Set<ProducerFieldBean<?>> producerFields = managedBeanCreator.defineProducerFields();
+ Map<ProducerFieldBean<?>,AnnotatedField<?>> annotatedFields = new HashMap<ProducerFieldBean<?>, AnnotatedField<?>>();
+ for(ProducerFieldBean<?> producerField : producerFields)
{
- BeanManagerImpl.getManager().addBean(WebBeansUtil.createNewSimpleBeanComponent(component));
+ AnnotatedField<?> field = AnnotatedElementFactory.newAnnotatedField(producerField.getCreatorField(), producerField.getParent().getReturnType());
+ ProcessProducerImpl<?, ?> producerEvent = new ProcessProducerImpl(field);
+
+ //Fires ProcessProducer for fields
+ BeanManagerImpl.getManager().fireEvent(producerEvent, new Annotation[0]);
- DecoratorUtil.checkSimpleWebBeanDecoratorConditions(component);
+ annotatedFields.put(producerField, field);
+
+ if(producerEvent.isProducerSet())
+ {
+ producerField.setProducer((Producer) managedBeanCreator.getProducer());
+ }
+
+ producerEvent.setProducerSet(false);
+ }
- /* I have added this into the ComponentImpl.afterCreate(); */
- // DefinitionUtil.defineSimpleWebBeanInterceptorStack(component);
- BeanManagerImpl.getManager().addBean(component);
+ ProcessBeanImpl<T> processBeanEvent = new ProcessManagedBeanImpl<T>(managedBean,annotatedType);
+
+ //Fires ProcessManagedBean
+ BeanManagerImpl.getManager().fireEvent(processBeanEvent, new Annotation[0]);
+
+ for(ProducerMethodBean<?> bean : annotatedMethods.keySet())
+ {
+ AnnotatedMethod<?> annotatedMethod = annotatedMethods.get(bean);
+ Method disposal = bean.getDisposalMethod();
+ AnnotatedMethod<?> disposalAnnotated = AnnotatedElementFactory.newAnnotatedMethod(disposal, bean.getParent().getReturnType());
+
+ ProcessProducerMethodImpl<?, ?> processProducerMethodEvent = new ProcessProducerMethodImpl(bean,annotatedMethod,disposalAnnotated.getParameters().get(0));
+
+ //Fires ProcessProducer
+ BeanManagerImpl.getManager().fireEvent(processProducerMethodEvent, new Annotation[0]);
+ }
+
+ for(ProducerFieldBean<?> bean : annotatedFields.keySet())
+ {
+ AnnotatedField<?> field = annotatedFields.get(bean);
+
+ ProcessProducerFieldImpl<?, ?> processProducerFieldEvent = new ProcessProducerFieldImpl(bean,field);
+
+ //Fire ProcessProducer
+ BeanManagerImpl.getManager().fireEvent(processProducerFieldEvent, new Annotation[0]);
+ }
+
+ managedBeanCreator.defineSerializable();
+ managedBeanCreator.defineStereoTypes();
+ Class<? extends Annotation> deploymentType = managedBeanCreator.defineDeploymentType("There are more than one @DeploymentType annotation in ManagedBean implementation class : " + managedBean.getReturnType().getName());
+ managedBeanCreator.defineApiType();
+ managedBeanCreator.defineScopeType("ManagedBean implementation class : " + clazz.getName() + " stereotypes must declare same @ScopeType annotations");
+ managedBeanCreator.defineBindingType();
+ managedBeanCreator.defineName(WebBeansUtil.getSimpleWebBeanDefaultName(clazz.getSimpleName()));
+ managedBeanCreator.defineConstructor();
+ Set<ProducerMethodBean<?>> producerMethodBeans = annotatedMethods.keySet();
+ Set<ProducerFieldBean<?>> producerFieldBeans = annotatedFields.keySet();
+ managedBeanCreator.defineDisposalMethods();
+ managedBeanCreator.defineInjectedFields();
+ managedBeanCreator.defineInjectedMethods();
+ managedBeanCreator.defineObserverMethods();
+
+ //Set InjectionTarget that is used by the container to inject dependencies!
+ if(managedBeanCreator.isInjectionTargetSet())
+ {
+ managedBean.setInjectionTarget(managedBeanCreator.getInjectedTarget());
+ }
+
+ // Check if the deployment type is enabled.
+ if (WebBeansUtil.isDeploymentTypeEnabled(deploymentType))
+ {
+ BeanManagerImpl.getManager().addBean(WebBeansUtil.createNewSimpleBeanComponent(managedBean));
+ DecoratorUtil.checkSimpleWebBeanDecoratorConditions(managedBean);
+ BeanManagerImpl.getManager().addBean(managedBean);
+ BeanManagerImpl.getManager().getBeans().addAll(producerMethodBeans);
+ BeanManagerImpl.getManager().getBeans().addAll(producerFieldBeans);
}
}
}
@@ -525,14 +741,14 @@
*
* @param clazz interceptor class
*/
- protected <T> void defineSimpleWebBeansInterceptors(Class<T> clazz)
+ protected <T> void defineInterceptors(Class<T> clazz)
{
- WebBeansUtil.defineSimpleWebBeansInterceptors(clazz);
+ WebBeansUtil.defineInterceptors(clazz);
}
- protected <T> void defineSimpleWebBeansDecorators(Class<T> clazz)
+ protected <T> void defineDecorators(Class<T> clazz)
{
- WebBeansUtil.defineSimpleWebBeansDecorators(clazz);
+ WebBeansUtil.defineDecorators(clazz);
}
protected void defineEnterpriseWebBeans()
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/WebBeansLifeCycle.java Tue Jul 7 19:46:05 2009
@@ -13,6 +13,7 @@
*/
package org.apache.webbeans.lifecycle;
+import java.lang.annotation.Annotation;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.Executors;
@@ -40,6 +41,7 @@
import org.apache.webbeans.logger.WebBeansLogger;
import org.apache.webbeans.plugins.PluginLoader;
import org.apache.webbeans.portable.events.ExtensionLoader;
+import org.apache.webbeans.portable.events.discovery.BeforeShutDownImpl;
import org.apache.webbeans.servlet.WebBeansConfigurationListener;
import org.apache.webbeans.spi.JNDIService;
import org.apache.webbeans.spi.ServiceLoader;
@@ -188,6 +190,9 @@
public void applicationEnded(ServletContextEvent event)
{
+ //Fire shut down
+ this.rootManager.fireEvent(new BeforeShutDownImpl(), new Annotation[0]);
+
service.shutdownNow();
ContextFactory.destroyApplicationContext(event.getServletContext());
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessAnnotatedTypeImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessAnnotatedTypeImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessAnnotatedTypeImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessAnnotatedTypeImpl.java Tue Jul 7 19:46:05 2009
@@ -35,6 +35,16 @@
private boolean set = false;
/**
+ * Creates a new instance with the given annotated type.
+ *
+ * @param annotatedType annotated type
+ */
+ public ProcessAnnotatedTypeImpl(AnnotatedType<X> annotatedType)
+ {
+ this.annotatedType = annotatedType;
+ }
+
+ /**
* {@inheritDoc}
*/
@Override
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessBeanImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessBeanImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessBeanImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessBeanImpl.java Tue Jul 7 19:46:05 2009
@@ -27,10 +27,16 @@
public abstract class ProcessBeanImpl<X> implements ProcessBean<X>
{
/**Annotated instance. Can be AnnotatedType, AnnotatedMethod or AnnotatedField*/
- private Annotated annotated;
+ private final Annotated annotated;
/**ManagedBean, SessionBean, ProducerMethodBean, ProducerFieldBean*/
- private Bean<X> bean;
+ private final Bean<X> bean;
+
+ protected ProcessBeanImpl(Bean<X> bean, Annotated annotated)
+ {
+ this.bean = bean;
+ this.annotated = annotated;
+ }
/**
* {@inheritDoc}
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessInjectionTargetImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessInjectionTargetImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessInjectionTargetImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessInjectionTargetImpl.java Tue Jul 7 19:46:05 2009
@@ -27,7 +27,7 @@
public class ProcessInjectionTargetImpl<X> implements ProcessInjectionTarget<X>
{
/**Annotated type instance that is used by container to read meta-data*/
- private AnnotatedType<X> annotatedType = null;
+ private final AnnotatedType<X> annotatedType;
/**Injection target that is used by container to inject dependencies*/
private InjectionTarget<X> injectionTarget = null;
@@ -36,6 +36,17 @@
private boolean set = false;
/**
+ * Creates a new instance.
+ *
+ * @param injectionTarget injection target
+ */
+ public ProcessInjectionTargetImpl(InjectionTarget<X> injectionTarget, AnnotatedType<X> annotatedType)
+ {
+ this.injectionTarget = injectionTarget;
+ this.annotatedType = annotatedType;
+ }
+
+ /**
* {@inheritDoc}
*/
@Override
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessManagedBeanImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessManagedBeanImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessManagedBeanImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessManagedBeanImpl.java Tue Jul 7 19:46:05 2009
@@ -16,6 +16,8 @@
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.ProcessManagedBean;
+import org.apache.webbeans.component.ManagedBean;
+
/**
* Implementation of {@link ProcessManagedBean}.
*
@@ -26,8 +28,14 @@
public class ProcessManagedBeanImpl<X> extends ProcessBeanImpl<X> implements ProcessManagedBean<X>
{
/**Annotated managed bean class*/
- private AnnotatedType<X> annotatedBeanClass;
+ private final AnnotatedType<X> annotatedBeanClass;
+ public ProcessManagedBeanImpl(ManagedBean<X> bean, AnnotatedType<X> annotatedType)
+ {
+ super(bean, annotatedType);
+ this.annotatedBeanClass = annotatedType;
+ }
+
/**
* {@inheritDoc}
*/
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessObserverMethodImpl.java Tue Jul 7 19:46:05 2009
@@ -28,11 +28,17 @@
public class ProcessObserverMethodImpl<X,T> implements ProcessObserverMethod<X, T>
{
/**Observer annotated method*/
- private AnnotatedMethod<X> annotatedMethod;
+ private final AnnotatedMethod<X> annotatedMethod;
/**ObserverMethod instance*/
- private ObserverMethod<X, T> observerMethod;
+ private final ObserverMethod<X, T> observerMethod;
+ public ProcessObserverMethodImpl(AnnotatedMethod<X> annotatedMethod,ObserverMethod<X, T> observerMethod)
+ {
+ this.annotatedMethod = annotatedMethod;
+ this.observerMethod = observerMethod;
+ }
+
/**
* {@inheritDoc}
*/
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerFieldImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerFieldImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerFieldImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerFieldImpl.java Tue Jul 7 19:46:05 2009
@@ -16,6 +16,8 @@
import javax.enterprise.inject.spi.AnnotatedField;
import javax.enterprise.inject.spi.ProcessProducerField;
+import org.apache.webbeans.component.ProducerFieldBean;
+
/**
* Implementation of the {@link ProcessProducerField}.
*
@@ -27,8 +29,14 @@
public class ProcessProducerFieldImpl<X,T> extends ProcessBeanImpl<T> implements ProcessProducerField<X, T>
{
/**Annotated field*/
- private AnnotatedField<X> annotatedField;
+ private final AnnotatedField<X> annotatedField;
+ public ProcessProducerFieldImpl(ProducerFieldBean<T> bean, AnnotatedField<X> annotatedField)
+ {
+ super(bean, annotatedField);
+ this.annotatedField = annotatedField;
+ }
+
/**
* {@inheritDoc}
*/
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerImpl.java Tue Jul 7 19:46:05 2009
@@ -28,7 +28,7 @@
public class ProcessProducerImpl<X,T> implements ProcessProducer<X, T>
{
/**Annotated method or annotated field according to producer method or field*/
- private AnnotatedMember<X> annotateMember = null;
+ private final AnnotatedMember<X> annotateMember;
/**Used by container to produce instance for producer method or field*/
private Producer<T> producer = null;
@@ -36,6 +36,11 @@
/**Set or not*/
private boolean set;
+ public ProcessProducerImpl(AnnotatedMember<X> annotateMember)
+ {
+ this.annotateMember = annotateMember;
+ }
+
/**
* {@inheritDoc}
*/
@@ -79,9 +84,14 @@
*
* @return set or not
*/
- public boolean isSet()
+ public boolean isProducerSet()
{
return this.set;
}
+
+ public void setProducerSet(boolean set)
+ {
+ this.set = set;
+ }
}
\ No newline at end of file
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerMethodImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerMethodImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerMethodImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessProducerMethodImpl.java Tue Jul 7 19:46:05 2009
@@ -17,6 +17,8 @@
import javax.enterprise.inject.spi.AnnotatedParameter;
import javax.enterprise.inject.spi.ProcessProducerMethod;
+import org.apache.webbeans.component.ProducerMethodBean;
+
/**
* Implementation of {@link ProcessProducerMethod}.
*
@@ -28,11 +30,18 @@
public class ProcessProducerMethodImpl<X,T> extends ProcessBeanImpl<T> implements ProcessProducerMethod<X, T>
{
/**Disposed parameter*/
- private AnnotatedParameter<X> annotatedDisposedParameter;
+ private final AnnotatedParameter<X> annotatedDisposedParameter;
/**Producer method*/
- private AnnotatedMethod<X> annotatedProducerMethod;
+ private final AnnotatedMethod<X> annotatedProducerMethod;
+ public ProcessProducerMethodImpl(ProducerMethodBean<T> bean, AnnotatedMethod<X> method, AnnotatedParameter<X> disposeParameter)
+ {
+ super(bean, method);
+ this.annotatedProducerMethod = method;
+ this.annotatedDisposedParameter = disposeParameter;
+ }
+
/**
* {@inheritDoc}
*/
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ProcessSessionBeanImpl.java Tue Jul 7 19:46:05 2009
@@ -14,6 +14,7 @@
package org.apache.webbeans.portable.events;
import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.ProcessSessionBean;
import javax.enterprise.inject.spi.SessionBeanType;
@@ -27,14 +28,22 @@
public class ProcessSessionBeanImpl<X> extends ProcessBeanImpl<Object> implements ProcessSessionBean<X>
{
/**Session bean annotated type*/
- private AnnotatedType<X> annotatedBeanClass;
+ private final AnnotatedType<X> annotatedBeanClass;
/**Ejb name*/
- private String ejbName;
+ private final String ejbName;
/**Session bean type*/
- private SessionBeanType type;
+ private final SessionBeanType type;
+ public ProcessSessionBeanImpl(Bean<Object> bean, AnnotatedType<X> annotatedType, String name, SessionBeanType type)
+ {
+ super(bean, annotatedType);
+ this.annotatedBeanClass = annotatedType;
+ this.ejbName = name;
+ this.type = type;
+ }
+
/**
* {@inheritDoc}
*/
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Tue Jul 7 19:46:05 2009
@@ -91,7 +91,7 @@
import org.apache.webbeans.component.WebBeansType;
import org.apache.webbeans.config.DefinitionUtil;
import org.apache.webbeans.config.EJBWebBeansConfigurator;
-import org.apache.webbeans.config.SimpleWebBeansConfigurator;
+import org.apache.webbeans.config.ManagedBeanConfigurator;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.conversation.ConversationImpl;
import org.apache.webbeans.decorator.DecoratorUtil;
@@ -604,9 +604,9 @@
NewBean<T> comp = null;
- if (SimpleWebBeansConfigurator.isSimpleWebBean(clazz))
+ if (ManagedBeanConfigurator.isSimpleWebBean(clazz))
{
- comp = new NewBean<T>(clazz, WebBeansType.SIMPLE);
+ comp = new NewBean<T>(clazz, WebBeansType.MANAGED);
comp.setConstructor(WebBeansUtil.defineConstructor(clazz));
DefinitionUtil.defineInjectedFields(comp);
@@ -1787,14 +1787,14 @@
}
@SuppressWarnings("unchecked")
- public static <T> void defineSimpleWebBeansInterceptors(Class<T> clazz)
+ public static <T> void defineInterceptors(Class<T> clazz)
{
if (InterceptorsManager.getInstance().isInterceptorEnabled(clazz))
{
ManagedBean<T> component = null;
InterceptorUtil.checkInterceptorConditions(clazz);
- component = SimpleWebBeansConfigurator.define(clazz, WebBeansType.INTERCEPTOR);
+ component = ManagedBeanConfigurator.define(clazz, WebBeansType.INTERCEPTOR);
if (component != null)
{
@@ -1805,14 +1805,14 @@
}
@SuppressWarnings("unchecked")
- public static <T> void defineSimpleWebBeansDecorators(Class<T> clazz)
+ public static <T> void defineDecorators(Class<T> clazz)
{
if (DecoratorsManager.getInstance().isDecoratorEnabled(clazz))
{
ManagedBean<T> component = null;
DecoratorUtil.checkDecoratorConditions(clazz);
- component = SimpleWebBeansConfigurator.define(clazz, WebBeansType.DECORATOR);
+ component = ManagedBeanConfigurator.define(clazz, WebBeansType.DECORATOR);
if (component != null)
{
@@ -1871,7 +1871,7 @@
public static boolean isSimpleWebBeans(AbstractBean<?> component)
{
- if(component.getWebBeansType().equals(WebBeansType.SIMPLE) ||
+ if(component.getWebBeansType().equals(WebBeansType.MANAGED) ||
component.getWebBeansType().equals(WebBeansType.INTERCEPTOR) ||
component.getWebBeansType().equals(WebBeansType.DECORATOR))
{
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/WebBeansXMLConfigurator.java Tue Jul 7 19:46:05 2009
@@ -51,7 +51,7 @@
import org.apache.webbeans.component.xml.XMLManagedBean;
import org.apache.webbeans.component.xml.XMLProducerBean;
import org.apache.webbeans.config.DefinitionUtil;
-import org.apache.webbeans.config.SimpleWebBeansConfigurator;
+import org.apache.webbeans.config.ManagedBeanConfigurator;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.decorator.DecoratorsManager;
import org.apache.webbeans.deployment.DeploymentTypeManager;
@@ -539,7 +539,7 @@
else
{
/* Simple WebBeans */
- if (SimpleWebBeansConfigurator.isSimpleWebBean(clazz))
+ if (ManagedBeanConfigurator.isSimpleWebBean(clazz))
{
// Configure Simple WebBean
configureSimpleWebBean(clazz, webBeanElement);
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/servlet/TestContext.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/servlet/TestContext.java?rev=791957&r1=791956&r2=791957&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/servlet/TestContext.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/servlet/TestContext.java Tue Jul 7 19:46:05 2009
@@ -40,7 +40,7 @@
import org.apache.webbeans.component.ManagedBean;
import org.apache.webbeans.component.WebBeansType;
import org.apache.webbeans.component.xml.XMLManagedBean;
-import org.apache.webbeans.config.SimpleWebBeansConfigurator;
+import org.apache.webbeans.config.ManagedBeanConfigurator;
import org.apache.webbeans.context.ContextFactory;
import org.apache.webbeans.context.DependentContext;
import org.apache.webbeans.decorator.DecoratorUtil;
@@ -314,7 +314,7 @@
{
ManagedBean<T> bean = null;
- bean = SimpleWebBeansConfigurator.define(clazz, WebBeansType.SIMPLE);
+ bean = ManagedBeanConfigurator.define(clazz, WebBeansType.MANAGED);
if (bean != null)
{
@@ -419,13 +419,13 @@
{
ManagedBean<T> component = null;
- SimpleWebBeansConfigurator.checkSimpleWebBeanCondition(clazz);
+ ManagedBeanConfigurator.checkSimpleWebBeanCondition(clazz);
{
// This is the interceptor class
if (InterceptorsManager.getInstance().isInterceptorEnabled(clazz))
{
InterceptorUtil.checkInterceptorConditions(clazz);
- component = SimpleWebBeansConfigurator.define(clazz, WebBeansType.INTERCEPTOR);
+ component = ManagedBeanConfigurator.define(clazz, WebBeansType.INTERCEPTOR);
WebBeansInterceptorConfig.configureInterceptorClass((ManagedBean<Object>) component, clazz.getDeclaredAnnotations());
}
@@ -448,7 +448,7 @@
if (DecoratorsManager.getInstance().isDecoratorEnabled(clazz))
{
DecoratorUtil.checkDecoratorConditions(clazz);
- component = SimpleWebBeansConfigurator.define(clazz, WebBeansType.DECORATOR);
+ component = ManagedBeanConfigurator.define(clazz, WebBeansType.DECORATOR);
if (component != null)
{