You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/08/07 21:29:37 UTC
svn commit: r1616572 - in /tomee/tomee/trunk:
container/openejb-core/src/main/java/org/apache/openejb/config/
container/openejb-core/src/main/java/org/apache/openejb/config/rules/
examples/deltaspike-fullstack/ server/openejb-cxf-rs/src/test/java/org/a...
Author: rmannibucau
Date: Thu Aug 7 19:29:37 2014
New Revision: 1616572
URL: http://svn.apache.org/r1616572
Log:
for JAXRS try to avoid to call Application as much as possible, goal is mainly to ensure CDI works in Application
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckRestMethodArePublic.java
tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml
tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java
tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1616572&r1=1616571&r2=1616572&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Thu Aug 7 19:29:37 2014
@@ -2099,8 +2099,9 @@ public class AnnotationDeployer implemen
try {
final Application app = Application.class.cast(clazz.newInstance());
try {
- if (!app.getClasses().isEmpty()) {
- classes.addAll(app.getClasses());
+ final Set<Class<?>> appClasses = app.getClasses();
+ if (!appClasses.isEmpty()) {
+ classes.addAll(appClasses);
} else {
addRestClassesToScannedClasses(webModule, classes, classLoader);
}
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckRestMethodArePublic.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckRestMethodArePublic.java?rev=1616572&r1=1616571&r2=1616572&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckRestMethodArePublic.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckRestMethodArePublic.java Thu Aug 7 19:29:37 2014
@@ -79,9 +79,11 @@ public class CheckRestMethodArePublic im
for (final Class<?> rsClass : appInstance.getClasses()) {
classes.add(rsClass.getName());
}
+ /* don't do it or ensure you have cdi activated! + CXF will catch it later
for (final Object rsSingleton : appInstance.getSingletons()) {
classes.add(rsSingleton.getClass().getName());
}
+ */
} catch (final RuntimeException npe) {
if (appInstance == null) {
throw npe;
Modified: tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml?rev=1616572&r1=1616571&r2=1616572&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml (original)
+++ tomee/tomee/trunk/examples/deltaspike-fullstack/pom.xml Thu Aug 7 19:29:37 2014
@@ -83,7 +83,7 @@
<openejb.jul.forceReload>true</openejb.jul.forceReload>
<logging.level.OpenEJB.startup>FINEST</logging.level.OpenEJB.startup>
</systemPropertyVariables>
- <reuseForks>false</reuseForks>
+ <forkMode>never</forkMode>
</configuration>
</plugin>
</plugins>
Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java?rev=1616572&r1=1616571&r2=1616572&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java Thu Aug 7 19:29:37 2014
@@ -32,7 +32,9 @@ import org.junit.runner.RunWith;
import javax.inject.Inject;
import javax.ws.rs.core.Application;
-import java.util.HashSet;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Properties;
import java.util.Set;
@@ -66,7 +68,10 @@ public class CDIApplicationTest {
@Test
public void isCdi() {
- assertTrue(MyCdiRESTApplication.injection);
+ assertEquals(2, MyCdiRESTApplication.injection.size());
+ for (final Boolean b : MyCdiRESTApplication.injection) {
+ assertTrue(b);
+ }
assertEquals("Hi from REST World!", WebClient.create("http://localhost:" + port + "/foo/").path("/first/hi").get(String.class));
}
@@ -74,22 +79,20 @@ public class CDIApplicationTest {
}
public static class MyCdiRESTApplication extends Application {
- public static boolean injection = false;
+ public static Collection<Boolean> injection = new ArrayList<>();
@Inject
private ACdiBeanInjectedInApp cdi;
public Set<Class<?>> getClasses() {
- injection = cdi != null;
-
- if (cdi == null) {
- throw new NullPointerException();
- }
-
// if no class are returned we use scanning, since we don't test rest deployment we put a single class
- final Set<Class<?>> clazz = new HashSet<Class<?>>();
- clazz.add(MyFirstRestClass.class);
- return clazz;
+ return Collections.<Class<?>>singleton(MyFirstRestClass.class);
+ }
+
+ @Override
+ public Set<Object> getSingletons() {
+ injection.add(cdi != null);
+ return super.getSingletons();
}
}
}
Modified: tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1616572&r1=1616571&r2=1616572&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java (original)
+++ tomee/tomee/trunk/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java Thu Aug 7 19:29:37 2014
@@ -155,7 +155,7 @@ public abstract class RESTService implem
throw new OpenEJBRestRuntimeException("can't create class " + app, e);
}
- final Set<Class<?>> classes = application.getClasses();
+ final Set<Class<?>> classes = new HashSet<>(application.getClasses());
final Set<Object> singletons = application.getSingletons();
if (classes.size() + singletons.size() == 0) {