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.URLClassLoaderA 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 voidaddURL(java.net.URL url)voidclose()static java.lang.Stringdecode(java.lang.String s)protected voiddefinePackage(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.URLfindResource(java.lang.String name)protected java.net.URLfindResource1(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:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.net.URLClassLoader
-
addURL
public void addURL(java.net.URL url)
- Overrides:
addURLin classjava.net.URLClassLoader
-
getURLs
public java.net.URL[] getURLs()
- Overrides:
getURLsin classjava.net.URLClassLoader
-
findClass
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException- Overrides:
findClassin 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:
findResourcein 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:
findResourcesin 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)
-
-