Class BshClassLoader

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

    public class BshClassLoader
    extends java.net.URLClassLoader
    One of the things BshClassLoader does is to address a deficiency in URLClassLoader that prevents us from specifying individual classes via URLs.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addURL​(java.net.URL url)  
      protected java.lang.Class findClass​(java.lang.String name)
      Find the correct source for the class...
      java.lang.Class loadClass​(java.lang.String name, boolean resolve)
      This modification allows us to reload classes which are in the Java VM user classpath.
      • Methods inherited from class java.net.URLClassLoader

        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, 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
    • Constructor Detail

      • BshClassLoader

        public BshClassLoader​(BshClassManager classManager,
                              java.net.URL[] bases)
        Parameters:
        bases - URLs JARClassLoader seems to require absolute paths
      • BshClassLoader

        public BshClassLoader​(BshClassManager classManager,
                              BshClassPath bcp)
        Parameters:
        bcp - URLs JARClassLoader seems to require absolute paths
      • BshClassLoader

        protected BshClassLoader​(BshClassManager classManager)
        For use by children
        Parameters:
        classManager - URLs JARClassLoader seems to require absolute paths
    • Method Detail

      • addURL

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

        public java.lang.Class loadClass​(java.lang.String name,
                                         boolean resolve)
                                  throws java.lang.ClassNotFoundException
        This modification allows us to reload classes which are in the Java VM user classpath. We search first rather than delegate to the parent classloader (or bootstrap path) first. An exception is for BeanShell core classes which are always loaded from the same classloader as the interpreter.
        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
        Find the correct source for the class... Try designated loader if any Try our URLClassLoader paths if any Try base loader if any Try system ???
        Overrides:
        findClass in class java.net.URLClassLoader
        Throws:
        java.lang.ClassNotFoundException