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/15 11:23:39 UTC

svn commit: r1147052 - in /openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/cdi/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/test/java/org/apache/openejb/cdi/ tck/cdi-embedde...

Author: dblevins
Date: Fri Jul 15 09:23:38 2011
New Revision: 1147052

URL: http://svn.apache.org/viewvc?rev=1147052&view=rev
Log:
OPENEJB-1600: EJB Specialization
Seems we have an intermittent failure in one of the CDI TCK tests as of this commit.

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SpecializationTest.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml
    openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/BeansDeployer.java Fri Jul 15 09:23:38 2011
@@ -342,7 +342,7 @@ public class BeansDeployer {
                 //superClassList is used to handle the case: Car, CarToyota, Bus, SchoolBus, CarFord
                 //for which case, the owb should throw exception that both CarToyota and CarFord are
                 //specialize Car.
-                Class<?> superClass = null;
+                Class<?> superClass;
                 ArrayList<Class<?>> superClassList = new ArrayList<Class<?>>();
                 ArrayList<Class<?>> specialClassList = new ArrayList<Class<?>>();
                 for (Class<?> specialClass : beanClasses) {
@@ -362,13 +362,10 @@ public class BeansDeployer {
                 webBeansContext.getWebBeansUtil().configureSpecializations(specialClassList);
             }
 
-            // XML Defined Specializations
-            checkXMLSpecializations();
 
             //configure specialized producer beans.
             webBeansContext.getWebBeansUtil().configureProducerMethodSpecializations();
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             throw new WebBeansDeploymentException(e);
         }
 
@@ -378,36 +375,6 @@ public class BeansDeployer {
 
 
     /**
-     * Check xml specializations.
-     * NOTE : Currently XML is not used in configuration.
-     */
-    protected void checkXMLSpecializations()
-    {
-        //TODO Update
-        // Check XML specializations
-//        Set<Class<?>> clazzes = webBeansContext.getxMLSpecializesManager().getXMLSpecializationClasses();
-//        Iterator<Class<?>> it = clazzes.iterator();
-//        Class<?> superClass = null;
-//        Class<?> specialClass = null;
-//        ArrayList<Class<?>> specialClassList = new ArrayList<Class<?>>();
-//        while (it.hasNext()) {
-//            specialClass = it.next();
-//
-//            if (superClass == null) {
-//                superClass = specialClass.getSuperclass();
-//            } else {
-//                if (superClass.equals(specialClass.getSuperclass())) {
-//                    throw new InconsistentSpecializationException(logger.getTokenString(OWBLogConst.EXCEPT_XML)
-//                            + logger.getTokenString(OWBLogConst.EXCEPT_0005)
-//                            + superClass.getName());
-//                }
-//            }
-//            specialClassList.add(specialClass);
-//        }
-//        webBeansContext.getWebBeansUtil().configureSpecializations(specialClassList);
-    }
-
-    /**
      * Check passivations.
      */
     protected void checkPassivationScope(Bean<?> beanObj)

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java Fri Jul 15 09:23:38 2011
@@ -19,37 +19,28 @@ package org.apache.openejb.cdi;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.BeanType;
 import org.apache.openejb.assembler.classic.ProxyInterfaceResolver;
-import org.apache.webbeans.annotation.DependentScopeLiteral;
-import org.apache.webbeans.component.AbstractOwbBean;
-import org.apache.webbeans.component.WebBeansType;
 import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.ejb.common.component.BaseEjbBean;
-import org.apache.webbeans.inject.InjectableConstructor;
 
 import javax.ejb.Remove;
-import javax.enterprise.context.Dependent;
 import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.New;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.InjectionPoint;
 import javax.enterprise.inject.spi.SessionBeanType;
-import javax.enterprise.util.AnnotationLiteral;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
-import java.util.Set;
 
 public class CdiEjbBean<T> extends BaseEjbBean<T> {
     private final BeanContext beanContext;
 
     public CdiEjbBean(BeanContext beanContext, WebBeansContext webBeansContext) {
-        super(beanContext.getBeanClass(), toSessionType(beanContext.getComponentType()), webBeansContext);
+        this(beanContext, webBeansContext, beanContext.getBeanClass());
+    }
+
+    public CdiEjbBean(BeanContext beanContext, WebBeansContext webBeansContext, Class beanClass) {
+        super(beanClass, toSessionType(beanContext.getComponentType()), webBeansContext);
         this.beanContext = beanContext;
 
 
@@ -90,7 +81,7 @@ public class CdiEjbBean<T> extends BaseE
 
     @Override
     public String getId() {
-        return (String) beanContext.getDeploymentID();
+        return (String) beanContext.getDeploymentID() + this.getReturnType().getName();
     }
 
     @Override
@@ -175,6 +166,18 @@ public class CdiEjbBean<T> extends BaseE
         return points;
     }
 
+    protected void specialize(CdiEjbBean<?> superBean) {
+        final CdiEjbBean<T> bean = this;
+        bean.setName(superBean.getName());
+        bean.setSerializable(superBean.isSerializable());
+
+        this.implScopeType = superBean.implScopeType;
+        this.scopeClass = superBean.scopeClass;
+        this.implQualifiers.addAll(superBean.getImplQualifiers());
+        this.stereoTypeClasses.addAll(superBean.stereoTypeClasses);
+        this.stereoTypes.addAll(superBean.stereoTypes);
+    }
+
     /* (non-Javadoc)
      * @see org.apache.webbeans.component.AbstractBean#isPassivationCapable()
      */

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Fri Jul 15 09:23:38 2011
@@ -37,6 +37,7 @@ import java.util.concurrent.ThreadFactor
 import java.util.concurrent.TimeUnit;
 
 import javax.el.ELResolver;
+import javax.enterprise.inject.Specializes;
 import javax.enterprise.inject.spi.AnnotatedType;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.Extension;
@@ -56,6 +57,7 @@ import org.apache.webbeans.config.WebBea
 import org.apache.webbeans.config.WebBeansFinder;
 import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.container.InjectionResolver;
+import org.apache.webbeans.ejb.common.component.EjbBeanCreatorImpl;
 import org.apache.webbeans.ejb.common.util.EjbUtility;
 import org.apache.webbeans.intercept.InterceptorData;
 import org.apache.webbeans.logger.WebBeansLogger;
@@ -255,6 +257,28 @@ public class OpenEJBLifecycle implements
                 EjbUtility.fireEvents((Class<Object>) implClass, bean, (ProcessAnnotatedTypeImpl<Object>) processAnnotatedEvent);
 
                 webBeansContext.getWebBeansUtil().setInjectionTargetBeanEnableFlag(bean);
+
+                Class clazz = beanContext.getBeanClass();
+                while (clazz.isAnnotationPresent(Specializes.class)) {
+                    clazz = clazz.getSuperclass();
+
+                    if (clazz == null || Object.class.equals(clazz)) break;
+
+                    final CdiEjbBean<Object> superBean = new CdiEjbBean<Object>(beanContext, webBeansContext, clazz);
+
+                    EjbBeanCreatorImpl<?> ejbBeanCreator = new EjbBeanCreatorImpl(superBean);
+
+                    //Define meta-data
+                    ejbBeanCreator.defineSerializable();
+                    ejbBeanCreator.defineStereoTypes();
+                    ejbBeanCreator.defineScopeType("Session Bean implementation class : " + clazz.getName() + " stereotypes must declare same @ScopeType annotations", false);
+                    ejbBeanCreator.defineQualifier();
+                    ejbBeanCreator.defineName(WebBeansUtil.getManagedBeanDefaultName(clazz.getSimpleName()));
+
+                    bean.specialize(superBean);
+
+                    EjbUtility.defineSpecializedData(clazz, bean);
+                }
             }
 
             //Check Specialization

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Fri Jul 15 09:23:38 2011
@@ -90,6 +90,9 @@ import javax.ejb.TransactionAttribute;
 import javax.ejb.TransactionAttributeType;
 import javax.ejb.TransactionManagement;
 import javax.ejb.TransactionManagementType;
+import javax.enterprise.inject.Specializes;
+import javax.enterprise.inject.spi.Decorator;
+import javax.enterprise.inject.spi.Extension;
 import javax.interceptor.ExcludeClassInterceptors;
 import javax.interceptor.ExcludeDefaultInterceptors;
 import javax.interceptor.Interceptors;
@@ -1008,10 +1011,53 @@ public class AnnotationDeployer implemen
 
             IAnnotationFinder finder = ejbModule.getFinder();
 
+
+            final List<String> managedClasses;
+            {
+                final Beans beans = ejbModule.getBeans();
+
+                if (beans != null) {
+                    managedClasses = beans.getManagedClasses();
+                    final List<String> classNames = finder.getAnnotatedClassNames();
+                    for (String className : classNames) {
+                        try {
+                            final ClassLoader loader = ejbModule.getClassLoader();
+                            final Class<?> clazz = loader.loadClass(className);
+
+                            // The following can NOT be beans in CDI
+
+                            // 1. Non-static inner classes
+                            if (clazz.getEnclosingClass() != null && !Modifier.isStatic(clazz.getModifiers())) continue;
+//
+//                            // 2. Abstract classes (unless they are an @Decorator)
+//                            if (Modifier.isAbstract(clazz.getModifiers()) && !clazz.isAnnotationPresent(javax.decorator.Decorator.class)) continue;
+//
+//                            // 3. Implementations of Extension
+//                            if (Extension.class.isAssignableFrom(clazz)) continue;
+
+                            managedClasses.add(className);
+                        } catch (ClassNotFoundException e) {
+                            // todo log debug warning
+                        }
+                    }
+                } else {
+                    managedClasses = new ArrayList<String>();
+                }
+            }
+
+            final Set<Class<?>> specializingClasses = new HashSet<Class<?>>();
+
             /* 19.2:  ejb-name: Default is the unqualified name of the bean class */
 
             EjbJar ejbJar = ejbModule.getEjbJar();
             for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(Singleton.class)) {
+
+                if (beanClass.isAnnotationPresent(Specializes.class)) {
+                    managedClasses.remove(beanClass.get().getName());
+                    specializingClasses.add(beanClass.get());
+                    continue;
+                }
+
                 Singleton singleton = beanClass.getAnnotation(Singleton.class);
                 String ejbName = getEjbName(singleton, beanClass.get());
 
@@ -1037,6 +1083,13 @@ public class AnnotationDeployer implemen
             }
 
             for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(Stateless.class)) {
+
+                if (beanClass.isAnnotationPresent(Specializes.class)) {
+                    managedClasses.remove(beanClass.get().getName());
+                    specializingClasses.add(beanClass.get());
+                    continue;
+                }
+
                 Stateless stateless = beanClass.getAnnotation(Stateless.class);
                 String ejbName = getEjbName(stateless, beanClass.get());
 
@@ -1061,7 +1114,21 @@ public class AnnotationDeployer implemen
                 LegacyProcessor.process(beanClass.get(), enterpriseBean);
             }
 
