You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/12/23 14:31:48 UTC
tomee git commit: not @Dependent EJBs can't be Parameterized + EJB
can't be interceptors/decorators
Repository: tomee
Updated Branches:
refs/heads/develop 87b5d7698 -> 57a69fceb
not @Dependent EJBs can't be Parameterized + EJB can't be interceptors/decorators
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/57a69fce
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/57a69fce
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/57a69fce
Branch: refs/heads/develop
Commit: 57a69fcebec1c86421b61b959cb679c1c0cfbf7f
Parents: 87b5d76
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Dec 23 14:31:41 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Dec 23 14:31:41 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/openejb/cdi/CdiEjbBean.java | 16 +++++++++++++++-
tck/cdi-embedded/src/test/resources/failing.xml | 2 +-
2 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/57a69fce/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
index b1379fe..fadd277 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
@@ -35,6 +35,7 @@ import org.apache.webbeans.ejb.common.component.BaseEjbBean;
import org.apache.webbeans.intercept.InterceptorResolutionService;
import org.apache.webbeans.portable.InjectionTargetImpl;
+import javax.decorator.Decorator;
import javax.ejb.NoSuchEJBException;
import javax.ejb.Remove;
import javax.enterprise.context.Dependent;
@@ -48,10 +49,12 @@ import javax.enterprise.inject.spi.DefinitionException;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.InjectionTarget;
import javax.enterprise.inject.spi.SessionBeanType;
+import javax.interceptor.Interceptor;
import javax.transaction.UserTransaction;
import java.io.Serializable;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.UndeclaredThrowableException;
import java.rmi.NoSuchObjectException;
@@ -92,7 +95,8 @@ public class CdiEjbBean<T> extends BaseEjbBean<T> implements InterceptedMarker,
passivatingId = beanContext.getDeploymentID() + getReturnType().getName();
final boolean stateful = BeanType.STATEFUL.equals(beanContext.getComponentType());
- isDependentAndStateful = getScope().equals(Dependent.class) && stateful;
+ final boolean isDependent = getScope().equals(Dependent.class);
+ isDependentAndStateful = isDependent && stateful;
if (webBeansContext.getBeanManagerImpl().isPassivatingScope(getScope()) && stateful) {
if (!getBeanContext().isPassivable()) {
throw new DefinitionException(
@@ -104,6 +108,16 @@ public class CdiEjbBean<T> extends BaseEjbBean<T> implements InterceptedMarker,
} else {
passivable = false;
}
+ if (!isDependent) {
+ for (final Type type : attributes.getTypes()) {
+ if (ParameterizedType.class.isInstance(type)) {
+ throw new DefinitionException("Parameterized session bean should be @Dependent: " + beanClass);
+ }
+ }
+ }
+ if (getAnnotatedType().isAnnotationPresent(Interceptor.class) || getAnnotatedType().isAnnotationPresent(Decorator.class)) {
+ throw new DefinitionException("An EJB can't be an interceptor or a decorator: " + beanClass);
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/tomee/blob/57a69fce/tck/cdi-embedded/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml
index 0416d96..02ffdd8 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -18,7 +18,7 @@
<suite name="CDI TCK" verbose="0">
<test name="CDI TCK">
<classes>
- <class name="org.jboss.cdi.tck.tests.implementation.builtin.servlet.ServletContainerBuiltinBeanTest" />
+ <class name="org.jboss.cdi.tck.tests.implementation.enterprise.broken.statelessInterceptor.InterceptorAnnotatedStatelessSessionBeanTest" />
</classes>
</test>
</suite>