[jboss-cvs] JBossAS SVN: r107201 - in projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi: base and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 29 10:30:00 EDT 2010
Author: alesj
Date: 2010-07-29 10:29:59 -0400 (Thu, 29 Jul 2010)
New Revision: 107201
Modified:
projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/DelegateLoader.java
projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderInformation.java
Log:
Only index non-filtering packages.
Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/DelegateLoader.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/DelegateLoader.java 2010-07-29 12:43:36 UTC (rev 107200)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/DelegateLoader.java 2010-07-29 14:29:59 UTC (rev 107201)
@@ -22,6 +22,8 @@
package org.jboss.classloader.spi;
import org.jboss.classloader.spi.base.BaseDelegateLoader;
+import org.jboss.classloader.spi.filter.ClassFilter;
+import org.jboss.classloader.spi.filter.ClassFilterUtils;
/**
* DelegateLoader.
@@ -56,8 +58,18 @@
{
super(factory);
}
-
+
/**
+ * Get the filter.
+ *
+ * @return the filter
+ */
+ public ClassFilter getFilter()
+ {
+ return ClassFilterUtils.EVERYTHING;
+ }
+
+ /**
* Get the ClassLoaderPolicy associated with this DelegateLoader.
*
* @return the class loader policy
Modified: projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderInformation.java
===================================================================
--- projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderInformation.java 2010-07-29 12:43:36 UTC (rev 107200)
+++ projects/jboss-cl/trunk/classloader/src/main/java/org/jboss/classloader/spi/base/ClassLoaderInformation.java 2010-07-29 14:29:59 UTC (rev 107201)
@@ -32,6 +32,7 @@
import org.jboss.classloader.spi.DelegateLoader;
import org.jboss.classloader.spi.ImportType;
import org.jboss.classloader.spi.Loader;
+import org.jboss.classloader.spi.filter.ClassFilter;
import org.jboss.classloader.spi.helpers.AbstractClassLoaderCache;
/**
@@ -129,7 +130,7 @@
cantBlacklist++;
}
- addLoaderToIndex(baseDelegate, delegatePolicy, importType, ImportType.ALL);
+ addLoaderToIndex(delegate, delegatePolicy, importType, ImportType.ALL);
}
this.delegates = Collections.synchronizedMap(temp);
@@ -344,7 +345,7 @@
* @param policy the policy
* @param types the types
*/
- private void addLoaderToIndex(Loader loader, BaseClassLoaderPolicy policy, ImportType... types)
+ private void addLoaderToIndex(DelegateLoader loader, BaseClassLoaderPolicy policy, ImportType... types)
{
if (policy == null)
return;
@@ -352,6 +353,7 @@
String[] packageNames = policy.getPackageNames();
if (packageNames != null && packageNames.length > 0)
{
+ ClassFilter filter = loader.getFilter();
for (ImportType type : types)
{
Map<String, List<Loader>> map = index.get(type);
@@ -362,13 +364,16 @@
}
for (String pn : packageNames)
{
- List<Loader> loaders = map.get(pn);
- if (loaders == null)
+ if (filter != null && filter.matchesPackageName(pn))
{
- loaders = new CopyOnWriteArrayList<Loader>();
- map.put(pn, loaders);
+ List<Loader> loaders = map.get(pn);
+ if (loaders == null)
+ {
+ loaders = new CopyOnWriteArrayList<Loader>();
+ map.put(pn, loaders);
+ }
+ loaders.add(loader);
}
- loaders.add(loader);
}
}
}
@@ -381,7 +386,7 @@
* @param policy the policy
* @param types the types
*/
- private void removeLoaderFromIndex(Loader loader, BaseClassLoaderPolicy policy, ImportType... types)
+ private void removeLoaderFromIndex(DelegateLoader loader, BaseClassLoaderPolicy policy, ImportType... types)
{
if (policy == null)
return;
@@ -389,6 +394,7 @@
String[] packageNames = policy.getPackageNames();
if (packageNames != null && packageNames.length > 0)
{
+ ClassFilter filter = loader.getFilter();
for (ImportType type : types)
{
Map<String, List<Loader>> map = index.get(type);
@@ -396,14 +402,17 @@
{
for (String pn : packageNames)
{
- List<Loader> loaders = map.get(pn);
- if (loaders != null)
+ if (filter != null && filter.matchesPackageName(pn))
{
- if (loaders.remove(loader) && loaders.isEmpty())
+ List<Loader> loaders = map.get(pn);
+ if (loaders != null)
{
- map.remove(pn); // remove returns loaders
- if (map.isEmpty())
- index.remove(type);
+ if (loaders.remove(loader) && loaders.isEmpty())
+ {
+ map.remove(pn); // remove returns loaders
+ if (map.isEmpty())
+ index.remove(type);
+ }
}
}
}
More information about the jboss-cvs-commits
mailing list