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 2010/08/30 22:21:31 UTC

svn commit: r990929 - in /openejb/branches/openejb-jcdi/container/openejb-core: ./ src/main/java/org/apache/openejb/cdi/ src/test/java/org/apache/openejb/cdi/tck/ src/test/resources/ src/test/resources/META-INF/

Author: dblevins
Date: Mon Aug 30 20:21:30 2010
New Revision: 990929

URL: http://svn.apache.org/viewvc?rev=990929&view=rev
Log:
somewhat functioning setup for cdi tck

Added:
    openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java   (with props)
    openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties   (with props)
    openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml   (with props)
Modified:
    openejb/branches/openejb-jcdi/container/openejb-core/pom.xml
    openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java
    openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java

Modified: openejb/branches/openejb-jcdi/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/container/openejb-core/pom.xml?rev=990929&r1=990928&r2=990929&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/container/openejb-core/pom.xml (original)
+++ openejb/branches/openejb-jcdi/container/openejb-core/pom.xml Mon Aug 30 20:21:30 2010
@@ -400,10 +400,16 @@
     </dependency>
     <dependency>
       <groupId>org.jboss.jsr299.tck</groupId>
-      <artifactId>jsr299-tck-api</artifactId>
+      <artifactId>jsr299-tck-impl</artifactId>
       <version>1.0.2.CR1</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.jboss.test-harness</groupId>
+      <artifactId>jboss-test-harness</artifactId>
+      <version>1.1.0-CR5</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <profiles>
     <profile>

Modified: openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java?rev=990929&r1=990928&r2=990929&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java (original)
+++ openejb/branches/openejb-jcdi/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiBuilder.java Mon Aug 30 20:21:30 2010
@@ -22,6 +22,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.Assembler;
 import org.apache.openejb.assembler.classic.BeansInfo;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
 import org.apache.openejb.core.AppContext;
 import org.apache.openejb.core.CoreDeploymentInfo;
 import org.apache.webbeans.config.OpenWebBeansConfiguration;
