You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/04/08 04:01:44 UTC

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

Author: dblevins
Date: Sun Apr  8 02:01:43 2012
New Revision: 1310938

URL: http://svn.apache.org/viewvc?rev=1310938&view=rev
Log:
TOMEE-159: Removed "load every class" logic that crept in prior to certification -- performance issue

Code was loading every class so it could be scanned.  Refined it to web classes only (@WebListener, @WebServlet, @WebFilter)

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=1310938&r1=1310937&r2=1310938&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 Apr  8 02:01:43 2012
@@ -1899,18 +1899,18 @@ public class AnnotationDeployer implemen
 
             IAnnotationFinder finder = webModule.getFinder();
 
-            if (finder != null && false) {
-                // Add all the classes of the previous finder
-                // TODO this part can be optimized
-                final List<String> classNames = finder.getAnnotatedClassNames();
-                for (String rawClassName : classNames) {
-                    final String className = realClassName(rawClassName);
+            if (finder != null) {
+
+                for (String apiClassName : WEB_CLASSES) {
+                    final Class<? extends Annotation> clazz;
                     try {
-                        Class clazz = classLoader.loadClass(className);
-                        classes.add(clazz);
-                    } catch (Throwable e) {
-                        logger.debug(String.format("%s: Unable to load class for scanning: %s", e.getClass().getName(), className));
+                        clazz = (Class<? extends Annotation>) classLoader.loadClass(apiClassName);
+                    } catch (ClassNotFoundException e) {
+                        continue;
                     }
+
+                    final List<Class<?>> found = finder.findAnnotatedClasses(clazz);
+                    classes.addAll(found);
                 }
             }