Repository: tomee
Updated Branches:
  refs/heads/master 983a67ed5 -> b0a1ee2ac


seems our begin/end wb listener is no more useful and breaks tomcat listener 
ordering - did it change? - starting to reverse it


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

Branch: refs/heads/master
Commit: b0a1ee2acb294adc3d164903ad8be4641ccd0bd4
Parents: 983a67e
Author: Romain Manni-Bucau <[email protected]>
Authored: Thu Mar 19 16:42:19 2015 +0100
Committer: Romain Manni-Bucau <[email protected]>
Committed: Thu Mar 19 16:42:19 2015 +0100

----------------------------------------------------------------------
 .../server/httpd/BeginWebBeansListener.java     | 110 ++++++++++++++--
 .../server/httpd/EndWebBeansListener.java       | 128 +------------------
 .../openejb/server/httpd/HttpRequestImpl.java   |  18 ++-
 .../server/httpd/WebBeansListenerHelper.java    |  50 ++++++++
 tck/cdi-embedded/src/test/resources/failing.xml |   8 +-
 tck/cdi-embedded/src/test/resources/passing.xml |   4 +
 tck/cdi-tomee/pom.xml                           |  24 +++-
 tck/cdi-tomee/src/test/resources/failing.xml    |  35 ++++-
 8 files changed, 231 insertions(+), 146 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java
index d324d4f..e151a90 100644
--- 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/BeginWebBeansListener.java
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.server.httpd;
 
+import org.apache.openejb.cdi.CdiAppContextsService;
 import org.apache.openejb.cdi.OpenEJBLifecycle;
 import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
 import org.apache.openejb.cdi.WebappWebBeansContext;
@@ -23,16 +24,22 @@ import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.OWBLogConst;
 import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.context.ConversationContext;
+import org.apache.webbeans.conversation.ConversationManager;
+import org.apache.webbeans.el.ELContextStore;
+import org.apache.webbeans.spi.ContextsService;
 import org.apache.webbeans.spi.FailOverService;
 import org.apache.webbeans.util.WebBeansUtil;
 
+import java.util.Map;
+import javax.enterprise.context.Conversation;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.context.SessionScoped;
-import javax.enterprise.context.spi.Context;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletRequestEvent;
 import javax.servlet.ServletRequestListener;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSessionActivationListener;
 import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionListener;
@@ -50,6 +57,7 @@ public class BeginWebBeansListener implements 
ServletContextListener, ServletReq
     private static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_CDI, BeginWebBeansListener.class);
 
     protected FailOverService failoverService;
+    private final CdiAppContextsService contextsService;
 
     /**
      * Manages the container lifecycle
@@ -63,7 +71,8 @@ public class BeginWebBeansListener implements 
ServletContextListener, ServletReq
      */
     public BeginWebBeansListener(final WebBeansContext webBeansContext) {
         this.webBeansContext = webBeansContext;
-        this.failoverService = 
this.webBeansContext.getService(FailOverService.class);
+        this.failoverService = webBeansContext != null ? 
this.webBeansContext.getService(FailOverService.class) : null;
+        this.contextsService = webBeansContext != null ? 
CdiAppContextsService.class.cast(webBeansContext.getService(ContextsService.class))
 : null;
         this.contextKey = "org.apache.tomee.catalina.WebBeansListener@" + 
webBeansContext.hashCode();
     }
 
