You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/07/23 08:25:27 UTC

svn commit: r1150052 - in /openejb/trunk/openejb3: assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ container/openejb-core/src/main/java/org/apache/openejb/config/ tck/cdi-tomee/ tck/cdi-tomee/src/test/r...

Author: dblevins
Date: Sat Jul 23 06:25:26 2011
New Revision: 1150052

URL: http://svn.apache.org/viewvc?rev=1150052&view=rev
Log:
OPENEJB-1197: JCDI Integration
Missing TomEE bits
 - Hook up OpenWebBeans various Http Listeners

Tests run: 849, Failures: 182, Errors: 0, Skipped: 0
[INFO] Total time: 10 minutes 56 seconds


Added:
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java
Modified:
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
    openejb/trunk/openejb3/tck/cdi-tomee/pom.xml
    openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1150052&r1=1150051&r2=1150052&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Sat Jul 23 06:25:26 2011
@@ -21,6 +21,8 @@ import org.apache.catalina.Engine;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.Service;
 import org.apache.catalina.Wrapper;
+import org.apache.catalina.connector.Request;
+import org.apache.catalina.connector.Response;
 import org.apache.catalina.core.*;
 import org.apache.catalina.deploy.ContextEnvironment;
 import org.apache.catalina.deploy.ContextResource;
@@ -28,6 +30,7 @@ import org.apache.catalina.deploy.Contex
 import org.apache.catalina.deploy.NamingResources;
 import org.apache.catalina.startup.ContextConfig;
 import org.apache.catalina.startup.HostConfig;
+import org.apache.catalina.valves.ValveBase;
 import org.apache.naming.ContextAccessController;
 import org.apache.naming.ContextBindings;
 import org.apache.openejb.AppContext;
@@ -58,13 +61,36 @@ import org.apache.openejb.tomcat.loader.
 import org.apache.openejb.util.LinkResolver;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.webbeans.component.InjectionPointBean;
+import org.apache.webbeans.config.OWBLogConst;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.conversation.ConversationManager;
+import org.apache.webbeans.el.ELContextStore;
+import org.apache.webbeans.logger.WebBeansLogger;
+import org.apache.webbeans.spi.ContainerLifecycle;
+import org.apache.webbeans.spi.ContextsService;
+import org.apache.webbeans.spi.FailOverService;
+import org.apache.webbeans.util.WebBeansUtil;
+import org.apache.webbeans.web.context.WebContextsService;
 import org.omg.CORBA.ORB;
 
 import javax.ejb.spi.HandleDelegate;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.context.SessionScoped;
 import javax.naming.Context;
 import javax.naming.NamingException;
 import javax.persistence.EntityManagerFactory;
 import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequestEvent;
+import javax.servlet.ServletRequestListener;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionActivationListener;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
 import javax.transaction.TransactionManager;
 import javax.transaction.TransactionSynchronizationRegistry;
 import java.io.File;
@@ -453,10 +479,32 @@ public class TomcatWebAppBuilder impleme
             } catch (NamingException e) {
             }
         }
+
+
+        final WebBeansListener webBeansListener = getWebBeansContext(contextInfo);
+
+        if (webBeansListener != null) {
+            standardContext.addApplicationEventListener(webBeansListener);
+            standardContext.addApplicationLifecycleListener(webBeansListener);
+        }
+
         OpenEJBValve openejbValve = new OpenEJBValve();
         standardContext.getPipeline().addValve(openejbValve);
     }
 
