Package org.apache.jasper.compiler
Class Compiler
- java.lang.Object
-
- org.apache.jasper.compiler.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 Summary
Fields Modifier and Type Field Description protected JspCompilationContext
ctxt
protected ErrorDispatcher
errDispatcher
protected JspServletWrapper
jsw
protected Options
options
protected org.apache.jasper.compiler.PageInfo
pageInfo
protected org.apache.jasper.compiler.Node.Nodes
pageNodes
protected org.apache.jasper.compiler.TagFileProcessor
tfp
-
Constructor Summary
Constructors Constructor Description Compiler()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
compile()
Compile the jsp file from the current engine context.void
compile(boolean compileClass)
Compile the jsp file from the current engine context.void
compile(boolean compileClass, boolean jspcMode)
Compile the jsp file from the current engine context.protected abstract void
generateClass(java.util.Map<java.lang.String,SmapStratum> smaps)
Servlet compilation.protected java.util.Map<java.lang.String,SmapStratum>
generateJava()
Compile the jsp file into equivalent servlet in .java fileJspCompilationContext
getCompilationContext()
ErrorDispatcher
getErrorDispatcher()
org.apache.jasper.compiler.PageInfo
getPageInfo()
SmapStratum
getSmap(java.lang.String className)
void
init(JspCompilationContext ctxt, JspServletWrapper jsw)
boolean
isOutDated()
This is a protected method intended to be overridden by subclasses of Compiler.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.void
removeGeneratedClassFiles()
void
removeGeneratedFiles()
Remove generated files
-
-
-
Field Detail
-
ctxt
protected JspCompilationContext ctxt
-
errDispatcher
protected ErrorDispatcher errDispatcher
-
pageInfo
protected org.apache.jasper.compiler.PageInfo pageInfo
-
jsw
protected JspServletWrapper jsw
-
tfp
protected org.apache.jasper.compiler.TagFileProcessor tfp
-
options
protected Options options
-
pageNodes
protected org.apache.jasper.compiler.Node.Nodes pageNodes
-
-
Method Detail
-
init
public void init(JspCompilationContext ctxt, JspServletWrapper jsw)
-
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 foundJasperException
- Compilation errorjava.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 foundJasperException
- Compilation errorjava.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 foundJasperException
- Compilation errorjava.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 filejspcMode
- true if invoked from JspC, false otherwise- Throws:
java.io.FileNotFoundException
- Source files not foundJasperException
- Compilation errorjava.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
-
getCompilationContext
public JspCompilationContext getCompilationContext()
-
removeGeneratedFiles
public void removeGeneratedFiles()
Remove generated files
-
removeGeneratedClassFiles
public void removeGeneratedClassFiles()
-
-