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