Class 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 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
      • checkUnload

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