Class IsolatedClassRealm

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    class IsolatedClassRealm
    extends java.net.URLClassLoader
    A generic, isolated class loader.

    This class loader has its own classpath, separate from the primary Java classpath. It has a parent class loader, to which it delegates loading a set of imported classes. All other classes are loaded from its own classpath.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Set<java.lang.String> imports  
      private java.util.Set<java.lang.String> importsAll  
      private java.lang.ClassLoader parent  
    • Constructor Summary

      Constructors 
      Constructor Description
      IsolatedClassRealm​(java.lang.ClassLoader parent)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addJar​(java.nio.file.Path jar)  
      void addJarDirectory​(java.nio.file.Path dir)  
      protected java.lang.Class<?> findClass​(java.lang.String name)  
      java.net.URL getResource​(java.lang.String name)  
      java.util.Enumeration<java.net.URL> getResources​(java.lang.String name)  
      void importAllPackages​(java.lang.String packageName)  
      void importPackage​(java.lang.String packageName)  
      (package private) boolean isImported​(java.lang.String name)  
      java.lang.Class<?> loadClass​(java.lang.String name)  
      protected java.lang.Class<?> loadClass​(java.lang.String name, boolean resolve)  
      • Methods inherited from class java.net.URLClassLoader

        addURL, close, definePackage, findResource, findResources, 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, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, 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

      • parent

        private final java.lang.ClassLoader parent
      • imports

        private final java.util.Set<java.lang.String> imports
      • importsAll

        private final java.util.Set<java.lang.String> importsAll
    • Constructor Detail

      • IsolatedClassRealm

        public IsolatedClassRealm​(java.lang.ClassLoader parent)
    • Method Detail

      • addJar

        public void addJar​(java.nio.file.Path jar)
      • addJarDirectory

        public void addJarDirectory​(java.nio.file.Path dir)
      • importPackage

        public void importPackage​(java.lang.String packageName)
      • importAllPackages

        public void importAllPackages​(java.lang.String packageName)
      • isImported

        boolean isImported​(java.lang.String name)
      • 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
      • loadClass

        protected java.lang.Class<?> loadClass​(java.lang.String name,
                                               boolean resolve)
                                        throws java.lang.ClassNotFoundException
        Overrides:
        loadClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • 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
      • getResource

        public java.net.URL getResource​(java.lang.String name)
        Overrides:
        getResource in class java.lang.ClassLoader
      • getResources

        public java.util.Enumeration<java.net.URL> getResources​(java.lang.String name)
                                                         throws java.io.IOException
        Overrides:
        getResources in class java.lang.ClassLoader
        Throws:
        java.io.IOException