@@ -72,7 +81,49 @@ public class BeginWebBeansListener implements 
ServletContextListener, ServletReq
      */
     @Override
     public void requestDestroyed(final ServletRequestEvent event) {
-        // no-op
+        if (webBeansContext == null) {
+            return;
+        }
+
+        if (logger.isDebugEnabled()) {
+            logger.debug("Destroying a request : [{0}]", event == null ? 
"null" : event.getServletRequest().getRemoteAddr());
+        }
+
+        final Object oldContext;
+        if (event != null) {
+            oldContext = event.getServletRequest().getAttribute(contextKey);
+        } else {
+            oldContext = null;
+        }
+
+        try {
+            if (event != null
+                    && failoverService != null
+                    && failoverService.isSupportFailOver()) {
+                Object request = event.getServletRequest();
+                if (request instanceof HttpServletRequest) {
+                    HttpServletRequest httpRequest = (HttpServletRequest) 
request;
+                    javax.servlet.http.HttpSession session = 
httpRequest.getSession(false);
+                    if (session != null) {
+                        failoverService.sessionIsIdle(session);
+                    }
+                }
+            }
+
+            // clean up the EL caches after each request
+            final ELContextStore elStore = ELContextStore.getInstance(false);
+            if (elStore != null) {
+                elStore.destroyELContextStore();
+            }
+
+            
webBeansContext.getContextsService().endContext(RequestScoped.class, event);
+            if (webBeansContext instanceof WebappWebBeansContext) { // end 
after child
+                ((WebappWebBeansContext) 
webBeansContext).getParent().getContextsService().endContext(RequestScoped.class,
 event);
+            }
+        } finally {
+            contextsService.removeThreadLocals();
+            ThreadSingletonServiceImpl.enter((WebBeansContext) oldContext);
+        }
     }
 
     /**
@@ -128,20 +179,42 @@ public class BeginWebBeansListener implements 
ServletContextListener, ServletReq
      */
     @Override
     public void sessionDestroyed(final HttpSessionEvent event) {
-        ensureRequestScope();
-    }
+        if (webBeansContext == null) {
+            return;
+        }
+
+        if (logger.isDebugEnabled()) {
+            logger.debug("Destroying a session with session id : [{0}]", 
event.getSession().getId());
+        }
+
+        // ensure session ThreadLocal is set
+        webBeansContext.getContextsService().startContext(SessionScoped.class, 
event.getSession());
+
+        if (WebappWebBeansContext.class.isInstance(webBeansContext)) { // end 
after child
+            
WebappWebBeansContext.class.cast(webBeansContext).getParent().getContextsService().endContext(SessionScoped.class,
 event.getSession());
+        }
 
-    private void ensureRequestScope() {
-        final Context reqCtx = 
webBeansContext.getContextsService().getCurrentContext(RequestScoped.class);
-        if (reqCtx == null || 
!webBeansContext.getContextsService().getCurrentContext(RequestScoped.class).isActive())
 {
-            requestInitialized(null);
-            EndWebBeansListener.FAKE_REQUEST.set(true);
+        final CdiAppContextsService appContextsService = 
CdiAppContextsService.class.cast(webBeansContext.getContextsService());
+        if (appContextsService.getRequestContext(false) != null) {
+            final String id = event.getSession().getId(); // capture it 
eagerly!
+            appContextsService.pushRequestReleasable(new Runnable() {
+                @Override
+                public void run() {
+                    doDestroyConversations(id);
+                }
+            });
+        } else {
+            doDestroyConversations(event.getSession().getId());
         }
+
+        webBeansContext.getContextsService().endContext(SessionScoped.class, 
event.getSession());
+
+        WebBeansListenerHelper.destroyFakedRequest(this);
     }
 
     @Override
     public void sessionWillPassivate(final HttpSessionEvent event) {
-        ensureRequestScope();
+        WebBeansListenerHelper.ensureRequestScope(contextsService, this);
     }
 
     @Override
@@ -158,11 +231,22 @@ public class BeginWebBeansListener implements 
ServletContextListener, ServletReq
         } catch (final Exception e) {
             logger.warning(e.getMessage(), e);
         }
