|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.allcolor.yahp.converter.CClassLoader
public final class CClassLoader
This is a custom tree classloader
| Field Summary | |
|---|---|
private boolean |
booAlone
is alone ? |
private boolean |
booDoNotForwardToParent
is not forwarding to parent ? |
private boolean |
booInit
is initializing ? |
private boolean |
booMandatory
is mandatory ? |
private boolean |
booResourceOnly
is resource only ? |
private java.util.Map |
cacheMap
|
static java.lang.String |
CCLASSLOADER_NAMESPACE
classloader namespace |
private java.util.Map |
childrenMap
contains reference to children loaders |
private java.util.Map |
classesMap
known classes by this loader |
private CClassLoaderConfig |
config
reference to the loader config object |
private static java.lang.ThreadLocal |
contextLoader
|
private static int |
DEBUG
DEBUG log level |
private java.util.Map |
dllMap
Contains a name-URL of dll/.so mapping for this loader |
private static int |
FATAL
FATAL log level |
private java.lang.String |
finalizepath
|
private static int |
INFO
INFO log level |
private static java.util.logging.Logger |
log
use for logging |
private static java.util.Map |
mandatoryLoadersMap
contains all mandatory loaders |
private java.lang.String |
name
loader name |
private java.lang.String |
path
loader path |
private java.util.Map |
resourcesMap
known resources by this loader |
static java.lang.String |
ROOT_LOADER
name of the rootloader |
private static CClassLoader |
rootLoader
handle to the root loader |
private static java.net.URLClassLoader |
urlLoader
Ser the URLClassLoader that will return to calls to getURLs() |
| Constructor Summary | |
|---|---|
private |
CClassLoader(java.lang.ClassLoader parent,
java.lang.String name)
Create a new loader |
| Method Summary | |
|---|---|
private void |
_destroy(java.lang.reflect.Method logFactoryRelease)
Destroy instance variables. |
void |
addClass(java.lang.String className,
java.net.URL urlToClass)
add a class to known class |
void |
addResource(java.lang.String resouceName,
java.net.URL urlToResource)
add a resource |
private static void |
clearArray(java.lang.Object[] array)
|
private static void |
clearList(java.util.List list)
|
private static void |
clearMap(java.util.Map map)
|
private static void |
clearSet(java.util.Set list)
|
private static CClassLoader |
createLoader(java.lang.ClassLoader parent,
java.lang.String name)
Create a new loader |
static java.net.URL |
createMemoryURL(java.lang.String entryName,
byte[] entry)
Creates and allocates a memory URL |
static void |
destroy()
destroy the loader tree |
protected void |
finalize()
|
protected java.lang.Class |
findClass(java.lang.String name)
|
protected java.lang.String |
findLibrary(java.lang.String libname)
|
java.net.URL |
findResource(java.lang.String fname)
|
java.util.Enumeration |
findResources(java.lang.String name)
|
java.util.Iterator |
getChildLoader()
return an iterator on children loaders |
private static java.util.List |
getClasses(java.io.File current,
java.util.List list)
Return a list of classes and jar files |
java.util.Map |
getClassesMap()
return a copy of the known classes |
static java.lang.ClassLoader |
getContextLoader()
|
static CClassLoader |
getLoader(java.lang.String fpath)
return the loader with the given path |
private CClassLoader |
getLoaderByName(java.lang.String name)
Return the child loader with the given name |
java.lang.String |
getName()
Returns the name. |
java.lang.String |
getPath()
Returns the path. |
private java.util.List |
getPrivateResource(java.lang.String name)
get the resource with the given name |
java.net.URL |
getResource(java.lang.String name)
|
java.io.InputStream |
getResourceAsStream(java.lang.String name)
|
java.util.Map |
getResourcesMap()
return a copy of the known resources |
static CClassLoader |
getRootLoader()
return the rootloader |
private static void |
getThreadGroups(java.lang.ThreadGroup tg,
java.util.List ltg)
|
java.net.URL[] |
getURLs()
|
static java.net.URL[] |
getURLs(java.lang.String path)
Return a list of jar and classes located in path |
static void |
init(CClassLoaderConfig config)
initialize the loaders hierarchy |
private static void |
installURLStreamHandlerFactory()
Install a custom URLStreamHandlerFactory which handle nested jar loading, and memory url. |
boolean |
isAlone()
Returns the booAlone. |
boolean |
isForwardingToParent()
return booDoNotForwardToParent |
boolean |
isInit()
Returns the booInit. |
boolean |
isMandatory()
Returns the booMandatory. |
boolean |
isResourceOnly()
Returns the booResourceOnly. |
static byte[] |
loadByteArray(java.io.InputStream in)
load the given inputstream in a byte array |
static byte[] |
loadByteArray(java.net.URL urlToResource)
load the given url in a byte array |
protected java.lang.Class |
loadClass(java.lang.String name,
boolean resolve)
|
private static void |
loadResources(CClassLoader loader,
java.util.List URLList,
java.lang.String resourceName)
load multiple resources of same name |
private static void |
log(java.lang.String Message,
int level)
log the message |
private java.lang.String |
nGetLoaderPath()
calculate the loader path |
private void |
readDirectories(java.net.URL jarFile)
analyse the content of the given jar file |
static void |
releaseMemoryURL(java.net.URL u)
Release a previously allocated memory URL |
void |
reload()
reload this loader |
void |
reload(CClassLoaderConfig config)
reload this loader |
CClassLoader |
removeLoader(java.lang.String loaderToRemove)
remove the given loader from this loader |
void |
removeResource(java.lang.String resourceName)
remove the given resource name from known resource |
static void |
setContextLoader(java.lang.ClassLoader contextLoader)
|
private static void |
setInit(CClassLoader loader)
set the init flag of all loaders |
static void |
setURLClassLoader(java.net.URLClassLoader urlLoader)
Set the urlloader used to resolved getURLs |
private static boolean |
sl(int level)
test if the logging level is enabled |
java.lang.String |
toString()
|
| Methods inherited from class java.net.URLClassLoader |
|---|
addURL, definePackage, getPermissions, newInstance, newInstance |
| Methods inherited from class java.security.SecureClassLoader |
|---|
defineClass, defineClass |
| Methods inherited from class java.lang.ClassLoader |
|---|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String CCLASSLOADER_NAMESPACE
private static java.lang.ThreadLocal contextLoader
private static final int DEBUG
private static final int FATAL
private static final int INFO
private static final java.util.logging.Logger log
private static final java.util.Map mandatoryLoadersMap
public static final java.lang.String ROOT_LOADER
private static CClassLoader rootLoader
private static volatile java.net.URLClassLoader urlLoader
private boolean booAlone
private boolean booDoNotForwardToParent
private boolean booInit
private boolean booMandatory
private boolean booResourceOnly
private final java.util.Map cacheMap
private final java.util.Map childrenMap
private final java.util.Map classesMap
private CClassLoaderConfig config
private final java.util.Map dllMap
private java.lang.String name
private java.lang.String path
private java.lang.String finalizepath
private final java.util.Map resourcesMap
| Constructor Detail |
|---|
private CClassLoader(java.lang.ClassLoader parent,
java.lang.String name)
throws java.lang.Exception
parent - a reference to the parent loadername - loader name
java.lang.Exception - should not happen| Method Detail |
|---|
protected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwable
private static final CClassLoader createLoader(java.lang.ClassLoader parent,
java.lang.String name)
parent - a reference to the parent loadername - loader name
public static java.net.URL createMemoryURL(java.lang.String entryName,
byte[] entry)
entryName - name of the entryentry - byte array of the entry
private static final void clearMap(java.util.Map map)
private static final void clearArray(java.lang.Object[] array)
private static final void clearList(java.util.List list)
private static final void clearSet(java.util.Set list)
public static final void destroy()
private static java.util.List getClasses(java.io.File current,
java.util.List list)
current - currently inspected filelist - list of url to classes and jar files
public static final java.lang.ClassLoader getContextLoader()
public static final CClassLoader getLoader(java.lang.String fpath)
fpath - the path to lookup
public static final CClassLoader getRootLoader()
private static void getThreadGroups(java.lang.ThreadGroup tg,
java.util.List ltg)
public static java.net.URL[] getURLs(java.lang.String path)
path - the path in which to search
public static final void init(CClassLoaderConfig config)
config - the loaders config objectprivate static void installURLStreamHandlerFactory()
public static final byte[] loadByteArray(java.io.InputStream in)
in - the stream to load
public static final byte[] loadByteArray(java.net.URL urlToResource)
urlToResource - url to load
private static final void loadResources(CClassLoader loader,
java.util.List URLList,
java.lang.String resourceName)
loader - current lookup loaderURLList - list of found resourcesresourceName - name to match
private static final void log(java.lang.String Message,
int level)
Message - message to loglevel - log level (INFO,DEBUG,FATAL)public static void releaseMemoryURL(java.net.URL u)
u - the URL to release memorypublic static final void setContextLoader(java.lang.ClassLoader contextLoader)
private static final void setInit(CClassLoader loader)
loader - the current loaderpublic static void setURLClassLoader(java.net.URLClassLoader urlLoader)
urlLoader - the urlloader used to resolved getURLsprivate static final boolean sl(int level)
level - the logging level to test
private final void _destroy(java.lang.reflect.Method logFactoryRelease)
logFactoryRelease - method to release commons logging
public final void addClass(java.lang.String className,
java.net.URL urlToClass)
className - class nameurlToClass - url to class file
public final void addResource(java.lang.String resouceName,
java.net.URL urlToResource)
resouceName - name of the resource to addurlToResource - url to the resource
protected final java.lang.Class findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
findClass in class java.net.URLClassLoaderjava.lang.ClassNotFoundExceptionprotected java.lang.String findLibrary(java.lang.String libname)
findLibrary in class java.lang.ClassLoaderpublic final java.net.URL findResource(java.lang.String fname)
findResource in class java.net.URLClassLoader
public final java.util.Enumeration findResources(java.lang.String name)
throws java.io.IOException
findResources in class java.net.URLClassLoaderjava.io.IOExceptionpublic final java.util.Iterator getChildLoader()
public final java.util.Map getClassesMap()
private final CClassLoader getLoaderByName(java.lang.String name)
name - name of the child to get
public final java.lang.String getName()
public final java.lang.String getPath()
private final java.util.List getPrivateResource(java.lang.String name)
name - name of the resource to get
public final java.net.URL getResource(java.lang.String name)
getResource in class java.lang.ClassLoaderpublic final java.io.InputStream getResourceAsStream(java.lang.String name)
getResourceAsStream in class java.lang.ClassLoaderpublic final java.util.Map getResourcesMap()
public java.net.URL[] getURLs()
getURLs in class java.net.URLClassLoaderpublic final boolean isAlone()
public final boolean isForwardingToParent()
public final boolean isInit()
public final boolean isMandatory()
public final boolean isResourceOnly()
protected final java.lang.Class loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprivate final java.lang.String nGetLoaderPath()
private final void readDirectories(java.net.URL jarFile)
jarFile - the jar to analisepublic final void reload()
public final void reload(CClassLoaderConfig config)
config - a loader config objectpublic final CClassLoader removeLoader(java.lang.String loaderToRemove)
loaderToRemove - name of the loader to remove. NOT NULL.
java.lang.NullPointerException - if loaderToRemove is null or a zero length/blank stringpublic final void removeResource(java.lang.String resourceName)
resourceName - name of the resource to removepublic java.lang.String toString()
toString in class java.lang.Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||