Class 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.security.SecureClassLoader

        defineClass, defineClass
      • 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
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • URLClassLoader

        public URLClassLoader​(java.net.URL[] urls)
      • URLClassLoader

        public URLClassLoader​(java.net.URL[] urls,
                              java.lang.ClassLoader parent)
    • Method Detail

      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.net.URLClassLoader
      • addURL

        public void addURL​(java.net.URL url)
        Overrides:
        addURL in class java.net.URLClassLoader
      • getURLs

        public java.net.URL[] getURLs()
        Overrides:
        getURLs in class java.net.URLClassLoader
      • findClass

        protected java.lang.Class<?> findClass​(java.lang.String name)
                                        throws java.lang.ClassNotFoundException
        Overrides:
        findClass in class java.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 class java.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 class java.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)