Class ActivelyClosingClassLoader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable
    Direct Known Subclasses:
    Processor.CL

    class ActivelyClosingClassLoader
    extends java.net.URLClassLoader
    implements java.io.Closeable
    This class loader can load classes from JAR files.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) java.util.concurrent.atomic.AtomicBoolean open  
      (package private) Processor processor  
      (package private) java.util.concurrent.ScheduledFuture<?> schedule  
      (package private) java.util.concurrent.atomic.AtomicReference<java.util.Map<java.io.File,​ActivelyClosingClassLoader.Wrapper>> wrappers  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void add​(java.io.File file)  
      (package private) void autopurge​(long freshPeriod)  
      void close()  
      private java.net.URL createURL​(java.lang.String name, byte[] data)  
      private java.util.stream.Stream<byte[]> dataStream​(java.lang.String name)  
      protected java.lang.Class<?> findClass​(java.lang.String name)  
      java.net.URL findResource​(java.lang.String name)  
      java.util.Enumeration<java.net.URL> findResources​(java.lang.String name)  
      (package private) java.util.List<java.io.File> getFiles()  
      java.lang.Class<?> loadClass​(java.lang.String name)  
      (package private) void purge​(long purgeTime)
      This method will close any open files that have not been accessed since purgeTime
      • Methods inherited from class java.net.URLClassLoader

        addURL, definePackage, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
      • Methods inherited from class java.security.SecureClassLoader

        defineClass, defineClass
      • Methods inherited from class java.lang.ClassLoader

        clearAssertionStatus, 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, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • open

        final java.util.concurrent.atomic.AtomicBoolean open
      • schedule

        java.util.concurrent.ScheduledFuture<?> schedule
    • Constructor Detail

      • ActivelyClosingClassLoader

        ActivelyClosingClassLoader​(Processor processor,
                                   java.lang.ClassLoader parent)
    • Method Detail

      • add

        void add​(java.io.File file)
      • 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
      • findResource

        public java.net.URL findResource​(java.lang.String name)
        Overrides:
        findResource in class java.net.URLClassLoader
      • dataStream

        private java.util.stream.Stream<byte[]> dataStream​(java.lang.String name)
      • createURL

        private java.net.URL createURL​(java.lang.String name,
                                       byte[] data)
      • findResources

        public java.util.Enumeration<java.net.URL> findResources​(java.lang.String name)
        Overrides:
        findResources in class java.net.URLClassLoader
      • purge

        void purge​(long purgeTime)
        This method will close any open files that have not been accessed since purgeTime
        Parameters:
        purgeTime - the absolute cutoff time
      • 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
      • getFiles

        java.util.List<java.io.File> getFiles()
      • loadClass

        public java.lang.Class<?> loadClass​(java.lang.String name)
                                     throws java.lang.ClassNotFoundException
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • autopurge

        void autopurge​(long freshPeriod)