+    private WebBeansListener getWebBeansContext(ContextInfo contextInfo) {
+        final AppContext appContext = getContainerSystem().getAppContext(contextInfo.appInfo.appId);
+
+        if (appContext == null) return null;
+
+        final WebBeansContext webBeansContext = appContext.getWebBeansContext();
+
+        if (webBeansContext == null) return null;
+
+        return new WebBeansListener(webBeansContext);
+    }
+
+
     private static boolean isIgnored(StandardContext standardContext) {
         // useful to disable web applications deployment
         // it can be placed in the context.xml file, server.xml, ...

Added: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java?rev=1150052&view=auto
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java (added)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/WebBeansListener.java Sat Jul 23 06:25:26 2011
@@ -0,0 +1,179 @@
+/**
+ * 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.tomcat.catalina;
+
+import org.apache.webbeans.component.InjectionPointBean;
+import org.apache.webbeans.config.OWBLogConst;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.conversation.ConversationManager;
+import org.apache.webbeans.el.ELContextStore;
+import org.apache.webbeans.logger.WebBeansLogger;
+import org.apache.webbeans.spi.ContainerLifecycle;
+import org.apache.webbeans.spi.FailOverService;
+import org.apache.webbeans.util.WebBeansUtil;
+import org.apache.webbeans.web.context.WebContextsService;
+
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.context.SessionScoped;
+import javax.servlet.ServletRequestEvent;
+import javax.servlet.ServletRequestListener;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionActivationListener;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class WebBeansListener implements ServletRequestListener, HttpSessionListener, HttpSessionActivationListener {
+
+    /**
+     * Logger instance
+     */
+    private static final WebBeansLogger logger = WebBeansLogger.getLogger(WebBeansListener.class);
+
+    protected FailOverService failoverService;
+
+    /**
+     * Manages the container lifecycle
+     */
+    protected ContainerLifecycle lifeCycle = null;
+    protected WebBeansContext webBeansContext;
+
+    /**
+     * Default constructor
+     *
+     * @param webBeansContext
+     */
+    public WebBeansListener(WebBeansContext webBeansContext) {
+        this.webBeansContext = webBeansContext;
+        this.failoverService = this.webBeansContext.getService(FailOverService.class);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void requestDestroyed(ServletRequestEvent event) {
+        if (logger.wblWillLogDebug()) {
+            logger.debug("Destroying a request : [{0}]", event.getServletRequest().getRemoteAddr());
+        }
+
+        if (failoverService != null &&
+                failoverService.isSupportFailOver()) {
+            Object request = event.getServletRequest();
+            if (request instanceof HttpServletRequest) {
+                HttpServletRequest httpRequest = (HttpServletRequest) request;
+                HttpSession session = httpRequest.getSession(false);
+                if (session != null) {
+                    failoverService.sessionIsIdle(session);
+                }
+            }
+        }
+
+        // clean up the EL caches after each request
+        ELContextStore elStore = ELContextStore.getInstance(false);
+        if (elStore != null) {
+            elStore.destroyELContextStore();
+        }
+
+        if (this.lifeCycle != null) {
+            this.lifeCycle.getContextService().endContext(RequestScoped.class, event);
+        }
+
+        this.cleanupRequestThreadLocals();
+    }
+
+    /**
+     * Ensures that all ThreadLocals, which could have been set in this
+     * request's Thread, are removed in order to prevent memory leaks.
+     */
+    private void cleanupRequestThreadLocals() {
+        // TODO maybe there are more to cleanup
+
+        InjectionPointBean.removeThreadLocal();
+        WebContextsService.removeThreadLocals();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void requestInitialized(ServletRequestEvent event) {
+        try {
+            if (logger.wblWillLogDebug()) {
+                logger.debug("Starting a new request : [{0}]", event.getServletRequest().getRemoteAddr());
+            }
+
+            this.webBeansContext.getContextsService().startContext(RequestScoped.class, event);
+
+            // we don't initialise the Session here but do it lazily if it gets requested
+            // the first time. See OWB-457
+
+        } catch (Exception e) {
+            logger.error(OWBLogConst.ERROR_0019, event.getServletRequest());
+            WebBeansUtil.throwRuntimeExceptions(e);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void sessionCreated(HttpSessionEvent event) {
+        try {
+            if (logger.wblWillLogDebug()) {
+                logger.debug("Starting a session with session id : [{0}]", event.getSession().getId());
+            }
+            this.webBeansContext.getContextsService().startContext(SessionScoped.class, event.getSession());
+        } catch (Exception e) {
+            logger.error(OWBLogConst.ERROR_0020, event.getSession());
+            WebBeansUtil.throwRuntimeExceptions(e);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void sessionDestroyed(HttpSessionEvent event) {
+        if (logger.wblWillLogDebug()) {
+            logger.debug("Destroying a session with session id : [{0}]", event.getSession().getId());
+        }
+
+        this.webBeansContext.getContextsService().endContext(SessionScoped.class, event.getSession());
+
+        ConversationManager conversationManager = webBeansContext.getConversationManager();
+        conversationManager.destroyConversationContextWithSessionId(event.getSession().getId());
+    }
+
+
+    @Override
+    public void sessionWillPassivate(HttpSessionEvent event) {
+        if (failoverService != null &&
+                failoverService.isSupportPassivation()) {
+            HttpSession session = event.getSession();
+            failoverService.sessionWillPassivate(session);
+        }
+
+    }
+
+    @Override
+    public void sessionDidActivate(HttpSessionEvent event) {
+        if (failoverService.isSupportFailOver() || failoverService.isSupportPassivation()) {
+            HttpSession session = event.getSession();
+            failoverService.restoreBeans(session);
+        }
+    }
+}

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1150052&r1=1150051&r2=1150052&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java Sat Jul 23 06:25:26 2011
@@ -31,7 +31,11 @@ import java.util.Properties;
  */
 public class RemoteServer {
     private static final boolean DEBUG = System.getProperty("openejb.server.debug","false").equalsIgnoreCase("TRUE");
+    private static final boolean PROFILE = System.getProperty("openejb.server.profile","false").equalsIgnoreCase("TRUE");
     private static final boolean TOMCAT;
+    public static final String YOURKIT_HOME = System.getProperty("yourkit.home","/Applications/YourKit_Java_Profiler_9.5.6.app/bin/mac/");
+    public static final String JAVA_OPTS = System.getProperty("java.opts");
+
     static {
         File home = getHome();
         TOMCAT = (home != null) && (new File(new File(home, "bin"), "catalina.sh").exists());
@@ -172,8 +176,15 @@ public class RemoteServer {
                         argsList.add("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005");
                     }
 
-                    if (false) {
-                        argsList.add("-agentpath:/Applications/YourKit_Java_Profiler_9.5.6.app/bin/mac/libyjpagent.jnilib=disablestacktelemetry,disableexceptiontelemetry,builtinprobes=none,delay=10000,sessionname=Tomcat");
+                    if (PROFILE) {
+                        argsList.add("-agentpath:" + YOURKIT_HOME + "libyjpagent.jnilib=disablestacktelemetry,disableexceptiontelemetry,builtinprobes=none,delay=10000,sessionname=Tomcat");
+                    }
+
+                    if (JAVA_OPTS != null) {
+                        final String[] strings = JAVA_OPTS.split(" +");
+                        for (String string : strings) {
+                            argsList.add(string);
+                        }
                     }
 
                     argsList.add("-javaagent:" + javaagentJar.getAbsolutePath());

Modified: openejb/trunk/openejb3/tck/cdi-tomee/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/pom.xml?rev=1150052&r1=1150051&r2=1150052&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/pom.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/pom.xml Sat Jul 23 06:25:26 2011
@@ -161,8 +161,8 @@
         <configuration>
           <suiteXmlFiles>
             <!-- <suiteXmlFile>src/test/resources/web-profile.xml</suiteXmlFile> -->
-            <suiteXmlFile>src/test/resources/passing.xml</suiteXmlFile>
-            <!--<suiteXmlFile>src/test/resources/failing.xml</suiteXmlFile> -->
+            <!--<suiteXmlFile>src/test/resources/passing.xml</suiteXmlFile>-->
+            <suiteXmlFile>src/test/resources/failing.xml</suiteXmlFile>
           </suiteXmlFiles>
           <!--<forkMode>once</forkMode>-->
           <systemProperties>
@@ -193,6 +193,7 @@
           </systemProperties>
           <systemPropertyVariables>
             <!--<openejb.server.debug>true</openejb.server.debug>-->
+            <java.opts>-Xmx128m -XX:MaxPermSize=128m</java.opts>
             <openejb.home>${project.build.directory}${file.separator}apache-tomee-${project.version}</openejb.home>
           </systemPropertyVariables>
         </configuration>

Modified: openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml?rev=1150052&r1=1150051&r2=1150052&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml Sat Jul 23 06:25:26 2011
@@ -17,58 +17,12 @@
     limitations under the License.
 -->
 <suite name="CDI TCK" verbose="0">
-  <listeners>
-    <listener class-name="org.apache.openejb.tck.cdi.embedded.RequestScopeTestListener" />
-  </listeners>
   <test name="CDI TCK">
     <packages>
         <package name="org.jboss.jsr299.tck.tests.*"/>
         <package name="org.jboss.jsr299.tck.interceptors.tests.*"/>
     </packages>
     <classes>
-      <class name="org.jboss.jsr299.tck.tests.context.ContextDestroysBeansTest">
-        <methods>
-          <exclude name="testContextDestroysBeansWhenDestroyed"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.ContextTest">
-        <methods>
-          <exclude name="testBuiltInContexts"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.DestroyForSameCreationalContext2Test">
-        <methods>
-          <exclude name="testDestroyForSameCreationalContextOnly"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.DestroyForSameCreationalContextTest">
-        <methods>
-          <exclude name="testDestroyForSameCreationalContextOnly"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.DestroyedInstanceReturnedByGetTest">
-        <methods>
-          <exclude name="testDestroyedInstanceMustNotBeReturnedByGet"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.GetFromContextualTest">
-        <methods>
-          <exclude name="testGetMayNotCreateNewInstanceUnlessCreationalContextGiven"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.GetWithNoCreationalContextTest">
-        <methods>
-          <exclude name="testGetWithoutCreationalContextReturnsNull"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.context.NormalContextTest">
-        <methods>
-          <exclude name="testGetMayNotReturnNullUnlessContextualCreateReturnsNull"/>
-          <exclude name="testGetReturnsExistingInstance"/>
-          <exclude name="testGetWithCreationalContextReturnsNewInstance"/>
-          <exclude name="testSameNormalScopeBeanInjectedEverywhere"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.context.application.ApplicationContextTest">
         <methods>
           <exclude name="testApplicationContextSharedBetweenServletRequests"/>
@@ -224,68 +178,12 @@
           <exclude name="test"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.event.bindingTypes.EventBindingTypesTest">
-        <methods>
-          <exclude name="testNonRuntimeBindingTypeIsNotAnEventBindingType"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.event.eventTypes.EventTypesTest">
-        <methods>
-          <exclude name="testEventTypeIsConcreteTypeWithNoTypeVariables"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.event.fires.FireEventTest">
-        <methods>
-          <exclude name="testBeanManagerFireEvent"/>
-          <exclude name="testEventProvidesMethodForFiringEventsWithCombinationOfTypeAndBindings"/>
-          <exclude name="testEventSelectedFiresAndObserversNotified"/>
-          <exclude name="testInjectedAnyEventCanFireEvent"/>
-          <exclude name="testInjectedEventAcceptsEventObject"/>
-          <exclude name="testInjectedEventCanHaveBindings"/>
-          <exclude name="testInjectedEventCanSpecifyBindingsDynamically"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.event.implicit.ImplicitEventTest">
-        <methods>
-          <exclude name="testImplicitEventHasImplementation"/>
-          <exclude name="testImplicitEventIsPassivationCapable"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.event.observer.ObserverTest">
-        <methods>
-          <exclude name="testObserverNotifiedWhenEventTypeAndAllBindingsMatch"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.event.observer.conditional.ConditionalObserverTest">
-        <methods>
-          <exclude name="testConditionalObserver"/>
-          <exclude name="testObserverMethodInvokedOnReturnedInstanceFromContext"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest">
         <methods>
           <exclude name="testNonStaticObserverMethodIndirectlyInherited"/>
           <exclude name="testNonStaticObserverMethodInherited"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.event.select.SelectEventTest">
-        <methods>
-          <exclude name="testEventSelectReturnsEventOfSameType"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.extensions.alternative.metadata.AlternativeMetadataTest">
-        <methods>
-          <exclude name="testExtraQualifierAppliedToObservesMethodParameter"/>
-          <exclude name="testGetAnnotationUsedForGettingInterceptorInformation"/>
-          <exclude name="testGetBaseTypeUsedToDetermineTypeOfInjectionPoint"/>
-          <exclude name="testInjectCreatesInitializerMethod"/>
-          <exclude name="testObserverMethod"/>
-          <exclude name="testPreviouslyNonInjectAnnotatedConstructorIsUsed"/>
-          <exclude name="testPreviouslyNonInjectAnnotatedFieldIsInjected"/>
-          <exclude name="testQualifierAddedToInitializerParameter"/>
-          <exclude name="testQualifierIsAppliedToProducerMethodParameter"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest">
         <methods>
           <exclude name="testGetEJBName"/>
@@ -392,16 +290,6 @@
           <exclude name="testStaticProducerField"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle.ProducerFieldLifecycleTest">
-        <methods>
-          <exclude name="testProducerFieldReturnsNullIsNotDependent"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.ProducerMethodDefinitionTest">
-        <methods>
-          <exclude name="testNonDependentProducerReturnsNullValue"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest">
         <methods>
           <exclude name="testNonStaticProducerMethodInheritedBySpecializingSubclass"/>
@@ -409,29 +297,6 @@
           <exclude name="testNonStaticProducerMethodNotInherited"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.implementation.simple.lifecycle.SimpleBeanLifecycleTest">
-        <methods>
-          <exclude name="testContextCreatesNewInstanceForInjection"/>
-          <exclude name="testContextualDestroyCatchesException"/>
-          <exclude name="testCreateInjectsFieldsDeclaredInJava"/>
-          <exclude name="testManagedBean"/>
-          <exclude name="testSerializeRequestScoped"/>
-          <exclude name="testSerializeSessionScoped"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean.NewSimpleBeanTest">
-        <methods>
-          <exclude name="testNewBeanCreatedForDisposerMethod"/>
-          <exclude name="testNewBeanCreatedForObserverMethod"/>
-          <exclude name="testNewBeanCreatedForProducerMethod"/>
-          <exclude name="testNewBeanHasNoDisposerMethods"/>
-          <exclude name="testNewBeanHasNoProducerFields"/>
-          <exclude name="testNewBeanHasNoProducerMethods"/>
-          <exclude name="testNewBeanHasSameConstructor"/>
-          <exclude name="testNewBeanHasSameInitializers"/>
-          <exclude name="testNewBeanIsDependentScoped"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest">
         <methods>
           <exclude name="testInjectionOfEjbs"/>
@@ -480,17 +345,6 @@
           <exclude name="testSessionBeanIsIntercepted"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.lookup.circular.CircularDependencyTest">
-        <methods>
-          <exclude name="testCircularInjectionOnTwoNormalBeans"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.ClientProxyTest">
-        <methods>
-          <exclude name="testClientProxyInvocation"/>
-          <exclude name="testClientProxyUsedForNormalScope"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.incontainer.ClientProxyTest">
         <methods>
           <exclude name="testInvocationIsProcessedOnCurrentInstance"/>
@@ -544,24 +398,6 @@
           <exclude name="testInjectionIntoWebServiceEndpoint"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.InjectableReferenceTest">
-        <methods>
-          <exclude name="testGetInjectableReferenceOnBeanManager"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.InjectionPointTest">
-        <methods>
-          <exclude name="testApiTypeInjectionPoint"/>
-          <exclude name="testCurrentBinding"/>
-          <exclude name="testGetAnnotatedField"/>
-          <exclude name="testGetBean"/>
-          <exclude name="testGetBindingTypes"/>
-          <exclude name="testGetMemberField"/>
-          <exclude name="testGetType"/>
-          <exclude name="testIsTransient"/>
-          <exclude name="testPassivationCapability"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest">
         <methods>
           <exclude name="testDefinitionErrorDetected"/>