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/06/02 01:56:34 UTC

svn commit: r1130358 - in /openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/ container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/cdi/ containe...

Author: dblevins
Date: Wed Jun  1 23:56:32 2011
New Revision: 1130358

URL: http://svn.apache.org/viewvc?rev=1130358&view=rev
Log:
Big jump forward in EJB/CDI integration OPENEJB-1197 OPENEJB-1337

Added:
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/InjectionTest.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Archive.java   (contents, props changed)
      - copied, changed from r1124537, geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/archive/Archives.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java
Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.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/CdiScanner.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OWBContextThreadListener.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/spi/ContainerSystem.java
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulTest.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/StandaloneContainersImpl.java
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/META-INF/jboss-test-harness.properties
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
    openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/AppContext.java Wed Jun  1 23:56:32 2011
@@ -35,6 +35,7 @@ import java.util.concurrent.TimeUnit;
  * @version $Rev$ $Date$
 */
 public class AppContext extends DeploymentContext {
+
     private final SystemInstance systemInstance;
     private final ClassLoader classLoader;
     private final Context globalJndiContext;

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java Wed Jun  1 23:56:32 2011
@@ -70,7 +70,7 @@ public final class OpenEJB {
             if (appServer == null) {
                 throw new IllegalArgumentException("appServer must not be null");
             }
-            initialized = new Exception("Initialized at "+new Date()).fillInStackTrace();
+            initialized = new InitializationException("Initialized at "+new Date()).fillInStackTrace();
 
             Logger.configure();
             Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, "org.apache.openejb.util.resources");
@@ -242,7 +242,7 @@ public final class OpenEJB {
 
     public static void destroy() {
         Assembler assembler = SystemInstance.get().getComponent(Assembler.class);
-        assembler.destroy();
+        if (assembler != null) assembler.destroy();
         SystemInstance.reset();
         instance = null;
     }
@@ -283,4 +283,11 @@ public final class OpenEJB {
     public static boolean isInitialized() {
         return instance != null || SystemInstance.get().getComponent(ContainerSystem.class) != null;
     }
+
+    public static class InitializationException extends Exception {
+        public InitializationException(String message)
+        {
+            super(message);
+        }
+    }
 }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java Wed Jun  1 23:56:32 2011
@@ -16,7 +16,6 @@
  */
 package org.apache.openejb;
 
-import bsh.Modifiers;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.config.AppModule;
@@ -77,13 +76,15 @@ public class OpenEjbContainer extends EJ
 
     private static OpenEjbContainer instance;
 
-    private final Context context;
+    private final AppContext appContext;
 
     private ServiceManagerProxy serviceManager;
     private Options options;
+    private OpenEjbContainer.GlobalContext globalJndiContext;
 
-    private OpenEjbContainer(Map<?, ?> map, Context context) {
-        this.context = new GlobalContext(context);
+    private OpenEjbContainer(Map<?, ?> map, AppContext appContext) {
+        this.appContext = appContext;
+        this.globalJndiContext = new GlobalContext(appContext.getGlobalJndiContext());
 
         final Properties properties = new Properties();
         properties.putAll(map);
@@ -99,7 +100,7 @@ public class OpenEjbContainer extends EJ
             serviceManager.stop();
         }
         try {
-            context.close();
+            globalJndiContext.close();
         } catch (NamingException e) {
             throw new IllegalStateException(e);
         }
@@ -109,7 +110,7 @@ public class OpenEjbContainer extends EJ
 
     @Override
     public Context getContext() {
-        return context;
+        return globalJndiContext;
     }
 
     public <T> T inject(T object) {
@@ -188,7 +189,7 @@ public class OpenEjbContainer extends EJ
         public EJBContainer createEJBContainer(Map<?, ?> map) {
             if (isOtherProvider(map)) return null;
 
-            if (instance != null) {
+            if (instance != null || OpenEJB.isInitialized()) {
                 logger.info("EJBContainer already initialized.  Call ejbContainer.close() to allow reinitialization");
                 return instance;
             }
@@ -265,7 +266,7 @@ public class OpenEjbContainer extends EJ
                 }
 
 
-                return instance = new OpenEjbContainer(map, appContext.getGlobalJndiContext());
+                return instance = new OpenEjbContainer(map, appContext);
 
             } catch (OpenEJBException e) {
 
@@ -283,6 +284,13 @@ public class OpenEjbContainer extends EJ
                 }
 
                 throw new InitializationException(e);
+            } finally {
+                if (instance == null && OpenEJB.isInitialized()) {
+                    try {
+                        OpenEJB.destroy();
+                    } catch (Exception e) {
+                    }
+                }
             }
         }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Wed Jun  1 23:56:32 2011
@@ -507,6 +507,7 @@ public class Assembler extends Assembler
             }
 
             AppContext appContext = new AppContext(appInfo.appId, SystemInstance.get(), classLoader, globalJndiContext, appJndiContext, appInfo.standaloneModule);
+            containerSystem.addAppContext(appContext);
 
             Context containerSystemContext = containerSystem.getJNDIContext();
             

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java Wed Jun  1 23:56:32 2011
@@ -21,6 +21,7 @@ import java.util.List;
 import org.apache.openejb.AppContext;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.core.ThreadContext;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.webbeans.config.WebBeansFinder;
@@ -36,6 +37,8 @@ public class CdiBuilder {
     }
 
     public void build(AppInfo appInfo, AppContext appContext, List<BeanContext> allDeployments) {
+        if (!hasBeans(appInfo)) return;
+
         ThreadSingletonService singletonService = SystemInstance.get().getComponent(ThreadSingletonService.class);
         logger.info("existing thread singleton service in SystemInstance() " + singletonService);
         //TODO hack for tests.  Currently initialized in OpenEJB line 90.  cf alternative in AccessTimeoutTest which would
@@ -46,6 +49,14 @@ public class CdiBuilder {
         singletonService.initialize(new StartupObject(appContext, appInfo, allDeployments));
     }
 
+    private boolean hasBeans(AppInfo appInfo) {
+        for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+            if (ejbJar.beans != null) return true;
+        }
+
+        return false;
+    }
+
     public static ThreadSingletonService initializeOWB(ClassLoader classLoader) {
         ThreadSingletonService singletonService = new ThreadSingletonServiceImpl();
         logger.info("Created new singletonService " + singletonService);

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=1130358&r1=1130357&r2=1130358&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 Wed Jun  1 23:56:32 2011
@@ -26,8 +26,10 @@ import javax.ejb.Remove;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.SessionBeanType;
 import java.lang.reflect.Method;
+import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 public class CdiEjbBean<T> extends BaseEjbBean<T> {
     private final BeanContext beanContext;
@@ -35,6 +37,23 @@ public class CdiEjbBean<T> extends BaseE
     public CdiEjbBean(BeanContext beanContext, WebBeansContext webBeansContext) {
         super(beanContext.getBeanClass(), toSessionType(beanContext.getComponentType()), webBeansContext);
         this.beanContext = beanContext;
+
+
+        if (beanContext.isLocalbean()) addApiType(beanContext.getBeanClass());
+
+        addApiType(beanContext.getHomeInterface());
+        addApiType(beanContext.getLocalHomeInterface());
+
+        for (Class clazz : beanContext.getBusinessLocalInterfaces()) addApiType(clazz);
+        for (Class clazz : beanContext.getBusinessRemoteInterfaces()) addApiType(clazz);
+
+    }
+
+    @Override
+    public void addApiType(Class<?> apiType) {
+        if (apiType == null) return;
+
+        super.addApiType(apiType);
     }
 
     public BeanContext getBeanContext() {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java Wed Jun  1 23:56:32 2011
@@ -145,7 +145,7 @@ public class CdiScanner implements Scann
         try {
             return classLoader.loadClass(className);
         } catch (ClassNotFoundException e) {
-            throw new RuntimeException("Unable to load " + type + " class", e);
+            throw new RuntimeException("Unable to load class: "+className, e);
         }
     }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OWBContextThreadListener.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OWBContextThreadListener.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OWBContextThreadListener.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OWBContextThreadListener.java Wed Jun  1 23:56:32 2011
@@ -45,7 +45,8 @@ public class OWBContextThreadListener im
         AppContext appContext = moduleContext.getAppContext();
         WebBeansContext owbContext = appContext.get(WebBeansContext.class);
         if (owbContext == null) {
-            throw new IllegalStateException("WebBeansContext not initialized in appContext " + appContext);
+//            throw new IllegalStateException("WebBeansContext not initialized in appContext " + appContext);
+            return;
         }
         Object oldOWBContext = singletonService.contextEntered(owbContext);
         OWBContextHolder holder = new OWBContextHolder(oldOWBContext);

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java Wed Jun  1 23:56:32 2011
@@ -20,6 +20,9 @@
 
 package org.apache.openejb.cdi;
 
+import org.apache.openejb.AppContext;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.webbeans.config.OpenWebBeansConfiguration;
@@ -27,6 +30,8 @@ import org.apache.webbeans.config.WebBea
 import org.apache.webbeans.spi.ContainerLifecycle;
 import org.apache.webbeans.spi.ResourceInjectionService;
 
+import java.util.List;
+
 /**
  * @version $Rev:$ $Date:$
  */
@@ -100,8 +105,21 @@ public class ThreadSingletonServiceImpl 
     }
 
     private WebBeansContext getContext() {
+        return get();
+    }
+
+    public static WebBeansContext get()
+    {
         WebBeansContext context = contexts.get();
         if (context == null) {
+            // Fallback strategy is to just grab the first AppContext and assume it is the right one
+            // This kind of algorithm could be greatly improved
+            final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
+
+            final List<AppContext> appContexts = containerSystem.getAppContexts();
+
+            if (appContexts.size() > 0) return appContexts.get(0).getWebBeansContext();
+
             throw new IllegalStateException("On a thread without an initialized context");
         }
         return context;

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=1130358&r1=1130357&r2=1130358&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 Wed Jun  1 23:56:32 2011
@@ -21,6 +21,7 @@ import static java.util.Arrays.asList;
 import static org.apache.openejb.util.Join.join;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -84,6 +85,7 @@ import javax.ejb.TransactionAttribute;
 import javax.ejb.TransactionAttributeType;
 import javax.ejb.TransactionManagement;
 import javax.ejb.TransactionManagementType;
+import javax.inject.Inject;
 import javax.interceptor.ExcludeClassInterceptors;
 import javax.interceptor.ExcludeDefaultInterceptors;
 import javax.interceptor.Interceptors;
@@ -112,6 +114,7 @@ import org.apache.openejb.jee.AroundInvo
 import org.apache.openejb.jee.AroundTimeout;
 import org.apache.openejb.jee.AssemblyDescriptor;
 import org.apache.openejb.jee.AsyncMethod;
+import org.apache.openejb.jee.Beans;
 import org.apache.openejb.jee.ConcurrencyManagementType;
 import org.apache.openejb.jee.ConcurrentLockType;
 import org.apache.openejb.jee.ConcurrentMethod;
@@ -591,6 +594,15 @@ public class AnnotationDeployer implemen
                 }
             }
 
+            {
+                final Beans beans = ejbModule.getBeans();
+
+                if (beans != null) {
+                    beans.getManagedClasses().addAll(finder.getAnnotatedClassNames());
+                }
+            }
+
+
             return ejbModule;
         }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Wed Jun  1 23:56:32 2011
