Author: jlaskowski Date: Thu Dec 27 04:25:25 2007 New Revision: 607052 URL: http://svn.apache.org/viewvc?rev=607052&view=rev Log: Make the example use the latest improvements in interceptors area, i.e. bean superclass's interceptors are executed now too (see OPENEJB-740 Business method interceptor methods defined by the bean class's superclasses are not invoked [1])
[1] https://issues.apache.org/jira/browse/OPENEJB-740 Added: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedBean.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedLocal.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/Utils.java openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/SecondStatelessInterceptedTest.java Removed: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/InterceptorBindingEjbJarInterceptor.java Modified: openejb/trunk/openejb3/examples/interceptors/pom.xml openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorOne.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassOne.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassTwo.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorTwo.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorOne.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorTwo.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyIntercepted.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedBean.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedSuperClass.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorOne.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorTwo.java openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SuperClassOfClassLevelInterceptor.java openejb/trunk/openejb3/examples/interceptors/src/main/resources/META-INF/ejb-jar.xml openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/FullyInterceptedTest.java Modified: openejb/trunk/openejb3/examples/interceptors/pom.xml URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/pom.xml?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/pom.xml (original) +++ openejb/trunk/openejb3/examples/interceptors/pom.xml Thu Dec 27 04:25:25 2007 @@ -65,6 +65,12 @@ <scope>provided</scope> </dependency> <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-annotation_1.0_spec</artifactId> + <version>1.1</version> + <scope>provided</scope> + </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> @@ -100,5 +106,21 @@ <scope>test</scope> </dependency> </dependencies> + <profiles> + <profile> + <id>openejb.debug</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <forkMode>pertest</forkMode> + <argLine>-agentlib:jdwp=transport=dt_socket,server=y,address=5005</argLine> + </configuration> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> - Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorOne.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorOne.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorOne.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorOne.java Thu Dec 27 04:25:25 2007 @@ -23,9 +23,10 @@ * @version $Rev$ $Date$ */ public class ClassLevelInterceptorOne { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-classone"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassOne.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassOne.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassOne.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassOne.java Thu Dec 27 04:25:25 2007 @@ -23,9 +23,10 @@ * @version $Rev$ $Date$ */ public class ClassLevelInterceptorSuperClassOne { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-superclassone"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassTwo.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassTwo.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassTwo.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorSuperClassTwo.java Thu Dec 27 04:25:25 2007 @@ -23,9 +23,10 @@ * @version $Rev$ $Date$ */ public class ClassLevelInterceptorSuperClassTwo extends SuperClassOfClassLevelInterceptor { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-superclasstwo"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorTwo.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorTwo.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorTwo.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/ClassLevelInterceptorTwo.java Thu Dec 27 04:25:25 2007 @@ -23,9 +23,10 @@ * @version $Rev$ $Date$ */ public class ClassLevelInterceptorTwo { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-classtwo"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorOne.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorOne.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorOne.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorOne.java Thu Dec 27 04:25:25 2007 @@ -16,6 +16,7 @@ */ package org.superbiz.interceptors; +import javax.annotation.PostConstruct; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -23,9 +24,14 @@ * @version $Rev$ $Date$ */ public class DefaultInterceptorOne { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-defaultone"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } + @PostConstruct + protected void postConstructInterceptor(InvocationContext ic) throws Exception { + Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); + } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorTwo.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorTwo.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorTwo.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/DefaultInterceptorTwo.java Thu Dec 27 04:25:25 2007 @@ -23,9 +23,10 @@ * @version $Rev$ $Date$ */ public class DefaultInterceptorTwo { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-defaulttwo"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyIntercepted.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyIntercepted.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyIntercepted.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyIntercepted.java Thu Dec 27 04:25:25 2007 @@ -16,11 +16,15 @@ */ package org.superbiz.interceptors; +import java.util.List; + /** * @version $Rev$ $Date$ */ public interface FullyIntercepted { - String businessMethod(); + List<String> businessMethod(); + + List<String> methodWithDefaultInterceptorsExcluded(); } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedBean.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedBean.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedBean.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedBean.java Thu Dec 27 04:25:25 2007 @@ -21,22 +21,33 @@ import javax.interceptor.AroundInvoke; import javax.interceptor.Interceptors; import javax.interceptor.InvocationContext; +import java.util.ArrayList; +import java.util.List; /** * @version $Rev$ $Date$ */ @Stateless @Local [EMAIL PROTECTED]( { ClassLevelInterceptorOne.class, ClassLevelInterceptorTwo.class }) [EMAIL PROTECTED]({ClassLevelInterceptorOne.class, ClassLevelInterceptorTwo.class}) public class FullyInterceptedBean extends FullyInterceptedSuperClass implements FullyIntercepted { - @Interceptors( { MethodLevelInterceptorOne.class, MethodLevelInterceptorTwo.class }) - public String businessMethod() { - return "businessMethod"; + @Interceptors({MethodLevelInterceptorOne.class, MethodLevelInterceptorTwo.class}) + public List<String> businessMethod() { + List<String> list = new ArrayList<String>(); + list.add("businessMethod"); + return list; + } + + @Interceptors({MethodLevelInterceptorOne.class, MethodLevelInterceptorTwo.class}) + public List<String> methodWithDefaultInterceptorsExcluded() { + List<String> list = new ArrayList<String>(); + list.add("methodWithDefaultInterceptorsExcluded"); + return list; } @AroundInvoke - private Object beanClassBusinessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-bean"; + protected Object beanClassBusinessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, "beanClassBusinessMethodInterceptor"); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedSuperClass.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedSuperClass.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedSuperClass.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/FullyInterceptedSuperClass.java Thu Dec 27 04:25:25 2007 @@ -21,7 +21,7 @@ /** * @version $Rev$ $Date$ */ [EMAIL PROTECTED]( { ClassLevelInterceptorSuperClassOne.class, ClassLevelInterceptorSuperClassTwo.class }) [EMAIL PROTECTED]({ClassLevelInterceptorSuperClassOne.class, ClassLevelInterceptorSuperClassTwo.class}) public class FullyInterceptedSuperClass { } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorOne.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorOne.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorOne.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorOne.java Thu Dec 27 04:25:25 2007 @@ -23,8 +23,9 @@ * @version $Rev$ $Date$ */ public class MethodLevelInterceptorOne { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-methodone"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorTwo.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorTwo.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorTwo.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/MethodLevelInterceptorTwo.java Thu Dec 27 04:25:25 2007 @@ -23,8 +23,9 @@ * @version $Rev$ $Date$ */ public class MethodLevelInterceptorTwo { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-methodtwo"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } } Added: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedBean.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedBean.java?rev=607052&view=auto ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedBean.java (added) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedBean.java Thu Dec 27 04:25:25 2007 @@ -0,0 +1,45 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.superbiz.interceptors; + +import javax.ejb.Stateless; +import javax.interceptor.AroundInvoke; +import javax.interceptor.Interceptors; +import javax.interceptor.InvocationContext; +import java.util.ArrayList; +import java.util.List; + +/** + * @version $Rev: 601953 $ $Date: 2007-12-07 02:09:47 +0100 (Fri, 07 Dec 2007) $ + */ [EMAIL PROTECTED] [EMAIL PROTECTED]({ClassLevelInterceptorOne.class, ClassLevelInterceptorTwo.class}) +public class SecondStatelessInterceptedBean implements SecondStatelessInterceptedLocal { + + @Interceptors({MethodLevelInterceptorOne.class, MethodLevelInterceptorTwo.class}) + public List<String> methodWithDefaultInterceptorsExcluded() { + List<String> list = new ArrayList<String>(); + list.add("methodWithDefaultInterceptorsExcluded"); + return list; + + } + + @AroundInvoke + protected Object beanClassBusinessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); + } +} Added: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedLocal.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedLocal.java?rev=607052&view=auto ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedLocal.java (added) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SecondStatelessInterceptedLocal.java Thu Dec 27 04:25:25 2007 @@ -0,0 +1,26 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.superbiz.interceptors; + +import java.util.List; + +/** + * @version $Rev: 601953 $ $Date: 2007-12-07 02:09:47 +0100 (Fri, 07 Dec 2007) $ + */ +public interface SecondStatelessInterceptedLocal { + List<String> methodWithDefaultInterceptorsExcluded(); +} Modified: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SuperClassOfClassLevelInterceptor.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SuperClassOfClassLevelInterceptor.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SuperClassOfClassLevelInterceptor.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/SuperClassOfClassLevelInterceptor.java Thu Dec 27 04:25:25 2007 @@ -16,6 +16,7 @@ */ package org.superbiz.interceptors; +import javax.annotation.PostConstruct; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; @@ -23,9 +24,14 @@ * @version $Rev$ $Date$ */ public class SuperClassOfClassLevelInterceptor { + @AroundInvoke - private Object businessMethodInterceptor(InvocationContext ic) throws Exception { - return ic.proceed() + "-superclassclasslevel"; + protected Object businessMethodInterceptor(InvocationContext ic) throws Exception { + return Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); } + @PostConstruct + protected void postConstructInterceptor(InvocationContext ic) throws Exception { + Utils.addClassSimpleName(ic, this.getClass().getSimpleName()); + } } Added: openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/Utils.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/Utils.java?rev=607052&view=auto ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/Utils.java (added) +++ openejb/trunk/openejb3/examples/interceptors/src/main/java/org/superbiz/interceptors/Utils.java Thu Dec 27 04:25:25 2007 @@ -0,0 +1,38 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.superbiz.interceptors; + +import javax.interceptor.InvocationContext; +import java.util.ArrayList; +import java.util.List; + +/** + * @version $Rev: 601953 $ $Date: 2007-12-07 02:09:47 +0100 (Fri, 07 Dec 2007) $ + */ +public class Utils { + + public static List<String> addClassSimpleName(InvocationContext ic, String classSimpleName) throws Exception { + List<String> list = new ArrayList<String>(); + list.add(classSimpleName); + List<String> listOfStrings = (List<String>) ic.proceed(); + if (listOfStrings != null) { + list.addAll(listOfStrings); + } + return list; + } + +} Modified: openejb/trunk/openejb3/examples/interceptors/src/main/resources/META-INF/ejb-jar.xml URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/main/resources/META-INF/ejb-jar.xml?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/main/resources/META-INF/ejb-jar.xml (original) +++ openejb/trunk/openejb3/examples/interceptors/src/main/resources/META-INF/ejb-jar.xml Thu Dec 27 04:25:25 2007 @@ -8,7 +8,7 @@ (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -19,9 +19,10 @@ <!-- $Rev$ $Date$ --> -<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" - version="3.0"> +<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" + version="3.0"> <interceptors> <interceptor> <interceptor-class>org.superbiz.interceptors.DefaultInterceptorOne</interceptor-class> @@ -33,7 +34,22 @@ <assembly-descriptor> <interceptor-binding> <ejb-name>*</ejb-name> - <interceptor-class>org.superbiz.interceptors.InterceptorBindingEjbJarInterceptor</interceptor-class> + <interceptor-class>org.superbiz.interceptors.DefaultInterceptorOne</interceptor-class> + </interceptor-binding> + <interceptor-binding> + <ejb-name>*</ejb-name> + <interceptor-class>org.superbiz.interceptors.DefaultInterceptorTwo</interceptor-class> + </interceptor-binding> + <interceptor-binding> + <ejb-name>FullyInterceptedBean</ejb-name> + <exclude-default-interceptors>true</exclude-default-interceptors> + <method> + <method-name>methodWithDefaultInterceptorsExcluded</method-name> + </method> + </interceptor-binding> + <interceptor-binding> + <ejb-name>SecondStatelessInterceptedBean</ejb-name> + <exclude-default-interceptors>true</exclude-default-interceptors> </interceptor-binding> </assembly-descriptor> </ejb-jar> Modified: openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/FullyInterceptedTest.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/FullyInterceptedTest.java?rev=607052&r1=607051&r2=607052&view=diff ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/FullyInterceptedTest.java (original) +++ openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/FullyInterceptedTest.java Thu Dec 27 04:25:25 2007 @@ -17,6 +17,8 @@ package org.superbiz.interceptors; import java.util.Properties; +import java.util.List; +import java.util.ArrayList; import javax.naming.Context; import javax.naming.InitialContext; @@ -38,29 +40,57 @@ public void setUp() throws Exception { Properties properties = new Properties(); properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); - properties.setProperty("openejb.deployments.classpath.include", ".*interceptors.*"); + properties.setProperty("openejb.deployments.classpath.include", ".*interceptors/target/classes.*"); initCtx = new InitialContext(properties); } @Test public void testBusinessMethod() throws Exception { + FullyIntercepted fullyIntercepted = (FullyIntercepted) initCtx.lookup("FullyInterceptedBeanLocal"); - assertNotNull(fullyIntercepted); + assert fullyIntercepted != null; - // messages in reverse invocation order - // TODO: Almost 6 interceptors are not executed; - String expected = "businessMethod-bean-methodtwo-methodone-classtwo-classone"; + List<String> expected = new ArrayList<String>(); + expected.add("DefaultInterceptorOne"); + expected.add("DefaultInterceptorTwo"); + expected.add("ClassLevelInterceptorSuperClassOne"); + expected.add("ClassLevelInterceptorSuperClassTwo"); + expected.add("ClassLevelInterceptorOne"); + expected.add("ClassLevelInterceptorTwo"); + expected.add("MethodLevelInterceptorOne"); + expected.add("MethodLevelInterceptorTwo"); + expected.add("beanClassBusinessMethodInterceptor"); + expected.add("businessMethod"); - String actual = fullyIntercepted.businessMethod(); - assert expected.equals(actual) : "Expected \"" + expected + "\", but got \"" + actual + "\""; + List<String> actual = fullyIntercepted.businessMethod(); + assert expected.equals(actual) : "Expected " + expected + ", but got " + actual; + } + @Test + public void testMethodWithDefaultInterceptorsExcluded() throws Exception { + + FullyIntercepted fullyIntercepted = (FullyIntercepted) initCtx.lookup("FullyInterceptedBeanLocal"); + + assert fullyIntercepted != null; + + List<String> expected = new ArrayList<String>(); + expected.add("ClassLevelInterceptorSuperClassOne"); + expected.add("ClassLevelInterceptorSuperClassTwo"); + expected.add("ClassLevelInterceptorOne"); + expected.add("ClassLevelInterceptorTwo"); + expected.add("MethodLevelInterceptorOne"); + expected.add("MethodLevelInterceptorTwo"); + expected.add("beanClassBusinessMethodInterceptor"); + expected.add("methodWithDefaultInterceptorsExcluded"); + + List<String> actual = fullyIntercepted.methodWithDefaultInterceptorsExcluded(); + assert expected.equals(actual) : "Expected " + expected + ", but got " + actual; } @After public void tearDown() throws Exception { initCtx.close(); } - } Added: openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/SecondStatelessInterceptedTest.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/SecondStatelessInterceptedTest.java?rev=607052&view=auto ============================================================================== --- openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/SecondStatelessInterceptedTest.java (added) +++ openejb/trunk/openejb3/examples/interceptors/src/test/java/org/superbiz/interceptors/SecondStatelessInterceptedTest.java Thu Dec 27 04:25:25 2007 @@ -0,0 +1,43 @@ +package org.superbiz.interceptors; + +import org.junit.Before; +import org.junit.Test; + +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +public class SecondStatelessInterceptedTest { + + private InitialContext initCtx; + + @Before + public void setUp() throws Exception { + Properties properties = new Properties(); + properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); + properties.setProperty("openejb.deployments.classpath.include", ".*interceptors/target/classes.*"); + + initCtx = new InitialContext(properties); + } + + @Test + public void testMethodWithDefaultInterceptorsExcluded() throws Exception { + SecondStatelessInterceptedLocal bean = + (SecondStatelessInterceptedLocal) initCtx.lookup("SecondStatelessInterceptedBeanLocal"); + + assert bean != null; + + List<String> expected = new ArrayList<String>(); + expected.add("ClassLevelInterceptorOne"); + expected.add("ClassLevelInterceptorTwo"); + expected.add("MethodLevelInterceptorOne"); + expected.add("MethodLevelInterceptorTwo"); + expected.add("SecondStatelessInterceptedBean"); + expected.add("methodWithDefaultInterceptorsExcluded"); + + List<String> actual = bean.methodWithDefaultInterceptorsExcluded(); + assert expected.equals(actual) : "Expected " + expected + ", but got " + actual; + } +}