-        ensureRequestScope();
+        WebBeansListenerHelper.ensureRequestScope(contextsService, this);
     }
 
     @Override
     public void contextDestroyed(final ServletContextEvent 
servletContextEvent) {
-        ensureRequestScope();
+        WebBeansListenerHelper.destroyFakedRequest(this);
+    }
+
+    private void doDestroyConversations(final String id) {
+        final ConversationManager conversationManager = 
webBeansContext.getConversationManager();
+        final Map<Conversation, ConversationContext> cc = 
conversationManager.getAndRemoveConversationMapWithSessionId(id);
+        for (final Map.Entry<Conversation, ConversationContext> c : 
cc.entrySet()) {
+            if (c != null) {
+                c.getValue().destroy();
+                
webBeansContext.getBeanManagerImpl().fireEvent(c.getKey().getId(), 
CdiAppContextsService.DestroyedLiteral.CONVERSATION);
+            }
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
index dda5c9f..acfc7fd 100644
--- 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EndWebBeansListener.java
@@ -17,29 +17,17 @@
 package org.apache.openejb.server.httpd;
 
 import org.apache.openejb.cdi.CdiAppContextsService;
-import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
-import org.apache.openejb.cdi.WebappWebBeansContext;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.context.ConversationContext;
-import org.apache.webbeans.conversation.ConversationManager;
-import org.apache.webbeans.el.ELContextStore;
 import org.apache.webbeans.spi.ContextsService;
 import org.apache.webbeans.spi.FailOverService;
 
-import javax.enterprise.context.Conversation;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.context.SessionScoped;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletRequestEvent;
 import javax.servlet.ServletRequestListener;
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSessionActivationListener;
 import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionListener;
-import java.util.Map;
 
 /**
  * @version $Rev$ $Date$
@@ -48,15 +36,6 @@ import java.util.Map;
  */
 public class EndWebBeansListener implements ServletContextListener, 
ServletRequestListener, HttpSessionListener, HttpSessionActivationListener {
 
-    static final ThreadLocal<Boolean> FAKE_REQUEST = new 
ThreadLocal<Boolean>();
-
-    private final String contextKey;
-
-    /**
-     * Logger instance
-     */
-    private static final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_CDI, EndWebBeansListener.class);
-
     protected FailOverService failoverService;
 
     /**
@@ -75,9 +54,7 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
         if (webBeansContext != null) {
             this.failoverService = 
this.webBeansContext.getService(FailOverService.class);
             this.contextsService = 
CdiAppContextsService.class.cast(webBeansContext.getService(ContextsService.class));
-            this.contextKey = "org.apache.tomee.catalina.WebBeansListener@" + 
webBeansContext.hashCode();
         } else {
-            this.contextKey = "notused";
             this.contextsService = null;
         }
     }
@@ -87,49 +64,7 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
      */
     @Override
     public void requestDestroyed(ServletRequestEvent event) {
-        if (webBeansContext == null) {
-            return;
-        }
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("Destroying a request : [{0}]", event == null ? 
"null" : event.getServletRequest().getRemoteAddr());
-        }
-
-        final Object oldContext;
-        if (event != null) {
-            oldContext = event.getServletRequest().getAttribute(contextKey);
-        } else {
-            oldContext = null;
-        }
-
-        try {
-            if (event != null
-                && failoverService != null
-                && failoverService.isSupportFailOver()) {
-                Object request = event.getServletRequest();
-                if (request instanceof HttpServletRequest) {
-                    HttpServletRequest httpRequest = (HttpServletRequest) 
request;
-                    javax.servlet.http.HttpSession session = 
httpRequest.getSession(false);
-                    if (session != null) {
-                        failoverService.sessionIsIdle(session);
-                    }
-                }
-            }
-
-            // clean up the EL caches after each request
-            final ELContextStore elStore = ELContextStore.getInstance(false);
-            if (elStore != null) {
-                elStore.destroyELContextStore();
-            }
-
-            
webBeansContext.getContextsService().endContext(RequestScoped.class, event);
-            if (webBeansContext instanceof WebappWebBeansContext) { // end 
after child
-                ((WebappWebBeansContext) 
webBeansContext).getParent().getContextsService().endContext(RequestScoped.class,
 event);
-            }
-        } finally {
-            contextsService.removeThreadLocals();
-            ThreadSingletonServiceImpl.enter((WebBeansContext) oldContext);
-        }
+        // no-op
     }
 
     /**
@@ -155,62 +90,9 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
      */
     @Override
     public void sessionDestroyed(final HttpSessionEvent event) {
-        if (webBeansContext == null) {
-            return;
-        }
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("Destroying a session with session id : [{0}]", 
event.getSession().getId());
-        }
-
-        // ensure session ThreadLocal is set
-        webBeansContext.getContextsService().startContext(SessionScoped.class, 
event.getSession());
-        
-        if (WebappWebBeansContext.class.isInstance(webBeansContext)) { // end 
after child
-            
WebappWebBeansContext.class.cast(webBeansContext).getParent().getContextsService().endContext(SessionScoped.class,
 event.getSession());
-        }
-
-        final CdiAppContextsService appContextsService = 
CdiAppContextsService.class.cast(webBeansContext.getContextsService());
-        if (appContextsService.getRequestContext(false) != null) {
-            final String id = event.getSession().getId(); // capture it 
eagerly!
-            appContextsService.pushRequestReleasable(new Runnable() {
-                @Override
-                public void run() {
-                    doDestroyConversations(id);
-                }
-            });
-        } else {
-            doDestroyConversations(event.getSession().getId());
-        }
-
-        webBeansContext.getContextsService().endContext(SessionScoped.class, 
event.getSession());
-
-        destroyFakedRequest();
-    }
-
-    private void doDestroyConversations(final String id) {
-        final ConversationManager conversationManager = 
webBeansContext.getConversationManager();
-        final Map<Conversation, ConversationContext> cc = 
conversationManager.getAndRemoveConversationMapWithSessionId(id);
-        for (final Map.Entry<Conversation, ConversationContext> c : 
cc.entrySet()) {
-            if (c != null) {
-                c.getValue().destroy();
-                
webBeansContext.getBeanManagerImpl().fireEvent(c.getKey().getId(), 
CdiAppContextsService.DestroyedLiteral.CONVERSATION);
-            }
-        }
+        WebBeansListenerHelper.ensureRequestScope(contextsService, this);
     }
 