@@ -56,6 +56,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.URLClassLoader;
 import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -1086,13 +1087,31 @@ public class DeploymentLoader implements
     private static Map<String, URL> getDescriptors(ResourceFinder finder, boolean log) throws OpenEJBException {
         try {
 
-            return altDDSources(finder.getResourcesMap(ddDir), log);
+            return altDDSources(mapDescriptors(finder), log);
 
         } catch (IOException e) {
             throw new OpenEJBException("Unable to determine descriptors in jar.", e);
         }
     }
 
+    private static Map<String, URL> mapDescriptors(ResourceFinder finder)
+        throws IOException
+    {
+        final Map<String, URL> map = finder.getResourcesMap(ddDir);
+
+        if (map.size() == 0) {
+
+            String[] known = {"web.xml", "ejb-jar.xml", "openejb-jar.xml", "env-entries.properties", "beans.xml", "ra.xml", "application.xml", "application-client.xml", "persistence.xml"};
+            for (String descriptor : known) {
+
+                final URL url = finder.getResource(ddDir + descriptor);
+                if (url != null) map.put(descriptor, url);
+            }
+
+        }
+        return map;
+    }
+
     /**
      * Modifies the map passed in with all the alt dd URLs found
      *
@@ -1249,9 +1268,8 @@ public class DeploymentLoader implements
             pathToScanDescriptors=new URL(baseURLString.substring(0,baseURLString.lastIndexOf("WEB-INF/classes/")));
 
         }
-        ResourceFinder finder = new ResourceFinder("", classLoader, pathToScanDescriptors);
 
-        Map<String, URL> descriptors = altDDSources(finder.getResourcesMap(ddDir), false);
+        Map<String, URL> descriptors = getDescriptors(classLoader, pathToScanDescriptors);
 
         String path = baseUrl.getPath();
         if (path.endsWith("/")) path = path.substring(0, path.length() - 1);
@@ -1273,7 +1291,7 @@ public class DeploymentLoader implements
             return WebModule.class;
         }
 
-        if (descriptors.containsKey("ejb-jar.xml")) {
+        if (descriptors.containsKey("ejb-jar.xml") || descriptors.containsKey("beans.xml")) {
             return EjbModule.class;
         }
 
@@ -1298,6 +1316,14 @@ public class DeploymentLoader implements
         throw new UnknownModuleTypeException("Unknown module type: url=" + baseUrl.toExternalForm());
     }
 
+    private Map<String, URL> getDescriptors(ClassLoader classLoader, URL pathToScanDescriptors)
+        throws IOException
+    {
+        ResourceFinder finder = new ResourceFinder("", classLoader, pathToScanDescriptors);
+
+        return altDDSources(mapDescriptors(finder), false);
+    }
+
     private Class<? extends DeploymentModule> checkAnnotations(URL urls, ClassLoader classLoader, final boolean scanPotentialEjbModules, final boolean scanPotentialClientModules) {
         Class<? extends DeploymentModule> cls = null;
         if (scanPotentialEjbModules || scanPotentialClientModules) {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java Wed Jun  1 23:56:32 2011
@@ -158,11 +158,15 @@ public class NewLoaderLogic {
                 "axis2-",
                 "bcprov-",
                 "bsh-",
+                "bval-core",
+                "bval-jsr",
                 "catalina-",
                 "cglib-",
+                "commons-beanutils",
                 "commons-cli-",
                 "commons-codec-",
                 "commons-collections-",
+                "commons-dbcp",
                 "commons-dbcp-all-1.3-",
                 "commons-discovery-",
                 "commons-httpclient-",
@@ -178,16 +182,18 @@ public class NewLoaderLogic {
                 "derby-",
                 "dom4j-",
                 "geronimo-",
+                "gragent.jar",
                 "guice-",
+                "hibernate-",
                 "howl-",
                 "hsqldb-",
                 "htmlunit-",
-                "hibernate-",
                 "icu4j-",
                 "idb-",
                 "idea_rt.jar",
                 "jasypt-",
                 "javaee-",
+                "javaee-api",
                 "javassist-",
                 "javaws.jar",
                 "javax.",
@@ -212,6 +218,10 @@ public class NewLoaderLogic {
                 "myfaces-",
                 "neethi-",
                 "nekohtml-",
+                "openejb-api",
+                "openejb-javaagent",
+                "openejb-jee",
+                "openejb-loader",
                 "openjpa-",
                 "opensaml-",
                 "openwebbeans-",
@@ -231,6 +241,10 @@ public class NewLoaderLogic {
                 "stax-api-",
                 "swizzle-",
                 "testng-",
+                "webbeans-ee",
+                "webbeans-ejb",
+                "webbeans-impl",
+                "webbeans-spi",
                 "wsdl4j-",
                 "wss4j-",
                 "wstx-asl-",
@@ -250,7 +264,8 @@ public class NewLoaderLogic {
         while (iterator.hasNext()) {
             URL url = iterator.next();
             File file = URLs.toFile(url);
-            String name = file.getName();
+
+            String name = filter(file).getName();
 //            System.out.println("JAR "+name);
             if (filter.accept(name)) iterator.remove();
         }
@@ -260,6 +275,22 @@ public class NewLoaderLogic {
         return new UrlSet(urls);
     }
 
+    private static File filter(File location) {
+        List<String> invalid = new ArrayList<String>();
+        invalid.add("classes");
+        invalid.add("test-classes");
+        invalid.add("target");
+        invalid.add("build");
+        invalid.add("dist");
+        invalid.add("bin");
+
+        while (invalid.contains(location.getName())) {
+            location = location.getParentFile();
+        }
+        return location;
+    }
+
+
     public static void _loadFromClasspath(FileUtils base, List<URL> jarList, ClassLoader classLoader) {
 
         PerformanceTimer timer = new PerformanceTimer();

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Wed Jun  1 23:56:32 2011
@@ -293,8 +293,8 @@ public class ReadDescriptors implements 
             Beans beans = readBeans(url);
             ejbModule.setBeans(beans);
         } else {
-            DeploymentLoader.logger.debug("No beans.xml found assuming annotated beans present: " + appModule.getJarLocation() + ", module: " + ejbModule.getModuleId());
-            ejbModule.setBeans(new Beans());
+//            DeploymentLoader.logger.debug("No beans.xml found assuming annotated beans present: " + appModule.getJarLocation() + ", module: " + ejbModule.getModuleId());
+//            ejbModule.setBeans(new Beans());
         }
     }
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java Wed Jun  1 23:56:32 2011
@@ -16,10 +16,13 @@
  */
 package org.apache.openejb.core;
 
