Interface ThreadContextClassLoaderHolder

All Known Implementing Classes:
ThreadContextClassLoaderBuilder.DefaultHolder

public interface ThreadContextClassLoaderHolder

Specification for how to restore the original ThreadContext ClassLoader to a Thread. When we support JDK 1.7, this should really be an extension of AutoCloseable instead, to support the try-with-resources pattern. Typical use:

     
         // Create and set the ThreadContext ClassLoader
         ThreadContextClassLoaderHolder holder = null;

         try {

          holder = ThreadContextClassLoaderBuilder.createFor(getClass())
              .addPath("some/path")
              .addURL(someURL)
              .addPaths(aPathList)
              .buildAndSet();

          // ... perform operations using the newly set ThreadContext ClassLoader...

         } finally {
          // Restore the original ClassLoader
          holder.restoreClassLoaderAndReleaseThread();
         }
     
 
Since:
2.0
  • Method Summary

    Modifier and Type
    Method
    Description
    Retrieves the ClassPath held by this ThreadContextClassLoaderHolder as a File.pathSeparatorChar-separated string.
    void
    Restores the original ThreadContext ClassLoader, and nullifies any references to the Thread which had its ThreadContext ClassLoader altered.
  • Method Details

    • restoreClassLoaderAndReleaseThread

      void restoreClassLoaderAndReleaseThread()
      Restores the original ThreadContext ClassLoader, and nullifies any references to the Thread which had its ThreadContext ClassLoader altered.
    • getClassPathAsArgument

      String getClassPathAsArgument()
      Retrieves the ClassPath held by this ThreadContextClassLoaderHolder as a File.pathSeparatorChar-separated string. This is directly usable as a String argument by any external process.
      Returns:
      the ClassPath as an argument to external processes such as XJC.