You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by km...@apache.org on 2010/07/26 20:11:14 UTC
svn commit: r979393 - in /openejb/trunk/openejb3/container/openejb-core/src:
main/java/org/apache/openejb/config/rules/CheckCallbacks.java
test/java/org/apache/openejb/config/rules/CheckInvalidCallbacksTest.java
Author: kmalhi
Date: Mon Jul 26 18:11:14 2010
New Revision: 979393
URL: http://svn.apache.org/viewvc?rev=979393&view=rev
Log:
Tested some more callback keys.
Fixed logic for checking for invalid usage of callback annotations while implementing SessionSynchronization
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInvalidCallbacksTest.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java?rev=979393&r1=979392&r2=979393&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java Mon Jul 26 18:11:14 2010
@@ -332,11 +332,11 @@ public class CheckCallbacks extends Vali
private void checkSessionSynchronization(Class ejbClass, SessionBean bean) {
if (SessionSynchronization.class.isAssignableFrom(ejbClass)) {
if (bean.getAfterBeginMethod() != null || bean.getBeforeCompletionMethod() != null || bean.getAfterCompletionMethod() != null) {
- fail(bean, "calllback.invalidSessionSynchronizationUse", ejbClass.getName());
+ fail(bean, "callback.sessionSynchronization.invalidUse", ejbClass.getName());
} else {
ClassFinder classFinder = new ClassFinder(ejbClass);
- if (classFinder.findAnnotatedMethods(AfterBegin.class).size() > 0 || classFinder.findAnnotatedMethods(AfterBegin.class).size() > 0
- || classFinder.findAnnotatedMethods(AfterBegin.class).size() > 0) {
+ if (classFinder.findAnnotatedMethods(AfterBegin.class).size() > 0 || classFinder.findAnnotatedMethods(BeforeCompletion.class).size() > 0
+ || classFinder.findAnnotatedMethods(AfterCompletion.class).size() > 0) {
fail(bean, "callback.sessionSynchronization.invalidUse", ejbClass.getName());
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInvalidCallbacksTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInvalidCallbacksTest.java?rev=979393&r1=979392&r2=979393&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInvalidCallbacksTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/rules/CheckInvalidCallbacksTest.java Mon Jul 26 18:11:14 2010
@@ -16,6 +16,7 @@
*/
package org.apache.openejb.config.rules;
+import java.rmi.RemoteException;
import java.util.concurrent.Callable;
import javax.annotation.PostConstruct;
@@ -23,12 +24,15 @@ import javax.annotation.PreDestroy;
import javax.ejb.AfterBegin;
import javax.ejb.AfterCompletion;
import javax.ejb.BeforeCompletion;
+import javax.ejb.EJBException;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
+import javax.ejb.SessionSynchronization;
import junit.framework.TestCase;
import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.NamedMethod;
import org.apache.openejb.jee.SingletonBean;
import org.apache.openejb.jee.StatefulBean;
import org.apache.openejb.jee.StatelessBean;
@@ -40,13 +44,20 @@ import org.junit.runner.RunWith;
@RunWith(ValidationRunner.class)
public class CheckInvalidCallbacksTest extends TestCase {
@Keys( { @Key(value = "ignoredAnnotation", count = 10, type = KeyType.WARNING), @Key("callback.missing.possibleTypo"), @Key("callback.badReturnType"),
- @Key("callback.badModifier"), @Key("callback.invalidArguments"), @Key("aroundInvoke.missing") })
+ @Key("callback.badModifier"), @Key("callback.invalidArguments"), @Key("aroundInvoke.missing"), @Key("callback.missing"),
+ @Key(value="callback.sessionSynchronization.invalidUse",count=2) })
public EjbJar test() throws Exception {
EjbJar ejbJar = new EjbJar();
StatelessBean testBean = ejbJar.addEnterpriseBean(new StatelessBean("TestStateless", TestBean.class));
testBean.addAroundInvoke("wrongMethod");
+ testBean.addPostConstruct("wrongMethod");
ejbJar.addEnterpriseBean(new SingletonBean("TestSingleton", TestBean.class));
ejbJar.addEnterpriseBean(new StatefulBean("FooStateful", FooBean.class));
+ ejbJar.addEnterpriseBean(new StatefulBean("BarStateful", BarBean.class));
+ StatefulBean starBean = ejbJar.addEnterpriseBean(new StatefulBean("StarStateful", StarBean.class));
+ starBean.setAfterBeginMethod(new NamedMethod("myAfterBegin"));
+ starBean.setBeforeCompletionMethod(new NamedMethod("myBeforeCompletion"));
+ starBean.setAfterCompletionMethod(new NamedMethod("myAfterCompletion"));
return ejbJar;
}
@@ -104,4 +115,41 @@ public class CheckInvalidCallbacksTest e
@AfterCompletion
public void afterCompletionTypo() {}
}
+
+ public static class BarBean implements SessionSynchronization {
+ @AfterBegin
+ public void myAfterBegin() {}
+
+ @BeforeCompletion
+ public void myBeforeCompletion() {}
+
+ @AfterCompletion
+ public void myAfterCompletion(boolean committed) {}
+
+ @Override
+ public void afterBegin() throws EJBException, RemoteException {}
+
+ @Override
+ public void afterCompletion(boolean arg0) throws EJBException, RemoteException {}
+
+ @Override
+ public void beforeCompletion() throws EJBException, RemoteException {}
+ }
+
+ public static class StarBean implements SessionSynchronization {
+ public void myAfterBegin() {}
+
+ public void myBeforeCompletion() {}
+
+ public void myAfterCompletion(boolean committed) {}
+
+ @Override
+ public void afterBegin() throws EJBException, RemoteException {}
+
+ @Override
+ public void afterCompletion(boolean arg0) throws EJBException, RemoteException {}
+
+ @Override
+ public void beforeCompletion() throws EJBException, RemoteException {}
+ }
}
\ No newline at end of file