[jboss-cvs] JBossAS SVN: r70184 - in projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi: filter and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 27 10:18:06 EST 2008
Author: adrian at jboss.org
Date: 2008-02-27 10:18:05 -0500 (Wed, 27 Feb 2008)
New Revision: 70184
Modified:
projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/BaseDelegateLoader.java
projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/FilteredDelegateLoader.java
Log:
Allow subclasses of DelegateLoader to lazily initialise, e.g. set the filter when the policy is determined
Modified: projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/BaseDelegateLoader.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/BaseDelegateLoader.java 2008-02-27 14:58:13 UTC (rev 70183)
+++ projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/base/BaseDelegateLoader.java 2008-02-27 15:18:05 UTC (rev 70184)
@@ -25,6 +25,7 @@
import java.net.URL;
import java.util.Set;
+import org.jboss.classloader.spi.ClassLoaderPolicy;
import org.jboss.classloader.spi.ClassLoaderPolicyFactory;
import org.jboss.classloader.spi.Loader;
import org.jboss.logging.Logger;
@@ -80,17 +81,35 @@
try
{
delegate = factory.createClassLoaderPolicy();
+ if (delegate == null)
+ {
+ log.trace("Factory did not create a delegate: " + factory);
+ }
+ else
+ {
+ ClassLoaderPolicy policy = (ClassLoaderPolicy) delegate;
+ initialise(policy);
+ this.delegate = delegate;
+ }
}
catch (Throwable t)
{
log.warn("Unexpected error creating policy from factory: " + factory, t);
}
}
- if (delegate == null)
- log.trace("Factory did not create a delegate: " + factory);
return delegate;
}
+ /**
+ * Callback to initialise policy
+ *
+ * @param policy the policy
+ */
+ protected void initialise(ClassLoaderPolicy policy)
+ {
+ // Nothing by default
+ }
+
BaseClassLoader getBaseClassLoader(String context)
{
BaseClassLoader result = null;
Modified: projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/FilteredDelegateLoader.java
===================================================================
--- projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/FilteredDelegateLoader.java 2008-02-27 14:58:13 UTC (rev 70183)
+++ projects/microcontainer/trunk/classloader/src/main/org/jboss/classloader/spi/filter/FilteredDelegateLoader.java 2008-02-27 15:18:05 UTC (rev 70184)
@@ -107,6 +107,19 @@
return filter;
}
+ /**
+ * Set the filter
+ *
+ * @param filter the filter
+ */
+ protected void setFilter(ClassFilter filter)
+ {
+ if (filter == null)
+ filter = ClassFilter.EVERYTHING;
+ else
+ this.filter = filter;
+ }
+
@Override
public Class<?> loadClass(String className)
{
More information about the jboss-cvs-commits
mailing list