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 15:43:17 UTC
svn commit: r1435165 - in /openwebbeans/trunk/webbeans-impl/src:
main/java/org/apache/webbeans/context/
main/java/org/apache/webbeans/context/creational/
main/java/org/apache/webbeans/intercept/
test/java/org/apache/webbeans/newtests/proxy/
Author: struberg
Date: Fri Jan 18 14:43:16 2013
New Revision: 1435165
URL: http://svn.apache.org/viewvc?rev=1435165&view=rev
Log:
OWB-344 cleanup our Contexts after the CreationalContext rework
Added:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBag.java (contents, props changed)
- copied, changed from r1435158, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBagRemove.java
Removed:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/CustomContextImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/WebBeansContextRemove.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBagRemove.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/proxy/DummyScopedBeanInterceptorHandlerRemove.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ApplicationContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/CustomPassivatingContextImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/RequestContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SingletonContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DecoratorHandler.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java Fri Jan 18 14:43:16 2013
@@ -28,15 +28,16 @@ import java.util.Map.Entry;
import java.util.concurrent.ConcurrentMap;
import javax.enterprise.context.ContextNotActiveException;
+import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
import org.apache.webbeans.container.SerializableBean;
import org.apache.webbeans.container.SerializableBeanVault;
-import org.apache.webbeans.context.creational.BeanInstanceBagRemove;
+import org.apache.webbeans.context.creational.BeanInstanceBag;
/**
- * Abstract implementation of the {@link WebBeansContextRemove} interfaces.
+ * Abstract implementation of the {@link Context} interfaces.
*
* @see javax.enterprise.context.spi.Context
* @see RequestContext
@@ -45,7 +46,7 @@ import org.apache.webbeans.context.creat
* @see ApplicationContext
* @see ConversationContext
*/
-public abstract class AbstractContext implements WebBeansContextRemove, Serializable
+public abstract class AbstractContext implements Context, Serializable
{
private static final long serialVersionUID = 2357678967444477818L;
/**Context status, active or not*/
@@ -53,7 +54,7 @@ public abstract class AbstractContext im
/**Context contextual instances*/
- protected Map<Contextual<?>, BeanInstanceBagRemove<?>> componentInstanceMap = null;
+ protected Map<Contextual<?>, BeanInstanceBag<?>> componentInstanceMap = null;
/**Contextual Scope Type*/
protected Class<? extends Annotation> scopeType;
@@ -75,7 +76,7 @@ public abstract class AbstractContext im
@SuppressWarnings("unchecked")
private <T> void createContextualBag(Contextual<T> contextual, CreationalContext<T> creationalContext)
{
- BeanInstanceBagRemove<T> bag = new BeanInstanceBagRemove<T>(creationalContext);
+ BeanInstanceBag<T> bag = new BeanInstanceBag<T>(creationalContext);
if(componentInstanceMap instanceof ConcurrentMap)
{
@@ -112,7 +113,7 @@ public abstract class AbstractContext im
{
checkActive();
- BeanInstanceBagRemove bag = componentInstanceMap.get(component);
+ BeanInstanceBag bag = componentInstanceMap.get(component);
if(bag != null)
{
@@ -141,11 +142,11 @@ public abstract class AbstractContext im
T instance;
//Look for bag
- BeanInstanceBagRemove<T> bag = (BeanInstanceBagRemove<T>)componentInstanceMap.get(contextual);
+ BeanInstanceBag<T> bag = (BeanInstanceBag<T>)componentInstanceMap.get(contextual);
if(bag == null)
{
createContextualBag(contextual, creationalContext);
- bag = (BeanInstanceBagRemove<T>)componentInstanceMap.get(contextual);
+ bag = (BeanInstanceBag<T>)componentInstanceMap.get(contextual);
}
//Look for instance
@@ -177,7 +178,7 @@ public abstract class AbstractContext im
@SuppressWarnings("unchecked")
public <T> CreationalContext<T> getCreationalContext(Contextual<T> contextual)
{
- BeanInstanceBagRemove<?> bag = componentInstanceMap.get(contextual);
+ BeanInstanceBag<?> bag = componentInstanceMap.get(contextual);
if (bag != null)
{
return (CreationalContext<T>) bag.getBeanCreationalContext();
@@ -205,15 +206,15 @@ public abstract class AbstractContext im
@SuppressWarnings("unchecked")
public void destroy()
{
- Set<Entry<Contextual<?>, BeanInstanceBagRemove<?>>> entrySet = componentInstanceMap.entrySet();
- Iterator<Entry<Contextual<?>, BeanInstanceBagRemove<?>>> it = entrySet.iterator();
+ Set<Entry<Contextual<?>, BeanInstanceBag<?>>> entrySet = componentInstanceMap.entrySet();
+ Iterator<Entry<Contextual<?>, BeanInstanceBag<?>>> it = entrySet.iterator();
Contextual<?> contextual;
while (it.hasNext())
{
contextual = it.next().getKey();
- BeanInstanceBagRemove<?> instance = componentInstanceMap.get(contextual);
+ BeanInstanceBag<?> instance = componentInstanceMap.get(contextual);
//Get creational context
CreationalContext<Object> cc = (CreationalContext<Object>)instance.getBeanCreationalContext();
@@ -284,10 +285,10 @@ public abstract class AbstractContext im
{
SerializableBeanVault sbv = org.apache.webbeans.config.WebBeansContext.getInstance().getSerializableBeanVault();
- Map<Contextual<?>, BeanInstanceBagRemove<?>> serializableInstanceMap =
- new HashMap<Contextual<?>, BeanInstanceBagRemove<?>>();
+ Map<Contextual<?>, BeanInstanceBag<?>> serializableInstanceMap =
+ new HashMap<Contextual<?>, BeanInstanceBag<?>>();
- for (Map.Entry<Contextual<?>, BeanInstanceBagRemove<?>> componentInstanceMapEntry : componentInstanceMap.entrySet())
+ for (Map.Entry<Contextual<?>, BeanInstanceBag<?>> componentInstanceMapEntry : componentInstanceMap.entrySet())
{
serializableInstanceMap.put(sbv.getSerializableBean(componentInstanceMapEntry.getKey()),
componentInstanceMapEntry.getValue());
@@ -310,8 +311,8 @@ public abstract class AbstractContext im
{
scopeType = (Class<? extends Annotation>) s.readObject();
- HashMap<Contextual<?>, BeanInstanceBagRemove<?>> serializableInstanceMap =
- (HashMap<Contextual<?>, BeanInstanceBagRemove<?>>) s.readObject();
+ HashMap<Contextual<?>, BeanInstanceBag<?>> serializableInstanceMap =
+ (HashMap<Contextual<?>, BeanInstanceBag<?>>) s.readObject();
if (serializableInstanceMap != null)
{
@@ -321,7 +322,7 @@ public abstract class AbstractContext im
throw new NotSerializableException("componentInstanceMap not initialized!");
}
- for (Map.Entry<Contextual<?>, BeanInstanceBagRemove<?>> serializableInstanceMapEntry : serializableInstanceMap.entrySet())
+ for (Map.Entry<Contextual<?>, BeanInstanceBag<?>> serializableInstanceMapEntry : serializableInstanceMap.entrySet())
{
Contextual<?> bean = serializableInstanceMapEntry.getKey();
if (bean instanceof SerializableBean)
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ApplicationContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ApplicationContext.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ApplicationContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ApplicationContext.java Fri Jan 18 14:43:16 2013
@@ -23,7 +23,7 @@ import java.util.concurrent.ConcurrentHa
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.spi.Contextual;
-import org.apache.webbeans.context.creational.BeanInstanceBagRemove;
+import org.apache.webbeans.context.creational.BeanInstanceBag;
/**
* Application context implementation.
@@ -41,7 +41,7 @@ public class ApplicationContext extends
@Override
public void setComponentInstanceMap()
{
- componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBagRemove<?>>();
+ componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBag<?>>();
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java Fri Jan 18 14:43:16 2013
@@ -79,10 +79,10 @@ public final class ContextFactory
{
if (webBeansContext.getBeanManagerImpl().isPassivatingScope(context.getScope()))
{
- return new CustomPassivatingContextImpl(context);
+ return new CustomPassivatingContextImpl(webBeansContext.getSerializableBeanVault(), context);
}
- return new CustomContextImpl(context);
+ return context;
}
public void destroyRequestContext(Object request)
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java Fri Jan 18 14:43:16 2013
@@ -32,7 +32,7 @@ import java.util.concurrent.ConcurrentHa
import javax.enterprise.context.ConversationScoped;
import javax.enterprise.context.spi.Contextual;
-import org.apache.webbeans.context.creational.BeanInstanceBagRemove;
+import org.apache.webbeans.context.creational.BeanInstanceBag;
import org.apache.webbeans.util.WebBeansUtil;
/**
@@ -53,14 +53,14 @@ public class ConversationContext extends
@Override
public void setComponentInstanceMap()
{
- componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBagRemove<?>>();
+ componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBag<?>>();
}
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException
{
scopeType = (Class<? extends Annotation>) in.readObject();
- Map<String, BeanInstanceBagRemove<?>> map = (Map<String, BeanInstanceBagRemove<?>>)in.readObject();
+ Map<String, BeanInstanceBag<?>> map = (Map<String, BeanInstanceBag<?>>)in.readObject();
setComponentInstanceMap();
Iterator<String> it = map.keySet().iterator();
Contextual<?> contextual = null;
@@ -82,7 +82,7 @@ public class ConversationContext extends
{
out.writeObject(scopeType);
Iterator<Contextual<?>> it = componentInstanceMap.keySet().iterator();
- Map<String, BeanInstanceBagRemove<?>> map = new HashMap<String, BeanInstanceBagRemove<?>>();
+ Map<String, BeanInstanceBag<?>> map = new HashMap<String, BeanInstanceBag<?>>();
while(it.hasNext())
{
Contextual<?>contextual = it.next();
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/CustomPassivatingContextImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/CustomPassivatingContextImpl.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/CustomPassivatingContextImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/CustomPassivatingContextImpl.java Fri Jan 18 14:43:16 2013
@@ -18,42 +18,47 @@
*/
package org.apache.webbeans.context;
-import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.container.SerializableBeanVault;
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
+import java.lang.annotation.Annotation;
/**
*
*/
-public class CustomPassivatingContextImpl extends CustomContextImpl
+public class CustomPassivatingContextImpl implements Context
{
- private SerializableBeanVault sbv = null;
+ private final SerializableBeanVault sbv;
+ private final Context context;
- CustomPassivatingContextImpl(Context context)
+
+ CustomPassivatingContextImpl(SerializableBeanVault sbv, Context context)
{
- super(context);
+ this.sbv = sbv;
+ this.context = context;
}
public <T> T get(Contextual<T> contextual, CreationalContext<T> creationalContext)
{
- return super.get(getSerializableBeanVault().getSerializableBean(contextual), creationalContext);
+ return context.get(sbv.getSerializableBean(contextual), creationalContext);
}
public <T> T get(Contextual<T> contextual)
{
- return super.get(getSerializableBeanVault().getSerializableBean(contextual));
+ return context.get(sbv.getSerializableBean(contextual));
}
- private SerializableBeanVault getSerializableBeanVault()
+ @Override
+ public Class<? extends Annotation> getScope()
{
- if (sbv == null)
- {
- sbv = WebBeansContext.getInstance().getSerializableBeanVault();
- }
+ return context.getScope();
+ }
- return sbv;
+ @Override
+ public boolean isActive()
+ {
+ return context.isActive();
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/RequestContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/RequestContext.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/RequestContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/RequestContext.java Fri Jan 18 14:43:16 2013
@@ -23,7 +23,7 @@ import java.util.concurrent.ConcurrentHa
import javax.enterprise.context.RequestScoped;
import javax.enterprise.context.spi.Contextual;
-import org.apache.webbeans.context.creational.BeanInstanceBagRemove;
+import org.apache.webbeans.context.creational.BeanInstanceBag;
/**
* Request context implementation.
@@ -46,7 +46,7 @@ public class RequestContext extends Abst
@Override
public void setComponentInstanceMap()
{
- componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBagRemove<?>>();
+ componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBag<?>>();
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java Fri Jan 18 14:43:16 2013
@@ -34,7 +34,7 @@ import javax.enterprise.context.SessionS
import javax.enterprise.context.spi.Contextual;
import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.context.creational.BeanInstanceBagRemove;
+import org.apache.webbeans.context.creational.BeanInstanceBag;
import org.apache.webbeans.util.WebBeansUtil;
/**
@@ -52,7 +52,7 @@ public class SessionContext extends Abst
@Override
public void setComponentInstanceMap()
{
- componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBagRemove<?>>();
+ componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBag<?>>();
}
public void readExternal(ObjectInput in) throws IOException,
@@ -61,7 +61,7 @@ public class SessionContext extends Abst
WebBeansContext webBeansContext = WebBeansContext.currentInstance();
scopeType = (Class<? extends Annotation>) in.readObject();
- Map<String, BeanInstanceBagRemove<?>> map = (Map<String, BeanInstanceBagRemove<?>>)in.readObject();
+ Map<String, BeanInstanceBag<?>> map = (Map<String, BeanInstanceBag<?>>)in.readObject();
setComponentInstanceMap();
Iterator<String> it = map.keySet().iterator();
Contextual<?> contextual = null;
@@ -83,7 +83,7 @@ public class SessionContext extends Abst
{
out.writeObject(scopeType);
Iterator<Contextual<?>> it = componentInstanceMap.keySet().iterator();
- Map<String, BeanInstanceBagRemove<?>> map = new HashMap<String, BeanInstanceBagRemove<?>>();
+ Map<String, BeanInstanceBag<?>> map = new HashMap<String, BeanInstanceBag<?>>();
while(it.hasNext())
{
Contextual<?>contextual = it.next();
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SingletonContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SingletonContext.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SingletonContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SingletonContext.java Fri Jan 18 14:43:16 2013
@@ -23,7 +23,7 @@ import java.util.concurrent.ConcurrentHa
import javax.enterprise.context.spi.Contextual;
import javax.inject.Singleton;
-import org.apache.webbeans.context.creational.BeanInstanceBagRemove;
+import org.apache.webbeans.context.creational.BeanInstanceBag;
/**
* Application context implementation.
@@ -41,6 +41,6 @@ public class SingletonContext extends Ab
@Override
public void setComponentInstanceMap()
{
- componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBagRemove<?>>();
+ componentInstanceMap = new ConcurrentHashMap<Contextual<?>, BeanInstanceBag<?>>();
}
}
Copied: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBag.java (from r1435158, openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBagRemove.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBag.java?p2=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBag.java&p1=openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBagRemove.java&r1=1435158&r2=1435165&rev=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBagRemove.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBag.java Fri Jan 18 14:43:16 2013
@@ -25,9 +25,11 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
- * @deprecated we don't need the ContextualBag anymore once we have the new Interceptor handling
+ * Stores the CreationalContext and the Contextual Instance.
+ * This also makes sure that we don't create the same bean
+ * twice.
*/
-public class BeanInstanceBagRemove<T> implements Serializable
+public class BeanInstanceBag<T> implements Serializable
{
private static final long serialVersionUID = 1656996021599122499L;
private final CreationalContext<T> beanCreationalContext;
@@ -36,7 +38,7 @@ public class BeanInstanceBagRemove<T> im
private final Lock lock = new ReentrantLock();
- public BeanInstanceBagRemove(CreationalContext<T> beanCreationalContext)
+ public BeanInstanceBag(CreationalContext<T> beanCreationalContext)
{
this.beanCreationalContext = beanCreationalContext;
}
Propchange: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/BeanInstanceBag.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DecoratorHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DecoratorHandler.java?rev=1435165&r1=1435164&r2=1435165&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DecoratorHandler.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DecoratorHandler.java Fri Jan 18 14:43:16 2013
@@ -31,6 +31,10 @@ import org.apache.webbeans.intercept.Int
import org.apache.webbeans.proxy.InterceptorHandler;
import org.apache.webbeans.util.ExceptionUtil;
+/**
+ * InterceptorHandler which handles all the Decorators on the InjectionTarget.
+ * This one always gets added at the last position in the interceptor chain.
+ */
public class DecoratorHandler implements InterceptorHandler {
private BeanInterceptorInfo interceptorInfo;