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

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()`
`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<JspServletWrapper>.Entry unloadHandle)`
Push unloadHandle for JspServletWrapper to front of the queue.
`FastRemovalDequeue<JspServletWrapper>.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 Details

### 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 Details

### 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<JspServletWrapper>.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<JspServletWrapper>.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()

### checkUnload

public void checkUnload()
Method used by background thread to check if any JSP's should be unloaded.