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/09/08 21:18:45 UTC
svn commit: r1623478 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
config/BeansDeployer.java portable/ProducerMethodProducer.java
Author: rmannibucau
Date: Mon Sep 8 19:18:45 2014
New Revision: 1623478
URL: http://svn.apache.org/r1623478
Log:
validating @Disposes injection points
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/BeansDeployer.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProducerMethodProducer.java
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=1623478&r1=1623477&r2=1623478&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 Mon Sep 8 19:18:45 2014
@@ -61,6 +61,7 @@ import org.apache.webbeans.intercept.Int
import org.apache.webbeans.logger.WebBeansLoggerFacade;
import org.apache.webbeans.portable.AbstractProducer;
import org.apache.webbeans.portable.AnnotatedElementFactory;
+import org.apache.webbeans.portable.ProducerMethodProducer;
import org.apache.webbeans.portable.events.ProcessAnnotatedTypeImpl;
import org.apache.webbeans.portable.events.ProcessBeanImpl;
import org.apache.webbeans.portable.events.ProcessSyntheticAnnotatedTypeImpl;
@@ -95,6 +96,7 @@ import javax.enterprise.inject.spi.Decor
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.Interceptor;
import javax.enterprise.inject.spi.ObserverMethod;
+import javax.enterprise.inject.spi.Producer;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
@@ -250,6 +252,7 @@ public class BeansDeployer
// Validate injection Points
validateInjectionPoints();
+ validateDisposeParameters();
validateDecoratorGenericTypes();
@@ -295,6 +298,26 @@ public class BeansDeployer
}
}
+ private void validateDisposeParameters()
+ {
+ final WebBeansUtil webBeansUtil = webBeansContext.getWebBeansUtil();
+ for (final Bean<?> bean : webBeansContext.getBeanManagerImpl().getBeans())
+ {
+ if (ProducerMethodBean.class.isInstance(bean))
+ {
+ final Producer<?> producer = ProducerMethodBean.class.cast(bean).getProducer();
+ if (ProducerMethodProducer.class.isInstance(producer))
+ {
+ final Set<InjectionPoint> disposalIPs = ProducerMethodProducer.class.cast(producer).getDisposalIPs();
+ if (disposalIPs != null)
+ {
+ webBeansUtil.validate(disposalIPs, bean);
+ }
+ } // else?
+ }
+ }
+ }
+
// avoid delegate implementing Foo<A> and decorator implementing Foo<B> with no link between A and B
private void validateDecoratorGenericTypes()
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProducerMethodProducer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProducerMethodProducer.java?rev=1623478&r1=1623477&r2=1623478&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProducerMethodProducer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/ProducerMethodProducer.java Mon Sep 8 19:18:45 2014
@@ -157,4 +157,9 @@ public class ProducerMethodProducer<T, P
}
}
}
+
+ public Set<InjectionPoint> getDisposalIPs()
+ {
+ return disposalIPs;
+ }
}