Repository: tomee
Updated Branches:
  refs/heads/fb_tomee8 ac1e695a8 -> c2f603d38


no observer in remote interfaces


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/c2f603d3
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/c2f603d3
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/c2f603d3

Branch: refs/heads/fb_tomee8
Commit: c2f603d388e99f956cd307ae2379ab027532cff1
Parents: ac1e695
Author: Romain Manni-Bucau <rmannibu...@gmail.com>
Authored: Thu Feb 1 14:10:43 2018 +0100
Committer: Romain Manni-Bucau <rmannibu...@gmail.com>
Committed: Thu Feb 1 14:10:51 2018 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/openejb/cdi/CdiPlugin.java   | 10 ++++++++--
 tck/cdi-embedded/src/test/resources/failing.xml           |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/c2f603d3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java 
b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
index bdf7486..5a2042c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
@@ -478,8 +478,14 @@ public class CdiPlugin extends AbstractOwbPlugin 
implements OpenWebBeansJavaEEPl
 
         for (final Map.Entry<ObserverMethod<?>, AnnotatedMethod<?>> m : 
methods.entrySet()) {
             final Method method = m.getValue().getJavaMember();
-            if (!Modifier.isStatic(method.getModifiers()) && 
doResolveViewMethod(bean, method) == null) {
-                throw new WebBeansConfigurationException("@Observes " + method 
+ " neither in the ejb view of ejb " + bean.getBeanContext().getEjbName() + " 
nor static");
+            if (!Modifier.isStatic(method.getModifiers())) {
+                final Method viewMethod = doResolveViewMethod(bean, method);
+                if (viewMethod == null) {
+                    throw new WebBeansConfigurationException(
+                            "@Observes " + method + " neither in the ejb view 
of ejb " + bean.getBeanContext().getEjbName() + " nor static");
+                } else if 
(beanContext.getBusinessRemoteInterfaces().contains(viewMethod.getDeclaringClass()))
 {
+                    throw new WebBeansConfigurationException(viewMethod + " 
observer is defined in a @Remote interface");
+                }
             }
             if (m.getValue().getParameters().stream().anyMatch(p -> 
p.isAnnotationPresent(ObservesAsync.class))) {
                 throw new WebBeansConfigurationException("@ObservesAsync " + 
method + " not supported on EJB in CDI 2");

http://git-wip-us.apache.org/repos/asf/tomee/blob/c2f603d3/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 15aa7cc..836410d 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -39,7 +39,7 @@
     TODO these are tests we finally need to pass!
     -->
     <classes>
-      <class 
name="org.jboss.cdi.tck.tests.event.observer.context.async.enterprise.EnterpriseSecurityContextPropagationInAsyncObserverTest"
 />
+      <class 
name="org.jboss.cdi.tck.tests.event.broken.observer.remoteBusinessMethod.EJBObserverMethodRemoteBusinessMethodTest"
 />
     </classes>
   </test>
 </suite>

Reply via email to