You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2013/01/18 13:27:02 UTC
svn commit: r1435108 - in /openwebbeans/trunk:
webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/
webbeans-impl/src/main/java/org/apache/webbeans/component/
webbeans-impl/src/main/java/org/apache/webbeans/component/creation/
webbean...
Author: struberg
Date: Fri Jan 18 12:27:01 2013
New Revision: 1435108
URL: http://svn.apache.org/viewvc?rev=1435108&view=rev
Log:
OWB-344 remove old WebBeansDecorator
Removed:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorRemove.java
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/DecoratorBeanBuilder.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandlerPleaseRemove.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java Fri Jan 18 12:27:01 2013
@@ -42,7 +42,6 @@ import javax.enterprise.context.RequestS
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.Decorator;
import javax.interceptor.AroundInvoke;
import javax.interceptor.AroundTimeout;
import javax.interceptor.InvocationContext;
@@ -52,7 +51,6 @@ import org.apache.webbeans.config.WebBea
import org.apache.webbeans.context.ContextFactory;
import org.apache.webbeans.context.creational.CreationalContextImpl;
import org.apache.webbeans.decorator.DelegateHandler;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
import org.apache.webbeans.decorator.WebBeansDecoratorInterceptor;
import org.apache.webbeans.ejb.common.component.BaseEjbBean;
import org.apache.webbeans.inject.OWBInjector;
@@ -469,47 +467,19 @@ public class OpenWebBeansEjbInterceptor
InterceptorDataImpl decoratorInterceptorDataImpl = null;
List<Object> decorators = null;
DelegateHandler delegateHandler = null;
- List<Decorator<?>> decoratorStack = injectionTarget.getDecoratorStack();
List<InterceptorData> interceptorStack = injectionTarget.getInterceptorStack();
if (logger.isLoggable(Level.FINE))
{
- logger.log(Level.FINE, "Decorator stack for target {0}", decoratorStack);
logger.log(Level.FINE, "Interceptor stack {0}", interceptorStack);
}
- if (decoratorStack.size() > 0 )
- {
- if (logger.isLoggable(Level.FINE))
- {
- logger.fine("Obtaining a delegate");
- }
-
- delegateHandler = new DelegateHandler(this.contextual, ejbContext);
- final Object delegate =
- webBeansContext.getProxyFactoryRemove().createDecoratorDelegate(injectionTarget, delegateHandler);
- // Gets component decorator stack
- decorators = WebBeansDecoratorConfig.getDecoratorStack(injectionTarget, instance, delegate,
- (CreationalContextImpl<?>)this.cc);
-
- //Sets decorator stack of delegate
- delegateHandler.setDecorators(decorators);
- }
-
if (interceptorStack.size() == 0)
{
- if (decoratorStack.size() == 0)
- {
- rv = ejbContext.proceed();
- }
- else
- {
- // We only have decorators, so run the decorator stack directly without interceptors.
- // The delegate handler knows about the ejbContext.proceed()
- rv = delegateHandler.invoke(instance, method, null, arguments);
- }
+ // The delegate handler knows about the ejbContext.proceed()
+ rv = delegateHandler.invoke(instance, method, null, arguments);
}
else
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java Fri Jan 18 12:27:01 2013
@@ -28,11 +28,9 @@ import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.Decorator;
import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.decorator.WebBeansDecoratorRemove;
import org.apache.webbeans.exception.WebBeansConfigurationException;
import org.apache.webbeans.intercept.InterceptorData;
@@ -61,12 +59,7 @@ public abstract class InjectionTargetBea
*/
protected List<InterceptorData> interceptorStack = new ArrayList<InterceptorData>();
- /**
- * Decorators
- * @deprecated will be replaced by InterceptorResolution logic and moved to InjectionTargetImpl
- */
- protected List<Decorator<?>> decorators = new ArrayList<Decorator<?>>();
-
+
protected InjectionTargetBean(WebBeansContext webBeansContext,
WebBeansType webBeansType,
AnnotatedType<T> annotatedType,
@@ -119,11 +112,6 @@ public abstract class InjectionTargetBea
{
return interceptorStack;
}
-
- public List<Decorator<?>> getDecoratorStack()
- {
- return decorators;
- }
/**
* {@inheritDoc}
@@ -140,22 +128,7 @@ public abstract class InjectionTargetBea
public void validatePassivationDependencies()
{
super.validatePassivationDependencies();
-
- //Check for interceptors and decorators
- for(int i = 0, size = decorators.size(); i < size; i++)
- {
- Decorator<?> dec = decorators.get(i);
- WebBeansDecoratorRemove<?> decorator = (WebBeansDecoratorRemove<?>)dec;
- if(!decorator.isPassivationCapable())
- {
- throw new WebBeansConfigurationException(MessageFormat.format(
- WebBeansLoggerFacade.getTokenString(OWBLogConst.EXCEPT_0015), toString()));
- }
- else
- {
- decorator.validatePassivationDependencies();
- }
- }
+
for(int i = 0, size = interceptorStack.size(); i < size; i++)
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ManagedBean.java Fri Jan 18 12:27:01 2013
@@ -25,7 +25,6 @@ import java.lang.reflect.Type;
import java.util.Set;
import javax.enterprise.inject.spi.AnnotatedType;
-import javax.enterprise.inject.spi.Decorator;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.intercept.InterceptorData;
@@ -97,14 +96,6 @@ public class ManagedBean<T> extends Inje
}
if(Serializable.class.isAssignableFrom(getReturnType()))
{
- for(Decorator<?> dec : decorators)
- {
- if(dec.getBeanClass() != null && !Serializable.class.isAssignableFrom(dec.getBeanClass()))
- {
- isPassivationCapable = Boolean.FALSE;
- return false;
- }
- }
for(InterceptorData interceptorData : interceptorStack)
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/DecoratorBeanBuilder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/DecoratorBeanBuilder.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/DecoratorBeanBuilder.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/DecoratorBeanBuilder.java Fri Jan 18 12:27:01 2013
@@ -36,13 +36,17 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.apache.webbeans.component.DecoratorBean;
import org.apache.webbeans.component.WebBeansType;
+import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.OwbParametrizedTypeImpl;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.exception.WebBeansConfigurationException;
import org.apache.webbeans.inject.impl.InjectionPointFactory;
+import org.apache.webbeans.logger.WebBeansLoggerFacade;
import org.apache.webbeans.util.ClassUtil;
@@ -51,6 +55,7 @@ import org.apache.webbeans.util.ClassUti
*/
public class DecoratorBeanBuilder<T> extends AbstractInjectionTargetBeanBuilder<T, DecoratorBean<T>>
{
+ private static Logger logger = WebBeansLoggerFacade.getLogger(DecoratorBeanBuilder.class);
private AnnotatedConstructor<T> constructor;
@@ -84,12 +89,6 @@ public class DecoratorBeanBuilder<T> ext
return result;
}
- @Override
- public Class<? extends Annotation> getScope()
- {
- // Interceptors are always Dependent scoped
- return Dependent.class;
- }
public void defineConstructor()
{
@@ -128,6 +127,38 @@ public class DecoratorBeanBuilder<T> ext
protected void checkDecoratorConditions()
{
+ if(getScope() != Dependent.class)
+ {
+ if(logger.isLoggable(Level.WARNING))
+ {
+ logger.log(Level.WARNING, OWBLogConst.WARN_0005_1, getBeanType().getName());
+ }
+ }
+
+ if(getName() != null)
+ {
+ if(logger.isLoggable(Level.WARNING))
+ {
+ logger.log(Level.WARNING, OWBLogConst.WARN_0005_2, getBeanType().getName());
+ }
+ }
+
+/*X TODO enable again
+ if(isAlternative())
+ {
+ if(logger.isLoggable(Level.WARNING))
+ {
+ logger.log(Level.WARNING, OWBLogConst.WARN_0005_3, getBeanType().getName());
+ }
+ }
+*/
+
+
+ if (logger.isLoggable(Level.FINE))
+ {
+ logger.log(Level.FINE, "Configuring decorator class : [{0}]", getBeanType());
+ }
+
Set<AnnotatedMethod<? super T>> methods = getAnnotated().getMethods();
for(AnnotatedMethod method : methods)
{
@@ -146,6 +177,9 @@ public class DecoratorBeanBuilder<T> ext
public void defineDecoratorRules()
{
+ defineScopeType(WebBeansLoggerFacade.getTokenString(OWBLogConst.TEXT_MB_IMPL) + getBeanType() +
+ WebBeansLoggerFacade.getTokenString(OWBLogConst.TEXT_SAME_SCOPE));
+
checkDecoratorConditions();
defineApiType();
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/ManagedBeanBuilder.java Fri Jan 18 12:27:01 2013
@@ -19,7 +19,6 @@
package org.apache.webbeans.component.creation;
import java.lang.annotation.Annotation;
-import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Set;
@@ -35,12 +34,8 @@ import org.apache.webbeans.component.Man
import org.apache.webbeans.component.WebBeansType;
import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.decorator.DecoratorUtil;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
-import org.apache.webbeans.exception.inject.DeploymentException;
import org.apache.webbeans.inject.impl.InjectionPointFactory;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
-import org.apache.webbeans.portable.AbstractDecoratorInjectionTarget;
import org.apache.webbeans.util.WebBeansUtil;
/**
@@ -147,60 +142,6 @@ public class ManagedBeanBuilder<T, M ext
bean.setConstructor(constructor.getJavaMember());
}
- /**
- * Define decorator bean.
- * @param annotatedType
- */
- public ManagedBean<T> defineDecorator(AnnotatedType<T> annotatedType)
- {
- Class<T> clazz = annotatedType.getJavaClass();
- if (webBeansContext.getDecoratorsManager().isDecoratorEnabled(clazz))
- {
- ManagedBean<T> delegate = null;
-
- DecoratorUtil.checkDecoratorConditions(clazz);
-
- if(Modifier.isAbstract(clazz.getModifiers()))
- {
- delegate = defineAbstractDecorator(annotatedType);
- }
- else
- {
- delegate = defineManagedBean(annotatedType);
- }
-
- if (delegate != null)
- {
- WebBeansDecoratorConfig.configureDecoratorClass(delegate);
- }
- else
- {
- // TODO could probably be a bit more descriptive
- throw new DeploymentException("Cannot create Decorator for class" + annotatedType);
- }
- return delegate;
- }
- else
- {
- return null;
- }
- }
-
- private ManagedBean<T> defineAbstractDecorator(AnnotatedType<T> annotatedType)
- {
-
- ManagedBean<T> bean = defineManagedBean(annotatedType);
- if (bean == null)
- {
- // TODO could probably be a bit more descriptive
- throw new DeploymentException("Cannot create ManagedBean for class" + annotatedType);
- }
-
- //X TODO move proxy instance creation into JavassistProxyFactory!
-
- bean.setProducer(new AbstractDecoratorInjectionTarget<T>(bean));
- return bean;
- }
@Override
protected M createBean(Set<Type> types,
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java Fri Jan 18 12:27:01 2013
@@ -56,7 +56,6 @@ import org.apache.webbeans.component.Cdi
import org.apache.webbeans.component.EnterpriseBeanMarker;
import org.apache.webbeans.component.InterceptedMarker;
import org.apache.webbeans.component.ManagedBean;
-import org.apache.webbeans.component.NewBean;
import org.apache.webbeans.component.OwbBean;
import org.apache.webbeans.component.ProducerFieldBean;
import org.apache.webbeans.component.ProducerMethodBean;
@@ -67,7 +66,6 @@ import org.apache.webbeans.container.Bea
import org.apache.webbeans.container.InjectableBeanManager;
import org.apache.webbeans.container.InjectionResolver;
import org.apache.webbeans.corespi.se.DefaultJndiService;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
import org.apache.webbeans.deployment.StereoTypeModel;
import org.apache.webbeans.event.ObserverMethodImpl;
import org.apache.webbeans.exception.WebBeansConfigurationException;
@@ -403,22 +401,10 @@ public class BeansDeployer
}
- if(bean instanceof InjectionTargetBean)
+ if(bean instanceof InjectionTargetBean && bean instanceof InterceptedMarker)
{
- //Decorators not applied to interceptors/decorators/@NewBean
- if(!(bean instanceof Decorator) &&
- !(bean instanceof javax.enterprise.inject.spi.Interceptor) &&
- !(bean instanceof NewBean))
- {
- WebBeansDecoratorConfig.configureDecorators((InjectionTargetBean<Object>)bean);
- }
-
- //If intercepted marker
- if(bean instanceof InterceptedMarker)
- {
- webBeansContext.getWebBeansInterceptorConfig().defineBeanInterceptorStack((InjectionTargetBean<Object>) bean);
- }
- }
+ webBeansContext.getWebBeansInterceptorConfig().defineBeanInterceptorStack((InjectionTargetBean<Object>) bean);
+ }
//Check passivation scope
checkPassivationScope(bean);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandlerPleaseRemove.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandlerPleaseRemove.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandlerPleaseRemove.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandlerPleaseRemove.java Fri Jan 18 12:27:01 2013
@@ -42,10 +42,8 @@ import org.apache.webbeans.config.WebBea
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.context.creational.CreationalContextImpl;
import org.apache.webbeans.decorator.DelegateHandler;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
import org.apache.webbeans.decorator.WebBeansDecoratorInterceptor;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
-import org.apache.webbeans.proxy.ProxyFactory;
import org.apache.webbeans.util.ClassUtil;
/**
@@ -135,7 +133,6 @@ import org.apache.webbeans.util.ClassUti
* @version $Rev$ $Date$
*
* @see WebBeansInterceptorConfig
- * @see WebBeansDecoratorConfig
*
* @deprecated the whole interceptor stack will be changed to the new ASM based proxying.
*/
@@ -235,10 +232,6 @@ public abstract class InterceptorHandler
//Check method is business method
if (webBeansContext.getInterceptorUtil().isWebBeansBusinessMethod(method))
{
- if (!injectionTarget.getDecoratorStack().isEmpty())
- {
- resolveDecoratorDelegateHandler(instance, ownerCreationalContext, injectionTarget);
- }
// Run around invoke chain
List<InterceptorData> interceptorStack = injectionTarget.getInterceptorStack();
@@ -337,24 +330,6 @@ public abstract class InterceptorHandler
return result;
}
- private synchronized void resolveDecoratorDelegateHandler(Object instance, CreationalContextImpl<?> ownerCreationalContext,
- InjectionTargetBean<?> injectionTarget)
- throws Exception
- {
- if (decoratorDelegateHandler == null)
- {
- final DelegateHandler newDelegateHandler = new DelegateHandler(bean);
- final ProxyFactory proxyFactory = webBeansContext.getProxyFactoryRemove();
-
- final Object delegate = proxyFactory.createDecoratorDelegate(bean, newDelegateHandler);
-
- // Gets component decorator stack
- List<Object> decorators = WebBeansDecoratorConfig.getDecoratorStack(injectionTarget, instance, delegate, ownerCreationalContext);
- //Sets decorator stack of delegate
- newDelegateHandler.setDecorators(decorators);
- decoratorDelegateHandler = newDelegateHandler;
- }
- }
/**
* Call around invoke method of the given bean on
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/discovery/AfterBeanDiscoveryImpl.java Fri Jan 18 12:27:01 2013
@@ -33,7 +33,6 @@ import org.apache.webbeans.component.Man
import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.container.BeanManagerImpl;
-import org.apache.webbeans.decorator.WebBeansDecoratorRemove;
import org.apache.webbeans.intercept.InterceptorsManager;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
import org.apache.webbeans.portable.events.generics.GProcessBean;
@@ -142,7 +141,7 @@ public class AfterBeanDiscoveryImpl impl
}
- webBeansContext.getDecoratorsManager().addDecorator(new WebBeansDecoratorRemove(managedBean, (Decorator) bean));
+ webBeansContext.getDecoratorsManager().addDecorator((Decorator) bean);
webBeansContext.getDecoratorsManager().addCustomDecoratorClass(bean.getBeanClass());
}
else
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java Fri Jan 18 12:27:01 2013
@@ -21,8 +21,6 @@ package org.apache.webbeans.proxy;
import java.io.Serializable;
import java.lang.reflect.Type;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -30,21 +28,11 @@ import java.util.concurrent.ConcurrentMa
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.Decorator;
-
-import org.apache.webbeans.component.InjectionTargetBean;
import org.apache.webbeans.component.OwbBean;
-import org.apache.webbeans.component.ResourceBean;
import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.context.creational.CreationalContextImpl;
import org.apache.webbeans.decorator.DelegateHandler;
-import org.apache.webbeans.decorator.WebBeansDecoratorRemove;
-import org.apache.webbeans.intercept.DependentScopedBeanInterceptorHandlerRemove;
-import org.apache.webbeans.intercept.InterceptorData;
-import org.apache.webbeans.intercept.webbeans.WebBeansInterceptorBeanPleaseRemove;
import org.apache.webbeans.proxy.javassist.JavassistFactory;
import org.apache.webbeans.util.ClassUtil;
-import org.apache.webbeans.util.WebBeansUtil;
@@ -54,11 +42,9 @@ import org.apache.webbeans.util.WebBeans
public final class ProxyFactory
{
- private ConcurrentMap<OwbBean<?>, Class<?>> buildInBeanProxyClassesRemove = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
private ConcurrentMap<OwbBean<?>, Class<?>> normalScopedBeanProxyClassesRemove = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
private ConcurrentMap<OwbBean<?>, Class<?>> dependentScopedBeanProxyClassesRemove = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClassesRemove = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
- private ConcurrentMap<ResourceBean<?, ?>, Class<?>> resourceBeanProxyClassesRemove = new ConcurrentHashMap<ResourceBean<?,?>, Class<?>>();
// second level map is indexed on local interface
private ConcurrentMap<OwbBean<?>, ConcurrentMap<Class<?>, Class<?>>> ejbProxyClasses = new ConcurrentHashMap<OwbBean<?>, ConcurrentMap<Class<?>, Class<?>>>();
@@ -108,30 +94,6 @@ public final class ProxyFactory
return delegate;
}
- public Class<?> getResourceBeanProxyClass(ResourceBean<?, ?> resourceBean)
- {
- try
- {
- Class<?> proxyClass = resourceBeanProxyClassesRemove.get(resourceBean);
- if (proxyClass == null)
- {
- proxyClass = createProxyClassRemove(resourceBean);
-
- Class<?> oldClazz = resourceBeanProxyClassesRemove.putIfAbsent(resourceBean, proxyClass);
- if (oldClazz != null)
- {
- return oldClazz;
- }
- }
- return proxyClass;
- }
- catch (Exception e)
- {
- WebBeansUtil.throwRuntimeExceptions(e);
- }
-
- return null;
- }
/**
* @deprecated uses old proxy
@@ -143,115 +105,13 @@ public final class ProxyFactory
}
/**
- * @deprecated uses old proxy
- */
- public Object createBuildInBeanProxyRemove(OwbBean<?> bean)
- {
- Object result = null;
- try
- {
- Class<?> proxyClass = buildInBeanProxyClassesRemove.get(bean);
- if (proxyClass == null)
- {
- proxyClass = createProxyClassRemove(bean);
- buildInBeanProxyClassesRemove.putIfAbsent(bean, proxyClass);
- }
- result = createProxyRemove(proxyClass);
- }
- catch (Exception e)
- {
- WebBeansUtil.throwRuntimeExceptions(e);
- }
- return result;
- }
-
-
- /**
* @deprecated uses old proxy. And will be obsolete anyway...
*/
public Object createDependentScopedBeanProxyRemove(OwbBean<?> bean, Object actualInstance, CreationalContext<?> creastionalContext)
{
- List<InterceptorData> interceptors = null;
- List<Decorator<?>> decorators = null;
- InjectionTargetBean<?> injectionTargetBean = null;
- if(bean instanceof InjectionTargetBean<?>)
- {
- injectionTargetBean = (InjectionTargetBean<?>)bean;
- interceptors = injectionTargetBean.getInterceptorStack();
- decorators = injectionTargetBean.getDecoratorStack();
- }
-
- if(interceptors == null && decorators == null)
- {
- return actualInstance;
- }
-
- boolean notInInterceptorClassAndLifecycle = false;
- if(interceptors != null && interceptors.size() > 0)
- {
- Iterator<InterceptorData> its = interceptors.iterator();
- while(its.hasNext())
- {
- InterceptorData id = its.next();
- if(!id.isDefinedInInterceptorClass() && id.isLifecycleInterceptor())
- {
- continue;
- }
- notInInterceptorClassAndLifecycle = true;
- break;
- }
- }
-
- //No need to return proxy
- if(!notInInterceptorClassAndLifecycle && decorators.isEmpty())
- {
- //Adding this dependent instance into creational context
- //This occurs when no owner of this dependent instance
- if(creastionalContext instanceof CreationalContextImpl)
- {
- //If this creational context is owned by itself, add it
- //For example, getting it directly BeanManager#getReference(bean,creational context)
- CreationalContextImpl<?> ccImpl = (CreationalContextImpl<?>)creastionalContext;
-
- //Non contextual instance --> Bean --> Null
- //See OWBInjector
- if(ccImpl.getBean() != null)
- {
- if(ccImpl.getBean().equals(bean))
- {
- //Owner of the dependent is itself
- ccImpl.addDependent(actualInstance, bean, actualInstance);
- }
- }
- }
-
- return actualInstance;
- }
-
- try
- {
- Class<?> proxyClass = dependentScopedBeanProxyClassesRemove.get(bean);
- if (proxyClass == null)
- {
- proxyClass = createProxyClassRemove(bean);
- dependentScopedBeanProxyClassesRemove.putIfAbsent(bean, proxyClass);
- }
-
- Object result = createProxyRemove(proxyClass);
- if (!(bean instanceof WebBeansDecoratorRemove<?>) && !(bean instanceof WebBeansInterceptorBeanPleaseRemove<?>))
- {
- setHandler(result, new DependentScopedBeanInterceptorHandlerRemove(bean, actualInstance, creastionalContext));
- }
+ throw new RuntimeException("Bloody Mary! this must not get used anymore!");
- return result;
- }
- catch (Exception e)
- {
- WebBeansUtil.throwRuntimeExceptions(e);
- }
-
- return null;
}
/**
@@ -268,19 +128,6 @@ public final class ProxyFactory
return createProxyClassRemove(bean);
}
- /**
- * @deprecated uses old proxy
- */
- public boolean isProxyInstanceRemove(Object o)
- {
- return factoryRemove.isProxyInstance(o);
- }
-
- public Object createProxy(MethodHandler handler, Class<?>[] interfaces)
- throws IllegalAccessException, InstantiationException
- {
- return factoryRemove.createProxy(handler, interfaces);
- }
/**
* @deprecated uses old proxy
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Fri Jan 18 12:27:01 2013
@@ -50,7 +50,6 @@ import javax.enterprise.inject.Alternati
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.IllegalProductException;
import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.Produces;
import javax.enterprise.inject.Specializes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
import javax.enterprise.inject.spi.AfterDeploymentValidation;
@@ -116,7 +115,6 @@ import org.apache.webbeans.config.WebBea
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.container.ExternalScope;
import org.apache.webbeans.container.InjectionResolver;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
import org.apache.webbeans.exception.WebBeansConfigurationException;
import org.apache.webbeans.exception.inject.DefinitionException;
import org.apache.webbeans.exception.inject.InconsistentSpecializationException;
@@ -127,7 +125,6 @@ import org.apache.webbeans.logger.WebBea
import org.apache.webbeans.plugins.OpenWebBeansEjbLCAPlugin;
import org.apache.webbeans.plugins.PluginLoader;
import org.apache.webbeans.portable.ProducerFieldProducer;
-import org.apache.webbeans.portable.ProducerMethodProducer;
import org.apache.webbeans.portable.events.discovery.ErrorStack;
import org.apache.webbeans.portable.events.generics.GProcessAnnotatedType;
import org.apache.webbeans.portable.events.generics.GProcessBean;
@@ -645,8 +642,6 @@ public final class WebBeansUtil
{
ConversationBean conversationComp = new ConversationBean(webBeansContext);
- WebBeansDecoratorConfig.configureDecorators(conversationComp);
-
return conversationComp;
}
@@ -2285,7 +2280,6 @@ public final class WebBeansUtil
managedBeanCreator.defineProducerFields(managedBean);
managedBeanCreator.defineObserverMethods(managedBean);
- WebBeansDecoratorConfig.configureDecorators(managedBean);
webBeansContext.getWebBeansInterceptorConfig().defineBeanInterceptorStack(managedBean);
managedBeanCreator.validateDisposalMethods(managedBean);//Define disposal method after adding producers
@@ -2429,7 +2423,6 @@ public final class WebBeansUtil
managedBeanCreator.defineProducerMethods(managedBean);
managedBeanCreator.defineProducerFields(managedBean);
managedBeanCreator.defineObserverMethods(managedBean);
- WebBeansDecoratorConfig.configureDecorators(managedBean);
webBeansContext.getWebBeansInterceptorConfig().defineBeanInterceptorStack(managedBean);
managedBeanCreator.validateDisposalMethods(managedBean); //Define disposal method after adding producers
@@ -2437,70 +2430,6 @@ public final class WebBeansUtil
return managedBean;
}
- @SuppressWarnings("unchecked")
- public <T> ManagedBean<T> defineAbstractDecorator(AnnotatedType<T> type)
- {
-
- ManagedBean<T> bean = defineManagedBean(type);
-
- //X TODO move proxy instance creation into JavassistProxyFactory!
- Class clazz = webBeansContext.getProxyFactoryRemove().createAbstractDecoratorProxyClass(bean);
-
- bean.setConstructor(defineConstructor(clazz));
- return bean;
- }
-
- /**
- * Define decorator bean.
- * @param <T> type info
- * @param annotatedType decorator class
- */
- public <T> ManagedBean<T> defineDecorator(AnnotatedType<T> annotatedType)
- {
- if (webBeansContext.getDecoratorsManager().isDecoratorEnabled(annotatedType.getJavaClass()))
- {
- ManagedBean<T> delegate = null;
-
- Set<AnnotatedMethod<? super T>> methods = annotatedType.getMethods();
- for(AnnotatedMethod<? super T> methodA : methods)
- {
- Method method = methodA.getJavaMember();
- if(AnnotationUtil.hasMethodAnnotation(method, Produces.class))
- {
- throw new WebBeansConfigurationException("Decorator class : " + annotatedType.getJavaClass() + " can not have producer methods but it has one with name : "
- + method.getName());
- }
-
- if(AnnotationUtil.hasMethodParameterAnnotation(method, Observes.class))
- {
- throw new WebBeansConfigurationException("Decorator class : " + annotatedType.getJavaClass() + " can not have observer methods but it has one with name : "
- + method.getName());
- }
-
- }
-
- if(Modifier.isAbstract(annotatedType.getJavaClass().getModifiers()))
- {
- delegate = defineAbstractDecorator(annotatedType);
- }
- else
- {
- delegate = defineManagedBean(annotatedType);
- }
-
- if (delegate != null)
- {
- WebBeansDecoratorConfig.configureDecoratorClass(delegate);
- }
- return delegate;
- }
- else
- {
- return null;
- }
- }
-
-
/**
* Checks the implementation class for checking conditions.
*
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java?rev=1435108&r1=1435107&r2=1435108&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/TestContext.java Fri Jan 18 12:27:01 2013
@@ -46,19 +46,17 @@ import org.apache.webbeans.component.Man
import org.apache.webbeans.component.ProducerFieldBean;
import org.apache.webbeans.component.ProducerMethodBean;
import org.apache.webbeans.component.WebBeansType;
+import org.apache.webbeans.component.creation.DecoratorBeanBuilder;
import org.apache.webbeans.component.creation.ManagedBeanBuilder;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.context.DependentContext;
import org.apache.webbeans.decorator.DecoratorUtil;
-import org.apache.webbeans.decorator.WebBeansDecoratorConfig;
import org.apache.webbeans.deployment.StereoTypeModel;
import org.apache.webbeans.exception.WebBeansConfigurationException;
import org.apache.webbeans.logger.WebBeansLoggerFacade;
import org.apache.webbeans.newtests.AbstractUnitTest;
import org.apache.webbeans.portable.InjectionTargetImpl;
-import org.apache.webbeans.portable.ProducerFieldProducer;
-import org.apache.webbeans.portable.ProducerMethodProducer;
import org.apache.webbeans.portable.events.generics.GProcessAnnotatedType;
import org.apache.webbeans.test.component.decorator.broken.DelegateAttributeIsnotInterface;
import org.apache.webbeans.test.component.decorator.broken.DelegateAttributeMustImplementAllDecoratedTypes;
@@ -284,7 +282,6 @@ public abstract class TestContext implem
if (bean != null)
{
DecoratorUtil.checkManagedBeanDecoratorConditions(bean,null);
- WebBeansDecoratorConfig.configureDecorators(bean);
webBeansContext.getWebBeansInterceptorConfig().defineBeanInterceptorStack(bean);
getComponents().add((AbstractOwbBean<?>) bean);
@@ -332,21 +329,18 @@ public abstract class TestContext implem
@SuppressWarnings("unchecked")
protected <T> AbstractOwbBean<T> defineDecorator(Class<T> clazz)
{
- ManagedBean<T> component = null;
WebBeansContext webBeansContext = WebBeansContext.getInstance();
if (webBeansContext.getDecoratorsManager().isDecoratorEnabled(clazz))
{
- DecoratorUtil.checkDecoratorConditions(clazz);
- component = define(clazz, WebBeansType.DECORATOR, webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz));
+ AnnotatedType<T> annotatedType = webBeansContext.getBeanManagerImpl().createAnnotatedType(clazz);
+ DecoratorBeanBuilder<T> dbb = new DecoratorBeanBuilder<T>(webBeansContext, annotatedType);
+ dbb.defineDecoratorRules();
- if (component != null)
- {
- WebBeansDecoratorConfig.configureDecoratorClass((ManagedBean<Object>) component);
- }
+ return dbb.getBean();
}
- return component;
+ return null;
}
/**