EXTCDI-312 improved proxy handling and cleanup

git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/cdi/trunk@1572869 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ProxyUtils.java b/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ProxyUtils.java
index 6b434e4..705f268 100644
--- a/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ProxyUtils.java
+++ b/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ProxyUtils.java
@@ -52,9 +52,7 @@
      */

     public static boolean isProxiedClass(Class currentClass)

     {

-        return currentClass.getName().contains("$$EnhancerByCGLIB$$") ||

-            currentClass.getName().contains("$$FastClassByCGLIB$$") ||

-            currentClass.getName().contains("_$$_javassist") ||

-            (currentClass.getName().contains("_$$_") && currentClass.getName().contains("-class_"));

+        return currentClass.getName().startsWith(currentClass.getSuperclass().getName()) &&

+            currentClass.getName().contains("$$");

     }

 }

diff --git a/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/LegacyTransactionalInterceptorStrategy.java b/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/LegacyTransactionalInterceptorStrategy.java
index b8f3cc9..56d396a 100644
--- a/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/LegacyTransactionalInterceptorStrategy.java
+++ b/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/LegacyTransactionalInterceptorStrategy.java
@@ -140,6 +140,11 @@
         {

             transactionalAnnotation = context.getTarget().getClass().getAnnotation(Transactional.class);

         }

+        //needed by weld

+        if (transactionalAnnotation == null)

+        {

+            transactionalAnnotation = context.getTarget().getClass().getSuperclass().getAnnotation(Transactional.class);

+        }

         return transactionalAnnotation;

     }

 

diff --git a/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/TransactionalInterceptorStrategy.java b/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/TransactionalInterceptorStrategy.java
index 80e369c..4a5228b 100644
--- a/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/TransactionalInterceptorStrategy.java
+++ b/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/transaction/TransactionalInterceptorStrategy.java
@@ -380,6 +380,11 @@
         {
             transactionalAnnotation = context.getTarget().getClass().getAnnotation(Transactional.class);
         }
+        //needed by some versions of weld
+        if (transactionalAnnotation == null)
+        {
+            transactionalAnnotation = context.getTarget().getClass().getSuperclass().getAnnotation(Transactional.class);
+        }
         return transactionalAnnotation;
     }
 
diff --git a/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/action/CodiActionListener.java b/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/action/CodiActionListener.java
index 020341a..4d4f3a2 100644
--- a/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/action/CodiActionListener.java
+++ b/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/listener/action/CodiActionListener.java
@@ -61,10 +61,10 @@
 

     private ActionListener getWrappedActionListener()

     {

-        SecurityViolationAwareActionListener viewConfigAwareNavigationHandler =

+        SecurityViolationAwareActionListener securityViolationAwareActionListener =

                 new SecurityViolationAwareActionListener(this.wrapped);

 

-        return new ViewControllerActionListener(viewConfigAwareNavigationHandler);

+        return new ViewControllerActionListener(securityViolationAwareActionListener);

     }

 

     /**

diff --git a/pom.xml b/pom.xml
index 15c9022..2960b25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -383,7 +383,7 @@
             <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
-                <version>4.8.1</version>
+                <version>4.10</version>
                 <scope>test</scope>
             </dependency>