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 2011/12/23 00:20:12 UTC

svn commit: r1222507 - in /openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors: ejb/ lifecycle/

Author: struberg
Date: Thu Dec 22 23:20:12 2011
New Revision: 1222507

URL: http://svn.apache.org/viewvc?rev=1222507&view=rev
Log:
OWB-634 add unit test to show the problem

you need to enable #testDynamicEjbInterceptor in
EjbInterceptorTest.java

Added:
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorExtension.java
      - copied, changed from r1215127, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithoutInterceptor.java
      - copied, changed from r1215127, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithEjbInterceptor.java
Modified:
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptor.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorTest.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptor.java?rev=1222507&r1=1222506&r2=1222507&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptor.java Thu Dec 22 23:20:12 2011
@@ -18,18 +18,14 @@
  */
 package org.apache.webbeans.newtests.interceptors.ejb;
 
-import javax.inject.Inject;
 import javax.interceptor.AroundInvoke;
 import javax.interceptor.InvocationContext;
 
-import org.apache.webbeans.newtests.interceptors.beans.RequestScopedBean;
 
 public class EjbInterceptor
 {   
     public static boolean CALLED = false;
     
-    private @Inject RequestScopedBean bean;
-    
     @AroundInvoke
     public Object caller(InvocationContext context) throws Exception
     {        

Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorExtension.java (from r1215127, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorExtension.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorExtension.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java&r1=1215127&r2=1222507&rev=1222507&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorExtension.java Thu Dec 22 23:20:12 2011
@@ -16,22 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.webbeans.newtests.interceptors.lifecycle;
+package org.apache.webbeans.newtests.interceptors.ejb;
+
+import org.apache.webbeans.newtests.interceptors.lifecycle.LifecycleBinding;
 
 import javax.enterprise.event.Observes;
-import javax.enterprise.inject.spi.*;
+import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
 import javax.enterprise.util.AnnotationLiteral;
-import javax.interceptor.Interceptor;
-
-import org.apache.webbeans.config.WebBeansContext;
+import javax.interceptor.Interceptors;
 
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
 
-public class InterceptorExtension implements Extension
+public class EjbInterceptorExtension implements Extension
 {
     /**
      * we add the InterceptorBinding via Extension to test OWB-593
@@ -42,140 +39,20 @@ public class InterceptorExtension implem
         event.addInterceptorBinding(LifecycleBinding.class);
     }
 
-    public void observeNotAnnotatedBean(@Observes ProcessAnnotatedType<NotAnnotatedBean> process)
-    {
-        process.getAnnotatedType().getAnnotations().add(new AnnotationLiteral<LifecycleBinding>(){});
-        process.setAnnotatedType(process.getAnnotatedType());
-    }
-
-    public void observeLifecycleInterceptorPat(@Observes ProcessAnnotatedType<LifecycleInterceptorPat> process)
-    {
-        process.getAnnotatedType().getAnnotations().add(new AnnotationLiteral<LifecycleBinding>(){});
-        process.getAnnotatedType().getAnnotations().add(new AnnotationLiteral<Interceptor>(){});
-        process.setAnnotatedType(process.getAnnotatedType());
-    }
-
-    // manually add the correct LifecycleInterceptorBbd
-    public void observeLiveCycleInterceptorBbd(@Observes BeforeBeanDiscovery bbd)
-    {
-        WebBeansContext webBeansContext = WebBeansContext.getInstance();
-        AnnotatedTypeImpl<LifecycleInterceptorBbd> annotatedType =
-                new AnnotatedTypeImpl<LifecycleInterceptorBbd>(LifecycleInterceptorBbd.class );
-
-        Set<Annotation> anns = new HashSet<Annotation>();
-        anns.add(new AnnotationLiteral<LifecycleBinding>(){});
-        anns.add(new AnnotationLiteral<Interceptor>(){});
-        annotatedType.setAnnotations(anns);
-
-        bbd.addAnnotatedType(annotatedType);
-    }
-
-    public static class AnnotatedTypeImpl<X> implements AnnotatedType<X>
+    public static class InterceptorsLit extends  AnnotationLiteral<Interceptors> implements Interceptors
     {
-        private Class<X> javaClass;
-        private Set<AnnotatedConstructor<X>>    annotatedConstructors = Collections.EMPTY_SET;
-        private Set<AnnotatedMethod<? super X>> annotatedMethods = Collections.EMPTY_SET;
-        private Set<AnnotatedField<? super X>>  annotatedFields = Collections.EMPTY_SET;
-        private Set<Type>                       typeClosures  = Collections.EMPTY_SET;
-        private Set<Annotation>                 annotations   = Collections.EMPTY_SET;
-
-
-        public AnnotatedTypeImpl(Class<X> javaClass)
+        public Class[] value()
         {
-            this.javaClass = javaClass;
-        }
-
-        @Override
-        public Set<AnnotatedConstructor<X>> getConstructors()
-        {
-            return annotatedConstructors;
-        }
-
-        @Override
-        public Class<X> getJavaClass()
-        {
-            return javaClass;
-        }
-
-        @Override
-        public Set<AnnotatedMethod<? super X>> getMethods()
-        {
-            return annotatedMethods;
-        }
-
-        @Override
-        public Set<AnnotatedField<? super X>> getFields()
-        {
-            return annotatedFields;
-        }
-
-        @Override
-        public Type getBaseType()
-        {
-            return javaClass;
-        }
-
-        @Override
-        public Set<Type> getTypeClosure()
-        {
-            return typeClosures;
-        }
-
-        @Override
-        public <T extends Annotation> T getAnnotation(Class<T> annotationType)
-        {
-            for (Annotation a: annotations)
-            {
-                if (a.annotationType().equals(annotationType))
-                {
-                    return (T) a;
-                }
-            }
-
-            return null;
-        }
-
-        @Override
-        public Set<Annotation> getAnnotations()
-        {
-            return annotations;
-        }
-
-        @Override
-        public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
-        {
-            return getAnnotation(annotationType) != null;
-        }
-
-        public void setAnnotatedConstructors(Set<AnnotatedConstructor<X>> annotatedConstructors)
-        {
-            this.annotatedConstructors = annotatedConstructors;
-        }
-
-        public void setAnnotatedFields(Set<AnnotatedField<? super X>> annotatedFields)
-        {
-            this.annotatedFields = annotatedFields;
-        }
-
-        public void setAnnotatedMethods(Set<AnnotatedMethod<? super X>> annotatedMethods)
-        {
-            this.annotatedMethods = annotatedMethods;
-        }
-
-        public void setAnnotations(Set<Annotation> annotations)
-        {
-            this.annotations = annotations;
+            return new Class[]{EjbInterceptor.class};
         }
+    }
 
-        public void setJavaClass(Class<X> javaClass)
-        {
-            this.javaClass = javaClass;
-        }
+    public void observeNotInterceptedBean(@Observes ProcessAnnotatedType<ManagedBeanWithoutInterceptor> process)
+    {
+        AnnotationLiteral<Interceptors> intAnnot = new InterceptorsLit();
 
-        public void setTypeClosures(Set<Type> typeClosures)
-        {
-            this.typeClosures = typeClosures;
-        }
+        process.getAnnotatedType().getAnnotations().add(intAnnot);
+        process.setAnnotatedType(process.getAnnotatedType());
     }
 
 }

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorTest.java?rev=1222507&r1=1222506&r2=1222507&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/EjbInterceptorTest.java Thu Dec 22 23:20:12 2011
@@ -78,4 +78,26 @@ public class EjbInterceptorTest extends 
 
         shutDownContainer();
     }
+
+
+    //X TODO enable again for OWB-634 @Test()
+    public void testDynamicEjbInterceptor()
+    {
+        Collection<String> beanXmls = new ArrayList<String>();
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(ManagedBeanWithoutInterceptor.class);
+        beanClasses.add(EjbInterceptor.class);
+        addExtension(new EjbInterceptorExtension());
+
+        startContainer(beanClasses, beanXmls);
+
+        ManagedBeanWithoutInterceptor reference = getInstance(ManagedBeanWithoutInterceptor.class);
+        Assert.assertNotNull(reference);
+
+        EjbInterceptor.CALLED = false;
+        reference.sayHello();
+        Assert.assertTrue(EjbInterceptor.CALLED);
+
+        shutDownContainer();
+    }
 }

Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithoutInterceptor.java (from r1215127, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithEjbInterceptor.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithoutInterceptor.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithoutInterceptor.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithEjbInterceptor.java&r1=1215127&r2=1222507&rev=1222507&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithEjbInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/ejb/ManagedBeanWithoutInterceptor.java Thu Dec 22 23:20:12 2011
@@ -19,12 +19,10 @@
 package org.apache.webbeans.newtests.interceptors.ejb;
 
 import javax.enterprise.context.RequestScoped;
-import javax.inject.Named;
 import javax.interceptor.Interceptors;
 
-@Interceptors(value={EjbInterceptor.class})
 @RequestScoped
-public class ManagedBeanWithEjbInterceptor
+public class ManagedBeanWithoutInterceptor
 {        
     public void sayHello()
     {

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java?rev=1222507&r1=1222506&r2=1222507&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/lifecycle/InterceptorExtension.java Thu Dec 22 23:20:12 2011
@@ -85,43 +85,36 @@ public class InterceptorExtension implem
             this.javaClass = javaClass;
         }
 
-        @Override
         public Set<AnnotatedConstructor<X>> getConstructors()
         {
             return annotatedConstructors;
         }
 
-        @Override
         public Class<X> getJavaClass()
         {
             return javaClass;
         }
 
-        @Override
         public Set<AnnotatedMethod<? super X>> getMethods()
         {
             return annotatedMethods;
         }
 
-        @Override
         public Set<AnnotatedField<? super X>> getFields()
         {
             return annotatedFields;
         }
 
-        @Override
         public Type getBaseType()
         {
             return javaClass;
         }
 
-        @Override
         public Set<Type> getTypeClosure()
         {
             return typeClosures;
         }
 
-        @Override
         public <T extends Annotation> T getAnnotation(Class<T> annotationType)
         {
             for (Annotation a: annotations)
@@ -135,13 +128,11 @@ public class InterceptorExtension implem
             return null;
         }
 
-        @Override
         public Set<Annotation> getAnnotations()
         {
             return annotations;
         }
 
-        @Override
         public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
         {
             return getAnnotation(annotationType) != null;