Author: rmannibucau
Date: Sun Nov 25 18:41:28 2012
New Revision: 1413384

URL: http://svn.apache.org/viewvc?rev=1413384&view=rev
Log:
small optim for @WebXXX parsing + ignoring injectionpointbean in hierarchic 
bean manager forparent bm

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
    
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/cdi/WebappBeanManager.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java?rev=1413384&r1=1413383&r2=1413384&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
 Sun Nov 25 18:41:28 2012
@@ -19,6 +19,7 @@ package org.apache.openejb.cdi;
 import org.apache.webbeans.component.BeanManagerBean;
 import org.apache.webbeans.component.BuildInOwbBean;
 import org.apache.webbeans.component.ConversationBean;
+import org.apache.webbeans.component.InjectionPointBean;
 import org.apache.webbeans.container.BeanManagerImpl;
 
 import javax.el.ELResolver;
@@ -383,7 +384,7 @@ public class WebappBeanManager extends B
         deploymentBeans.clear();
         for (Bean<?> bean : getParentBm().getBeans()) {
             if (bean instanceof BeanManagerBean || bean instanceof 
BuildInOwbBean
-                    || bean instanceof ConversationBean) {
+                    || bean instanceof ConversationBean || bean instanceof 
InjectionPointBean) {
                 continue;
             }
             deploymentBeans.add(bean);

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=1413384&r1=1413383&r2=1413384&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 Nov 25 18:41:28 2012
@@ -214,7 +214,6 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.net.MalformedURLException;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
@@ -1130,7 +1129,7 @@ public class AnnotationDeployer implemen
              * Servlet, Filter, Listener
              */
 
-            Map<URL, List<String>> urlByClasses = null;
+            Map<String, String> urlByClasses = null;
             for (String apiClassName : WEB_CLASSES) {
                 final Class<? extends Annotation> clazz;
                 try {
@@ -1145,7 +1144,14 @@ public class AnnotationDeployer implemen
                         if (limitedFinder instanceof AnnotationFinder) {
                             final Archive archive = ((AnnotationFinder) 
limitedFinder).getArchive();
                             if (archive instanceof WebappAggregatedArchive) {
-                                urlByClasses = ((WebappAggregatedArchive) 
archive).getClassesMap();
+                                final Map<URL, List<String>> index = 
((WebappAggregatedArchive) archive).getClassesMap();
+                                urlByClasses = new HashMap<String, String>();
+                                for (Map.Entry<URL, List<String>> entry : 
index.entrySet()) {
+                                    final String url = 
entry.getKey().toExternalForm();
+                                    for (String current : entry.getValue()) {
+                                        urlByClasses.put(current,  url);
+                                    }
+                                }
                             }
                         }
                     }
@@ -1155,6 +1161,10 @@ public class AnnotationDeployer implemen
                 addWebAnnotatedClassInfo(urlByClasses, 
webModule.getWebAnnotatedClasses(), found);
             }
 
+            if (urlByClasses != null) {
+                urlByClasses.clear();
+            }
+
             return webModule;
         }
 
@@ -5224,7 +5234,7 @@ public class AnnotationDeployer implemen
         return classes;
     }
 
-    private static Map<String, Set<String>> addWebAnnotatedClassInfo(final 
Map<URL, List<String>> urlByClasses, final Map<String, Set<String>> classes, 
final List<Annotated<Class<?>>> found) {
+    private static Map<String, Set<String>> addWebAnnotatedClassInfo(final 
Map<String, String> urlByClasses, final Map<String, Set<String>> classes, final 
List<Annotated<Class<?>>> found) {
         for (Annotated<Class<?>> clazz : found) {
             final Class<?> loadedClass = clazz.get();
             final String name = loadedClass.getName();
@@ -5232,13 +5242,7 @@ public class AnnotationDeployer implemen
             // url of the jar/folder containing the class
             String url = null;
             if (urlByClasses != null) {
-                for (Map.Entry<URL, List<String>> entry : 
urlByClasses.entrySet()) {
-                    for (String current : entry.getValue()) {
-                        if (name.equals(current)) {
-                            url = entry.getKey().toExternalForm();
-                        }
-                    }
-                }
+                url = urlByClasses.get(name);
             }
 
             if (url == null) {


Reply via email to