You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2018/02/23 10:31:14 UTC

[3/3] deltaspike git commit: DELTASPIKE-1316 only perform the proxaable check for interceptor annotations

DELTASPIKE-1316 only perform the proxaable check for interceptor annotations


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/1c3a16be
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/1c3a16be
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/1c3a16be

Branch: refs/heads/master
Commit: 1c3a16be161eb2e994df5454f7de3335c3ca1246
Parents: 1f19c0e
Author: Mark Struberg <st...@apache.org>
Authored: Fri Feb 23 11:30:24 2018 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Fri Feb 23 11:30:24 2018 +0100

----------------------------------------------------------------------
 .../core/impl/interceptor/interdyn/AnnotationRule.java    | 10 +++++++++-
 .../core/impl/interceptor/interdyn/InterDynExtension.java |  6 ++++--
 2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/1c3a16be/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/AnnotationRule.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/AnnotationRule.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/AnnotationRule.java
index a93177b..4048072 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/AnnotationRule.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/AnnotationRule.java
@@ -37,10 +37,13 @@ public class AnnotationRule
      */
     private Annotation additionalAnnotation;
 
-    public AnnotationRule(String rule, Annotation interceptorBinding)
+    private boolean requiresProxy;
+
+    public AnnotationRule(String rule, Annotation interceptorBinding, boolean requiresProxy)
     {
         this.rule = rule;
         this.additionalAnnotation = interceptorBinding;
+        this.requiresProxy = requiresProxy;
     }
 
     public String getRule()
@@ -52,4 +55,9 @@ public class AnnotationRule
     {
         return additionalAnnotation;
     }
+
+    public boolean requiresProxy()
+    {
+        return requiresProxy;
+    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/1c3a16be/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/InterDynExtension.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/InterDynExtension.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/InterDynExtension.java
index 72e54c1..80789bd 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/InterDynExtension.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/interceptor/interdyn/InterDynExtension.java
@@ -33,6 +33,7 @@ import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.BeforeBeanDiscovery;
 import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.ProcessAnnotatedType;
+import javax.interceptor.InterceptorBinding;
 import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -100,7 +101,8 @@ public class InterDynExtension implements Deactivatable, Extension
                 match.length() > 0 && annotationClassName.length() > 0)
             {
                 Annotation anno = getAnnotationImplementation(annotationClassName);
-                interceptorRules.add(new AnnotationRule(match, anno));
+                boolean requiresProxy = anno.annotationType().getAnnotation(InterceptorBinding.class) != null;
+                interceptorRules.add(new AnnotationRule(match, anno, requiresProxy));
             }
         }
 
@@ -122,7 +124,7 @@ public class InterDynExtension implements Deactivatable, Extension
             {
                 if (beanClassName.matches(rule.getRule()))
                 {
-                    if (!ClassUtils.isProxyableClass(at.getJavaClass()))
+                    if (rule.requiresProxy() && !ClassUtils.isProxyableClass(at.getJavaClass()))
                     {
                         logger.info("Skipping unproxyable class " + beanClassName +
                                 " even if matches rule=" + rule.getRule());