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 2011/10/09 17:51:32 UTC

svn commit: r1180635 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Author: rmannibucau
Date: Sun Oct  9 15:51:32 2011
New Revision: 1180635

URL: http://svn.apache.org/viewvc?rev=1180635&view=rev
Log:
keeping only application with a default constructor

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1180635&r1=1180634&r2=1180635&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Sun Oct  9 15:51:32 2011
@@ -201,6 +201,7 @@ import java.beans.BeanInfo;
 import java.beans.Introspector;
 import java.beans.PropertyDescriptor;
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -998,15 +999,24 @@ public class AnnotationDeployer implemen
                 webApp.getServlet().add(servlet);
             }
 
-            /*
-             * REST
-             */
+           /*
+                    * REST
+                    */
             // get by annotations
             webModule.getRestClasses().addAll(findRestClasses(webModule, finder));
-            // Applications
+            // Applications with a default constructor
             List<Class<? extends Application>> applications = finder.findSubclasses(Application.class);
             for (Class<? extends Application> app : applications) {
-                webModule.getRestApplications().add(app.getName());
+                if (app.getConstructors().length == 0) {
+                    webModule.getRestApplications().add(app.getName());
+                } else {
+                    for (Constructor<?> ctr : app.getConstructors()) {
+                        if (ctr.getParameterTypes().length == 0) {
+                            webModule.getRestApplications().add(app.getName());
+                            break;
+                        }
+                    }
+                }
             }
 
             return webModule;