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/09/10 09:17:03 UTC
svn commit: r1167471 - in /openejb/trunk/openejb3:
assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/
container/openejb-core/src/main/java/org/apache/openejb/
container/openejb-core/src/main/java/org/apach...
Author: dblevins
Date: Sat Sep 10 07:17:02 2011
New Revision: 1167471
URL: http://svn.apache.org/viewvc?rev=1167471&view=rev
Log:
OPENEJB-1659: @Inject support for Servlets, Filters and Listeners
OPENEJB-1660: @Inject constructor support for Servlet, Filters and Listeners
Replaces the built-in Tomcat DefaultInjectionManager with one that uses the same code for constructing EJBs (xbean-reflect and openwebbeans)
Added:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.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/core/WebContext.java
openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java
openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/Report.java
openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/all-failing.xml
openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml
Added: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java?rev=1167471&view=auto
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java (added)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/JavaeeInstanceManager.java Sat Sep 10 07:17:02 2011
@@ -0,0 +1,158 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.tomcat.catalina;
+
+import org.apache.catalina.core.StandardContext;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.core.WebContext;
+import org.apache.tomcat.InstanceManager;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.naming.NamingException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+/**
+* @version $Rev$ $Date$
+*/
+public class JavaeeInstanceManager implements InstanceManager {
+
+ private final WebContext webContext;
+ private final StandardContext context;
+
+ public JavaeeInstanceManager(WebContext webContext, StandardContext context) {
+ this.webContext = webContext;
+ this.context = context;
+ }
+
+ @Override
+ public Object newInstance(String className) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException {
+ final ClassLoader classLoader = webContext.getClassLoader();
+ return newInstance(className, classLoader);
+ }
+
+ @Override
+ public Object newInstance(String className, ClassLoader classLoader) throws IllegalAccessException, InvocationTargetException, NamingException, InstantiationException, ClassNotFoundException {
+ try {
+ final Class<?> clazz = classLoader.loadClass(className);
+ final Object object = webContext.newInstance(clazz);
+ postConstruct(object, clazz);
+ return object;
+ } catch (OpenEJBException e) {
+ throw (InstantiationException) new InstantiationException(e.getMessage()).initCause(e);
+ }
+ }
+
+ @Override
+ public void newInstance(Object o) throws IllegalAccessException, InvocationTargetException, NamingException {
+ new Exception("INJECT").fillInStackTrace().printStackTrace();
+ }
+
+ @Override
+ public void destroyInstance(Object o) throws IllegalAccessException, InvocationTargetException {
+ if (o == null) return;
+ preDestroy(o, o.getClass());
+ }
+
+ /**
+ * Call postConstruct method on the specified instance recursively from deepest superclass to actual class.
+ *
+ * @param instance object to call postconstruct methods on
+ * @param clazz (super) class to examine for postConstruct annotation.
+ * @throws IllegalAccessException if postConstruct method is inaccessible.
+ * @throws java.lang.reflect.InvocationTargetException
+ * if call fails
+ */
+ protected void postConstruct(Object instance, final Class<?> clazz)
+ throws IllegalAccessException, InvocationTargetException {
+ Class<?> superClass = clazz.getSuperclass();
+ if (superClass != Object.class) {
+ postConstruct(instance, superClass);
+ }
+
+ Method[] methods = clazz.getDeclaredMethods();
+
+ Method postConstruct = null;
+ for (Method method : methods) {
+ if (method.isAnnotationPresent(PostConstruct.class)) {
+ if ((postConstruct != null)
+ || (method.getParameterTypes().length != 0)
+ || (Modifier.isStatic(method.getModifiers()))
+ || (method.getExceptionTypes().length > 0)
+ || (!method.getReturnType().getName().equals("void"))) {
+ throw new IllegalArgumentException("Invalid PostConstruct annotation");
+ }
+ postConstruct = method;
+ }
+ }
+
+ // At the end the postconstruct annotated
+ // method is invoked
+ if (postConstruct != null) {
+ boolean accessibility = postConstruct.isAccessible();
+ postConstruct.setAccessible(true);
+ postConstruct.invoke(instance);
+ postConstruct.setAccessible(accessibility);
+ }
+
+ }
+
+
+ /**
+ * Call preDestroy method on the specified instance recursively from deepest superclass to actual class.
+ *
+ * @param instance object to call preDestroy methods on
+ * @param clazz (super) class to examine for preDestroy annotation.
+ * @throws IllegalAccessException if preDestroy method is inaccessible.
+ * @throws java.lang.reflect.InvocationTargetException
+ * if call fails
+ */
+ protected void preDestroy(Object instance, final Class<?> clazz)
+ throws IllegalAccessException, InvocationTargetException {
+ Class<?> superClass = clazz.getSuperclass();
+ if (superClass != Object.class) {
+ preDestroy(instance, superClass);
+ }
+
+ Method[] methods = clazz.getDeclaredMethods();
+ Method preDestroy = null;
+ for (Method method : methods) {
+ if (method.isAnnotationPresent(PreDestroy.class)) {
+ if ((method.getParameterTypes().length != 0)
+ || (Modifier.isStatic(method.getModifiers()))
+ || (method.getExceptionTypes().length > 0)
+ || (!method.getReturnType().getName().equals("void"))) {
+ throw new IllegalArgumentException("Invalid PreDestroy annotation");
+ }
+ preDestroy = method;
+ break;
+ }
+ }
+
+ // At the end the postconstruct annotated
+ // method is invoked
+ if (preDestroy != null) {
+ boolean accessibility = preDestroy.isAccessible();
+ preDestroy.setAccessible(true);
+ preDestroy.invoke(instance);
+ preDestroy.setAccessible(accessibility);
+ }
+ }
+
+}
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Sat Sep 10 07:17:02 2011
@@ -64,6 +64,7 @@ import org.apache.openejb.tomcat.loader.
import org.apache.openejb.util.LinkResolver;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
+import org.apache.tomcat.InstanceManager;
import org.apache.webbeans.config.WebBeansContext;
import org.omg.CORBA.ORB;
@@ -460,12 +461,19 @@ public class TomcatWebAppBuilder impleme
jndiBuilder.mergeJndi();
// add WebDeploymentInfo to ContainerSystem
- WebContext webContext = new WebContext();
+ final WebContext webContext = new WebContext(appContext);
webContext.setId(webAppInfo.moduleId);
- webContext.setClassLoader(standardContext.getLoader().getClassLoader());
+ final StandardContext context = standardContext;
+ webContext.setClassLoader(context.getLoader().getClassLoader());
webContext.getInjections().addAll(injections);
appContext.getWebContexts().add(webContext);
cs.addWebContext(webContext);
+
+
+ standardContext.setInstanceManager(new JavaeeInstanceManager(webContext, context));
+
+ standardContext.getServletContext().setAttribute(InstanceManager.class.getName(), standardContext.getInstanceManager());
+
} catch (Exception e) {
logger.error("Error merging OpenEJB JNDI entries in to war " + standardContext.getPath() + ": Exception: " + e.getMessage(), e);
}
@@ -1094,4 +1102,5 @@ public class TomcatWebAppBuilder impleme
return false;
}
}
+
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java Sat Sep 10 07:17:02 2011
@@ -25,6 +25,7 @@ import org.apache.xbean.recipe.Option;
import javax.naming.Context;
import javax.naming.NamingException;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.LinkedHashMap;
@@ -40,7 +41,7 @@ public class InjectionProcessor<T> {
private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB, InjectionProcessor.class);
private final Class<? extends T> beanClass;
- private final List<Injection> injections;
+ private final Collection<Injection> injections;
private final Map<String, Object> properties = new LinkedHashMap<String, Object>();
private final List<Method> postConstructMethods;
private final List<Method> preDestroyMethods;
@@ -48,7 +49,7 @@ public class InjectionProcessor<T> {
private T instance;
private T suppliedInstance;
- public InjectionProcessor(T suppliedInstance, List<Injection> injections, Context context) {
+ public InjectionProcessor(T suppliedInstance, Collection<Injection> injections, Context context) {
this.beanClass = null;
this.suppliedInstance = suppliedInstance;
this.injections = injections;
@@ -57,7 +58,7 @@ public class InjectionProcessor<T> {
preDestroyMethods = null;
}
- public InjectionProcessor(Class<? extends T> beanClass, List<Injection> injections, Context context) {
+ public InjectionProcessor(Class<? extends T> beanClass, Collection<Injection> injections, Context context) {
this.beanClass = beanClass;
this.injections = injections;
this.context = context;
@@ -65,7 +66,7 @@ public class InjectionProcessor<T> {
preDestroyMethods = null;
}
- public InjectionProcessor(Class<? extends T> beanClass, List<Injection> injections, List<Method> postConstructMethods, List<Method> preDestroyMethods, Context context) {
+ public InjectionProcessor(Class<? extends T> beanClass, Collection<Injection> injections, List<Method> postConstructMethods, List<Method> preDestroyMethods, Context context) {
this.beanClass = beanClass;
this.injections = injections;
this.postConstructMethods = postConstructMethods;
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/ConstructorInjectionBean.java Sat Sep 10 07:17:02 2011
@@ -52,10 +52,19 @@ public class ConstructorInjectionBean<T>
if (definitionUtil == null) throw new NullPointerException("definitionUtil");
definitionUtil.addConstructorInjectionPointMetaData(this, constructor);
+ }
+ public ConstructorInjectionBean<T> complete() {
// these are not used immediately in createInstance()
-// definitionUtil.defineInjectedFields(this);
-// definitionUtil.defineInjectedMethods(this);
+ try {
+ final DefinitionUtil definitionUtil = getWebBeansContext().getDefinitionUtil();
+ definitionUtil.defineInjectedFields(this);
+ definitionUtil.defineInjectedMethods(this);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return this;
}
@Override
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=1167471&r1=1167470&r2=1167471&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 Sat Sep 10 07:17:02 2011
@@ -3674,7 +3674,7 @@ public class AnnotationDeployer implemen
} else if(isShareableJNDINamespace(refName)){
EnvEntry envEntry = new EnvEntry();
envEntry.setName(refName);
- consumer.getEnvEntry().add(envEntry);
+ consumer.getEnvEntry().add(envEntry);
reference = envEntry;
} else {
/*
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java Sat Sep 10 07:17:02 2011
@@ -16,23 +16,37 @@
*/
package org.apache.openejb.core;
+import org.apache.openejb.AppContext;
import org.apache.openejb.Injection;
-
-import javax.naming.Context;
-import java.util.Collection;
-
-
-import org.apache.openejb.Injection;
-
+import org.apache.openejb.InjectionProcessor;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.cdi.ConstructorInjectionBean;
+import org.apache.webbeans.component.InjectionTargetBean;
+import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.inject.AbstractInjectable;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.enterprise.context.spi.CreationalContext;
import javax.naming.Context;
-import java.util.Collection;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Collection;
public class WebContext {
private String id;
private ClassLoader classLoader;
private final Collection<Injection> injections = new ArrayList<Injection>();
private Context jndiEnc;
+ private final AppContext appContext;
+
+ public WebContext(AppContext appContext) {
+ this.appContext = appContext;
+ }
public String getId() {
return id;
@@ -61,4 +75,52 @@ public class WebContext {
public void setJndiEnc(Context jndiEnc) {
this.jndiEnc = jndiEnc;
}
+
+ public AppContext getAppContext() {
+ return appContext;
+ }
+
+ public Object newInstance(Class beanClass) throws OpenEJBException {
+
+ try {
+ final WebBeansContext webBeansContext = getAppContext().getWebBeansContext();
+
+ final ConstructorInjectionBean<Object> beanDefinition = new ConstructorInjectionBean<Object>(webBeansContext, beanClass).complete();
+
+ final CreationalContext<Object> creationalContext = webBeansContext.getBeanManagerImpl().createCreationalContext(beanDefinition);
+
+ // Create bean instance
+ final Object o = beanDefinition.create(creationalContext);
+ final Context initialContext = (Context) new InitialContext().lookup("java:");
+ final Context unwrap = InjectionProcessor.unwrap(initialContext);
+ final InjectionProcessor injectionProcessor = new InjectionProcessor(o, injections, unwrap);
+
+ final Object beanInstance = injectionProcessor.createInstance();
+
+ final Object oldInstanceUnderInjection = AbstractInjectable.instanceUnderInjection.get();
+
+ try {
+ AbstractInjectable.instanceUnderInjection.set(null);
+
+ InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
+
+ bean.injectResources(beanInstance, creationalContext);
+ bean.injectSuperFields(beanInstance, creationalContext);
+ bean.injectSuperMethods(beanInstance, creationalContext);
+ bean.injectFields(beanInstance, creationalContext);
+ bean.injectMethods(beanInstance, creationalContext);
+ } finally {
+ if (oldInstanceUnderInjection != null) {
+ AbstractInjectable.instanceUnderInjection.set(oldInstanceUnderInjection);
+ } else {
+ AbstractInjectable.instanceUnderInjection.remove();
+ }
+ }
+
+ return beanInstance;
+ } catch (NamingException e) {
+ throw new OpenEJBException(e);
+ }
+ }
+
}
Modified: openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java (original)
+++ openejb/trunk/openejb3/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RestDeploymentTest.java Sat Sep 10 07:17:02 2011
@@ -17,6 +17,7 @@
package org.apache.openejb.server.cxf.rs;
import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.AppContext;
import org.apache.openejb.Injection;
import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.assembler.classic.Assembler;
@@ -114,7 +115,7 @@ public class RestDeploymentTest {
annotationDeployer.deploy(appModule);
AppInfo appInfo = factory.configureApplication(appModule);
- assembler.createApplication(appInfo);
+ final AppContext application = assembler.createApplication(appInfo);
Context ctx = (Context) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class<?>[]{Context.class}, new InvocationHandler() {
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
@@ -126,7 +127,7 @@ public class RestDeploymentTest {
});
CoreContainerSystem containerSystem = new CoreContainerSystem(new IvmJndiFactory());
- WebContext webContext = new WebContext();
+ WebContext webContext = new WebContext(application);
webContext.setId(webApp.getId());
webContext.setClassLoader(webModule.getClassLoader());
webContext.getInjections().add(new Injection("SimpleEJBLocalBean", "simple", RestWithInjections.class));
Modified: openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/Report.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/Report.java?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/Report.java (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/Report.java Sat Sep 10 07:17:02 2011
@@ -47,7 +47,7 @@ public class Report {
private void main() throws Exception {
// final File file = new File("/Users/dblevins/work/uber/geronimo-tck-public-trunk/jcdi-tck-runner/target/surefire-reports/testng-results.xml");
- final File file = new File("/Users/dblevins/work/uber/openejb/tck/cdi-embedded/target/surefire-reports/testng-results.xml");
+ final File file = new File("/Users/dblevins/work/all/openejb/tck/cdi-tomee/target/failsafe-reports/testng-results.xml");
// final File file = new File("/Users/dblevins/work/uber/testng-results.xml");
final SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
@@ -85,12 +85,9 @@ public class Report {
final File report = new File(file.getParentFile(), file.getName().replaceAll(".xml$", "-passing.xml"));
final PrintStream out = new PrintStream(new FileOutputStream(report));
- out.println("" +
+ out.println(header +
"<suite name=\"CDI TCK\" verbose=\"0\">\n" +
- " <listeners>\n" +
- " <listener class-name=\"org.apache.openejb.tck.cdi.embedded.RequestScopeTestListener\" />\n" +
- " </listeners>\n" +
- " <test name=\"CDI TCK\">" +
+ " <test name=\"CDI TCK\">\n" +
" <packages>\n" +
" <package name=\"org.jboss.jsr299.tck.tests.*\"/>\n" +
" <package name=\"org.jboss.jsr299.tck.interceptors.tests.*\"/>\n" +
@@ -124,6 +121,7 @@ public class Report {
final File report = new File(file.getParentFile(), file.getName().replaceAll(".xml$", "-failing.xml"));
final PrintStream out = new PrintStream(new FileOutputStream(report));
+ out.println(header);
out.println("<suite name=\"CDI TCK\" verbose=\"0\">");
out.println(" <test name=\"CDI TCK\">");
out.println(" <!--<packages>-->\n" +
@@ -240,4 +238,23 @@ public class Report {
return this.name.compareTo(o.name);
}
}
+
+ private static final String header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<!--\n" +
+ "\n" +
+ " Licensed to the Apache Software Foundation (ASF) under one or more\n" +
+ " contributor license agreements. See the NOTICE file distributed with\n" +
+ " this work for additional information regarding copyright ownership.\n" +
+ " The ASF licenses this file to You under the Apache License, Version 2.0\n" +
+ " (the \"License\"); you may not use this file except in compliance with\n" +
+ " the License. You may obtain a copy of the License at\n" +
+ "\n" +
+ " http://www.apache.org/licenses/LICENSE-2.0\n" +
+ "\n" +
+ " Unless required by applicable law or agreed to in writing, software\n" +
+ " distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
+ " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
+ " See the License for the specific language governing permissions and\n" +
+ " limitations under the License.\n" +
+ "-->\n";
}
Modified: openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/all-failing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/all-failing.xml?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/all-failing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/all-failing.xml Sat Sep 10 07:17:02 2011
@@ -16,6 +16,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+
<suite name="CDI TCK" verbose="0">
<test name="CDI TCK">
<!--<packages>-->
@@ -23,7 +24,6 @@
<!--<package name="org.jboss.jsr299.tck.interceptors.tests.*"/>-->
<!--</packages>-->
<classes>
- <class name="org.jboss.jsr299.tck.tests.context.application.ApplicationContextTest"/>
<class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest"/>
<class name="org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest"/>
<class name="org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest"/>
@@ -32,27 +32,13 @@
<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.enterpriseBeanWithNonPassivatingDecorator.EnterpriseBeanWithNonPassivatingDecoratorTest"/>
- <class name="org.jboss.jsr299.tck.tests.context.request.RequestContextTest"/>
- <class name="org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest"/>
- <class name="org.jboss.jsr299.tck.tests.context.session.SessionContextTest"/>
- <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest"/>
- <class name="org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest"/>
<class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
<class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInWarTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
- <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest"/>
- <class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest"/>
- <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.env.EnvInjectionTest"/>
+ <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.persistenceContext.PersistenceContextInjectionTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.resource.InjectionOfResourceTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest"/>
<class name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest"/>
- <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.incontainer.ClientProxyTest"/>
<class name="org.jboss.jsr299.tck.tests.lookup.el.ResolutionByNameTest"/>
<class name="org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest"/>
<class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest"/>
Modified: openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml?rev=1167471&r1=1167470&r2=1167471&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/src/test/resources/passing.xml Sat Sep 10 07:17:02 2011
@@ -23,16 +23,6 @@
<package name="org.jboss.jsr299.tck.interceptors.tests.*"/>
</packages>
<classes>
- <class name="org.jboss.jsr299.tck.tests.context.application.ApplicationContextTest">
- <methods>
- <exclude name="testApplicationContextSharedBetweenServletRequests"/>
- <exclude name="testApplicationScopeActiveDuringDoFilterMethod"/>
- <exclude name="testApplicationScopeActiveDuringHttpSessionListenerInvocation"/>
- <exclude name="testApplicationScopeActiveDuringServiceMethod"/>
- <exclude name="testApplicationScopeActiveDuringServletContextListenerInvocation"/>
- <exclude name="testApplicationScopeActiveDuringServletRequestListenerInvocation"/>
- </methods>
- </class>
<class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest">
<methods>
<exclude name="testBeanWithDefaultQualifier"/>
@@ -93,22 +83,6 @@
<exclude name="testEnterpriseBeanWithNonPassivatingDecoratorFails"/>
</methods>
</class>
- <class name="org.jboss.jsr299.tck.tests.context.request.RequestContextTest">
- <methods>
- <exclude name="testRequestScopeActiveDuringServiceMethod"/>
- <exclude name="testRequestScopeActiveDuringServletFilter"/>
- <exclude name="testRequestScopeIsDestroyedAfterServletRequest"/>
- </methods>
- </class>
- <class name="org.jboss.jsr299.tck.tests.context.session.SessionContextTest">
- <methods>
- <exclude name="testSessionContextDestroyedWhenHttpSessionInvalidated"/>
- <exclude name="testSessionContextDestroyedWhenHttpSessionTimesOut"/>
- <exclude name="testSessionContextSharedBetweenServletRequestsInSameHttpSession"/>
- <exclude name="testSessionScopeActiveDuringDoFilterMethod"/>
- <exclude name="testSessionScopeActiveDuringServiceMethod"/>
- </methods>
- </class>
<class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest">
<methods>
<exclude name="test"/>
@@ -133,10 +107,10 @@
<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.persistenceContext.PersistenceContextInjectionTest">
<methods>
<exclude name="testBeanTypesAndBindingTypesOfPersistenceContext"/>
- <exclude name="testInjectionOfPersistenceContext"/>
<exclude name="testInjectionOfPersistenceUnit"/>
- <exclude name="testPassivationOfPersistenceContext"/>
+ <exclude name="testInjectionOfPersistenceContext"/>
<exclude name="testPassivationOfPersistenceUnit"/>
+ <exclude name="testPassivationOfPersistenceContext"/>
</methods>
</class>
<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.resource.InjectionOfResourceTest">
@@ -151,11 +125,6 @@
<exclude name="testNonContextualSessionBeanReferenceIsIntercepted"/>
</methods>
</class>
- <class name="org.jboss.jsr299.tck.tests.lookup.clientProxy.incontainer.ClientProxyTest">
- <methods>
- <exclude name="testInvocationIsProcessedOnCurrentInstance"/>
- </methods>
- </class>
<class name="org.jboss.jsr299.tck.tests.lookup.el.ResolutionByNameTest">
<methods>
<exclude name="testContextCreatesNewInstanceForInjection"/>
@@ -171,16 +140,8 @@
</class>
<class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest">
<methods>
- <exclude name="testFilterInitializerMethodCalled"/>
- <exclude name="testInjectionIntoFilter"/>
<exclude name="testInjectionIntoJSFManagedBean"/>
- <exclude name="testInjectionIntoServlet"/>
- <exclude name="testInjectionIntoServletListener"/>
<exclude name="testInjectionIntoTagHandler"/>
- <exclude name="testInjectionIntoTagLibraryListener"/>
- <exclude name="testServletInitializerMethodCalled"/>
- <exclude name="testServletListenerInitializerMethodCalled"/>
- <exclude name="testTagLibraryListenerInitializerMethodCalled"/>
</methods>
</class>
<class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.ws.InjectionIntoWebServiceEndPointTest">