public class ExtendedURLClassLoader
extends java.net.URLClassLoader
URLClassLoader (for now:) to provide just minimal set of modifications.
When parent-last strategy is used, be aware how you use ClassLoaderUtil as
it is designed to follow parent-first strategy.
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String[] |
loaderPackages |
protected java.lang.ClassLoader |
parentClassLoader |
protected boolean |
parentFirst |
protected java.lang.String[] |
systemPackages |
| Constructor and Description |
|---|
ExtendedURLClassLoader(java.net.URL[] classpath,
java.lang.ClassLoader parent)
Creates class loader with parent-first loading strategy.
|
ExtendedURLClassLoader(java.net.URL[] classpath,
java.lang.ClassLoader parent,
boolean parentFirst)
Creates class loader with given loading strategy.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addLoaderPackage(java.lang.String... packages)
Adds loader packages or package roots to the list of packages
which must be loaded using this loader.
|
void |
addSystemPackage(java.lang.String... packages)
Adds system packages or package roots to the list of packages
which must be loaded on the parent loader.
|
java.net.URL |
getResource(java.lang.String resourceName)
Returns a resource using parent-first or parent-last strategy.
|
java.util.Enumeration<java.net.URL> |
getResources(java.lang.String resourceName)
Similar to its super method, except local resources are enumerated
before parent resources.
|
protected boolean |
isInPackageList(java.lang.String name,
java.lang.String[] packages)
Returns
true if class or resource name matches
at least one package root from the list. |
protected boolean |
isParentFirst(java.lang.String resourceName)
Determines if parent-first strategy should be used.
|
protected java.lang.String[] |
joinPackages(java.lang.String[] dest,
java.lang.String[] src)
Join packages and appends dot to package names if missing.
|
protected java.lang.Class<?> |
loadClass(java.lang.String className,
boolean resolve)
Loads class using parent-first or parent-last strategy.
|
void |
setParentFirst(boolean parentFirst)
Controls whether class lookup is delegated to the parent loader first
or after this loader.
|
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstanceclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignersprotected java.lang.ClassLoader parentClassLoader
protected java.lang.String[] systemPackages
protected java.lang.String[] loaderPackages
protected boolean parentFirst
public ExtendedURLClassLoader(java.net.URL[] classpath,
java.lang.ClassLoader parent)
public ExtendedURLClassLoader(java.net.URL[] classpath,
java.lang.ClassLoader parent,
boolean parentFirst)
public void setParentFirst(boolean parentFirst)
public void addSystemPackage(java.lang.String... packages)
JRE packages.public void addLoaderPackage(java.lang.String... packages)
protected java.lang.String[] joinPackages(java.lang.String[] dest,
java.lang.String[] src)
protected boolean isInPackageList(java.lang.String name,
java.lang.String[] packages)
true if class or resource name matches
at least one package root from the list.protected boolean isParentFirst(java.lang.String resourceName)
protected java.lang.Class<?> loadClass(java.lang.String className,
boolean resolve)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionpublic java.net.URL getResource(java.lang.String resourceName)
getResource in class java.lang.ClassLoaderpublic java.util.Enumeration<java.net.URL> getResources(java.lang.String resourceName)
throws java.io.IOException
getResources in class java.lang.ClassLoaderjava.io.IOExceptionCopyright © 2003-2013 Jodd Team