You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2014/12/26 19:09:17 UTC
svn commit: r1648005 -
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
Author: rmannibucau
Date: Fri Dec 26 18:09:16 2014
New Revision: 1648005
URL: http://svn.apache.org/r1648005
Log:
exposing createInterceptorInstances to subclasses since otherwise no way to reuse @AroundConstruct init logic without having issues with decorators
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java?rev=1648005&r1=1648004&r2=1648005&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java Fri Dec 26 18:09:16 2014
@@ -164,32 +164,9 @@ public abstract class AbstractProducer<T
{
final CreationalContextImpl<T> creationalContextImpl = (CreationalContextImpl<T>) creationalContext;
- final Map<Interceptor<?>,Object> interceptorInstances = new HashMap<Interceptor<?>, Object>();
final Contextual<T> oldContextual = creationalContextImpl.getContextual();
- if (interceptorInfo != null)
- {
- // apply interceptorInfo
-
- // create EJB-style interceptors
- for (final Interceptor interceptorBean : interceptorInfo.getEjbInterceptors())
- {
- creationalContextImpl.putContextual(interceptorBean);
- interceptorInstances.put(interceptorBean, interceptorBean.create(creationalContext));
- }
-
- // create CDI-style interceptors
- for (final Interceptor interceptorBean : interceptorInfo.getCdiInterceptors())
- {
- creationalContextImpl.putContextual(interceptorBean);
- interceptorInstances.put(interceptorBean, interceptorBean.create(creationalContext));
- }
- for (final Interceptor interceptorBean : interceptorInfo.getConstructorCdiInterceptors())
- {
- creationalContextImpl.putContextual(interceptorBean);
- interceptorInstances.put(interceptorBean, interceptorBean.create(creationalContext));
- }
- }
+ final Map<Interceptor<?>, Object> interceptorInstances = createInterceptorInstances(creationalContextImpl);
creationalContextImpl.putContextual(oldContextual);
T instance = produce(interceptorInstances, creationalContextImpl);
@@ -228,6 +205,35 @@ public abstract class AbstractProducer<T
return instance;
}
+ protected Map<Interceptor<?>, Object> createInterceptorInstances(CreationalContextImpl<T> creationalContextImpl)
+ {
+ final Map<Interceptor<?>,Object> interceptorInstances = new HashMap<Interceptor<?>, Object>();
+ if (interceptorInfo != null)
+ {
+ // apply interceptorInfo
+
+ // create EJB-style interceptors
+ for (final Interceptor interceptorBean : interceptorInfo.getEjbInterceptors())
+ {
+ creationalContextImpl.putContextual(interceptorBean);
+ interceptorInstances.put(interceptorBean, interceptorBean.create(creationalContextImpl));
+ }
+
+ // create CDI-style interceptors
+ for (final Interceptor interceptorBean : interceptorInfo.getCdiInterceptors())
+ {
+ creationalContextImpl.putContextual(interceptorBean);
+ interceptorInstances.put(interceptorBean, interceptorBean.create(creationalContextImpl));
+ }
+ for (final Interceptor interceptorBean : interceptorInfo.getConstructorCdiInterceptors())
+ {
+ creationalContextImpl.putContextual(interceptorBean);
+ interceptorInstances.put(interceptorBean, interceptorBean.create(creationalContextImpl));
+ }
+ }
+ return interceptorInstances;
+ }
+
protected List<Decorator<?>> filterDecorators(final T instance, final List<Decorator<?>> decorators)
{
return decorators;