[jboss-cvs] JBossAS SVN: r96222 - trunk/server/src/main/java/org/jboss/web/deployers.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 10 10:14:51 EST 2009


Author: remy.maucherat at jboss.com
Date: 2009-11-10 10:14:51 -0500 (Tue, 10 Nov 2009)
New Revision: 96222

Modified:
   trunk/server/src/main/java/org/jboss/web/deployers/HandlesTypesClassFilter.java
   trunk/server/src/main/java/org/jboss/web/deployers/ServletContainerInitializerDeployer.java
Log:
- Use a set as a particular class may be specified by more than one SCI.

Modified: trunk/server/src/main/java/org/jboss/web/deployers/HandlesTypesClassFilter.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/HandlesTypesClassFilter.java	2009-11-10 14:10:51 UTC (rev 96221)
+++ trunk/server/src/main/java/org/jboss/web/deployers/HandlesTypesClassFilter.java	2009-11-10 15:14:51 UTC (rev 96222)
@@ -54,10 +54,10 @@
    private HashSet<String> childPaths = new HashSet<String>();
    private Map<ServletContainerInitializer, Set<Class<?>>> handlesTypes;
    private Class<?>[] typesArray;
-   private Map<Class<?>, ServletContainerInitializer> typesMap;
+   private Map<Class<?>, Set<ServletContainerInitializer>> typesMap;
 
    public HandlesTypesClassFilter(VFSDeploymentUnit unit, ClassLoader loader,
-         VirtualFile classpathRoot, Class<?>[] typesArray, Map<Class<?>, ServletContainerInitializer> typesMap,
+         VirtualFile classpathRoot, Class<?>[] typesArray, Map<Class<?>, Set<ServletContainerInitializer>> typesMap,
          Map<ServletContainerInitializer, Set<Class<?>>> handlesTypes)
    {
       this.loader = loader;
@@ -121,8 +121,11 @@
                if ((clazz.isAnnotation() && c.isAnnotationPresent((Class<? extends Annotation>) clazz))
                      || clazz.isAssignableFrom(c))
                {
-                  ServletContainerInitializer sci = typesMap.get(clazz);
-                  handlesTypes.get(sci).add(c);
+                  Set<ServletContainerInitializer> sciSet = typesMap.get(clazz);
+                  for (ServletContainerInitializer sci : sciSet)
+                  {
+                     handlesTypes.get(sci).add(c);
+                  }
                }
             }
          }

Modified: trunk/server/src/main/java/org/jboss/web/deployers/ServletContainerInitializerDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/ServletContainerInitializerDeployer.java	2009-11-10 14:10:51 UTC (rev 96221)
+++ trunk/server/src/main/java/org/jboss/web/deployers/ServletContainerInitializerDeployer.java	2009-11-10 15:14:51 UTC (rev 96222)
@@ -130,8 +130,8 @@
          }
       }
       // Process HandlesTypes for ServletContainerInitializer
-      Map<Class<?>, ServletContainerInitializer> typesMap = 
-         new HashMap<Class<?>, ServletContainerInitializer>();
+      Map<Class<?>, Set<ServletContainerInitializer>> typesMap = 
+         new HashMap<Class<?>, Set<ServletContainerInitializer>>();
       Map<ServletContainerInitializer, Set<Class<?>>> handlesTypes = 
          new HashMap<ServletContainerInitializer, Set<Class<?>>>();
       for (ServletContainerInitializer service : scis)
@@ -144,7 +144,13 @@
             {
                for (Class<?> type : typesArray)
                {
-                  typesMap.put(type, service);
+                  Set<ServletContainerInitializer> servicesSet = typesMap.get(type);
+                  if (servicesSet == null)
+                  {
+                     servicesSet = new HashSet<ServletContainerInitializer>();
+                     typesMap.put(type, servicesSet);
+                  }
+                  servicesSet.add(service);
                   handlesTypes.put(service, new HashSet<Class<?>>());
                }
             }




More information about the jboss-cvs-commits mailing list