+            // The Specialization code is good, but it possibly needs to be moved to after the full processing of the bean
+            // the plus is that it would get the required interfaces.  The minus is that it would get all the other items
+
+            // Possibly study alternatives.  Alternatives might have different meta data completely while it seems Specializing beans inherit all meta-data
+
+            // Anyway.. the qualifiers aren't getting inherited, so we need to fix that
+
             for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(Stateful.class)) {
+
+                if (beanClass.isAnnotationPresent(Specializes.class)) {
+                    managedClasses.remove(beanClass.get().getName());
+                    specializingClasses.add(beanClass.get());
+                    continue;
+                }
+
                 Stateful stateful = beanClass.getAnnotation(Stateful.class);
                 String ejbName = getEjbName(stateful, beanClass.get());
 
@@ -1087,6 +1154,13 @@ public class AnnotationDeployer implemen
             }
 
             for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(ManagedBean.class)) {
+
+                if (beanClass.isAnnotationPresent(Specializes.class)) {
+                    managedClasses.remove(beanClass.get().getName());
+                    specializingClasses.add(beanClass.get());
+                    continue;
+                }
+
                 ManagedBean managed = beanClass.getAnnotation(ManagedBean.class);
                 String ejbName = getEjbName(managed, beanClass.get());
 
@@ -1110,6 +1184,13 @@ public class AnnotationDeployer implemen
             }
 
             for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(MessageDriven.class)) {
+
+                if (beanClass.isAnnotationPresent(Specializes.class)) {
+                    managedClasses.remove(beanClass.get().getName());
+                    specializingClasses.add(beanClass.get());
+                    continue;
+                }
+
                 MessageDriven mdb = beanClass.getAnnotation(MessageDriven.class);
                 String ejbName = getEjbName(mdb, beanClass.get());
 
@@ -1126,6 +1207,19 @@ public class AnnotationDeployer implemen
                 LegacyProcessor.process(beanClass.get(), messageBean);
             }
 
