Package org.apache.jasper.compiler

## Class JspRuntimeContext

- java.lang.Object
- - org.apache.jasper.compiler.JspRuntimeContext

-     public final class JspRuntimeContext
      extends Object

  Class for tracking JSP compile time file dependencies when the >%@include file="..."%< directive is used. A background thread periodically checks the files a JSP page is dependent upon. If a dependent file changes the JSP page which included it is recompiled. Only used if a web application context is a directory.
  Author:
    Glenn L. Nielsen

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JspRuntimeContext​(ServletContext context, Options options)` | Create a JspRuntimeContext for a web application context.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addWrapper​(String jspUri, JspServletWrapper jsw)` | Add a new JspServletWrapper.
    `void` | `checkCompile()` | Method used by background thread to check the JSP dependencies registered with this class for JSP's.
    `void` | `checkUnload()` | Method used by background thread to check if any JSP's should be unloaded.
    `void` | `destroy()` | Process a "destroy" event for this web application context.
    `String` | `getClassPath()` |
    `CodeSource` | `getCodeSource()` | Get the SecurityManager Policy CodeSource for this web application context.
    `int` | `getJspCount()` | Returns the number of JSPs for which JspServletWrappers exist, i.e., the number of JSPs that have been loaded into the webapp.
    `int` | `getJspQueueLength()` | Gets the number of JSPs that are in the JSP limiter queue
    `int` | `getJspReloadCount()` | Gets the current value of the JSP reload counter.
    `int` | `getJspUnloadCount()` | Gets the number of JSPs that have been unloaded.
    `long` | `getLastJspQueueUpdate()` |
    `Options` | `getOptions()` |
    `ClassLoader` | `getParentClassLoader()` | Get the parent ClassLoader.
    `PermissionCollection` | `getPermissionCollection()` | Get the SecurityManager PermissionCollection for this web application context.
    `Map<String,​SmapStratum>` | `getSmaps()` |
    `JspServletWrapper` | `getWrapper​(String jspUri)` | Get an already existing JspServletWrapper.
    `void` | `incrementJspReloadCount()` | Increments the JSP reload counter.
    `boolean` | `isCompileCheckInProgress()` |
    `void` | `makeYoungest​(FastRemovalDequeue.Entry unloadHandle)` | Push unloadHandle for JspServletWrapper to front of the queue.
    `FastRemovalDequeue.Entry` | `push​(JspServletWrapper jsw)` | Push a newly compiled JspServletWrapper into the queue at first execution of jsp.
    `void` | `removeWrapper​(String jspUri)` | Remove a JspServletWrapper.
    `void` | `setJspReloadCount​(int count)` | Resets the JSP reload counter.

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

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

- - ### Constructor Detail

    - #### JspRuntimeContext

          public JspRuntimeContext​(ServletContext context,
                                   Options options)

      Create a JspRuntimeContext for a web application context. Loads in any previously generated dependencies from file.
      Parameters:
        `context` - ServletContext for web application
        `options` - The main Jasper options

  - ### Method Detail

    - #### addWrapper

          public void addWrapper​(String jspUri,
                                 JspServletWrapper jsw)

      Add a new JspServletWrapper.
      Parameters:
        `jspUri` - JSP URI
        `jsw` - Servlet wrapper for JSP

    - #### getWrapper

          public JspServletWrapper getWrapper​(String jspUri)

      Get an already existing JspServletWrapper.
      Parameters:
        `jspUri` - JSP URI
      Returns:
        JspServletWrapper for JSP

    - #### removeWrapper

          public void removeWrapper​(String jspUri)

      Remove a JspServletWrapper.
      Parameters:
        `jspUri` - JSP URI of JspServletWrapper to remove

    - #### push

          public FastRemovalDequeue.Entry push​(JspServletWrapper jsw)

      Push a newly compiled JspServletWrapper into the queue at first execution of jsp. Destroy any JSP that has been replaced in the queue.
      Parameters:
        `jsw` - Servlet wrapper for jsp.
      Returns:
        an unloadHandle that can be pushed to front of queue at later execution times.

    - #### makeYoungest

          public void makeYoungest​(FastRemovalDequeue.Entry unloadHandle)

      Push unloadHandle for JspServletWrapper to front of the queue.
      Parameters:
        `unloadHandle` - the unloadHandle for the jsp.

    - #### getJspCount

          public int getJspCount()

      Returns the number of JSPs for which JspServletWrappers exist, i.e., the number of JSPs that have been loaded into the webapp.
      Returns:
        The number of JSPs that have been loaded into the webapp

    - #### getCodeSource

          public CodeSource getCodeSource()

      Get the SecurityManager Policy CodeSource for this web application context.
      Returns:
        CodeSource for JSP

    - #### getParentClassLoader

          public ClassLoader getParentClassLoader()

      Get the parent ClassLoader.
      Returns:
        ClassLoader parent

    - #### getPermissionCollection

          public PermissionCollection getPermissionCollection()

      Get the SecurityManager PermissionCollection for this web application context.
      Returns:
        PermissionCollection permissions

    - #### destroy

          public void destroy()

      Process a "destroy" event for this web application context.

    - #### incrementJspReloadCount

          public void incrementJspReloadCount()

      Increments the JSP reload counter.

    - #### setJspReloadCount

          public void setJspReloadCount​(int count)

      Resets the JSP reload counter.
      Parameters:
        `count` - Value to which to reset the JSP reload counter

    - #### getJspReloadCount

          public int getJspReloadCount()

      Gets the current value of the JSP reload counter.
      Returns:
        The current value of the JSP reload counter

    - #### getJspQueueLength

          public int getJspQueueLength()

      Gets the number of JSPs that are in the JSP limiter queue
      Returns:
        The number of JSPs (in the webapp with which this JspServlet is associated) that are in the JSP limiter queue

    - #### getJspUnloadCount

          public int getJspUnloadCount()

      Gets the number of JSPs that have been unloaded.
      Returns:
        The number of JSPs (in the webapp with which this JspServlet is associated) that have been unloaded

    - #### checkCompile

          public void checkCompile()

      Method used by background thread to check the JSP dependencies registered with this class for JSP's.

    - #### isCompileCheckInProgress

          public boolean isCompileCheckInProgress()

    - #### getClassPath

          public String getClassPath()

      Returns:
        the classpath that is passed off to the Java compiler.

    - #### getLastJspQueueUpdate

          public long getLastJspQueueUpdate()

      Returns:
        Last time the update background task has run

    - #### getSmaps

          public Map<String,​SmapStratum> getSmaps()

    - #### getOptions

          public Options getOptions()

    - #### checkUnload

          public void checkUnload()

      Method used by background thread to check if any JSP's should be unloaded.