[weld-commits] Weld SVN: r3872 - in ri/trunk: impl/src/main/java/org/jboss/webbeans/util and 1 other directories.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Wed Oct 7 17:43:50 EDT 2009
Author: marius.bogoevici
Date: 2009-10-07 17:43:49 -0400 (Wed, 07 Oct 2009)
New Revision: 3872
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Reflections.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/interceptor/ejb3model/Ball.java
Log:
Make @Interceptors and @ExcludeClassInterceptors completely optional. Look for them only if they're on the classpath.
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java 2009-10-07 19:55:47 UTC (rev 3871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/ManagedBean.java 2009-10-07 21:43:49 UTC (rev 3872)
@@ -19,6 +19,7 @@
import java.util.Set;
import java.util.List;
import java.util.ArrayList;
+import java.lang.annotation.Annotation;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observes;
@@ -26,8 +27,6 @@
import javax.enterprise.inject.spi.Decorator;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.AnnotatedMethod;
-import javax.interceptor.Interceptors;
-import javax.interceptor.ExcludeClassInterceptors;
import org.jboss.interceptor.proxy.InterceptorProxyCreatorImpl;
import org.jboss.interceptor.proxy.InterceptionHandlerFactory;
@@ -429,16 +428,16 @@
protected void initDeclaredInterceptors()
{
- if (manager.getDeclaredInterceptorsRegistry().getInterceptionModel(getType()) == null)
+ if (manager.getDeclaredInterceptorsRegistry().getInterceptionModel(getType()) == null && InterceptionUtils.supportsEjb3InterceptorDeclaration())
{
InterceptionModelBuilder<Class<?>, Class<?>> builder = InterceptionModelBuilder.newBuilderFor(getType(), (Class) Class.class);
Class<?>[] classDeclaredInterceptors = null;
- if (getAnnotatedItem().isAnnotationPresent(Interceptors.class))
+ if (getAnnotatedItem().isAnnotationPresent(InterceptionUtils.getInterceptorsAnnotationClass()))
{
- classDeclaredInterceptors = getType().getAnnotation(Interceptors.class).value();
+ Annotation interceptorsAnnotation = getType().getAnnotation(InterceptionUtils.getInterceptorsAnnotationClass());
+ classDeclaredInterceptors = Reflections.extractValues(interceptorsAnnotation);
}
-
if (classDeclaredInterceptors != null)
{
builder.interceptPostConstruct().with(classDeclaredInterceptors);
@@ -448,11 +447,11 @@
List<WBMethod<?, ?>> businessMethods = Beans.getInterceptableBusinessMethods(getAnnotatedItem());
for (WBMethod<?, ?> method : businessMethods)
{
- boolean excludeClassInterceptors = method.isAnnotationPresent(ExcludeClassInterceptors.class);
+ boolean excludeClassInterceptors = method.isAnnotationPresent(InterceptionUtils.getExcludeClassInterceptorsAnnotationClass());
Class<?>[] methodDeclaredInterceptors = null;
- if (method.isAnnotationPresent(Interceptors.class))
+ if (method.isAnnotationPresent(InterceptionUtils.getInterceptorsAnnotationClass()))
{
- methodDeclaredInterceptors = method.getAnnotation(Interceptors.class).value();
+ methodDeclaredInterceptors = Reflections.extractValues(method.getAnnotation(InterceptionUtils.getInterceptorsAnnotationClass()));
}
if (!excludeClassInterceptors && classDeclaredInterceptors != null)
{
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-10-07 19:55:47 UTC (rev 3871)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-10-07 21:43:49 UTC (rev 3872)
@@ -41,6 +41,7 @@
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.util.reflection.ParameterizedTypeImpl;
+import org.jboss.webbeans.DeploymentException;
/**
* Utility class for static reflection-type operations
@@ -55,8 +56,8 @@
public static final Type[] EMPTY_TYPES = {};
- public static final Annotation[] EMPTY_ANNOTATIONS = {};
-
+ public static final Annotation[] EMPTY_ANNOTATIONS = {};
+
public static class HierarchyDiscovery
{
@@ -899,4 +900,18 @@
}
}
+ public static Class<?>[] extractValues(Annotation annotation)
+ {
+ try
+ {
+ Class<?>[] valueClasses = (Class<?>[]) annotation.annotationType().getMethod("value").invoke(annotation);
+ return valueClasses;
+ }
+ catch (Exception e)
+ {
+ throw new DeploymentException("Cannot access values() on annotation", e);
+ }
+ }
+
+
}
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/interceptor/ejb3model/Ball.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/interceptor/ejb3model/Ball.java 2009-10-07 19:55:47 UTC (rev 3871)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/interceptor/ejb3model/Ball.java 2009-10-07 21:43:49 UTC (rev 3872)
@@ -39,10 +39,10 @@
public void pass()
{
played = true;
- };
+ }
public void lob()
{
played = true;
- };
+ }
}
More information about the weld-commits
mailing list