+
+            for (Class<?> specializingClass : sortClassesParentFirst(new ArrayList<Class<?>>(specializingClasses))) {
+                for (EnterpriseBean enterpriseBean : ejbJar.getEnterpriseBeans()) {
+
+                    final String ejbClass = enterpriseBean.getEjbClass();
+
+                    if (ejbClass != null && ejbClass.equals(specializingClass.getSuperclass().getName())) {
+                        managedClasses.remove(ejbClass);
+                        enterpriseBean.setEjbClass(specializingClass.getName());
+                    }
+                }
+            }
+
             AssemblyDescriptor assemblyDescriptor = ejbModule.getEjbJar().getAssemblyDescriptor();
             if (assemblyDescriptor == null) {
                 assemblyDescriptor = new AssemblyDescriptor();
@@ -1145,15 +1239,6 @@ public class AnnotationDeployer implemen
                 }
             }
 
-            {
-                final Beans beans = ejbModule.getBeans();
-
-                if (beans != null) {
-                    beans.getManagedClasses().addAll(finder.getAnnotatedClassNames());
-                }
-            }
-
-
             return ejbModule;
         }
 
@@ -4388,6 +4473,16 @@ public class AnnotationDeployer implemen
         return list;
     }
 
+    public static List<Class<?>> sortClassesParentFirst(List<Class<?>> list) {
+        Collections.sort(list, new Comparator<Class<?>>() {
+            @Override
+            public int compare(Class<?> o1, Class<?> o2) {
+                return compareClasses(o2, o1);
+            }
+        });
+        return list;
+    }
+
     public static List<Annotated<Method>> sortMethods(List<Annotated<Method>> list) {
         Collections.sort(list, new Comparator<Annotated<Method>>() {
             @Override

Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SpecializationTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SpecializationTest.java?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SpecializationTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/SpecializationTest.java Fri Jul 15 09:23:38 2011
@@ -22,6 +22,7 @@ import org.apache.openejb.junit.Module;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import javax.ejb.Stateful;
 import javax.enterprise.inject.Specializes;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
@@ -51,12 +52,12 @@ public class SpecializationTest extends 
     public static interface Color {
     }
 
-    //    @Stateful
+    @Stateful
     public static class RedBean implements Color {
     }
 
     @Specializes
-//    @Stateful
+    @Stateful
     public static class CrimsonBean extends RedBean implements Color {
     }
 

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml Fri Jul 15 09:23:38 2011
@@ -37,21 +37,15 @@
       <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingDecorator.EnterpriseBeanWithNonPassivatingDecoratorTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.request.RequestContextTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.session.SessionContextTest"/>
-      <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest"/>
-      <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest"/>
       <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
       <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInWarTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.env.EnvInjectionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.persistenceContext.PersistenceContextInjectionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.resource.InjectionOfResourceTest"/>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest"/>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest"/>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest"/>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest"/>
-      <class name="org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.incontainer.ClientProxyTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.el.ResolutionByNameTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest"/>

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml Fri Jul 15 09:23:38 2011
@@ -26,22 +26,12 @@
         <!--<package name="org.jboss.jsr299.tck.interceptors.tests.*"/>-->
     <!--</packages>-->
     <classes>
-      <!--<class name="org.jboss.jsr299.tck.tests.context.dependent.ejb.DependentContextEjbTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>-->
-      <class name="org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest"/>
-      <!--<class name="org.jboss.jsr299.tck.tests.extensions.producer.ProducerTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest">-->
-        <!--<methods>-->
-          <!--<exclude name="testCreateSFSB"/>-->
-        <!--</methods>-->
-      <!--</class>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.context.dependent.ejb.DependentContextEjbTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.ws.InjectionIntoWebServiceEndPointTest"/>-->
+      <class name="org.jboss.jsr299.tck.tests.context.session.SessionContextTest"/>
+      <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
+      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest"/>
+      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
+      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
+      <class name="org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest"/>
     </classes>
   </test>
 </suite>

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml Fri Jul 15 09:23:38 2011
@@ -112,16 +112,6 @@
           <exclude name="testSessionScopeActiveDuringServiceMethod"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest">
-        <methods>
-          <exclude name="testStereotypeWithNonEmptyNamed"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest">
-        <methods>
-          <exclude name="testStereotypeWithTooManyScopeTypes"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest">
         <methods>
           <exclude name="test"/>
@@ -159,17 +149,6 @@
           <exclude name="testProduceResourceProxy"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest">
-        <methods>
-          <exclude name="testSpecializedBeanNotInstantiated"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest">
-        <methods>
-          <exclude name="testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean"/>
-          <exclude name="testSpecializingBeanHasNameOfSpecializedBean"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest">
         <methods>
           <exclude name="testSpecializingClassDirectlyExtendsNothing"/>
@@ -185,16 +164,6 @@
           <exclude name="testSpecializingClassImplementsInterfaceAndExtendsNothing"/>
         </methods>
       </class>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest">
-        <methods>
-          <exclude name="testSpecializingAndSpecializedBeanHasName"/>
-        </methods>
-      </class>
-      <class name="org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest">
-        <methods>
-          <exclude name="testNonExistantClassInBeansXmlNotOk"/>
-        </methods>
-      </class>
       <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.incontainer.ClientProxyTest">
         <methods>
           <exclude name="testInvocationIsProcessedOnCurrentInstance"/>

Modified: openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java?rev=1147052&r1=1147051&r2=1147052&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java (original)
+++ openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java Fri Jul 15 09:23:38 2011
@@ -145,6 +145,18 @@ public class ContainersImpl implements C
         writeonlybuffer.compact();
     }
 
+    private File writeToFile2(InputStream archive, String name) throws IOException {
+        final File file = File.createTempFile("deploy", "-" + name);
+        final FileOutputStream outputStream = new FileOutputStream(file);
+
+        int i = 0;
+        while ((i = archive.read()) != -1) {
+            outputStream.write(i);
+        }
+        outputStream.close();
+        return file;
+    }
+
     private File writeToFile(InputStream archive, String name) throws IOException {
         final File file = File.createTempFile("deploy", "-" + name);
         file.deleteOnExit();