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 2013/11/22 07:40:42 UTC

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

Author: rmannibucau
Date: Fri Nov 22 06:40:42 2013
New Revision: 1544419

URL: http://svn.apache.org/r1544419
Log:
TOMEE-1085 better check for jaxrs scanned classes

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.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=1544419&r1=1544418&r2=1544419&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 Fri Nov 22 06:40:42 2013
@@ -1236,7 +1236,7 @@ public class AnnotationDeployer implemen
         }
 
         private static void addRestApplicationIfPossible(final WebModule webModule, final Class<? extends Application> app) {
-            if (Modifier.isAbstract(app.getModifiers())) {
+            if (!isInstantiable(app)) {
                 return;
             }
 
@@ -5300,8 +5300,7 @@ public class AnnotationDeployer implemen
         List<Annotated<Class<?>>> annotatedClasses = finder.findMetaAnnotatedClasses(Path.class);
         for (Annotated<Class<?>> aClazz : annotatedClasses) {
             Class<?> clazz = aClazz.get();
-            int modifiers = clazz.getModifiers();
-            if (!Modifier.isAbstract(modifiers)) {
+            if (isInstantiable(clazz)) {
                 if (!isEJB(clazz)) {
                     classes.add(clazz.getName());
                 } else {
@@ -5316,8 +5315,7 @@ public class AnnotationDeployer implemen
             Method method = aMethod.get();
             Class<?> clazz = method.getDeclaringClass();
 
-            int modifiers = clazz.getModifiers();
-            if (!Modifier.isAbstract(modifiers)) {
+            if (isInstantiable(clazz)) {
                 if (!isEJB(clazz)) {
                     classes.add(clazz.getName());
                 } else {
@@ -5329,6 +5327,12 @@ public class AnnotationDeployer implemen
         return classes;
     }
 
+    private static boolean isInstantiable(final Class<?> clazz) {
+        final int modifiers = clazz.getModifiers();
+        return !Modifier.isAbstract(modifiers) && !(clazz.getEnclosingClass() != null && !Modifier.isStatic(modifiers))
+                && Modifier.isPublic(modifiers);
+    }
+
     private static boolean isEJB(Class<?> clazz) {
         return clazz.isAnnotationPresent(Stateless.class)
             || clazz.isAnnotationPresent(Singleton.class)