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) {