Package org.eclipse.birt.core.framework
Class URLClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
-
- java.net.URLClassLoader
-
- org.eclipse.birt.core.framework.URLClassLoader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
OSGILauncher.ChildFirstURLClassLoader
public class URLClassLoader extends java.net.URLClassLoader
A URL class loader with close API. Java's URL class loader locks the JAR file it loaded until the JVM exit. It may cause some problem when we need remove the JARs if the class loader are not used any more. BIRT's URL class loader add a new close() method to close the JAR files explicitly. Once the close() is called, the user can't use the class and the loaded classes any more.
-
-
Constructor Summary
Constructors Constructor Description URLClassLoader(java.net.URL[] urls)
URLClassLoader(java.net.URL[] urls, java.lang.ClassLoader parent)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addURL(java.net.URL url)
void
close()
static java.lang.String
decode(java.lang.String s)
protected void
definePackage(java.lang.String className, org.eclipse.birt.core.framework.URLClassLoader.Resource resource)
protected java.lang.Class<?>
findClass(java.lang.String name)
protected java.lang.Class<?>
findClass1(java.lang.String name)
java.net.URL
findResource(java.lang.String name)
protected java.net.URL
findResource1(java.lang.String name)
java.util.Enumeration<java.net.URL>
findResources(java.lang.String name)
protected java.util.Enumeration<java.net.URL>
findResources1(java.lang.String name)
java.net.URL[]
getURLs()
-
Methods inherited from class java.net.URLClassLoader
definePackage, getPermissions, getResourceAsStream, newInstance, newInstance
-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, clone, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Method Detail
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.net.URLClassLoader
-
addURL
public void addURL(java.net.URL url)
- Overrides:
addURL
in classjava.net.URLClassLoader
-
getURLs
public java.net.URL[] getURLs()
- Overrides:
getURLs
in classjava.net.URLClassLoader
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException
- Overrides:
findClass
in classjava.net.URLClassLoader
- Throws:
java.lang.ClassNotFoundException
-
findClass1
protected java.lang.Class<?> findClass1(java.lang.String name) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
definePackage
protected void definePackage(java.lang.String className, org.eclipse.birt.core.framework.URLClassLoader.Resource resource)
-
findResource
public java.net.URL findResource(java.lang.String name)
- Overrides:
findResource
in classjava.net.URLClassLoader
-
findResource1
protected java.net.URL findResource1(java.lang.String name)
-
findResources
public java.util.Enumeration<java.net.URL> findResources(java.lang.String name)
- Overrides:
findResources
in classjava.net.URLClassLoader
-
findResources1
protected java.util.Enumeration<java.net.URL> findResources1(java.lang.String name)
-
decode
public static java.lang.String decode(java.lang.String s)
-
-