Class Compiler

  • Direct Known Subclasses:
    AntCompiler, JDTCompiler

    public abstract class Compiler
    extends java.lang.Object
    Main JSP compiler class. This class uses Ant for compiling.
    Author:
    Anil K. Vijendran, Mandar Raje, Pierre Delisle, Kin-man Chung, Remy Maucherat, Mark Roth
    • Field Detail

      • pageInfo

        protected org.apache.jasper.compiler.PageInfo pageInfo
      • tfp

        protected org.apache.jasper.compiler.TagFileProcessor tfp
      • options

        protected Options options
      • pageNodes

        protected org.apache.jasper.compiler.Node.Nodes pageNodes
    • Constructor Detail

      • Compiler

        public Compiler()
    • Method Detail

      • getSmap

        public SmapStratum getSmap​(java.lang.String className)
      • generateJava

        protected java.util.Map<java.lang.String,​SmapStratum> generateJava()
                                                                          throws java.lang.Exception
        Compile the jsp file into equivalent servlet in .java file
        Returns:
        A map of class names to JSR 045 source maps
        Throws:
        java.lang.Exception - Error generating Java source
      • generateClass

        protected abstract void generateClass​(java.util.Map<java.lang.String,​SmapStratum> smaps)
                                       throws java.io.FileNotFoundException,
                                              JasperException,
                                              java.lang.Exception
        Servlet compilation. This compiles the generated sources into Servlets.
        Parameters:
        smaps - The source maps for the class(es) generated from the source file
        Throws:
        java.io.FileNotFoundException - Source files not found
        JasperException - Compilation error
        java.lang.Exception - Some other error
      • compile

        public void compile()
                     throws java.io.FileNotFoundException,
                            JasperException,
                            java.lang.Exception
        Compile the jsp file from the current engine context.
        Throws:
        java.io.FileNotFoundException - Source files not found
        JasperException - Compilation error
        java.lang.Exception - Some other error
      • compile

        public void compile​(boolean compileClass)
                     throws java.io.FileNotFoundException,
                            JasperException,
                            java.lang.Exception
        Compile the jsp file from the current engine context. As an side- effect, tag files that are referenced by this page are also compiled.
        Parameters:
        compileClass - If true, generate both .java and .class file If false, generate only .java file
        Throws:
        java.io.FileNotFoundException - Source files not found
        JasperException - Compilation error
        java.lang.Exception - Some other error
      • compile

        public void compile​(boolean compileClass,
                            boolean jspcMode)
                     throws java.io.FileNotFoundException,
                            JasperException,
                            java.lang.Exception
        Compile the jsp file from the current engine context. As an side- effect, tag files that are referenced by this page are also compiled.
        Parameters:
        compileClass - If true, generate both .java and .class file If false, generate only .java file
        jspcMode - true if invoked from JspC, false otherwise
        Throws:
        java.io.FileNotFoundException - Source files not found
        JasperException - Compilation error
        java.lang.Exception - Some other error
      • isOutDated

        public boolean isOutDated()
        This is a protected method intended to be overridden by subclasses of Compiler. This is used by the compile method to do all the compilation.
        Returns:
        true if the source generation and compilation should occur
      • isOutDated

        public boolean isOutDated​(boolean checkClass)
        Determine if a compilation is necessary by checking the time stamp of the JSP page with that of the corresponding .class or .java file. If the page has dependencies, the check is also extended to its dependents, and so on. This method can by overridden by a subclasses of Compiler.
        Parameters:
        checkClass - If true, check against .class file, if false, check against .java file.
        Returns:
        true if the source generation and compilation should occur
      • getErrorDispatcher

        public ErrorDispatcher getErrorDispatcher()
        Returns:
        the error dispatcher.
      • getPageInfo

        public org.apache.jasper.compiler.PageInfo getPageInfo()
        Returns:
        the info about the page under compilation
      • removeGeneratedFiles

        public void removeGeneratedFiles()
        Remove generated files
      • removeGeneratedClassFiles

        public void removeGeneratedClassFiles()