ContextBind (Apache Tomcat 10.0.27 API Documentation)

Package org.apache.tomcat

## Interface ContextBind

- All Known Subinterfaces:
    `Context`
  All Known Implementing Classes:
    `FailedContext`, `ReplicatedContext`, `StandardContext`

      public interface ContextBind

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.ClassLoader` | `bind​(boolean usePrivilegedAction, java.lang.ClassLoader originalClassLoader)` | Change the current thread context class loader to the web application class loader.
    `void` | `unbind​(boolean usePrivilegedAction, java.lang.ClassLoader originalClassLoader)` | Restore the current thread context class loader to the original class loader in used before `bind(boolean, ClassLoader)` was called.

- - ### Method Detail

    - #### bind

          java.lang.ClassLoader bind​(boolean usePrivilegedAction,
                                     java.lang.ClassLoader originalClassLoader)

      Change the current thread context class loader to the web application class loader. If no web application class loader is defined, or if the current thread is already using the web application class loader then no change will be made. If the class loader is changed and a `ThreadBindingListener` is configured then `ThreadBindingListener.bind()` will be called after the change has been made.
      Parameters:
        `usePrivilegedAction` - Should a `PrivilegedAction` be used when obtaining the current thread context class loader and setting the new one?
        `originalClassLoader` - The current class loader if known to save this method having to look it up
      Returns:
        If the class loader has been changed by the method it will return the thread context class loader in use when the method was called. If no change was made then this method returns null.

    - #### unbind

          void unbind​(boolean usePrivilegedAction,
                      java.lang.ClassLoader originalClassLoader)

      Restore the current thread context class loader to the original class loader in used before `bind(boolean, ClassLoader)` was called. If no original class loader is passed to this method then no change will be made. If the class loader is changed and a `ThreadBindingListener` is configured then `ThreadBindingListener.unbind()` will be called before the change is made.
      Parameters:
        `usePrivilegedAction` - Should a `PrivilegedAction` be used when setting the current thread context class loader?
        `originalClassLoader` - The class loader to restore as the thread context class loader