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;