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/15 20:30:13 UTC
svn commit: r1433596 - in /openwebbeans/trunk/webbeans-impl/src:
main/java/org/apache/webbeans/component/
main/java/org/apache/webbeans/container/
main/java/org/apache/webbeans/decorator/
main/java/org/apache/webbeans/intercept/ main/java/org/apache/we...
Author: struberg
Date: Tue Jan 15 19:30:12 2013
New Revision: 1433596
URL: http://svn.apache.org/viewvc?rev=1433596&view=rev
Log:
OWB-344 mark parts of ProxyFactory as deprecated
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/InjectionTargetBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBeanPleaseRemove.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/InjectionTargetProducerRemove.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ProxyFactory.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/webbeans/SecureInterceptor.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java Tue Jan 15 19:30:12 2013
@@ -217,7 +217,7 @@ public abstract class BuildInOwbBean<T>
return actualInstance;
}
- T proxy = (T) webBeansContext.getProxyFactory().createBuildInBeanProxy(this);
+ T proxy = (T) webBeansContext.getProxyFactory().createBuildInBeanProxyRemove(this);
if (handlerClassName.equals(PROXY_HANDLER_VALUE_DEFAULT))
{
final MethodHandler handler = new BuildInBeanMethodHandler(this, actualInstance);
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=1433596&r1=1433595&r2=1433596&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 Tue Jan 15 19:30:12 2013
@@ -131,9 +131,9 @@ public abstract class InjectionTargetBea
if(getScope() == Dependent.class && !(this instanceof EnterpriseBeanMarker))
{
final ProxyFactory proxyFactory = getWebBeansContext().getProxyFactory();
- T result = (T) proxyFactory.createDependentScopedBeanProxy(this, instance, creationalContext);
+ T result = (T) proxyFactory.createDependentScopedBeanProxyRemove(this, instance, creationalContext);
//Means that Dependent Bean has interceptor/decorator
- if(proxyFactory.isProxyInstance(result))
+ if(proxyFactory.isProxyInstanceRemove(result))
{
//This is a dependent scoped bean instance,
//Therefore we inject dependencies of this instance
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Tue Jan 15 19:30:12 2013
@@ -706,7 +706,7 @@ public class BeanManagerImpl implements
if (instance == null)
{
//Create Managed Bean Proxy
- instance = webBeansContext.getProxyFactory().createNormalScopedBeanProxy((AbstractOwbBean<?>)bean,creationalContext);
+ instance = webBeansContext.getProxyFactory().createNormalScopedBeanProxyRemove((AbstractOwbBean<?>) bean, creationalContext);
//Cached instance
cacheProxies.put(bean, instance);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java Tue Jan 15 19:30:12 2013
@@ -412,7 +412,7 @@ public class WebBeansDecorator<T> extend
WebBeansContext webBeansContext = wrappedBean.getWebBeansContext();
Context context = webBeansContext.getBeanManagerImpl().getContext(getScope());
Object actualInstance = context.get((Bean<Object>) wrappedBean, (CreationalContext<Object>)creationalContext);
- T proxy = (T) webBeansContext.getProxyFactory().createDependentScopedBeanProxy(wrappedBean, actualInstance, creationalContext);
+ T proxy = (T) webBeansContext.getProxyFactory().createDependentScopedBeanProxyRemove(wrappedBean, actualInstance, creationalContext);
return proxy;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorInvocationContext.java Tue Jan 15 19:30:12 2013
@@ -50,6 +50,13 @@ public class InterceptorInvocationContex
if (index < interceptors.size())
{
Interceptor interceptor = interceptors.get(index++);
+ if (!interceptor.intercepts(type))
+ {
+ // continue with next interceptor
+ // this e.g. happens for lifecycle interceptors
+ return proceed();
+ }
+
return interceptor.intercept(type, instances.get(interceptor), this);
}
else
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorResolutionService.java Tue Jan 15 19:30:12 2013
@@ -53,7 +53,7 @@ import org.apache.webbeans.util.ClassUti
/**
* Class to calculate interceptor resolution information.
- *
+ * It also handles the proxy caching and applying.
*/
public class InterceptorResolutionService
{
@@ -139,7 +139,66 @@ public class InterceptorResolutionServic
businessMethodInterceptorInfos.put(annotatedMethod.getJavaMember(), methodInterceptorInfo);
}
- return new BeanInterceptorInfo(decorators, allUsedCdiInterceptors, businessMethodInterceptorInfos, nonInterceptedMethods);
+ Map<InterceptionType, LifecycleMethodInfo> lifecycleMethodInterceptorInfos
+ = new HashMap<InterceptionType, LifecycleMethodInfo>();
+
+ addLifecycleMethods(
+ lifecycleMethodInterceptorInfos,
+ annotatedType,
+ InterceptionType.POST_CONSTRUCT,
+ PostConstruct.class,
+ allUsedEjbInterceptors,
+ classLevelEjbInterceptors,
+ allUsedCdiInterceptors,
+ classInterceptorBindings,
+ true);
+
+ addLifecycleMethods(
+ lifecycleMethodInterceptorInfos,
+ annotatedType,
+ InterceptionType.PRE_DESTROY,
+ PreDestroy.class,
+ allUsedEjbInterceptors,
+ classLevelEjbInterceptors,
+ allUsedCdiInterceptors,
+ classInterceptorBindings,
+ true);
+
+ return new BeanInterceptorInfo(decorators, allUsedCdiInterceptors, businessMethodInterceptorInfos, nonInterceptedMethods, lifecycleMethodInterceptorInfos);
+ }
+
+ private void addLifecycleMethods(Map<InterceptionType, LifecycleMethodInfo> lifecycleMethodInterceptorInfos,
+ AnnotatedType<?> annotatedType,
+ InterceptionType interceptionType,
+ Class<? extends Annotation> annotation,
+ Set<Interceptor<?>> allUsedEjbInterceptors,
+ List<Interceptor<?>> classLevelEjbInterceptors,
+ Set<Interceptor<?>> allUsedCdiInterceptors,
+ Set<Annotation> classInterceptorBindings,
+ boolean parentFirst)
+ {
+ Set<InterceptionType> it = new HashSet<InterceptionType>();
+ it.add(interceptionType);
+ List<AnnotatedMethod<?>> foundMethods = new ArrayList<AnnotatedMethod<?>>();
+ BusinessMethodInterceptorInfo methodInterceptorInfo = new BusinessMethodInterceptorInfo(it);
+
+ List<AnnotatedMethod<?>> lifecycleMethodCandidates = webBeansContext.getInterceptorUtil().getLifecycleMethods(annotatedType, annotation, parentFirst);
+
+ for (AnnotatedMethod<?> lifecycleMethod : lifecycleMethodCandidates)
+ {
+ if (lifecycleMethod.getParameters().size() == 0)
+ {
+ foundMethods.add(lifecycleMethod);
+ calculateEjbMethodInterceptors(methodInterceptorInfo, allUsedEjbInterceptors, classLevelEjbInterceptors, lifecycleMethod);
+
+ calculateCdiMethodInterceptors(methodInterceptorInfo, allUsedCdiInterceptors, lifecycleMethod, classInterceptorBindings);
+ }
+ }
+
+ if (foundMethods.size() > 0 )
+ {
+ lifecycleMethodInterceptorInfos.put(interceptionType, new LifecycleMethodInfo(foundMethods, methodInterceptorInfo));
+ }
}
private <T> void collectEjbInterceptors(List<Interceptor<?>> ejbInterceptors, Annotated annotatedType)
@@ -363,12 +422,14 @@ public class InterceptorResolutionServic
public BeanInterceptorInfo(List<Decorator<?>> decorators,
Set<Interceptor<?>> interceptors,
Map<Method, BusinessMethodInterceptorInfo> businessMethodsInfo,
- List<Method> nonInterceptedMethods)
+ List<Method> nonInterceptedMethods,
+ Map<InterceptionType, LifecycleMethodInfo> lifecycleMethodInterceptorInfos)
{
this.decorators = decorators;
this.interceptors = interceptors;
this.businessMethodsInfo = businessMethodsInfo;
this.nonInterceptedMethods = nonInterceptedMethods;
+ this.lifecycleMethodInterceptorInfos = lifecycleMethodInterceptorInfos;
}
/**
@@ -394,6 +455,14 @@ public class InterceptorResolutionServic
*/
private List<Method> nonInterceptedMethods = Collections.EMPTY_LIST;
+ /**
+ * Contains info about lifecycle methods.
+ * A method can be a 'business method' when invoked via the user but a
+ * 'lifecycle method' while invoked by the container!
+ */
+ private Map<InterceptionType, LifecycleMethodInfo> lifecycleMethodInterceptorInfos = Collections.EMPTY_MAP;
+
+
public List<Decorator<?>> getDecorators()
{
return decorators;
@@ -413,6 +482,11 @@ public class InterceptorResolutionServic
{
return nonInterceptedMethods;
}
+
+ public Map<InterceptionType, LifecycleMethodInfo> getLifecycleMethodInterceptorInfos()
+ {
+ return lifecycleMethodInterceptorInfos;
+ }
}
/**
@@ -514,4 +588,27 @@ public class InterceptorResolutionServic
}
}
+
+ public static class LifecycleMethodInfo
+ {
+ private List<AnnotatedMethod<?>> methods = new ArrayList<AnnotatedMethod<?>>();
+ private BusinessMethodInterceptorInfo methodInterceptorInfo;
+
+ public LifecycleMethodInfo(List<AnnotatedMethod<?>> methods, BusinessMethodInterceptorInfo methodInterceptorInfo)
+ {
+ this.methods = methods;
+ this.methodInterceptorInfo = methodInterceptorInfo;
+ }
+
+ public List<AnnotatedMethod<?>> getMethods()
+ {
+ return methods;
+ }
+
+ public BusinessMethodInterceptorInfo getMethodInterceptorInfo()
+ {
+ return methodInterceptorInfo;
+ }
+ }
+
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBeanPleaseRemove.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBeanPleaseRemove.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBeanPleaseRemove.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptorBeanPleaseRemove.java Tue Jan 15 19:30:12 2013
@@ -291,7 +291,7 @@ public class WebBeansInterceptorBeanPlea
{
Context context = webBeansContext.getBeanManagerImpl().getContext(getScope());
Object actualInstance = context.get((Bean<Object>) delegateBean, (CreationalContext<Object>)creationalContext);
- T proxy = (T) webBeansContext.getProxyFactory().createDependentScopedBeanProxy(delegateBean, actualInstance, creationalContext);
+ T proxy = (T) webBeansContext.getProxyFactory().createDependentScopedBeanProxyRemove(delegateBean, actualInstance, creationalContext);
return proxy;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java Tue Jan 15 19:30:12 2013
@@ -40,6 +40,7 @@ import javax.enterprise.inject.spi.Annot
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.InjectionTarget;
import javax.enterprise.inject.spi.InterceptionType;
+import javax.enterprise.inject.spi.Interceptor;
import javax.inject.Inject;
import javax.interceptor.InvocationContext;
@@ -81,7 +82,7 @@ public class InjectionTargetImpl<T> exte
/**
* static information about Interceptors and Decorators of that bean
*/
- private BeanInterceptorInfo interceptorInfo;
+ private BeanInterceptorInfo interceptorInfo = null;
public InjectionTargetImpl(AnnotatedType<T> annotatedType, Set<InjectionPoint> points, WebBeansContext webBeansContext,
List<AnnotatedMethod<?>> postConstructMethods, List<AnnotatedMethod<?>> preDestroyMethods)
@@ -108,7 +109,8 @@ public class InjectionTargetImpl<T> exte
if (interceptorInfo != null)
{
// apply interceptorInfo
- interceptorInfo.getInterceptors();
+ Set<Interceptor<?>> interceptors = interceptorInfo.getInterceptors();
+
}
return instance;
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/InjectionTargetProducerRemove.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/InjectionTargetProducerRemove.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/InjectionTargetProducerRemove.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/creation/InjectionTargetProducerRemove.java Tue Jan 15 19:30:12 2013
@@ -98,7 +98,7 @@ public class InjectionTargetProducerRemo
//not correct. Injection must be on actual dependent
//instance,so not necessary to inject on proxy
final ProxyFactory proxyFactory = this.bean.getWebBeansContext().getProxyFactory();
- if(bean.getScope() == Dependent.class && proxyFactory.isProxyInstance(instance))
+ if(bean.getScope() == Dependent.class && proxyFactory.isProxyInstanceRemove(instance))
{
return;
}
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=1433596&r1=1433595&r2=1433596&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 Tue Jan 15 19:30:12 2013
@@ -53,7 +53,7 @@ import org.apache.webbeans.util.ClassUti
import org.apache.webbeans.util.WebBeansUtil;
/**
- * @deprecated TODO remove! replaced via {@link org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory}
+ * TODO remove old proxy handling. Only InterceptorDecoratorProxyFactory and NormalScopeProxyFactory shall remain.
*/
public final class ProxyFactory
{
@@ -62,10 +62,12 @@ public final class ProxyFactory
private ConcurrentMap<OwbBean<?>, Class<?>> dependentScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
private ConcurrentMap<OwbBean<?>, Class<?>> interceptorProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
private ConcurrentMap<ResourceBean<?, ?>, Class<?>> resourceBeanProxyClasses = 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<?>>>();
private Factory factory;
+
public ProxyFactory()
{
this(new JavassistFactory());
@@ -89,7 +91,7 @@ public final class ProxyFactory
}
- public Map<OwbBean<?>, Class<?>> getInterceptorProxyClasses()
+ private Map<OwbBean<?>, Class<?>> getInterceptorProxyClasses()
{
return interceptorProxyClasses;
}
@@ -165,7 +167,11 @@ public final class ProxyFactory
return proxyClass;
}
-
+
+
+ /**
+ * TODO rework! Still uses old proxy
+ */
public Object createDecoratorDelegate(OwbBean<?> bean, DelegateHandler newDelegateHandler)
throws Exception
{
@@ -173,11 +179,11 @@ public final class ProxyFactory
Class<?> proxyClass = this.getInterceptorProxyClasses().get(bean);
if (proxyClass == null)
{
- proxyClass = createProxyClass(bean);
+ proxyClass = createProxyClassRemove(bean);
this.getInterceptorProxyClasses().put(bean, proxyClass);
}
- final Object delegate = createProxy(proxyClass);
+ final Object delegate = createProxyRemove(proxyClass);
setHandler(delegate, newDelegateHandler);
return delegate;
}
@@ -189,7 +195,7 @@ public final class ProxyFactory
Class<?> proxyClass = resourceBeanProxyClasses.get(resourceBean);
if (proxyClass == null)
{
- proxyClass = createProxyClass(resourceBean);
+ proxyClass = createProxyClassRemove(resourceBean);
Class<?> oldClazz = resourceBeanProxyClasses.putIfAbsent(resourceBean, proxyClass);
if (oldClazz != null)
@@ -208,7 +214,10 @@ public final class ProxyFactory
}
- public Object createNormalScopedBeanProxy(OwbBean<?> bean, CreationalContext<?> creationalContext)
+ /**
+ * @deprecated uses old proxy
+ */
+ public Object createNormalScopedBeanProxyRemove(OwbBean<?> bean, CreationalContext<?> creationalContext)
{
Object result = null;
try
@@ -216,16 +225,16 @@ public final class ProxyFactory
Class<?> proxyClass = normalScopedBeanProxyClasses.get(bean);
if (proxyClass == null)
{
- proxyClass = createProxyClass(bean);
+ proxyClass = createProxyClassRemove(bean);
normalScopedBeanProxyClasses.putIfAbsent(bean, proxyClass);
}
- result = createProxy(proxyClass);
+ result = createProxyRemove(proxyClass);
if (!(bean instanceof WebBeansDecorator<?>) && !(bean instanceof WebBeansInterceptorBeanPleaseRemove<?>))
{
- InterceptorHandlerPleaseRemove interceptorHandler = createInterceptorHandler(bean, creationalContext);
+ InterceptorHandlerPleaseRemove interceptorHandler = createInterceptorHandlerRemove(bean, creationalContext);
setHandler(result, interceptorHandler);
}
@@ -238,13 +247,20 @@ public final class ProxyFactory
return result;
}
- private Object createProxy(Class<?> proxyClass)
+
+ /**
+ * @deprecated uses old proxy
+ */
+ private Object createProxyRemove(Class<?> proxyClass)
throws InstantiationException, IllegalAccessException
{
return factory.createProxy(proxyClass);
}
- private InterceptorHandlerPleaseRemove createInterceptorHandler(OwbBean<?> bean, CreationalContext<?> creationalContext)
+ /**
+ * @deprecated uses old proxy
+ */
+ private InterceptorHandlerPleaseRemove createInterceptorHandlerRemove(OwbBean<?> bean, CreationalContext<?> creationalContext)
{
String scopeClassName = bean.getScope().getName();
Class<? extends InterceptorHandlerPleaseRemove> interceptorHandlerClass = null;
@@ -322,7 +338,10 @@ public final class ProxyFactory
}
}
- public Object createBuildInBeanProxy(OwbBean<?> bean)
+ /**
+ * @deprecated uses old proxy
+ */
+ public Object createBuildInBeanProxyRemove(OwbBean<?> bean)
{
Object result = null;
try
@@ -330,10 +349,10 @@ public final class ProxyFactory
Class<?> proxyClass = buildInBeanProxyClasses.get(bean);
if (proxyClass == null)
{
- proxyClass = createProxyClass(bean);
+ proxyClass = createProxyClassRemove(bean);
buildInBeanProxyClasses.putIfAbsent(bean, proxyClass);
}
- result = createProxy(proxyClass);
+ result = createProxyRemove(proxyClass);
}
catch (Exception e)
{
@@ -342,8 +361,11 @@ public final class ProxyFactory
return result;
}
-
- public Object createDependentScopedBeanProxy(OwbBean<?> bean, Object actualInstance, CreationalContext<?> creastionalContext)
+
+ /**
+ * @deprecated uses old proxy. And will be obsolete anyway...
+ */
+ public Object createDependentScopedBeanProxyRemove(OwbBean<?> bean, Object actualInstance, CreationalContext<?> creastionalContext)
{
List<InterceptorData> interceptors = null;
@@ -408,11 +430,11 @@ public final class ProxyFactory
Class<?> proxyClass = dependentScopedBeanProxyClasses.get(bean);
if (proxyClass == null)
{
- proxyClass = createProxyClass(bean);
+ proxyClass = createProxyClassRemove(bean);
dependentScopedBeanProxyClasses.putIfAbsent(bean, proxyClass);
}
- Object result = createProxy(proxyClass);
+ Object result = createProxyRemove(proxyClass);
if (!(bean instanceof WebBeansDecorator<?>) && !(bean instanceof WebBeansInterceptorBeanPleaseRemove<?>))
{
setHandler(result, new DependentScopedBeanInterceptorHandlerRemove(bean, actualInstance, creastionalContext));
@@ -428,18 +450,24 @@ public final class ProxyFactory
return null;
}
- public Class<?> createProxyClass(OwbBean<?> bean)
+ /**
+ * @deprecated uses old proxy
+ */
+ private Class<?> createProxyClassRemove(OwbBean<?> bean)
{
- final ProxyInfo info = getProxyInfo(bean);
+ final ProxyInfoRemove info = getProxyInfo(bean);
return factory.getProxyClass(info.getSuperClass(), info.getInterfaces());
}
public Class<?> createAbstractDecoratorProxyClass(OwbBean<?> bean)
{
- return createProxyClass(bean);
+ return createProxyClassRemove(bean);
}
- public boolean isProxyInstance(Object o)
+ /**
+ * @deprecated uses old proxy
+ */
+ public boolean isProxyInstanceRemove(Object o)
{
return factory.isProxyInstance(o);
}
@@ -450,12 +478,15 @@ public final class ProxyFactory
return factory.createProxy(handler, interfaces);
}
- private static class ProxyInfo
+ /**
+ * @deprecated uses old proxy
+ */
+ private static class ProxyInfoRemove
{
private final Class<?> superClass;
private final Class<?>[] interfaces;
- private ProxyInfo(Class<?> superClass, Class<?>[] interfaces)
+ private ProxyInfoRemove(Class<?> superClass, Class<?>[] interfaces)
{
this.superClass = superClass;
this.interfaces = interfaces;
@@ -472,7 +503,10 @@ public final class ProxyFactory
}
}
- private static ProxyInfo getProxyInfo(Bean<?> bean)
+ /**
+ * @deprecated uses old proxy
+ */
+ private static ProxyInfoRemove getProxyInfo(Bean<?> bean)
{
final Set<Class<?>> interfaceList = new HashSet<Class<?>>();
Class<?> superClass = null;
@@ -499,6 +533,6 @@ public final class ProxyFactory
Class<?>[] interfaceArray = new Class<?>[interfaceList.size()];
interfaceArray = interfaceList.toArray(interfaceArray);
- return new ProxyInfo(superClass, interfaceArray);
+ return new ProxyInfoRemove(superClass, interfaceArray);
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/resolution/InterceptorResolutionServiceTest.java Tue Jan 15 19:30:12 2013
@@ -20,6 +20,7 @@ package org.apache.webbeans.newtests.int
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InterceptionType;
import javax.enterprise.util.AnnotationLiteral;
import java.lang.reflect.Method;
import java.util.ArrayList;
@@ -48,6 +49,8 @@ import org.junit.Assert;
import org.junit.Test;
import static org.apache.webbeans.intercept.InterceptorResolutionService.BeanInterceptorInfo;
+import static org.apache.webbeans.intercept.InterceptorResolutionService.BusinessMethodInterceptorInfo;
+import static org.apache.webbeans.intercept.InterceptorResolutionService.LifecycleMethodInfo;
/**
@@ -81,15 +84,20 @@ public class InterceptorResolutionServic
Assert.assertNull(interceptorInfo.getDecorators());
- Map<Method, InterceptorResolutionService.BusinessMethodInterceptorInfo> methodInterceptorInfos = interceptorInfo.getBusinessMethodsInfo();
+ Map<Method, BusinessMethodInterceptorInfo> methodInterceptorInfos = interceptorInfo.getBusinessMethodsInfo();
Assert.assertNotNull(methodInterceptorInfos);
Assert.assertEquals(8, methodInterceptorInfos.size());
- for (InterceptorResolutionService.BusinessMethodInterceptorInfo mi : methodInterceptorInfos.values())
+ for (BusinessMethodInterceptorInfo mi : methodInterceptorInfos.values())
{
Assert.assertEquals(1, mi.getCdiInterceptors().length);
}
+ Assert.assertEquals(2, interceptorInfo.getLifecycleMethodInterceptorInfos().size());
+ LifecycleMethodInfo lmiPostConstruct = interceptorInfo.getLifecycleMethodInterceptorInfos().get(InterceptionType.POST_CONSTRUCT);
+ Assert.assertNotNull(lmiPostConstruct);
+ Assert.assertNull(lmiPostConstruct.getMethodInterceptorInfo().getCdiInterceptors());
+
shutDownContainer();
}
@@ -122,15 +130,20 @@ public class InterceptorResolutionServic
Assert.assertNull(interceptorInfo.getDecorators());
- Map<Method, InterceptorResolutionService.BusinessMethodInterceptorInfo> methodInterceptorInfos = interceptorInfo.getBusinessMethodsInfo();
+ Map<Method, BusinessMethodInterceptorInfo> methodInterceptorInfos = interceptorInfo.getBusinessMethodsInfo();
Assert.assertNotNull(methodInterceptorInfos);
Assert.assertEquals(7, methodInterceptorInfos.size());
- for (InterceptorResolutionService.BusinessMethodInterceptorInfo mi : methodInterceptorInfos.values())
+ for (BusinessMethodInterceptorInfo mi : methodInterceptorInfos.values())
{
Assert.assertEquals(3, mi.getCdiInterceptors().length);
}
+ Assert.assertEquals(2, interceptorInfo.getLifecycleMethodInterceptorInfos().size());
+ LifecycleMethodInfo lmiPostConstruct = interceptorInfo.getLifecycleMethodInterceptorInfos().get(InterceptionType.POST_CONSTRUCT);
+ Assert.assertNotNull(lmiPostConstruct);
+ Assert.assertNotNull(lmiPostConstruct.getMethodInterceptorInfo().getCdiInterceptors());
+
shutDownContainer();
}
@@ -161,11 +174,11 @@ public class InterceptorResolutionServic
Assert.assertNull(interceptorInfo.getDecorators());
- Map<Method, InterceptorResolutionService.BusinessMethodInterceptorInfo> methodInterceptorInfos = interceptorInfo.getBusinessMethodsInfo();
+ Map<Method, BusinessMethodInterceptorInfo> methodInterceptorInfos = interceptorInfo.getBusinessMethodsInfo();
Assert.assertNotNull(methodInterceptorInfos);
Assert.assertEquals(2, methodInterceptorInfos.size());
- for (Map.Entry<Method, InterceptorResolutionService.BusinessMethodInterceptorInfo> mi : methodInterceptorInfos.entrySet())
+ for (Map.Entry<Method, BusinessMethodInterceptorInfo> mi : methodInterceptorInfos.entrySet())
{
if (mi.getKey().getName().equals("getMeaningOfLife"))
{
@@ -233,7 +246,7 @@ public class InterceptorResolutionServic
Assert.assertNotNull(interceptorInfo.getBusinessMethodsInfo());
Assert.assertEquals(2, interceptorInfo.getBusinessMethodsInfo().size());
- for (Map.Entry<Method, InterceptorResolutionService.BusinessMethodInterceptorInfo> mi : interceptorInfo.getBusinessMethodsInfo().entrySet())
+ for (Map.Entry<Method, BusinessMethodInterceptorInfo> mi : interceptorInfo.getBusinessMethodsInfo().entrySet())
{
Assert.assertNotNull(mi.getValue().getEjbInterceptors());
Assert.assertEquals(1, mi.getValue().getEjbInterceptors().length);
Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/webbeans/SecureInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/webbeans/SecureInterceptor.java?rev=1433596&r1=1433595&r2=1433596&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/webbeans/SecureInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/component/intercept/webbeans/SecureInterceptor.java Tue Jan 15 19:30:12 2013
@@ -18,11 +18,13 @@
*/
package org.apache.webbeans.test.component.intercept.webbeans;
+import javax.annotation.PostConstruct;
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
import org.apache.webbeans.test.component.intercept.webbeans.bindings.Secure;
+import org.apache.webbeans.util.ExceptionUtil;
@Secure
@Interceptor
@@ -30,6 +32,19 @@ public class SecureInterceptor
{
public static boolean CALL = false;
+ @PostConstruct
+ public void atCreationTime(InvocationContext ic)
+ {
+ try
+ {
+ ic.proceed();
+ }
+ catch (Exception e)
+ {
+ ExceptionUtil.throwAsRuntimeException(e);
+ }
+ }
+
@AroundInvoke
public Object manageTransaction(InvocationContext ctx) throws Exception
{