|
||||||||||
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 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 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 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 java.lang.Class |
findClass(java.lang.String name)
|
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 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 |
getLoaderPath()
return the path of the loader |
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 |
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 |
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, findLibrary, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String CCLASSLOADER_NAMESPACE
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 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 happenMethod Detail |
---|
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
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 CClassLoader getLoader(java.lang.String fpath)
fpath
- the path to lookup
public static final CClassLoader getRootLoader()
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 matchprivate 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 memoryprivate 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 loggingpublic final void addClass(java.lang.String className, java.net.URL urlToClass)
className
- class nameurlToClass
- url to class filepublic final void addResource(java.lang.String resouceName, java.net.URL urlToResource)
resouceName
- name of the resource to addurlToResource
- url to the resourceprotected final java.lang.Class findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass
in class java.net.URLClassLoader
java.lang.ClassNotFoundException
public 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.URLClassLoader
java.io.IOException
public 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 getLoaderPath()
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.ClassLoader
public final java.io.InputStream getResourceAsStream(java.lang.String name)
getResourceAsStream
in class java.lang.ClassLoader
public final java.util.Map getResourcesMap()
public java.net.URL[] getURLs()
getURLs
in class java.net.URLClassLoader
public 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.ClassLoader
java.lang.ClassNotFoundException
private 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 |