once exceptions propagated to client side more properly: Tests passed/Failed/Skipped:1437/42/20
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> 2015-03-14 20:13 GMT+01:00 Romain Manni-Bucau <[email protected]>: > FYI on tomee we are here: > > Tests passed/Failed/Skipped:1174/40/285 > > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <http://rmannibucau.wordpress.com> | Github > <https://github.com/rmannibucau> | LinkedIn > <https://www.linkedin.com/in/rmannibucau> | Tomitriber > <http://www.tomitribe.com> > > 2015-03-13 19:04 GMT+01:00 Thiago Veronezi <[email protected]>: > >> Great news! :) >> On 13 Mar 2015 14:02, "Romain Manni-Bucau" <[email protected]> wrote: >> >> > Tests run: 1499, Failures: 0, Errors: 0, Skipped: 0 >> > >> > [INFO] >> > [INFO] --- maven-jar-plugin:2.5:jar (default-jar) @ cdi-embedded --- >> > [INFO] Building jar: >> > >> > >> /home/rmannibucau/dev/Apache/tomee-trunk/tck/cdi-embedded/target/cdi-embedded-2.0.0-SNAPSHOT.jar >> > [INFO] >> > [INFO] --- maven-site-plugin:3.4:attach-descriptor (attach-descriptor) @ >> > cdi-embedded --- >> > [INFO] >> > [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ >> > cdi-embedded --- >> > [INFO] Installing >> > >> > >> /home/rmannibucau/dev/Apache/tomee-trunk/tck/cdi-embedded/target/cdi-embedded-2.0.0-SNAPSHOT.jar >> > to >> > >> > >> /home/rmannibucau/.m2/repository/org/apache/openejb/cdi-embedded/2.0.0-SNAPSHOT/cdi-embedded-2.0.0-SNAPSHOT.jar >> > [INFO] Installing >> > /home/rmannibucau/dev/Apache/tomee-trunk/tck/cdi-embedded/pom.xml to >> > >> > >> /home/rmannibucau/.m2/repository/org/apache/openejb/cdi-embedded/2.0.0-SNAPSHOT/cdi-embedded-2.0.0-SNAPSHOT.pom >> > [INFO] >> > ------------------------------------------------------------------------ >> > [INFO] BUILD SUCCESS >> > [INFO] >> > ------------------------------------------------------------------------ >> > [INFO] Total time: 05:31 min >> > [INFO] Finished at: 2015-03-13T18:59:53+01:00 >> > [INFO] Final Memory: 47M/615M >> > [INFO] >> > ------------------------------------------------------------------------ >> > >> > :) >> > >> > next step tomee but needs a bit of investment since setup is not done at >> > all yet >> > >> > Romain Manni-Bucau >> > @rmannibucau <https://twitter.com/rmannibucau> | Blog >> > <http://rmannibucau.wordpress.com> | Github < >> > https://github.com/rmannibucau> | >> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber >> > <http://www.tomitribe.com> >> > >> > ---------- Forwarded message ---------- >> > From: <[email protected]> >> > Date: 2015-03-13 19:00 GMT+01:00 >> > Subject: tomee git commit: more validation for ejb specialization + >> remote >> > interfaces are not part of the ejb api (for cdi) + better cdi tck state >> > clean up using arquillian API >> > To: [email protected] >> > >> > >> > Repository: tomee >> > Updated Branches: >> > refs/heads/master 5359f312b -> ba30d45dc >> > >> > >> > more validation for ejb specialization + remote interfaces are not part >> of >> > the ejb api (for cdi) + better cdi tck state clean up using arquillian >> API >> > >> > >> > Project: http://git-wip-us.apache.org/repos/asf/tomee/repo >> > Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/ba30d45d >> > Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/ba30d45d >> > Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/ba30d45d >> > >> > Branch: refs/heads/master >> > Commit: ba30d45dcca686ba2c3a28a8d9314ffacfb3300b >> > Parents: 5359f31 >> > Author: Romain Manni-Bucau <[email protected]> >> > Authored: Fri Mar 13 18:59:58 2015 +0100 >> > Committer: Romain Manni-Bucau <[email protected]> >> > Committed: Fri Mar 13 18:59:58 2015 +0100 >> > >> > ---------------------------------------------------------------------- >> > .../java/org/apache/openejb/cdi/CdiEjbBean.java | 3 +- >> > .../java/org/apache/openejb/cdi/CdiPlugin.java | 15 +++++++-- >> > tck/cdi-embedded/pom.xml | 1 - >> > .../ArquillianTestCleanUpExtension.java | 35 >> ++++++++++++++++++++ >> > .../tck/cdi/embedded/CleanUpAssembler.java | 34 >> ------------------- >> > ....jboss.arquillian.core.spi.LoadableExtension | 1 + >> > tck/cdi-embedded/src/test/resources/failing.xml | 2 +- >> > 7 files changed, 52 insertions(+), 39 deletions(-) >> > ---------------------------------------------------------------------- >> > >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java >> > ---------------------------------------------------------------------- >> > diff --git >> > >> > >> a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java >> > >> > >> b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java >> > index b3a1702..0480090 100644 >> > --- >> > >> > >> a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java >> > +++ >> > >> > >> b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java >> > @@ -36,7 +36,6 @@ import >> > org.apache.webbeans.intercept.InterceptorResolutionService; >> > import org.apache.webbeans.portable.InjectionTargetImpl; >> > import org.apache.webbeans.util.GenericsUtil; >> > >> > -import java.io.Serializable; >> > import java.lang.reflect.InvocationHandler; >> > import java.lang.reflect.Method; >> > import java.lang.reflect.ParameterizedType; >> > @@ -363,12 +362,14 @@ public class CdiEjbBean<T> extends BaseEjbBean<T> >> > implements InterceptedMarker, >> > } >> > } >> > >> > + /* not in EJB types - 3.2.2 of cdi 1.2 >> > final List<Class> clRemote = >> > beanContext.getBusinessRemoteInterfaces(); >> > if (clRemote != null && !clRemote.isEmpty()) { >> > for (final Class<?> c : clRemote) { >> > ejbTypes.add(c); // parentInterfaces(c), but is it >> > useful in practise? >> > } >> > } >> > + */ >> > >> > ejbTypes.add(Object.class); >> > } >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java >> > ---------------------------------------------------------------------- >> > diff --git >> > >> > >> a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java >> > >> > >> b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java >> > index a06ea9b..8dab787 100644 >> > --- >> > >> > >> a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java >> > +++ >> > >> > >> b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java >> > @@ -49,6 +49,7 @@ import >> org.apache.webbeans.spi.plugins.AbstractOwbPlugin; >> > import org.apache.webbeans.spi.plugins.OpenWebBeansEjbPlugin; >> > import org.apache.webbeans.spi.plugins.OpenWebBeansJavaEEPlugin; >> > import org.apache.webbeans.spi.plugins.OpenWebBeansWebPlugin; >> > +import org.apache.webbeans.util.GenericsUtil; >> > import org.apache.webbeans.util.WebBeansUtil; >> > >> > import javax.enterprise.context.ApplicationScoped; >> > @@ -300,8 +301,18 @@ public class CdiPlugin extends AbstractOwbPlugin >> > implements OpenWebBeansJavaEEPl >> > public <T> Bean<T> defineSessionBean(final Class<T> clazz, final >> > BeanAttributes<T> attributes, final AnnotatedType<T> annotatedType) { >> > final BeanContext bc = findBeanContext(webBeansContext, clazz); >> > final Class<?> superClass = >> bc.getManagedClass().getSuperclass(); >> > - if (superClass != Object.class && !isSessionBean(superClass) && >> > annotatedType.isAnnotationPresent(Specializes.class)) { >> > - throw new DefinitionException("You can only specialize >> another >> > EJB: " + clazz); >> > + if (annotatedType.isAnnotationPresent(Specializes.class)) { >> > + if (superClass != Object.class && >> !isSessionBean(superClass)) >> > { >> > + throw new DefinitionException("You can only specialize >> > another EJB: " + clazz); >> > + } >> > + final BeanContext parentBc = >> findBeanContext(webBeansContext, >> > superClass); >> > + final List<Class> businessLocalInterfaces = new >> > ArrayList<>(parentBc.getBusinessLocalInterfaces()); >> > + for (final Class<?> api : bc.getBusinessLocalInterfaces()) >> { >> > + >> > businessLocalInterfaces.removeAll(GenericsUtil.getTypeClosure(api)); >> > + } >> > + if (!businessLocalInterfaces.isEmpty()) { >> > + throw new DefinitionException("You can only specialize >> > another EJB with at least the same API: " + clazz); >> > + } >> > } >> > final CdiEjbBean<T> bean = new OpenEJBBeanBuilder<T>(bc, >> > webBeansContext, annotatedType, attributes).createBean(clazz, >> > !annotatedType.isAnnotationPresent(Vetoed.class)); >> > >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/tck/cdi-embedded/pom.xml >> > ---------------------------------------------------------------------- >> > diff --git a/tck/cdi-embedded/pom.xml b/tck/cdi-embedded/pom.xml >> > index 8ee76d9..e2c9e08 100644 >> > --- a/tck/cdi-embedded/pom.xml >> > +++ b/tck/cdi-embedded/pom.xml >> > @@ -203,7 +203,6 @@ >> > >> > >> > >> <openejb.cdi.producer.interception>false</openejb.cdi.producer.interception> >> > >> > <openejb.cdi.filter.classloader>false</openejb.cdi.filter.classloader> >> > >> > - >> > >> > >> <openejb.assembler>org.apache.openejb.tck.cdi.embedded.CleanUpAssembler</openejb.assembler> >> > <openejb.jul.forceReload>true</openejb.jul.forceReload> >> > >> > >> > >> <openejb.strict.interface.declaration>true</openejb.strict.interface.declaration> >> > <openejb.http.mock-request>true</openejb.http.mock-request> >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ArquillianTestCleanUpExtension.java >> > ---------------------------------------------------------------------- >> > diff --git >> > >> > >> a/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ArquillianTestCleanUpExtension.java >> > >> > >> b/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ArquillianTestCleanUpExtension.java >> > new file mode 100644 >> > index 0000000..b0fda02 >> > --- /dev/null >> > +++ >> > >> > >> b/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ArquillianTestCleanUpExtension.java >> > @@ -0,0 +1,35 @@ >> > +/* >> > + * 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.jboss.arquillian.core.api.annotation.Observes; >> > +import org.jboss.arquillian.core.spi.LoadableExtension; >> > +import org.jboss.arquillian.test.spi.event.suite.AfterClass; >> > +import org.jboss.cdi.tck.util.ActionSequence; >> > + >> > +public class ArquillianTestCleanUpExtension implements >> LoadableExtension { >> > + @Override >> > + public void register(final ExtensionBuilder extensionBuilder) { >> > + extensionBuilder.observer(CleanUpObserver.class); >> > + } >> > + >> > + public static class CleanUpObserver { >> > + public void cleanup(@Observes final AfterClass ignored) { >> > + ActionSequence.reset(); // avoids to leak between tests, >> works >> > in war cause of classloading but not in embedded mode >> > + } >> > + } >> > +} >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/CleanUpAssembler.java >> > ---------------------------------------------------------------------- >> > diff --git >> > >> > >> a/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/CleanUpAssembler.java >> > >> > >> b/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/CleanUpAssembler.java >> > deleted file mode 100644 >> > index c31bd36..0000000 >> > --- >> > >> > >> a/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/CleanUpAssembler.java >> > +++ /dev/null >> > @@ -1,34 +0,0 @@ >> > -/* >> > - * 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.UndeployException; >> > -import org.apache.openejb.assembler.classic.AppInfo; >> > -import org.apache.openejb.assembler.classic.Assembler; >> > -import org.apache.openejb.loader.SystemInstance; >> > -import org.apache.openejb.spi.ContainerSystem; >> > -import org.jboss.cdi.tck.util.ActionSequence; >> > - >> > -public class CleanUpAssembler extends Assembler { >> > - @Override >> > - public void destroyApplication(final AppInfo appInfo) throws >> > UndeployException { >> > - super.destroyApplication(appInfo); >> > - if >> > >> > >> (SystemInstance.get().getComponent(ContainerSystem.class).getAppContexts().isEmpty()) >> > { >> > - ActionSequence.reset(); >> > - } >> > - } >> > -} >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/tck/cdi-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension >> > ---------------------------------------------------------------------- >> > diff --git >> > >> > >> a/tck/cdi-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension >> > >> > >> b/tck/cdi-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension >> > new file mode 100644 >> > index 0000000..e7e35c9 >> > --- /dev/null >> > +++ >> > >> > >> b/tck/cdi-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension >> > @@ -0,0 +1 @@ >> > +org.apache.openejb.tck.cdi.embedded.ArquillianTestCleanUpExtension >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/tomee/blob/ba30d45d/tck/cdi-embedded/src/test/resources/failing.xml >> > ---------------------------------------------------------------------- >> > diff --git a/tck/cdi-embedded/src/test/resources/failing.xml >> > b/tck/cdi-embedded/src/test/resources/failing.xml >> > index b0a5663..9cad804 100644 >> > --- a/tck/cdi-embedded/src/test/resources/failing.xml >> > +++ b/tck/cdi-embedded/src/test/resources/failing.xml >> > @@ -31,7 +31,7 @@ >> > -Dopenejb.embedded.try-jsp=true >> > --> >> > <classes> >> > - <class >> > >> > >> name="org.jboss.cdi.tck.tests.lookup.modules.SpecializedBeanInjectionNotAvailable02Test" >> > /> >> > + <class >> > >> > >> name="org.jboss.cdi.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest" >> > /> >> > </classes> >> > </test> >> > </suite> >> > >> > >