-    private void destroyFakedRequest() {
-        final Boolean faked = FAKE_REQUEST.get();
-        try {
-            if (faked != null && faked) {
-                requestDestroyed(null);
-            }
-        } finally {
-            FAKE_REQUEST.remove();
-        }
-    }
-
-
     @Override
     public void sessionWillPassivate(HttpSessionEvent event) {
         if (webBeansContext == null) {
@@ -220,7 +102,7 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
         if (failoverService != null && failoverService.isSupportPassivation()) 
{
             failoverService.sessionWillPassivate(event.getSession());
         }
-        destroyFakedRequest();
+        WebBeansListenerHelper.destroyFakedRequest(this);
     }
 
     @Override
@@ -230,11 +112,11 @@ public class EndWebBeansListener implements 
ServletContextListener, ServletReque
 
     @Override
     public void contextInitialized(ServletContextEvent servletContextEvent) {
-        destroyFakedRequest();
+        WebBeansListenerHelper.destroyFakedRequest(this);
     }
 
     @Override
     public void contextDestroyed(ServletContextEvent servletContextEvent) {
-        destroyFakedRequest();
+        WebBeansListenerHelper.ensureRequestScope(contextsService, this);
     }
 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
index 804648d..11702a0 100644
--- 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/HttpRequestImpl.java
@@ -123,8 +123,8 @@ public class HttpRequestImpl implements HttpRequest {
                         SESSIONS.remove(session.getId());
                         session.invalidate();
 
-                        if (data.request != null && data.request.end != null) {
-                            data.request.end.sessionDestroyed(new 
HttpSessionEvent(session));
+                        if (data.request != null && data.request.begin != 
null) {
+                            data.request.begin.sessionDestroyed(new 
HttpSessionEvent(session));
                         }
                     }
                 }
@@ -933,7 +933,7 @@ public class HttpRequestImpl implements HttpRequest {
             session = impl;
             if (begin != null) {
                 begin.sessionCreated(new HttpSessionEvent(session));
-                session = new SessionInvalidateListener(session, end);
+                session = new SessionInvalidateListener(session, begin);
             }
             impl.callListeners(); // can call req.getSession() so do it after 
affectation + do it after cdi init
 
@@ -1241,22 +1241,26 @@ public class HttpRequestImpl implements HttpRequest {
     }
 
     public void destroy() {
+        final boolean openejbRequestDestroyed = 
getAttribute("openejb_requestDestroyed") == null;
         if (listeners != null && !listeners.isEmpty()) {
+            if (begin != null && end != null && openejbRequestDestroyed) {
+                end.requestDestroyed(new 
ServletRequestEvent(getServletContext(), this));
+            }
             final ServletRequestEvent event = new 
ServletRequestEvent(getServletContext(), this);
             for (final ServletRequestListener listener : listeners) {
                 listener.requestDestroyed(event);
             }
         }
-        if (end != null && getAttribute("openejb_requestDestroyed") == null) {
+        if (begin != null && openejbRequestDestroyed) {
             setAttribute("openejb_requestDestroyed", "ok");
-            end.requestDestroyed(new ServletRequestEvent(getServletContext(), 
this));
+            begin.requestDestroyed(new 
ServletRequestEvent(getServletContext(), this));
         }
     }
 
     protected static class SessionInvalidateListener extends 
ServletSessionAdapter {
-        private final EndWebBeansListener listener;
+        private final BeginWebBeansListener listener;
 
-        public SessionInvalidateListener(final javax.servlet.http.HttpSession 
session, final EndWebBeansListener end) {
+        public SessionInvalidateListener(final javax.servlet.http.HttpSession 
session, final BeginWebBeansListener end) {
             super(session);
             listener = end;
         }

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansListenerHelper.java
----------------------------------------------------------------------
diff --git 
a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansListenerHelper.java
 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansListenerHelper.java
new file mode 100644
index 0000000..db0578c
--- /dev/null
+++ 
b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/WebBeansListenerHelper.java
@@ -0,0 +1,50 @@
+/**
+ * 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.apache.openejb.server.httpd;
+
+import org.apache.webbeans.spi.ContextsService;
+
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.context.spi.Context;
+import javax.servlet.ServletRequestListener;
+
+public final class WebBeansListenerHelper {
+    private static final ThreadLocal<Boolean> FAKE_REQUEST = new 
ThreadLocal<Boolean>();
+
+    public static void destroyFakedRequest(final ServletRequestListener 
listener) {
+        final Boolean faked = FAKE_REQUEST.get();
+        try {
+            if (faked != null && faked) {
+                listener.requestDestroyed(null);
+            }
+        } finally {
+            FAKE_REQUEST.remove();
+        }
+    }
+
+    public static void ensureRequestScope(final ContextsService cs, final 
ServletRequestListener listener) {
+        final Context reqCtx = cs.getCurrentContext(RequestScoped.class);
+        if (reqCtx == null || 
!cs.getCurrentContext(RequestScoped.class).isActive()) {
+            listener.requestInitialized(null);
+            FAKE_REQUEST.set(true);
+        }
+    }
+
+    private WebBeansListenerHelper() {
+        // no-op
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/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 9cad804..cef795e 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -31,7 +31,13 @@
     -Dopenejb.embedded.try-jsp=true
     -->
     <classes>
-      <class 
name="org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest"
 />
+      <!--
+        
InvalidatingSessionDestroysConversationTest>Arquillian.run:164->testInvalidatingSessionDestroysConversation:63
 expected [true] but found [false]
+  
DestroyConversationNotAssociatedWithCurrentRequestEventTest>Arquillian.run:164->testLifecycleEventFired:70
 expected [true] but found [false]
+  
SessionContextTest>Arquillian.run:164->testSessionContextDestroyedWhenHttpSessionInvalidated:129
 expected [ActionSequence [name=default, 
data=[org.jboss.cdi.tck.tests.context.session.IntrospectServlet, 
org.jboss.cdi.tck.tests.context.session.IntrospectHttpSessionListener, 
org.jboss.cdi.tck.tests.context.session.IntrospectFilter, 
org.jboss.cdi.tck.tests.context.session.IntrospectServletRequestListener, 
org.jboss.cdi.tck.tests.context.session.SimpleSessionBean]]] but found 
[ActionSequence [name=default, 
data=[org.jboss.cdi.tck.tests.context.session.IntrospectServlet, 
org.jboss.cdi.tck.tests.context.session.IntrospectHttpSessionListener, 
org.jboss.cdi.tck.tests.context.session.IntrospectFilter, 
org.jboss.cdi.tck.tests.context.session.IntrospectServletRequestListener]]]
+  SessionScopeEventTest>Arquillian.run:164->test:84 expected [true] but found 
[false]
+-->
+      <class 
name="org.jboss.cdi.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest"
 />
     </classes>
   </test>
 </suite>

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/tck/cdi-embedded/src/test/resources/passing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/passing.xml 
b/tck/cdi-embedded/src/test/resources/passing.xml
index ad14e73..0be9578 100644
--- a/tck/cdi-embedded/src/test/resources/passing.xml
+++ b/tck/cdi-embedded/src/test/resources/passing.xml
@@ -306,6 +306,10 @@
           <exclude name=".*" />
         </methods>
       </class>
+      <!-- this one depends too much of embedded environment to be reliable on 
a regular basis in embedded mode -->
+      <class 
name="org.jboss.cdi.tck.tests.context.request.event.remote.RequestScopeEventRemoteTest">
+        <methods><exclude name=".*" /></methods>
+      </class>
     </classes>
   </test>
 </suite>

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/tck/cdi-tomee/pom.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-tomee/pom.xml b/tck/cdi-tomee/pom.xml
index e231488..07321fc 100644
--- a/tck/cdi-tomee/pom.xml
+++ b/tck/cdi-tomee/pom.xml
@@ -27,6 +27,10 @@
   <artifactId>cdi-tomee</artifactId>
   <name>OpenEJB :: TCK :: CDI TomEE</name>
 
+  <properties>
+    <suite.name>passing</suite.name>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.myfaces.core</groupId>
@@ -124,6 +128,24 @@
       <version>${jcs.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>tomee-catalina</artifactId>
+      <version>${tomee.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-catalina</artifactId>
+      <version>${tomcat.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-http</artifactId>
+      <version>${openejb.version}</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
@@ -165,7 +187,7 @@
           <useFile>false</useFile>
           <disableXmlReport>true</disableXmlReport>
           <suiteXmlFiles>
-            <suiteXmlFile>src/test/resources/passing.xml</suiteXmlFile>
+            <suiteXmlFile>src/test/resources/${suite.name}.xml</suiteXmlFile>
           </suiteXmlFiles>
           <properties>
             <property>

http://git-wip-us.apache.org/repos/asf/tomee/blob/b0a1ee2a/tck/cdi-tomee/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-tomee/src/test/resources/failing.xml 
b/tck/cdi-tomee/src/test/resources/failing.xml
index 01f0c82..9f512c0 100644
--- a/tck/cdi-tomee/src/test/resources/failing.xml
+++ b/tck/cdi-tomee/src/test/resources/failing.xml
@@ -23,7 +23,40 @@
   -->
   <test name="CDI TCK">
     <classes>
-      <class 
name="org.jboss.cdi.tck.tests.lookup.modules.specialization.alternative.Specialization06Test"
 />
+      <!--
+        
AlterableContextTest>Arquillian.run:164->testRequestScopedComponent:66->testComponent:104
 foo expected [null] but found [foo]
+  
ConversationDeterminationTest>Arquillian.run:164->testConversationDetermination:78
 expected [true] but found [false]
+  ConversationFilterTest>Arquillian.run:164->testConversationBusy:133 expected 
[BusyConversationException] but found [500]
+  DataSourcePassivationDependencyTest>Arquillian.run:164->testDataSource:68 » 
IllegalProduct
+  
RequestContextTest>Arquillian.run:164->testRequestScopeActiveDuringServiceMethod:62
 » FailingHttpStatusCode
+  
RequestContextTest>Arquillian.run:164->testRequestScopeActiveDuringServletFilter:73
 » FailingHttpStatusCode
+  
RequestContextTest>Arquillian.run:164->testRequestScopeIsDestroyedAfterServletRequest:89
 » FailingHttpStatusCode
+  
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnComplete:65
 expected [true] but found [false]
+  
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnError:93
 expected [true] but found [false]
+  
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnStartAsync:102
 expected [true] but found [false]
+  
RequestContextAsyncListenerTest>Arquillian.run:164->testRequestContextActiveOnTimeout:83
 expected [true] but found [false]
+  
RequestContextTest>Arquillian.run:164->testRequestScopeActiveDuringWebServiceInvocation:72
 » WebService
+  
SessionContextTest>Arquillian.run:164->testSessionContextDestroyedWhenHttpSessionInvalidated:129
 expected [ActionSequence [name=default, 
data=[org.jboss.cdi.tck.tests.context.session.IntrospectServlet, 
org.jboss.cdi.tck.tests.context.session.IntrospectHttpSessionListener, 
org.jboss.cdi.tck.tests.context.session.IntrospectFilter, 
org.jboss.cdi.tck.tests.context.session.IntrospectServletRequestListener, 
org.jboss.cdi.tck.tests.context.session.SimpleSessionBean]]] but found 
[ActionSequence [name=default, 
data=[org.jboss.cdi.tck.tests.context.session.IntrospectServlet, 
org.jboss.cdi.tck.tests.context.session.IntrospectHttpSessionListener, 
org.jboss.cdi.tck.tests.context.session.IntrospectFilter, 
org.jboss.cdi.tck.tests.context.session.SimpleSessionBean, 
org.jboss.cdi.tck.tests.context.session.IntrospectServletRequestListener]]]
+  
SessionContextListenerShutdownTest>Arquillian.run:164->testApplicationContextDestroyed:108
 expected [true] but found [false]
+  
EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveEmptyDescriptor:133->assertDiscoveredAndAvailable:172
 expected [true] but found [false]
+  
EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveLegacyDescriptor:140->assertDiscoveredAndAvailable:172
 expected [true] but found [false]
+  
EnterpriseBeanDiscoveryTest>Arquillian.run:164->testExplicitBeanArchiveModeAll:126->assertDiscoveredAndAvailable:172
 expected [true] but found [false]
+  
EnterpriseBeanDiscoveryTest>Arquillian.run:164->testImplicitBeanArchiveModeAnnotated:154->assertDiscoveredAndAvailable:172
 expected [true] but found [false]
+  
EnterpriseBeanDiscoveryTest>Arquillian.run:164->testImplicitBeanArchiveNoDescriptor:147->assertDiscoveredAndAvailable:170->AbstractTest.getContextualReference:157
 » UnsatisfiedResolution
+  
EnterpriseBeanDiscoveryTest>Arquillian.run:164->testNoBeanArchiveModeNone:160->assertNotDiscoveredAndNotAvailable:178
 expected [true] but found [false]
+  MultiWebModuleWithExtensionTest>Arquillian.run:164 » IllegalState Error 
launch...
+  InstalledLibraryWarTest>Arquillian.arquillianBeforeClass:109 » Deployment 
Unab...
+  DeploymentTest>Arquillian.arquillianBeforeClass:109 » Deployment Unable to 
dep...
+  ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 
» Runtime
+  ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 
» Runtime
+  ResourceDefinitionWithDifferentTypeTest>Arquillian.arquillianBeforeClass:109 
» Runtime
+  
DestroyingNormalScopedInstanceTest>Arquillian.run:164->testRequestScopedComponent:71->testComponent:146
 foo expected [null] but found [foo]
+  
InterModuleELResolutionTest>Arquillian.run:164->testEnabledManagedBeanAvailableForELResolution:62
 » PropertyNotFound
+  
DisabledProducerFieldInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109
 » Runtime
+  
DisabledProducerMethodInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109
 » Runtime
+  
DisabledSessionBeanInjectionNotAvailableTest>Arquillian.arquillianBeforeClass:109
 » Runtime
+  -->
+      <class name="org.jboss.cdi.tck.tests.context.request.RequestContextTest" 
/>
     </classes>
   </test>
 </suite>

Reply via email to