Class ContextClassLoaderSwitcher.SwitchContext

  • Enclosing class:
    ContextClassLoaderSwitcher

    public class ContextClassLoaderSwitcher.SwitchContext
    extends java.lang.Object
    A helper class to remember the original classloader and avoid continually retrieveing the current thread.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.ClassLoader currentCL
      The current classloader
      private java.lang.Thread currentThread
      The current thread
      private java.lang.ClassLoader origCL
      The original classloader
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private SwitchContext()  
      private SwitchContext​(java.lang.ClassLoader cl)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void forceReset()
      Force a reset back to the original classloader, useful when somebody else might have changed the thread context classloader so we cannot optimize
      java.lang.ClassLoader getCurrentClassLoader()  
      java.lang.ClassLoader getOriginalClassLoader()  
      java.lang.Thread getThread()  
      void reset()
      Reset back to the original classloader, only when it has changed.
      void setClassLoader​(java.lang.ClassLoader cl)
      Change the context classloader
      • Methods inherited from class java.lang.Object

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

      • origCL

        private java.lang.ClassLoader origCL
        The original classloader
      • currentCL

        private java.lang.ClassLoader currentCL
        The current classloader
      • currentThread

        private java.lang.Thread currentThread
        The current thread
    • Constructor Detail

      • SwitchContext

        private SwitchContext()
      • SwitchContext

        private SwitchContext​(java.lang.ClassLoader cl)
    • Method Detail

      • getThread

        public java.lang.Thread getThread()
        Returns:
        the current thread
      • getOriginalClassLoader

        public java.lang.ClassLoader getOriginalClassLoader()
        Returns:
        the original classloader
      • getCurrentClassLoader

        public java.lang.ClassLoader getCurrentClassLoader()
        Returns:
        the current classloader (as set through this class).
      • setClassLoader

        public void setClassLoader​(java.lang.ClassLoader cl)
        Change the context classloader

        The operation is ignored if the classloader is null or has not changed

        Parameters:
        cl - the new classloader
      • reset

        public void reset()
        Reset back to the original classloader, only when it has changed.
      • forceReset

        public void forceReset()
        Force a reset back to the original classloader, useful when somebody else might have changed the thread context classloader so we cannot optimize