Class OsgiClassLoader

  • All Implemented Interfaces:
    Stoppable

    public class OsgiClassLoader
    extends java.lang.ClassLoader
    implements Stoppable
    Custom OSGI ClassLoader helper which knows all the "interesting" class loaders and bundles. Encapsulates the OSGi related CL capabilities.
    • Constructor Summary

      Constructors 
      Constructor Description
      OsgiClassLoader()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addBundle​(org.osgi.framework.Bundle bundle)
      Adds a Bundle to the wrapped set of Bundles
      void addClassLoader​(java.lang.ClassLoader classLoader)
      Adds a ClassLoader to the wrapped set of ClassLoaders
      protected java.lang.Class<?> findClass​(java.lang.String name)
      Load the class and break on first found match.
      protected java.net.URL findResource​(java.lang.String name)
      Load the class and break on first found match.
      protected java.util.Enumeration<java.net.URL> findResources​(java.lang.String name)
      Load the class and break on first found match.
      void stop()
      Stop phase notification
      • 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, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, 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

      • OsgiClassLoader

        public OsgiClassLoader()
    • Method Detail

      • findClass

        protected java.lang.Class<?> findClass​(java.lang.String name)
                                        throws java.lang.ClassNotFoundException
        Load the class and break on first found match. TODO: Should this throw a different exception or warn if multiple classes were found? Naming collisions can and do happen in OSGi...
        Overrides:
        findClass in class java.lang.ClassLoader
        Throws:
        java.lang.ClassNotFoundException
      • findResource

        protected java.net.URL findResource​(java.lang.String name)
        Load the class and break on first found match. TODO: Should this throw a different exception or warn if multiple classes were found? Naming collisions can and do happen in OSGi...
        Overrides:
        findResource in class java.lang.ClassLoader
      • findResources

        protected java.util.Enumeration<java.net.URL> findResources​(java.lang.String name)
        Load the class and break on first found match. Note: Since they're Enumerations, do not cache these results! TODO: Should this throw a different exception or warn if multiple classes were found? Naming collisions can and do happen in OSGi...
        Overrides:
        findResources in class java.lang.ClassLoader
      • addClassLoader

        public void addClassLoader​(java.lang.ClassLoader classLoader)
        Adds a ClassLoader to the wrapped set of ClassLoaders
        Parameters:
        classLoader - The ClassLoader to add
      • addBundle

        public void addBundle​(org.osgi.framework.Bundle bundle)
        Adds a Bundle to the wrapped set of Bundles
        Parameters:
        bundle - The Bundle to add
      • stop

        public void stop()
        Description copied from interface: Stoppable
        Stop phase notification
        Specified by:
        stop in interface Stoppable