+import org.apache.openejb.AppContext;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.Container;
 import org.apache.openejb.loader.SystemInstance;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -29,12 +32,12 @@ import javax.naming.Context;
  * @org.apache.xbean.XBean element="containerSystem"
  */
 public class CoreContainerSystem implements org.apache.openejb.spi.ContainerSystem {
-    Map<Object, BeanContext> deployments = new ConcurrentHashMap<Object, BeanContext>();
-    Map<Object, Container> containers = new ConcurrentHashMap<Object, Container>();
-    Map<String, WebContext> webDeployments = new ConcurrentHashMap<String, WebContext>();
+    private final Map<Object, AppContext> apps = new ConcurrentHashMap<Object, AppContext>();
+    private final Map<Object, BeanContext> deployments = new ConcurrentHashMap<Object, BeanContext>();
+    private final Map<Object, Container> containers = new ConcurrentHashMap<Object, Container>();
+    private final Map<String, WebContext> webDeployments = new ConcurrentHashMap<String, WebContext>();
     private final Context jndiContext;
 
-
     /**
      * Constructs a CoreContainerSystem and initializes the root JNDI context.
      * It also creates three sub contexts, namely
@@ -122,4 +125,14 @@ public class CoreContainerSystem impleme
     public Context getJNDIContext() {
         return jndiContext;
     }
+
+    @Override
+    public List<AppContext> getAppContexts() {
+        return new ArrayList<AppContext>(apps.values());
+    }
+
+    @Override
+    public void addAppContext(AppContext appContext) {
+        apps.put(appContext.getId(), appContext);
+    }
 }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/spi/ContainerSystem.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/spi/ContainerSystem.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/spi/ContainerSystem.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/spi/ContainerSystem.java Wed Jun  1 23:56:32 2011
@@ -16,11 +16,13 @@
  */
 package org.apache.openejb.spi;
 
+import org.apache.openejb.AppContext;
 import org.apache.openejb.BeanContext;
 import org.apache.openejb.Container;
 import org.apache.openejb.core.WebContext;
 
 import javax.naming.Context;
+import java.util.List;
 
 public interface ContainerSystem {
 
@@ -35,4 +37,8 @@ public interface ContainerSystem {
     WebContext getWebContext(String id);
 
     Context getJNDIContext();
+
+    List<AppContext> getAppContexts();
+
+    void addAppContext(AppContext appContext);
 }
\ No newline at end of file

Added: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/InjectionTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/InjectionTest.java?rev=1130358&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/InjectionTest.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/cdi/InjectionTest.java Wed Jun  1 23:56:32 2011
@@ -0,0 +1,103 @@
+/**
+ * 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.cdi;
+
+import junit.framework.TestCase;
+import org.apache.openejb.jee.Beans;
+import org.apache.openejb.jee.SessionBean;
+import org.apache.openejb.jee.SingletonBean;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.junit.Module;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.ejb.EJB;
+import javax.ejb.Singleton;
+import javax.inject.Inject;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@RunWith(ApplicationComposer.class)
+public class InjectionTest extends TestCase {
+
+    @EJB
+    private Orange orange;
+
+    @Test
+    public void test() throws Exception {
+
+        assertNotNull(orange);
+        assertNotNull(orange.getBlue());
+
+    }
+
+    @Module
+    public SessionBean getEjbs() {
+        return new SingletonBean(Orange.class);
+    }
+
+    @Module
+    public Beans getBeans() {
+        final Beans beans = new Beans();
+        beans.addManagedClass(Blue.class);
+        beans.addManagedClass(Green.class);
+        return beans;
+    }
+
+    @Singleton
+    public static class Orange {
+
+        private Blue blue;
+
+        @Inject
+        public void setBlue(Blue blue) {
+            this.blue = blue;
+        }
+
+        public Blue getBlue() {
+            return blue;
+        }
+    }
+
+    public static class Blue {
+
+        private Green green;
+
+        public Blue()
+        {
+            "".length();
+        }
+
+        public Green getGreen() {
+            return green;
+        }
+
+        @Inject
+        public void setGreen(Green green) {
+            this.green = green;
+        }
+    }
+
+    public static class Green {
+
+        public Green()
+        {
+            "".length();
+        }
+    }
+}

Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulTest.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulTest.java Wed Jun  1 23:56:32 2011
@@ -16,24 +16,19 @@
  */
 package org.apache.openejb.core.stateful;
 
+import javax.ejb.LocalBean;
+import javax.ejb.Stateful;
+import javax.naming.InitialContext;
+
 import junit.framework.TestCase;
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.assembler.classic.SecurityServiceInfo;
 import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.client.LocalInitialContextFactory;
 import org.apache.openejb.config.ConfigurationFactory;
-import org.apache.openejb.core.ivm.naming.InitContextFactory;
 import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.StatefulBean;
 
-import javax.ejb.Stateful;
-import javax.ejb.SessionBean;
-import javax.ejb.EJBException;
-import javax.ejb.SessionContext;
-import javax.ejb.LocalBean;
-import javax.naming.InitialContext;
-import javax.annotation.Resource;
-import java.rmi.RemoteException;
-
 /**
  * This test case serves as a nice tiny template for other test cases
  * and purposely doesn't do anything very complicated.
@@ -45,7 +40,7 @@ public class StatefulTest extends TestCa
     @Override
     protected void setUp() throws Exception {
 
-        System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, InitContextFactory.class.getName());
+        System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
 
         ConfigurationFactory config = new ConfigurationFactory();
         Assembler assembler = new Assembler();
@@ -69,29 +64,11 @@ public class StatefulTest extends TestCa
 
     @Stateful
     @LocalBean
-    public static class MyBean implements SessionBean {
+    public static class MyBean {
 
         public String echo(String string) {
             StringBuilder sb = new StringBuilder(string);
             return sb.reverse().toString();
         }
-
-        public void ejbActivate() throws EJBException, RemoteException {
-        }
-
-        public void ejbPassivate() throws EJBException, RemoteException {
-        }
-
-        public void ejbRemove() throws EJBException, RemoteException {
-        }
-
-        @Resource
-        public void setStatefulContext(SessionContext statefulContext) {
-            System.out.println("StatefulTest$MyBean.setStatefulContext");
-        }
-        
-        public void setSessionContext(SessionContext sessionContext) throws EJBException, RemoteException {
-            System.out.println("StatefulTest$MyBean.setSessionContext");
-        }
     }
 }

Copied: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Archive.java (from r1124537, geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/archive/Archives.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Archive.java?p2=openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Archive.java&p1=geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/archive/Archives.java&r1=1124537&r2=1130358&rev=1130358&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/archive/Archives.java (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Archive.java Wed Jun  1 23:56:32 2011
@@ -14,127 +14,119 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.xbean.finder.archive;
+package org.apache.openejb.tck.cdi.embedded;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
 import static junit.framework.Assert.assertNotNull;
-import static junit.framework.Assert.assertTrue;
 
 /**
-* @version $Rev$ $Date$
-*/
-public class Archives {
+ * @version $Rev$ $Date$
+ */
+public class Archive
+{
 
-    public static File fileArchive(Class[] classes) throws IOException {
-        return fileArchive(new HashMap<String, String>(), classes);
-    }
+    private final String name;
 
-    public static File fileArchive(Map<String, String> entries, Class... classes) throws IOException {
+    private final InputStream in;
 
-        ClassLoader loader = Archives.class.getClassLoader();
 
-        File classpath = File.createTempFile("path with spaces", "classes");
+    public Archive(Iterable<URL> urls, Iterable<Class<?>> classes)
+    {
 
-        assertTrue(classpath.delete());
-        assertTrue(classpath.mkdirs());
+        try
+        {
+            ClassLoader loader = Archive.class.getClassLoader();
 
+            // Create the ZIP file
+            final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
 
-        for (Class clazz : classes) {
-            String name = clazz.getName().replace('.', File.separatorChar) + ".class";
-            File file = new File(classpath, name);
+            final ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(byteArrayOutputStream));
 
-            File d = file.getParentFile();
+            this.name = name(classes);
 
-            if (!d.exists()) assertTrue(d.getAbsolutePath(), d.mkdirs());
+            for (Class clazz : classes)
+            {
 
-            URL resource = loader.getResource(name);
-            assertNotNull(resource);
+                String name = clazz.getName().replace('.', File.separatorChar) + ".class";
 
-            InputStream in = new BufferedInputStream(resource.openStream());
-            BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
+                URL resource = loader.getResource(name);
+                assertNotNull(resource);
 
-            int i = -1;
-            while ((i = in.read()) != -1) {
-                out.write(i);
-            }
+                // Add ZIP entry to output stream.
+                out.putNextEntry(new ZipEntry(name));
 
-            out.close();
-            in.close();
-        }
+                InputStream in = new BufferedInputStream(resource.openStream());
+
+                int i = -1;
+                while ((i = in.read()) != -1)
+                {
+                    out.write(i);
+                }
 
-        for (Map.Entry<String, String> entry : entries.entrySet()) {
+                // Complete the entry
+                out.closeEntry();
+            }
 
-            final String key = entry.getKey().replace('/', File.separatorChar);
+            for (final URL url : urls)
+            {
 
-            final File file = new File(classpath, key);
+                final String name = "META-INF/" + new File(url.getFile()).getName();
 
-            File d = file.getParentFile();
+                out.putNextEntry(new ZipEntry(name));
 
-            if (!d.exists()) assertTrue(d.getAbsolutePath(), d.mkdirs());
+                final InputStream in = new BufferedInputStream(url.openStream());
 
-            BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
+                int i = -1;
+                while ((i = in.read()) != -1)
+                {
+                    out.write(i);
+                }
 
-            out.write(entry.getValue().getBytes());
+                in.close();
+            }
 
+            // Complete the ZIP file
             out.close();
-        }
 
-        return classpath;
+            this.in = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+        }
+        catch (IOException e)
+        {
+            throw new RuntimeException(e);
+        }
     }
 
-    public static File jarArchive(Class[] classes) throws IOException {
-        return jarArchive(new HashMap<String, String>(), classes);
+    public String getName()
+    {
+        return name;
     }
 
-    public static File jarArchive(Map<String, String> entries, Class... classes) throws IOException {
-
-        ClassLoader loader = Archives.class.getClassLoader();
-
-        File classpath = File.createTempFile("path with spaces", ".jar");
-
-        // Create the ZIP file
-        ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(classpath)));
-
-        for (Class clazz : classes) {
-            String name = clazz.getName().replace('.', File.separatorChar) + ".class";
-
-            URL resource = loader.getResource(name);
-            assertNotNull(resource);
-
-            // Add ZIP entry to output stream.
-            out.putNextEntry(new ZipEntry(name));
-
-            InputStream in = new BufferedInputStream(resource.openStream());
+    public InputStream getIn()
+    {
+        return in;
+    }
 
-            int i = -1;
-            while ((i = in.read()) != -1) {
-                out.write(i);
+    private String name(Iterable<Class<?>> classes)
+    {
+        for (Class<?> clazz : classes)
+        {
+            if (clazz.getName().endsWith("AbstractJSR299Test")) continue;
+            if (clazz.getName().endsWith("Test"))
+            {
+                return clazz.getName()+".jar";
             }
-
-            // Complete the entry
-            out.closeEntry();
-        }
-
-        for (Map.Entry<String, String> entry : entries.entrySet()) {
-
-            out.putNextEntry(new ZipEntry(entry.getKey()));
-
-            out.write(entry.getValue().getBytes());
         }
 
-        // Complete the ZIP file
-        out.close();
-        return classpath;
+        return "test-archive.jar";
     }
 }

Propchange: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Archive.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java Wed Jun  1 23:56:32 2011
@@ -16,7 +16,11 @@
  */
 package org.apache.openejb.tck.cdi.embedded;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 
 /**
 * @version $Rev$ $Date$
@@ -24,16 +28,23 @@ import java.io.IOException;
 public class BeansImpl implements org.jboss.jsr299.tck.spi.Beans {
 
     public boolean isProxy(Object instance) {
+        System.out.println("isProxy: " + instance);
         return instance.getClass().getName().contains("$$");
     }
 
     @Override
     public byte[] serialize(Object instance) throws IOException {
-        return new byte[0];
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        ObjectOutputStream os = new ObjectOutputStream(baos);
+        os.writeObject(instance);
+        os.flush();
+        return baos.toByteArray();
     }
 
     @Override
     public Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
-        return null;
+        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+        ObjectInputStream is = new ObjectInputStream(bais);
+        return is.readObject();
     }
 }

Added: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java?rev=1130358&view=auto
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java (added)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java Wed Jun  1 23:56:32 2011
@@ -0,0 +1,138 @@
+/**
+ * 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.tck.cdi.embedded;
+
+import org.apache.openejb.OpenEJB;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.cdi.ThreadSingletonService;
+import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.SetAccessible;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.container.BeanManagerImpl;
+import org.jboss.testharness.api.DeploymentException;
+import org.jboss.testharness.spi.Containers;
+
+import javax.ejb.embeddable.EJBContainer;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Field;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ContainersImpl implements Containers {
+
+    private static String stuck;
+
+    private Exception exception;
+    private EJBContainer container;
+
+    @Override
+    public boolean deploy(InputStream archive, String name) {
+        if (!OpenEJB.isInitialized()) stuck = name;
+        else System.out.println("STUCK " + stuck);
+
+        exception = null;
+
+        final Assembler assembler = SystemInstance.get().getComponent(Assembler.class);
+
+        ThreadSingletonServiceImpl.exit(null);
+        if (assembler != null) {
+            assembler.destroy();
+        }
+        try {
+            final Map<String, Object> map = new HashMap<String, Object>();
+            map.put(EJBContainer.MODULES, writeToFile(archive, name));
+            map.put(EJBContainer.APP_NAME, name);
+
+            container = EJBContainer.createEJBContainer(map);
+
+            final WebBeansContext webBeansContext = ThreadSingletonServiceImpl.get();
+            dump(webBeansContext.getBeanManagerImpl());
+
+        } catch (Exception e) {
+            exception = e;
+            return false;
+        }
+
+        return true;
+    }
+
+    private void dump(Object o)
+    {
+        try
+        {
+            final Class<? extends Object> clazz = o.getClass();
+
+            for (Field field : clazz.getDeclaredFields())
+            {
+                SetAccessible.on(field);
+
+                if (Collection.class.isAssignableFrom(field.getType())) {
+                    final Collection collection = (Collection) field.get(o);
+                    System.out.println(field.getName() + "\t= " + collection.size());
+                }
+            }
+        }
+        catch (Exception e)
+        {
+
+        }
+    }
+
+    private File writeToFile(InputStream archive, String name) throws IOException {
+        final File file = File.createTempFile("deploy", "-" + name);
+        file.deleteOnExit();
+
+        final BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
+
+        try {
+            int i = -1;
+            while ((i = archive.read()) != -1) out.write(i);
+        } finally {
+            out.close();
+        }
+
+        return file;
+    }
+
+    @Override
+    public DeploymentException getDeploymentException() {
+        return new DeploymentException(exception.getLocalizedMessage(), exception);
+    }
+
+    @Override
+    public void undeploy(String name) {
+        if (container != null) container.close();
+    }
+
+    @Override
+    public void setup() throws IOException {
+    }
+
+    @Override
+    public void cleanup() throws IOException {
+    }
+}

Added: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java?rev=1130358&view=auto
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java (added)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java Wed Jun  1 23:56:32 2011
@@ -0,0 +1,97 @@
+/**
+ * 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.tck.cdi.embedded;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import java.io.File;
+import java.util.Collections;
+import java.util.LinkedList;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class Report {
+
+    public static void main(String[] args) throws Exception {
+        new Report().main();
+    }
+
+    private final LinkedList<TestClass> classes = new LinkedList<TestClass>();
+
+    private void main() throws Exception {
+        final File file = new File("/Users/dblevins/work/uber/openejb/tck/cdi-embedded/target/surefire-reports/testng-results.xml");
+
+        final SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
+
+        parser.parse(file, new DefaultHandler() {
+            @Override
+            public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+                final String name = qName;
+                if ("class".equals(name)) {
+                    classes.add(new TestClass(attributes.getValue("name")));
+                }
+
+                if ("test-method".equals(name)) {
+                    classes.getLast().addStatus(attributes.getValue("status"));
+                }
+            }
+        });
+
+        Collections.sort(classes);
+
+        int i = 0;
+        for (TestClass testClass : classes) {
+            if (!testClass.hasFailures()) continue;
+            System.out.printf("<class name=\"%s\"/>\n", testClass.name);
+            i++;
+        }
+
+        System.out.println(i);
+    }
+
+    public static class TestClass implements Comparable<TestClass>{
+
+        private final String name;
+        private int failed;
+        private int passed;
+        private int error;
+
+        public TestClass(String name) {
+            this.name = name;
+        }
+
+        public void addStatus(String status) {
+            if ("PASS".equals(status)) passed++;
+            if ("FAIL".equals(status)) failed++;
+            if ("ERROR".equals(status)) error++;
+        }
+
+        public boolean hasFailures() {
+            return failed > 0 || error > 0;
+        }
+
+        @Override
+        public int compareTo(TestClass o) {
+            return this.name.compareTo(o.name);
+        }
+    }
+}

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/StandaloneContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/StandaloneContainersImpl.java?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/StandaloneContainersImpl.java (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/StandaloneContainersImpl.java Wed Jun  1 23:56:32 2011
@@ -16,128 +16,54 @@
  */
 package org.apache.openejb.tck.cdi.embedded;
 
-import org.apache.openejb.AppContext;
-import org.apache.openejb.assembler.classic.AppInfo;
-import org.apache.openejb.assembler.classic.Assembler;
-import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.SecurityServiceInfo;
-import org.apache.openejb.assembler.classic.TransactionServiceInfo;
-import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
-import org.apache.openejb.config.AppModule;
-import org.apache.openejb.config.ConfigurationFactory;
-import org.apache.openejb.config.EjbModule;
-import org.apache.openejb.jee.EjbJar;
-import org.apache.openejb.util.LogCategory;
-import org.apache.openejb.util.Logger;
-import org.apache.webbeans.container.BeanManagerImpl;
-import org.apache.xbean.finder.AnnotationFinder;
-import org.apache.xbean.finder.ClassFinder;
-import org.apache.xbean.finder.archive.ClassesArchive;
-import org.jboss.testharness.api.DeploymentException;
-
-import javax.enterprise.inject.spi.BeanManager;
-import java.io.File;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+
+import org.jboss.testharness.api.DeploymentException;
 
 /**
  * @version $Rev$ $Date$
  */
-public class StandaloneContainersImpl implements org.jboss.testharness.spi.StandaloneContainers {
-
-    private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("tck"), StandaloneContainersImpl.class);
-
-    private AppContext appContext;
+public class StandaloneContainersImpl
+    implements org.jboss.testharness.spi.StandaloneContainers
+{
 
-    private DeploymentException deploymentException;
+    private final ContainersImpl containers = new ContainersImpl();
 
-    public void deploy(Collection<Class<?>> classes) throws DeploymentException {
-        deploy(classes, Collections.<URL>emptyList());
+    @Override
+    public void deploy(Collection<Class<?>> classes)
+        throws DeploymentException
+    {
+        deploy(classes, Collections.EMPTY_LIST);
     }
 
-    public boolean deploy(Collection<Class<?>> classes, Collection<URL> urls) {
-        logger.debug("StandaloneContainersImpl.deploy");
-
-        List<String> classNames = new ArrayList<String>();
-
-        for (Class<?> clazz : classes) classNames.add(clazz.getName());
-
-        if (logger.isDebugEnabled()) {
-            Collections.sort(classNames);
-
-            for (String clazz : classNames) {
-                logger.debug("clazz = " + clazz);
-            }
-
-            for (URL url : urls) {
-                logger.debug("url = " + url);
-            }
-        }
-
-        try {
-            EjbModule ejbModule = new EjbModule(new EjbJar("beans"));
-            ejbModule.setFinder(new AnnotationFinder(new ClassesArchive(classes)));
-
-            Map<String, Object> dds = ejbModule.getAltDDs();
-
-            for (URL url : urls) {
-                final File file = new File(url.getFile());
-                dds.put(file.getName(), url);
-            }
-
-            Assembler assembler = new Assembler();
-            ConfigurationFactory config = new ConfigurationFactory();
-            assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
-            assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
-
-            final AppInfo appInfo = config.configureApplication(new AppModule(ejbModule));
-
-            for (EjbJarInfo ejbJar : appInfo.ejbJars) {
-                // TODO We need to improve our scanning so this isn't necessary
-                ejbJar.beans.managedClasses.addAll(classNames);
-            }
-
-            appContext = assembler.createApplication(appInfo);
-
-            // This must be set or the OWB static lookup code won't work and everything will fall apart
-            Thread.currentThread().setContextClassLoader(appContext.getClassLoader());
-        } catch (Exception e) {
-            logger.debug("Deploy failed", e);
-            deploymentException = new DeploymentException("Deploy failed", e);
-            return false;
-        }
-        //            logger.debug("StandaloneContainersImpl.deploy(classes, urls)");
-        //            for (Class<?> clazz : classes) {
-        //                logger.debug("clazz = " + clazz);
-        //            }
-        //            for (URL url : urls) {
-        //                logger.debug("url = " + url);
-        //            }
-
-
-        ThreadSingletonServiceImpl.enter(appContext.getWebBeansContext());
-
-        return true;
+    @Override
+    public boolean deploy(Collection<Class<?>> classes, Collection<URL> beansXmls)
+    {
+        final Archive archive = new Archive(beansXmls, classes);
+        return containers.deploy(archive.getIn(), archive.getName());
     }
 
-    public DeploymentException getDeploymentException() {
-        logger.debug("StandaloneContainersImpl.getDeploymentException");
-        return deploymentException;
+    @Override
+    public DeploymentException getDeploymentException()
+    {
+        return containers.getDeploymentException();
     }
 
-    public void undeploy() {
-        logger.debug("StandaloneContainersImpl.undeploy");
+    @Override
+    public void undeploy()
+    {
+        containers.undeploy(null);
     }
 
-    public void setup() {
-        logger.debug("StandaloneContainersImpl.setup");
+    @Override
+    public void setup()
+    {
     }
 
-    public void cleanup() {
-        logger.debug("StandaloneContainersImpl.cleanup");
+    @Override
+    public void cleanup()
+    {
     }
 }

Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/META-INF/jboss-test-harness.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/META-INF/jboss-test-harness.properties?rev=1130358&r1=1130357&r2=1130358&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/META-INF/jboss-test-harness.properties (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/META-INF/jboss-test-harness.properties Wed Jun  1 23:56:32 2011
@@ -20,6 +20,8 @@ org.jboss.jsr299.tck.spi.Beans=org.apach
 org.jboss.jsr299.tck.spi.Contexts=org.apache.openejb.tck.cdi.embedded.ContextsImpl
 org.jboss.jsr299.tck.spi.EL=org.apache.openejb.tck.cdi.embedded.ELImpl
 org.jboss.testharness.spi.StandaloneContainers=org.apache.openejb.tck.cdi.embedded.StandaloneContainersImpl
+org.jboss.testharness.spi.Containers=org.apache.openejb.tck.cdi.embedded.ContainersImpl
 
-
-org.jboss.testharness.api.TestLauncher=org.jboss.testharness.impl.runner.local.LocalTestLauncher
\ No newline at end of file
+org.jboss.testharness.standalone=true
+org.jboss.testharness.api.TestLauncher=org.jboss.testharness.impl.runner.local.LocalTestLauncher
+org.jboss.testharness.runIntegrationTests=true
\ No newline at end of file

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=1130358&r1=1130357&r2=1130358&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 Wed Jun  1 23:56:32 2011
@@ -1,8 +1,5 @@
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
 
-<!-- CDI TCK Excludes for latest released TCK (currently 1.0.1 Final)
--->
-
 <suite name="CDI TCK" verbose="0">
   <test name="CDI TCK">
     <!--<packages>-->
@@ -11,46 +8,18 @@
     <!--</packages>-->
 
     <classes>
-
       <class name="org.jboss.jsr299.tck.tests.context.application.ejb.ApplicationContextSharedTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.dependent.ejb.DependentContextEjbTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.passivating.PassivatingContextTest"/>
       <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.passivating.broken.enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor.EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingConstructorFieldInDecorator.EnterpriseBeanWithNonPassivatingFieldInDecoratorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingDecorator.EnterpriseBeanWithNonPassivatingDecoratorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerInDecorator.EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor.EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInDecorator.EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor.EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonSerializableIntializerMethod.EnterpriseBeanWithNonSerializableIntializerMethodTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.finalProducerFieldNotPassivationCapable.NonPassivationCapableProducerFieldTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonPassivatingDecorator.ManagedBeanWithNonPassivatingDecoratorTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerField.NonPassivationCapableProducerFieldTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerMethod.NonPassivationCapableProducerMethodTest"/>
-      <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest"/>
-      <class name="org.jboss.jsr299.tck.tests.decorators.invocation.EJBDecoratorInvocationTest"/>
-      <class name="org.jboss.jsr299.tck.tests.definition.qualifier.enterprise.EnterpriseQualifierDefinitionTest"/>
-      <class name="org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest"/>
-      <class name="org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest"/>
-      <class name="org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringBeanDiscovery.DeploymentFailureTest"/>
       <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
-      <class name="org.jboss.jsr299.tck.tests.event.broken.observer.notBusinessMethod.EJBObserverMethodNotBusinessMethodTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest"/>
       <class name="org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest"/>
       <class name="org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest"/>
       <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.disposal.method.definition.broken.methodOnSessionBean.DisposalMethodOnSessionBean"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.singletonWithConversationScope.SingletonWithConversationScopeTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.singletonWithRequestScope.SingletonWithRequestScopeTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.singletonWithSessionScope.SingletonWithSessionScopeTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithApplicationScope.StatelessWithApplicationScopeTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithConversationScope.StatelessWithConversationScopeTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithRequestScope.StatelessWithRequestScopeTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.broken.statelessWithSessionScope.StatelessWithSessionScopeTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanViaXmlTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
@@ -58,25 +27,19 @@
       <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.initializer.EjbInitializerMethodTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest"/>
-      <class name="org.jboss.jsr299.tck.tests.implementation.producer.method.broken.enterprise.nonbusiness.ProducerMethodNotBusinessMethodTest"/>
       <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.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.inheritance.specialization.simple.broken.extendejb.SpecializingBeanExtendsEnterpriseBeanTest"/>
       <class name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest"/>
       <class name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest"/>
       <class name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest"/>
-      <class name="org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.ws.InjectionIntoWebServiceEndPointTest"/>
-      <class name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.EnterpriseResolutionByTypeTest"/>
+      <class name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.parameterized.AssignabilityOfRawAndParameterizedTypesTest"/>
     </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=1130358&r1=1130357&r2=1130358&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 Wed Jun  1 23:56:32 2011
@@ -5,6 +5,11 @@
 
 <suite name="CDI TCK" verbose="0">
   <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.interceptors.tests.aroundInvoke.AroundInvokeInterceptorTest"/>
@@ -42,6 +47,7 @@
       <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInjcetedField.PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingProducerMethodWithNonPassivatingParameter.PassivatingProducerMethodWithNonPassivatingParameterTest"/>
       <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest"/>
+      <class name="org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.CustomDecoratorMatchingBeanWithFinalClassTest"/>
       <class name="org.jboss.jsr299.tck.tests.decorators.definition.DecoratorDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.decorators.definition.broken.decoratorListedTwiceInBeansXml.DecoratorListedTwiceInBeansXmlTest"/>
       <class name="org.jboss.jsr299.tck.tests.decorators.definition.broken.enabledDecoratorIsNotDecorator.EnabledDecoratorNotADecoratorTest"/>
@@ -66,15 +72,18 @@
       <class name="org.jboss.jsr299.tck.tests.definition.bean.genericbroken.GenericManagedBeanTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.name.NameDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.qualifier.QualifierDefinitionTest"/>
+      <class name="org.jboss.jsr299.tck.tests.definition.qualifier.enterprise.EnterpriseQualifierDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.scope.ScopeDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.scope.broken.tooManyScopes.TooManyScopesTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.stereotype.StereotypeDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.scopeConflict.IncompatibleStereotypesTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.stereotype.defaultNamed.DefaultNamedTest"/>
+      <class name="org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.definition.stereotype.inheritance.StereotypeInheritenceTest"/>
       <class name="org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringBeanDiscovery.DeploymentFailureTest"/>
       <class name="org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringValidation.AfterBeanDiscoveryFailureTest"/>
+      <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryMissingBeansXmlTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.EventTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.bindingTypes.EventBindingTypesTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.broken.inject.withoutType.EventInjectionWithoutTypeTest"/>
@@ -88,6 +97,7 @@
       <class name="org.jboss.jsr299.tck.tests.event.eventTypes.EventTypesTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.fires.FireEventTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.fires.nonbinding.NonBindingTypePassedToFireTest"/>
+      <class name="org.jboss.jsr299.tck.tests.event.implicit.ImplicitEventTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.observer.ObserverTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.observer.abortProcessing.ObserverExceptionAbortsProcessingTest"/>
       <class name="org.jboss.jsr299.tck.tests.event.observer.checkedException.CheckedExceptionWrappedTest"/>
@@ -107,6 +117,7 @@
       <class name="org.jboss.jsr299.tck.tests.extensions.beanManager.BeanManagerTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.DisposalMethodDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.initializerUnallowed.InitializerUnallowedDefinitionTest"/>
+      <class name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.methodOnSessionBean.DisposalMethodOnSessionBean"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.multiParams.MultipleDisposeParametersDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.observesUnallowed.ObserverParameterUnallowedDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.producesUnallowed.ProducesUnallowedDefinitionTest"/>
@@ -124,6 +135,7 @@
       <class name="org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.producer.field.definition.ProducerFieldDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.producer.field.definition.broken.parameterizedReturnTypeWithWildcard.ParameterizedReturnTypeWithWildcardTest"/>
+      <class name="org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.producer.field.lifecycle.ProducerFieldLifecycleTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.producer.method.broken.enterprise.nonbusiness.ProducerMethodNotBusinessMethodTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest"/>
@@ -137,6 +149,7 @@
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.definition.dependentWithPublicField.DependentWithPublicFieldTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors.TooManyInitializerAnnotatedConstructorsTest"/>
       <class name="org.jboss.jsr299.tck.tests.implementation.simple.lifecycle.unproxyable.UnproxyableManagedBeanTest"/>
+      <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest"/>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.ProducerMethodSpecializationTest"/>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.indirectOverride.IndirectOverrideTest"/>
       <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializesStaticMethod.SpecializesStaticMethodTest"/>
@@ -164,6 +177,7 @@
       <class name="org.jboss.jsr299.tck.tests.lookup.byname.ResolutionByNameTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.byname.duplicateNameResolution.DuplicateNameResolutionTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.byname.duplicatePrefixResolution.DuplicateNamePrefixResolutionTest"/>
+      <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.ClientProxyTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.array.ArrayTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalClass.FinalClassTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalMethod.FinalMethodTest"/>
@@ -172,11 +186,13 @@
       <class name="org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.ambiguous.AmbiguousDependencyTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.unsatisfied.UnsatisfiedDependencyTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.dynamic.DynamicLookupTest"/>
+      <class name="org.jboss.jsr299.tck.tests.lookup.dynamic.builtin.BuiltinInstanceTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.InjectionTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.any.AnyInjectionTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.CreationalContextForNonContextualTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injection.nullableBean.NullableBeanTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.InjectableReferenceTest"/>
+      <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.InjectionPointTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.normal.scope.NormalScopedBeanWithInjectionPoint"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.reference.ambiguous.AmbiguousInjectableReferenceTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.reference.unresolved.UnsatisfiedInjectableReferenceTest"/>
@@ -186,15 +202,13 @@
       <class name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.type.variable.TypeVariableInjectionPointTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.decorator.DecoratorNotInjectedTest"/>
       <class name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.interceptor.InterceptorNotResolvedTest"/>
-      <class name="org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.parameterized.AssignabilityOfRawAndParameterizedTypesTest"/>
       <class name="org.jboss.jsr299.tck.tests.policy.PolicyAvailabilityTest"/>
       <class name="org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.NoClassWithSpecifiedNameTest"/>
       <class name="org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.stereotype.NoAnnotationWithSpecifiedNameTest"/>
       <class name="org.jboss.jsr299.tck.tests.policy.broken.not.policy.ClassIsNotPolicyTest"/>
       <class name="org.jboss.jsr299.tck.tests.policy.broken.not.policy.stereotype.ClassIsNotPolicyTest"/>
       <class name="org.jboss.jsr299.tck.tests.policy.broken.same.type.twice.SameTypeListedTwiceTest"/>
-      <class name="org.jboss.jsr299.tck.tests.decorators.invocation.DecoratorInvocationTest"/>
-
+      <class name="org.jboss.jsr299.tck.tests.policy.enterprise.SessionBeanPolicyTest"/>
     </classes>
   </test>
 </suite>