@@ -237,7 +238,15 @@ public class CdiBuilder {
         final AlternativesManager alternativesManager = AlternativesManager.getInstance();
         final DecoratorsManager decoratorsManager = DecoratorsManager.getInstance();
         final InterceptorsManager interceptorsManager = InterceptorsManager.getInstance();
-        
+
+        final HashSet<String> ejbClasses = new HashSet<String>();
+
+        for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+            for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) {
+                ejbClasses.add(bean.ejbClass);
+            }
+        }
+
         for (EjbJarInfo ejbJar : appInfo.ejbJars) {
             final BeansInfo beans = ejbJar.beans;
 
@@ -284,6 +293,7 @@ public class CdiBuilder {
             }
 
             for (String className : beans.managedClasses) {
+                if (ejbClasses.contains(className)) continue;
                 final Class clazz = load(className, "managed");
                 classes.add(clazz);
             }

Modified: openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java?rev=990929&r1=990928&r2=990929&view=diff
==============================================================================
--- openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java (original)
+++ openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/ServiceProviders.java Mon Aug 30 20:21:30 2010
@@ -16,9 +16,14 @@
  */
 package org.apache.openejb.cdi.tck;
 
+import org.apache.openejb.DeploymentInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.core.AppContext;
 import org.apache.openejb.core.CoreDeploymentInfo;
 import org.apache.openejb.core.ThreadContext;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
+import org.apache.webbeans.container.BeanManagerImpl;
 import org.jboss.testharness.api.DeploymentException;
 import org.apache.openejb.config.EjbModule;
 import org.apache.openejb.config.ConfigurationFactory;
@@ -47,6 +52,7 @@ import java.io.File;
 import java.net.URL;
 import java.util.Collection;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 import java.util.List;
@@ -58,38 +64,45 @@ import java.lang.annotation.Annotation;
  */
 public class ServiceProviders {
 
+
+    private static AppContext appContext;
+
     public static class ManagersProvider implements org.jboss.jsr299.tck.spi.Managers {
         public BeanManager getManager() {
-            // TODO This doesn't really work.  We need some better way to get the AppContext
-            final ThreadContext threadContext = ThreadContext.getThreadContext();
-            final CoreDeploymentInfo deployment = threadContext.getDeploymentInfo();
-            return deployment.getModuleContext().getAppContext().getBeanManager();
+            System.out.println("ServiceProviders$ManagersProvider.getManager");
+            return appContext.getBeanManager();
         }
 
     }
 
     public static class BeansProvider implements org.jboss.jsr299.tck.spi.Beans {
         public boolean isProxy(Object instance) {
+            System.out.println("ServiceProviders$BeansProvider.isProxy");
             return false;
         }
     }
 
     public static class ContextsProvider implements org.jboss.jsr299.tck.spi.Contexts {
         public void setActive(Context context) {
+            System.out.println("ServiceProviders$ContextsProvider.setActive");
         }
 
         public void setInactive(Context context) {
+            System.out.println("ServiceProviders$ContextsProvider.setInactive");
         }
 
         public Context getRequestContext() {
+            System.out.println("ServiceProviders$ContextsProvider.getRequestContext");
             return null;
         }
 
         public Context getDependentContext() {
+            System.out.println("ServiceProviders$ContextsProvider.getDependentContext");
             return null;
         }
 
         public void destroyContext(Context context) {
+            System.out.println("ServiceProviders$ContextsProvider.destroyContext");
         }
     }
 
@@ -98,6 +111,7 @@ public class ServiceProviders {
         private DeploymentException deploymentException;
 
         public void deploy(Collection<Class<?>> classes) throws DeploymentException {
+            System.out.println("ServiceProviders$StandaloneContainersProvider.deploy");
             System.out.println("StandaloneContainersImpl.deploy(classes)");
             for (Class<?> clazz : classes) {
                 System.out.println("clazz = " + clazz);
@@ -105,6 +119,19 @@ public class ServiceProviders {
         }
 
         public boolean deploy(Collection<Class<?>> classes, Collection<URL> urls) {
+            System.out.println("ServiceProviders$StandaloneContainersProvider.deploy");
+            List<String> classNames = new ArrayList<String>();
+
+            for (Class<?> clazz : classes) classNames.add(clazz.getName());
+            Collections.sort(classNames);
+
+            for (String clazz : classNames) {
+                System.out.println("clazz = " + clazz);
+            }
+
+            for (URL url : urls) {
+                System.out.println("url = " + url);
+            }
             try {
                 EjbModule ejbModule = new EjbModule(new EjbJar("beans"));
                 ejbModule.setFinder(new ClassFinder(new ArrayList(classes)));
@@ -120,8 +147,21 @@ public class ServiceProviders {
                 ConfigurationFactory config = new ConfigurationFactory();
                 assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
                 assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
-                
-                assembler.createApplication(config.configureApplication(ejbModule));
+
+                final EjbJarInfo ejbJar = config.configureApplication(ejbModule);
+                ejbJar.beans.managedClasses.addAll(classNames);
+
+
+                assembler.createApplication(ejbJar);
+
+                final ContainerSystem component = SystemInstance.get().getComponent(ContainerSystem.class);
+
+                final CoreDeploymentInfo deploymentInfo = (CoreDeploymentInfo) component.deployments()[0];
+                appContext = deploymentInfo.getModuleContext().getAppContext();
+
+                // 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) {
                 e.printStackTrace();
                 deploymentException = new DeploymentException("Deploy failed", e);
@@ -138,30 +178,36 @@ public class ServiceProviders {
         }
 
         public DeploymentException getDeploymentException() {
+            System.out.println("ServiceProviders$StandaloneContainersProvider.getDeploymentException");
             return deploymentException;
         }
 
         public void undeploy() {
+            System.out.println("ServiceProviders$StandaloneContainersProvider.undeploy");
         }
 
         public void setup() {
-
+            System.out.println("ServiceProviders$StandaloneContainersProvider.setup");
         }
 
         public void cleanup() {
+            System.out.println("ServiceProviders$StandaloneContainersProvider.cleanup");
         }
     }
 
     public static class ELProvider implements org.jboss.jsr299.tck.spi.EL {
         public <T> T evaluateValueExpression(String expression, Class<T> expectedType) {
+            System.out.println("ServiceProviders$ELProvider.evaluateValueExpression");
             return null;
         }
 
         public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams) {
+            System.out.println("ServiceProviders$ELProvider.evaluateMethodExpression");
             return null;
         }
 
         public ELContext createELContext() {
+            System.out.println("ServiceProviders$ELProvider.createELContext");
             return null;
         }
     }

Added: openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java?rev=990929&view=auto
==============================================================================
--- openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java (added)
+++ openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java Mon Aug 30 20:21:30 2010
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.cdi.tck;
+
+import java.util.List;
+
+import org.jboss.testharness.impl.ConfigurationFactory;
+import org.jboss.testharness.impl.packaging.IntegrationTest;
+import org.testng.IMethodSelector;
+import org.testng.IMethodSelectorContext;
+import org.testng.ITestNGMethod;
+
+public class TestMethodSelector implements IMethodSelector
+{
+
+   private static final long serialVersionUID = 6034298835828495024L;
+
+   public boolean includeMethod(IMethodSelectorContext context, ITestNGMethod method, boolean isTestMethod)
+   {
+//      if (!ConfigurationFactory.get().isRunIntegrationTests() && method.getMethod().getDeclaringClass().isAnnotationPresent(IntegrationTest.class))
+//      {
+//         context.setStopped(true);
+//         return false;
+//      }
+//      else
+//      {
+         return true;
+//      }
+   }
+
+   public void setTestMethods(List<ITestNGMethod> testMethods)
+   {
+
+   }
+
+}

Propchange: openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/cdi/tck/TestMethodSelector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties?rev=990929&view=auto
==============================================================================
--- openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties (added)
+++ openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties Mon Aug 30 20:21:30 2010
@@ -0,0 +1,28 @@
+#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.
+
+org.jboss.jsr299.tck.spi.Managers=org.apache.openejb.cdi.tck.ServiceProviders$ManagersProvider
+org.jboss.jsr299.tck.spi.Beans=org.apache.openejb.cdi.tck.ServiceProviders$BeansProvider
+org.jboss.jsr299.tck.spi.Contexts=org.apache.openejb.cdi.tck.ServiceProviders$ContextsProvider
+org.jboss.jsr299.tck.spi.EL=org.apache.openejb.cdi.tck.ServiceProviders$ELProvider
+org.jboss.testharness.spi.StandaloneContainers=org.apache.openejb.cdi.tck.ServiceProviders$StandaloneContainersProvider
+
+#org.jboss.testharness.standalone=true
+#org.jboss.testharness.runIntegrationTests=true
+
+#org.jboss.testharness.api.TestLauncher=org.jboss.testharness.impl.runner.local.LocalTestLauncher
+#org.jboss.testharness.api.TestLauncher=org.jboss.testharness.impl.runner.servlet.ServletTestLauncher

Propchange: openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/META-INF/jboss-test-harness.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml?rev=990929&view=auto
==============================================================================
--- openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml (added)
+++ openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml Mon Aug 30 20:21:30 2010
@@ -0,0 +1,38 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
+
+<!-- CDI TCK Excludes for current 1.0 branch -->
+
+<suite name="CDI TCK" verbose="0">
+  <test name="CDI TCK">
+    <!--<method-selectors>-->
+    <!--<method-selector>-->
+    <!--<selector-class name=" org.apache.openejb.cdi.tck.TestMethodSelector" />-->
+    <!--</method-selector>-->
+    <!--</method-selectors>-->
+    <packages>
+      <!--<package name="org.jboss.jsr299.tck.tests.*" />-->
+      <!--<package name="org.jboss.jsr299.tck.interceptors.tests.*" />-->
+      <package name="org.jboss.jsr299.tck.tests.interceptors.definition.*"/>
+    </packages>
+    <classes>
+      <!--<class name="org.jboss.jsr299.tck.tests.decorators.invocation.observer.DecoratorInvocationTest">-->
+        <!--<methods>-->
+          <!--<exclude name="testDecoratorInvocation"/>-->
+        <!--</methods>-->
+      <!--</class>-->
+      <!--<class name="org.jboss.jsr299.tck.tests.decorators.invocation.producer.method.DecoratorInvocationTest">-->
+        <!--<methods>-->
+          <!--<exclude name="testDecoratorInvocation"/>-->
+        <!--</methods>-->
+      <!--</class>-->
+      <!--<class name="org.jboss.jsr299.tck.tests.decorators.invocation.DecoratorInvocationTest">-->
+        <!--<methods>-->
+          <!--<exclude name="testChainedDecoratorInvocation"/>-->
+          <!--<exclude name="testDecoratorInvocation"/>-->
+        <!--</methods>-->
+      <!--</class>-->
+
+    </classes>
+  </test>
+
+</suite>

Propchange: openejb/branches/openejb-jcdi/container/openejb-core/src/test/resources/cdi-suite.xml
------------------------------------------------------------------------------
    svn:eol-style = native