ExtractingRoot (Apache Tomcat 8.5.94 API Documentation)

Package org.apache.catalina.webresources

## Class ExtractingRoot

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.webresources.StandardRoot
      - - org.apache.catalina.webresources.ExtractingRoot

- All Implemented Interfaces:
    `javax.management.MBeanRegistration`, `JmxEnabled`, `Lifecycle`, `WebResourceRoot`

      public class ExtractingRoot
      extends StandardRoot

  If the main resources are packaged as a WAR file then any JARs will be extracted to the work directory and used from there.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.WebResourceRoot

      `WebResourceRoot.ResourceSetType`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ExtractingRoot()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected boolean` | `isPackedWarFile()` |
    `protected void` | `processWebInfLib()` | Class loader resources are handled by treating JARs in WEB-INF/lib as resource JARs (without the internal META-INF/resources/ prefix) mounted at WEB-INF/classes (rather than the web app root).
    `protected void` | `stopInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method.

    - ### Methods inherited from class org.apache.catalina.webresources.StandardRoot

      `addClassResources, addJarResources, addPostResources, addPreResources, backgroundProcess, createMainResourceSet, createWebResourceSet, createWebResourceSet, deregisterTrackedResource, destroyInternal, gc, getAllowLinking, getBaseUrls, getCacheMaxSize, getCacheObjectMaxSize, getCacheTtl, getClassLoaderResource, getClassLoaderResources, getClassResources, getContext, getDomainInternal, getJarResources, getObjectNameKeyProperties, getPostResources, getPreResources, getResource, getResource, getResourceInternal, getResources, getResourcesInternal, getTrackedResources, getTrackLockedFiles, initInternal, isCachingAllowed, list, listResources, listResources, listWebAppPaths, mkdir, registerTrackedResource, registerURLStreamHandlerFactory, setAllowLinking, setCacheMaxSize, setCacheObjectMaxSize, setCacheTtl, setCachingAllowed, setContext, setMainResources, setTrackLockedFiles, startInternal, write`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.catalina.Lifecycle

      `addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

- - ### Constructor Detail

    - #### ExtractingRoot

          public ExtractingRoot()

  - ### Method Detail

    - #### processWebInfLib

          protected void processWebInfLib()
                                   throws LifecycleException

      Description copied from class: `StandardRoot`
      Class loader resources are handled by treating JARs in WEB-INF/lib as resource JARs (without the internal META-INF/resources/ prefix) mounted at WEB-INF/classes (rather than the web app root). This enables reuse of the resource handling plumbing. These resources are marked as class loader only so they are only used in the methods that are explicitly defined to return class loader resources. This prevents calls to getResource("/WEB-INF/classes") returning from one or more of the JAR files.
      Overrides:
        `processWebInfLib` in class `StandardRoot`
      Throws:
        `LifecycleException` - If an error occurs that should stop the web application from starting

    - #### isPackedWarFile

          protected boolean isPackedWarFile()

      Overrides:
        `isPackedWarFile` in class `StandardRoot`

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Description copied from class: `LifecycleBase`
      Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method. Changing state will trigger the `Lifecycle.STOP_EVENT` event.
      Overrides:
        `stopInternal` in class `StandardRoot`
      Throws:
        `LifecycleException` - Stop error occurred