Class JspC

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.jasper.JspC
All Implemented Interfaces:
Cloneable, Options

public class JspC extends org.apache.tools.ant.Task implements Options
Shell for the jspc compiler. Handles all options associated with the command line and creates compilation contexts which it then compiles according to the specified options. This version can process files from a _single_ webapp at once, i.e. a single docbase can be specified. It can be used as an Ant task using:
  <taskdef classname="org.apache.jasper.JspC" name="jasper" >
     <classpath>
         <pathelement location="${java.home}/../lib/tools.jar"/>
         <fileset dir="${ENV.CATALINA_HOME}/lib">
             <include name="*.jar"/>
         </fileset>
         <path refid="myjars"/>
      </classpath>
 </taskdef>

 <jasper verbose="0"
          package="my.package"
          uriroot="${webapps.dir}/${webapp.name}"
          webXmlFragment="${build.dir}/generated_web.xml"
          outputDir="${webapp.dir}/${webapp.name}/WEB-INF/src/my/package" />
  • Field Details

    • SWITCH_VERBOSE

      protected static final String SWITCH_VERBOSE
      Command-line switch for enabling verbose output.
      See Also:
    • SWITCH_HELP

      protected static final String SWITCH_HELP
      Command-line switch for displaying help.
      See Also:
    • SWITCH_OUTPUT_DIR

      protected static final String SWITCH_OUTPUT_DIR
      Command-line switch for setting the output directory.
      See Also:
    • SWITCH_PACKAGE_NAME

      protected static final String SWITCH_PACKAGE_NAME
      Command-line switch for setting the package name.
      See Also:
    • SWITCH_CACHE

      protected static final String SWITCH_CACHE
      Command-line switch for enabling/disabling caching.
      See Also:
    • SWITCH_CLASS_NAME

      protected static final String SWITCH_CLASS_NAME
      Command-line switch for setting the generated class name.
      See Also:
    • SWITCH_FULL_STOP

      protected static final String SWITCH_FULL_STOP
      Command-line switch indicating the end of options.
      See Also:
    • SWITCH_COMPILE

      protected static final String SWITCH_COMPILE
      Command-line switch for compiling to class files.
      See Also:
    • SWITCH_FAIL_FAST

      protected static final String SWITCH_FAIL_FAST
      Command-line switch for failing on first error.
      See Also:
    • SWITCH_SOURCE

      protected static final String SWITCH_SOURCE
      Command-line switch for setting the Java source version.
      See Also:
    • SWITCH_TARGET

      protected static final String SWITCH_TARGET
      Command-line switch for setting the Java target version.
      See Also:
    • SWITCH_URI_BASE

      protected static final String SWITCH_URI_BASE
      Command-line switch for setting the URI base.
      See Also:
    • SWITCH_URI_ROOT

      protected static final String SWITCH_URI_ROOT
      Command-line switch for setting the URI root.
      See Also:
    • SWITCH_FILE_WEBAPP

      protected static final String SWITCH_FILE_WEBAPP
      Command-line switch for setting the web application root.
      See Also:
    • SWITCH_WEBAPP_INC

      protected static final String SWITCH_WEBAPP_INC
      Command-line switch for generating a web.xml include file.
      See Also:
    • SWITCH_WEBAPP_FRG

      protected static final String SWITCH_WEBAPP_FRG
      Command-line switch for generating a web-fragment.xml file.
      See Also:
    • SWITCH_WEBAPP_XML

      protected static final String SWITCH_WEBAPP_XML
      Command-line switch for generating a complete web.xml file.
      See Also:
    • SWITCH_WEBAPP_XML_ENCODING

      protected static final String SWITCH_WEBAPP_XML_ENCODING
      Command-line switch for setting the web.xml encoding.
      See Also:
    • SWITCH_ADD_WEBAPP_XML_MAPPINGS

      protected static final String SWITCH_ADD_WEBAPP_XML_MAPPINGS
      Command-line switch for adding web.xml servlet mappings.
      See Also:
    • SWITCH_MAPPED

      protected static final String SWITCH_MAPPED
      Command-line switch for using mapped file compilation.
      See Also:
    • SWITCH_XPOWERED_BY

      protected static final String SWITCH_XPOWERED_BY
      Command-line switch for enabling X-Powered-By header.
      See Also:
    • SWITCH_TRIM_SPACES

      protected static final String SWITCH_TRIM_SPACES
      Command-line switch for trimming whitespace in templates.
      See Also:
    • SWITCH_CLASSPATH

      protected static final String SWITCH_CLASSPATH
      Command-line switch for setting the classpath.
      See Also:
    • SWITCH_DIE

      protected static final String SWITCH_DIE
      Command-line switch prefix for setting the exit code on error.
      See Also:
    • SWITCH_POOLING

      protected static final String SWITCH_POOLING
      Command-line switch for enabling tag handler pooling.
      See Also:
    • SWITCH_ENCODING

      protected static final String SWITCH_ENCODING
      Command-line switch for setting the Java file encoding.
      See Also:
    • SWITCH_SMAP

      protected static final String SWITCH_SMAP
      Command-line switch for generating SMAP files.
      See Also:
    • SWITCH_DUMP_SMAP

      protected static final String SWITCH_DUMP_SMAP
      Command-line switch for dumping SMAP files.
      See Also:
    • SWITCH_VALIDATE_TLD

      protected static final String SWITCH_VALIDATE_TLD
      Command-line switch for validating TLD files.
      See Also:
    • SWITCH_VALIDATE_XML

      protected static final String SWITCH_VALIDATE_XML
      Command-line switch for validating XML files.
      See Also:
    • SWITCH_NO_BLOCK_EXTERNAL

      protected static final String SWITCH_NO_BLOCK_EXTERNAL
      Command-line switch for disabling external entity blocking.
      See Also:
    • SWITCH_NO_STRICT_QUOTE_ESCAPING

      protected static final String SWITCH_NO_STRICT_QUOTE_ESCAPING
      Command-line switch for disabling strict quote escaping.
      See Also:
    • SWITCH_QUOTE_ATTRIBUTE_EL

      protected static final String SWITCH_QUOTE_ATTRIBUTE_EL
      Command-line switch for enabling EL quoting in attributes.
      See Also:
    • SWITCH_NO_QUOTE_ATTRIBUTE_EL

      protected static final String SWITCH_NO_QUOTE_ATTRIBUTE_EL
      Command-line switch for disabling EL quoting in attributes.
      See Also:
    • SWITCH_THREAD_COUNT

      protected static final String SWITCH_THREAD_COUNT
      Command-line switch for setting the thread count.
      See Also:
    • SHOW_SUCCESS

      protected static final String SHOW_SUCCESS
      Command-line switch for showing success messages.
      See Also:
    • LIST_ERRORS

      protected static final String LIST_ERRORS
      Command-line switch for listing errors.
      See Also:
    • INC_WEBXML

      protected static final int INC_WEBXML
      Web.xml generation level for include fragment.
      See Also:
    • FRG_WEBXML

      protected static final int FRG_WEBXML
      Web.xml generation level for web-fragment.
      See Also:
    • ALL_WEBXML

      protected static final int ALL_WEBXML
      Web.xml generation level for complete web.xml.
      See Also:
    • DEFAULT_DIE_LEVEL

      protected static final int DEFAULT_DIE_LEVEL
      Default exit code level when a compilation error occurs.
      See Also:
    • NO_DIE_LEVEL

      protected static final int NO_DIE_LEVEL
      Exit code level indicating no exit on error.
      See Also:
    • insertBefore

      protected static final Set<String> insertBefore
      Set of XML elements before which generated content should be inserted.
    • classPath

      protected String classPath
      Classpath for compiling generated servlets.
    • loader

      protected ClassLoader loader
      ClassLoader used for JSP compilation.
    • trimSpaces

      protected TrimSpacesOption trimSpaces
      Option for trimming whitespace in template text.
    • genStringAsCharArray

      protected boolean genStringAsCharArray
      Flag to generate string literals as char arrays.
    • validateTld

      protected boolean validateTld
      Flag to validate TLD files.
    • validateXml

      protected boolean validateXml
      Flag to validate XML files.
    • blockExternal

      protected boolean blockExternal
      Flag to block external entities during XML parsing.
    • strictQuoteEscaping

      protected boolean strictQuoteEscaping
      Flag for strict quote escaping in attributes.
    • quoteAttributeEL

      protected boolean quoteAttributeEL
      Flag to quote EL expressions in attributes.
    • xpoweredBy

      protected boolean xpoweredBy
      Flag to include X-Powered-By response header.
    • mappedFile

      protected boolean mappedFile
      Flag to use mapped file compilation.
    • poolingEnabled

      protected boolean poolingEnabled
      Flag to enable tag handler pooling.
    • scratchDir

      protected File scratchDir
      Scratch directory for generated files.
    • targetPackage

      protected String targetPackage
      Target package for generated servlet classes.
    • targetClassName

      protected String targetClassName
      Target class name for a single generated servlet.
    • uriBase

      protected String uriBase
      Base URI for the web application.
    • uriRoot

      protected String uriRoot
      Root directory of the web application.
    • dieLevel

      protected int dieLevel
      Exit code level on compilation error.
    • helpNeeded

      protected boolean helpNeeded
      Flag indicating help was requested.
    • compile

      protected boolean compile
      Flag to compile JSPs to class files.
    • failFast

      protected boolean failFast
      Flag to stop on first compilation error.
    • smapSuppressed

      protected boolean smapSuppressed
      Flag to suppress SMAP file generation.
    • smapDumped

      protected boolean smapDumped
      Flag to dump SMAP files.
    • caching

      protected boolean caching
      Flag to enable tag handler caching.
    • cache

      protected final Map<String, TagLibraryInfo> cache
      Cache for TagLibraryInfo objects.
    • compiler

      protected String compiler
      Compiler implementation to use.
    • compilerTargetVM

      protected String compilerTargetVM
      Target Java VM version for compilation.
    • compilerSourceVM

      protected String compilerSourceVM
      Source Java version for compilation.
    • classDebugInfo

      protected boolean classDebugInfo
      Flag to include debug information in compiled classes.
    • failOnError

      protected boolean failOnError
      Throw an exception if there's a compilation error, or swallow it. Default is true to preserve old behavior.
    • extensions

      protected List<String> extensions
      The file extensions to be handled as JSP files. Default list is .jsp and .jspx.
    • pages

      protected final List<String> pages
      The pages.
    • errorOnUseBeanInvalidClassAttribute

      protected boolean errorOnUseBeanInvalidClassAttribute
      Needs better documentation, this data member does. True by default.
    • javaEncoding

      protected String javaEncoding
      The java file encoding. Default is UTF-8. Added per bugzilla 19622.
    • threadCount

      protected int threadCount
      The number of threads to use; default is one per core
    • webxmlFile

      protected String webxmlFile
      Output file path for generated web.xml content.
    • webxmlLevel

      protected int webxmlLevel
      Level of web.xml generation (include, fragment, or complete).
    • webxmlEncoding

      protected String webxmlEncoding
      Character encoding for generated web.xml files.
    • addWebXmlMappings

      protected boolean addWebXmlMappings
      Flag to merge generated mappings into existing web.xml.
    • mapout

      protected Writer mapout
      Writer for the generated web.xml output file.
    • servletout

      protected CharArrayWriter servletout
      Buffer for generated servlet declarations.
    • mappingout

      protected CharArrayWriter mappingout
      Buffer for generated servlet-mapping declarations.
    • context

      protected JspCServletContext context
      The servlet context.
    • rctxt

      protected JspRuntimeContext rctxt
      The runtime context. Maintain a dummy JspRuntimeContext for compiling tag files.
    • tldCache

      protected TldCache tldCache
      Cache for the TLD locations
    • jspConfig

      protected JspConfig jspConfig
      JSP configuration parsed from web.xml.
    • tagPluginManager

      protected TagPluginManager tagPluginManager
      Manager for tag plugin optimizations.
    • scanner

      protected TldScanner scanner
      Scanner for TLD files in the web application.
    • verbose

      protected boolean verbose
      Flag for verbose output.
    • listErrors

      protected boolean listErrors
      Flag to list compilation errors.
    • showSuccess

      protected boolean showSuccess
      Flag to show success messages.
    • argPos

      protected int argPos
      Current position in the command-line arguments array.
    • fullstop

      protected boolean fullstop
      Flag indicating the full stop switch was encountered.
    • args

      protected String[] args
      Command-line arguments passed to JspC.
    • useNonstandardTagOptimizations

      protected String useNonstandardTagOptimizations
      Configuration for non-standard tag optimizations.
  • Constructor Details

    • JspC

      public JspC()
      Creates a new JspC instance.
  • Method Details

    • main

      public static void main(String[] arg)
      Entry point for the JspC command-line tool.
      Parameters:
      arg - Command-line arguments
    • setArgs

      public void setArgs(String[] arg) throws JasperException
      Apply command-line arguments.
      Parameters:
      arg - The arguments
      Throws:
      JasperException - JSPC error
    • getKeepGenerated

      public boolean getKeepGenerated()
      In JspC this always returns true. Returns whether the generated Java source files should be kept after compilation.
      Specified by:
      getKeepGenerated in interface Options
      Returns:
      true to keep the generated source
    • getTrimSpaces

      public TrimSpacesOption getTrimSpaces()
      Description copied from interface: Options
      Returns the option for trimming whitespace-only template text.
      Specified by:
      getTrimSpaces in interface Options
      Returns:
      TrimSpacesOption.TRUE to remove template text that consists only of whitespace from the output completely, TrimSpacesOption.SINGLE to replace such template text with a single space, TrimSpacesOption.FALSE to leave such template text unchanged or TrimSpacesOption.EXTENDED to remove template text that consists only of whitespace and to replace any sequence of whitespace and new lines within template text with a single new line.
    • setTrimSpaces

      public void setTrimSpaces(TrimSpacesOption trimSpaces)
      Sets the option to control handling of template text that consists entirely of whitespace.
      Parameters:
      trimSpaces - New value
    • setTrimSpaces

      public void setTrimSpaces(String ts)
      Sets the option to control handling of template text that consists entirely of whitespace.
      Parameters:
      ts - New value
    • setTrimSpaces

      public void setTrimSpaces(boolean trimSpaces)
      Sets the trim spaces option for backwards compatibility with 8.5.x.
      Parameters:
      trimSpaces - New value
    • isPoolingEnabled

      public boolean isPoolingEnabled()
      Description copied from interface: Options
      Returns whether tag handler pooling is enabled for improved performance.
      Specified by:
      isPoolingEnabled in interface Options
      Returns:
      true if tag handler pooling is enabled, false otherwise.
    • setPoolingEnabled

      public void setPoolingEnabled(boolean poolingEnabled)
      Sets the option to enable the tag handler pooling.
      Parameters:
      poolingEnabled - New value
    • isXpoweredBy

      public boolean isXpoweredBy()
      Description copied from interface: Options
      Returns whether the X-Powered-By response header should be generated in HTTP responses.
      Specified by:
      isXpoweredBy in interface Options
      Returns:
      true to generate a X-Powered-By response header.
    • setXpoweredBy

      public void setXpoweredBy(boolean xpoweredBy)
      Sets the option to enable generation of X-Powered-By response header.
      Parameters:
      xpoweredBy - New value
    • getDisplaySourceFragment

      public boolean getDisplaySourceFragment()
      In JspC this always returns true. Returns whether a source fragment should be included in exception messages for debugging.
      Specified by:
      getDisplaySourceFragment in interface Options
      Returns:
      true to include a source fragment in exception messages.
    • getMaxLoadedJsps

      public int getMaxLoadedJsps()
      Description copied from interface: Options
      The maximum number of loaded jsps per web-application. If there are more jsps loaded, they will be unloaded. If unset or less than 0, no jsps are unloaded.
      Specified by:
      getMaxLoadedJsps in interface Options
      Returns:
      The JSP count
    • getJspIdleTimeout

      public int getJspIdleTimeout()
      Description copied from interface: Options
      Returns the idle timeout for JSP unloading.
      Specified by:
      getJspIdleTimeout in interface Options
      Returns:
      the idle time in seconds after which a JSP is unloaded. If unset or less or equal than 0, no jsps are unloaded.
    • getErrorOnUseBeanInvalidClassAttribute

      public boolean getErrorOnUseBeanInvalidClassAttribute()
      Description copied from interface: Options
      Returns true if Jasper issues a compilation error instead of a runtime Instantiation error if the class attribute specified in useBean action is invalid.
      Specified by:
      getErrorOnUseBeanInvalidClassAttribute in interface Options
      Returns:
      true to get an error
    • setErrorOnUseBeanInvalidClassAttribute

      public void setErrorOnUseBeanInvalidClassAttribute(boolean b)
      Sets the option to issue a compilation error if the class attribute specified in useBean action is invalid.
      Parameters:
      b - New value
    • getMappedFile

      public boolean getMappedFile()
      Description copied from interface: Options
      Returns whether HTML mapped Servlets are supported.
      Specified by:
      getMappedFile in interface Options
      Returns:
      true if HTML mapped Servlets are supported.
    • setMappedFile

      public void setMappedFile(boolean b)
      Sets the option to use mapped file compilation.
      Parameters:
      b - New value
    • setClassDebugInfo

      public void setClassDebugInfo(boolean b)
      Sets the option to include debug information in compiled class.
      Parameters:
      b - New value
    • getClassDebugInfo

      public boolean getClassDebugInfo()
      Description copied from interface: Options
      Returns whether debug information is included in compiled classes.
      Specified by:
      getClassDebugInfo in interface Options
      Returns:
      true if debug information in included in compiled classes.
    • isCaching

      public boolean isCaching()
      Description copied from interface: Options
      Returns whether caching is enabled for compiled JSP pages, used for precompilation scenarios.
      Specified by:
      isCaching in interface Options
      Returns:
      true if caching is enabled (used for precompilation).
    • setCaching

      public void setCaching(boolean caching)
      Sets the option to enable caching.
      Parameters:
      caching - New value
      See Also:
    • getCache

      public Map<String, TagLibraryInfo> getCache()
      Description copied from interface: Options
      The web-application wide cache for the TagLibraryInfo tag library descriptors, used if Options.isCaching() returns true.

      Using this cache avoids the cost of repeating the parsing of a tag library descriptor XML file (performed by TagLibraryInfoImpl.parseTLD).

      Specified by:
      getCache in interface Options
      Returns:
      the Map(String uri, TagLibraryInfo tld) instance.
    • getCheckInterval

      public int getCheckInterval()
      In JspC this always returns 0. Returns the interval in seconds at which the background compile thread checks for modified JSP files.
      Specified by:
      getCheckInterval in interface Options
      Returns:
      background compile thread check interval in seconds
    • getModificationTestInterval

      public int getModificationTestInterval()
      In JspC this always returns 0. Returns the interval in seconds between modification tests for JSP files.
      Specified by:
      getModificationTestInterval in interface Options
      Returns:
      modification test interval in seconds.
    • getRecompileOnFail

      public boolean getRecompileOnFail()
      In JspC this always returns false. Returns whether the JSP engine should attempt re-compilation when an initial compilation fails.
      Specified by:
      getRecompileOnFail in interface Options
      Returns:
      true if re-compile will occur on a failure.
    • getDevelopment

      public boolean getDevelopment()
      In JspC this always returns false. Main development flag, which enables detailed error reports with sources, as well automatic recompilation of JSPs and tag files. This setting should usually be false when running in production.
      Specified by:
      getDevelopment in interface Options
      Returns:
      true if Jasper is in development mode
    • isSmapSuppressed

      public boolean isSmapSuppressed()
      Description copied from interface: Options
      Returns whether generation of SMAP (Source Map for Debugging) information is suppressed.
      Specified by:
      isSmapSuppressed in interface Options
      Returns:
      true to suppress generation of SMAP info for JSR45 debugging.
    • setSmapSuppressed

      public void setSmapSuppressed(boolean smapSuppressed)
      Sets smapSuppressed flag.
      Parameters:
      smapSuppressed - New value
    • isSmapDumped

      public boolean isSmapDumped()
      Description copied from interface: Options
      This setting is ignored if suppressSmap() is true.
      Specified by:
      isSmapDumped in interface Options
      Returns:
      true to write SMAP info for JSR45 debugging to a file.
    • setSmapDumped

      public void setSmapDumped(boolean smapDumped)
      Sets smapDumped flag.
      Parameters:
      smapDumped - New value
      See Also:
    • setGenStringAsCharArray

      public void setGenStringAsCharArray(boolean genStringAsCharArray)
      Determines whether text strings are to be generated as char arrays, which improves performance in some cases.
      Parameters:
      genStringAsCharArray - true if text strings are to be generated as char arrays, false otherwise
    • genStringAsCharArray

      public boolean genStringAsCharArray()
      Description copied from interface: Options
      Indicates whether text strings are to be generated as char arrays.
      Specified by:
      genStringAsCharArray in interface Options
      Returns:
      true if text strings are to be generated as char arrays, false otherwise
    • getScratchDir

      public File getScratchDir()
      Description copied from interface: Options
      Returns the scratch directory used as the work folder for temporary compilation files.
      Specified by:
      getScratchDir in interface Options
      Returns:
      the work folder
    • getCompiler

      public String getCompiler()
      Description copied from interface: Options
      Compiler to use.

      If null (the default), the java compiler from Eclipse JDT project, bundled with Tomcat, will be used. Otherwise, the javac task from Apache Ant will be used to call an external java compiler and the value of this option will be passed to it. See Apache Ant documentation for the possible values.

      Specified by:
      getCompiler in interface Options
      Returns:
      the compiler name
    • setCompiler

      public void setCompiler(String c)
      Sets the option to determine what compiler to use.
      Parameters:
      c - New value
      See Also:
    • getCompilerClassName

      public String getCompilerClassName()
      Description copied from interface: Options
      Returns the fully qualified class name of the Jasper Java compiler implementation to use.
      Specified by:
      getCompilerClassName in interface Options
      Returns:
      Jasper Java compiler class to use.
    • getCompilerTargetVM

      public String getCompilerTargetVM()
      Description copied from interface: Options
      Returns the target Java VM version for the compiler, such as 1.8.
      Specified by:
      getCompilerTargetVM in interface Options
      Returns:
      the compiler target VM, e.g. 1.8.
    • setCompilerTargetVM

      public void setCompilerTargetVM(String vm)
      Sets the compiler target VM.
      Parameters:
      vm - New value
      See Also:
    • getCompilerSourceVM

      public String getCompilerSourceVM()
      Description copied from interface: Options
      Returns the source Java VM version for the compiler, such as 1.8.
      Specified by:
      getCompilerSourceVM in interface Options
      Returns:
      the compiler source VM, e.g. 1.8.
    • setCompilerSourceVM

      public void setCompilerSourceVM(String vm)
      Sets the compiler source VM.
      Parameters:
      vm - New value
      See Also:
    • getTldCache

      public TldCache getTldCache()
      Description copied from interface: Options
      The cache that maps URIs, resource paths and parsed TLD files for the various tag libraries 'exposed' by the web application. A tag library is 'exposed' either explicitly in web.xml or implicitly via the uri tag in the TLD of a taglib deployed in a jar file (WEB-INF/lib).
      Specified by:
      getTldCache in interface Options
      Returns:
      the instance of the TldCache for the web-application.
    • getJavaEncoding

      public String getJavaEncoding()
      Returns the encoding to use for java files. The default is UTF-8.
      Specified by:
      getJavaEncoding in interface Options
      Returns:
      String The encoding
    • setJavaEncoding

      public void setJavaEncoding(String encodingName)
      Sets the encoding to use for java files.
      Parameters:
      encodingName - The name, e.g. "UTF-8"
    • getFork

      public boolean getFork()
      Description copied from interface: Options
      The boolean flag to tell Ant whether to fork JSP page compilations.

      Is used only when Jasper uses an external java compiler (wrapped through a javac Apache Ant task).

      Specified by:
      getFork in interface Options
      Returns:
      true to fork a process during compilation
    • setFork

      public void setFork(boolean fork)
      Sets the option to fork a separate process for compilation.
      Parameters:
      fork - New value
    • getClassPath

      public String getClassPath()
      Description copied from interface: Options
      Returns the classpath used by the compiler when compiling generated Servlets.
      Specified by:
      getClassPath in interface Options
      Returns:
      the classpath used to compile generated Servlets
    • setClassPath

      public void setClassPath(String s)
      Sets the classpath used while compiling the servlets generated from JSP files
      Parameters:
      s - New value
    • getExtensions

      public List<String> getExtensions()
      Returns the list of file extensions that are treated as JSP files.
      Returns:
      The list of extensions
    • addExtension

      protected void addExtension(String extension)
      Adds the given file extension to the list of extensions handled as JSP files.
      Parameters:
      extension - The extension to add, e.g. "myjsp"
    • setUriroot

      public void setUriroot(String s)
      Base dir for the webapp. Used to generate class names and resolve includes.
      Parameters:
      s - New value
    • setJspFiles

      public void setJspFiles(String jspFiles)
      Parses comma-separated list of JSP files to be processed. If the argument is null, nothing is done.

      Each file is interpreted relative to uriroot, unless it is absolute, in which case it must start with uriroot.

      Parameters:
      jspFiles - Comma-separated list of JSP files to be processed
    • setCompile

      public void setCompile(boolean b)
      Sets the compile flag.
      Parameters:
      b - Flag value
    • setVerbose

      public void setVerbose(int level)
      Sets the verbosity level. The actual number doesn't matter: if it's greater than zero, the verbose flag will be true.
      Parameters:
      level - Positive means verbose
    • setValidateTld

      public void setValidateTld(boolean b)
      Sets the option to validate TLD files.
      Parameters:
      b - New value
    • isValidateTld

      public boolean isValidateTld()
      Returns whether TLD validation is enabled.
      Returns:
      true if TLD validation is enabled
    • setValidateXml

      public void setValidateXml(boolean b)
      Sets the option to validate XML files.
      Parameters:
      b - New value
    • isValidateXml

      public boolean isValidateXml()
      Returns whether XML validation is enabled.
      Returns:
      true if XML validation is enabled
    • setBlockExternal

      public void setBlockExternal(boolean b)
      Sets the option to block external entities during XML parsing.
      Parameters:
      b - New value
    • isBlockExternal

      public boolean isBlockExternal()
      Returns whether external entity blocking is enabled.
      Returns:
      true if external entity blocking is enabled
    • setStrictQuoteEscaping

      public void setStrictQuoteEscaping(boolean b)
      Sets the option for strict quote escaping in attributes.
      Parameters:
      b - New value
    • getStrictQuoteEscaping

      public boolean getStrictQuoteEscaping()
      Description copied from interface: Options
      Returns whether strict quote escaping is enabled for scriplet expressions.
      Specified by:
      getStrictQuoteEscaping in interface Options
      Returns:
      true if the quote escaping required by section JSP.1.6 of the JSP specification should be applied to scriplet expression.
    • setQuoteAttributeEL

      public void setQuoteAttributeEL(boolean b)
      Sets the option to quote EL expressions in attributes.
      Parameters:
      b - New value
    • getQuoteAttributeEL

      public boolean getQuoteAttributeEL()
      Description copied from interface: Options
      Returns whether quoting rules from JSP.1.6 are applied to EL expressions in attributes.
      Specified by:
      getQuoteAttributeEL in interface Options
      Returns:
      true if EL expressions used within attributes should have the quoting rules in JSP.1.6 applied to the expression.
    • getThreadCount

      public int getThreadCount()
      Returns the number of threads to use for compilation.
      Returns:
      the thread count
    • setThreadCount

      public void setThreadCount(String threadCount)
      Sets the number of threads to use for compilation. Accepts an integer value or a multiplier suffix 'C' for cores (e.g., "2C" means twice the available processors).
      Parameters:
      threadCount - Thread count string
    • setListErrors

      public void setListErrors(boolean b)
      Sets the option to list compilation errors.
      Parameters:
      b - New value
    • setOutputDir

      public void setOutputDir(String s)
      Sets the output directory for generated files.
      Parameters:
      s - Output directory path
    • setPackage

      public void setPackage(String p)
      Sets the package name to be used for the generated servlet classes.
      Parameters:
      p - New value
    • setClassName

      public void setClassName(String p)
      Class name of the generated file ( without package ). Can only be used if a single file is converted. XXX Do we need this feature ?
      Parameters:
      p - New value
    • setWebXmlInclude

      public void setWebXmlInclude(String s)
      File where we generate configuration with the class definitions to be included in a web.xml file.
      Parameters:
      s - New value
    • setWebFragmentXml

      public void setWebFragmentXml(String s)
      File where we generate a complete web-fragment.xml with the class definitions.
      Parameters:
      s - New value
    • setWebXml

      public void setWebXml(String s)
      File where we generate a complete web.xml with the class definitions.
      Parameters:
      s - New value
    • setWebXmlEncoding

      public void setWebXmlEncoding(String encoding)
      Sets the encoding to be used to read and write web.xml files.

      If not specified, defaults to UTF-8.

      Parameters:
      encoding - Encoding, e.g. "UTF-8".
    • setAddWebXmlMappings

      public void setAddWebXmlMappings(boolean b)
      Sets the option to merge generated web.xml fragment into the WEB-INF/web.xml file of the web application that we were processing.
      Parameters:
      b - true to merge the fragment into the existing web.xml file of the processed web application ({uriroot}/WEB-INF/web.xml), false to keep the generated web.xml fragment
    • setFailOnError

      public void setFailOnError(boolean b)
      Sets the option that throws an exception in case of a compilation error.
      Parameters:
      b - New value
    • setUseNonstandardTagOptimizations

      public void setUseNonstandardTagOptimizations(String useNonstandardTagOptimizations)
      Sets the set of custom tags to use nonstandard optimizations.
      Parameters:
      useNonstandardTagOptimizations - which tags to override
    • getFailOnError

      public boolean getFailOnError()
      Returns whether an exception will be thrown in case of a compilation error.
      Returns:
      true if an exception will be thrown in case of a compilation error.
    • getJspConfig

      public JspConfig getJspConfig()
      Description copied from interface: Options
      Returns the JSP configuration information as specified in the web.xml deployment descriptor.
      Specified by:
      getJspConfig in interface Options
      Returns:
      JSP configuration information specified in web.xml.
    • getTagPluginManager

      public TagPluginManager getTagPluginManager()
      Description copied from interface: Options
      Returns the Tag Plugin Manager used for applying tag plugins during JSP compilation.
      Specified by:
      getTagPluginManager in interface Options
      Returns:
      a Tag Plugin Manager
    • getGeneratedJavaAddTimestamp

      public boolean getGeneratedJavaAddTimestamp()
      Should the container include the time the file was generated in the comments at the start of a Java file generated from a JSP or tag. Defaults to true.

      Hard-coded to false for pre-compiled code to enable repeatable builds.

      Specified by:
      getGeneratedJavaAddTimestamp in interface Options
      Returns:
      true to include the timestamp, otherwise don't include it
    • generateWebMapping

      public void generateWebMapping(String file, JspCompilationContext clctxt) throws IOException
      Adds servlet declaration and mapping for the JSP page servlet to the generated web.xml fragment.
      Parameters:
      file - Context-relative path to the JSP file, e.g. /index.jsp
      clctxt - Compilation context of the servlet
      Throws:
      IOException - An IO error occurred
    • mergeIntoWebXml

      protected void mergeIntoWebXml() throws IOException
      Include the generated web.xml inside the webapp's web.xml.
      Throws:
      IOException - An IO error occurred
    • processFile

      protected void processFile(String file) throws JasperException
      Processes a single JSP file, compiling it and generating the web.xml mapping.
      Parameters:
      file - Context-relative path to the JSP file
      Throws:
      JasperException - If a compilation error occurs
    • scanFiles

      public void scanFiles()
      Locate all jsp files in the webapp. Used if no explicit jsps are specified. Scan is performed via the ServletContext and will include any JSPs located in resource JARs.
    • execute

      public void execute()
      Executes the compilation.
      Overrides:
      execute in class org.apache.tools.ant.Task
    • nextArg

      protected String nextArg()
      Returns the next command-line argument.
      Returns:
      the next argument, or null if no more arguments
    • nextFile

      protected String nextFile()
      Returns the next file argument from the command-line.
      Returns:
      the next file argument, or null if no more arguments
    • initWebXml

      protected void initWebXml() throws JasperException
      Initializes the web.xml output writers based on the configured generation level.
      Throws:
      JasperException - If an I/O error occurs
    • completeWebXml

      protected void completeWebXml()
      Writes the accumulated servlet declarations and mappings to the web.xml output, then closes the writer.
    • initTldScanner

      protected void initTldScanner(JspCServletContext context, ClassLoader classLoader)
      Initializes the TLD scanner for the given servlet context and class loader.
      Parameters:
      context - The servlet context
      classLoader - The class loader to use
    • newTldScanner

      protected TldScanner newTldScanner(JspCServletContext context, boolean namespaceAware, boolean validate, boolean blockExternal)
      Creates a new TLD scanner instance.
      Parameters:
      context - The servlet context
      namespaceAware - Whether to enable namespace awareness
      validate - Whether to validate TLD files
      blockExternal - Whether to block external entities
      Returns:
      the new TLD scanner
    • initServletContext

      protected void initServletContext(ClassLoader classLoader) throws IOException, JasperException
      Initializes the servlet context, TLD scanner, TLD cache, runtime context, JSP config, and tag plugin manager for compilation.
      Parameters:
      classLoader - The class loader to use
      Throws:
      IOException - If an I/O error occurs
      JasperException - If a JSP error occurs
    • initClassLoader

      protected ClassLoader initClassLoader() throws IOException
      Initializes the classloader as/if needed for the given compilation context.
      Returns:
      the classloader that will be used
      Throws:
      IOException - If an error occurs
    • locateUriRoot

      protected void locateUriRoot(File f)
      Find the WEB-INF dir by looking up in the directory tree. This is used if no explicit docbase is set, but only files.
      Parameters:
      f - The path from which it will start looking
    • resolveFile

      protected File resolveFile(String s)
      Resolves the relative or absolute pathname correctly in both Ant and command-line situations. If Ant launched us, we should use the basedir of the current project to resolve relative paths. See Bugzilla 35571.
      Parameters:
      s - The file
      Returns:
      The file resolved
    • getUseNonstandardTagOptimizations

      public String getUseNonstandardTagOptimizations()
      Description copied from interface: Options
      A string containing a comma-separated list of names to which custom tag implementations should be applied. Unknown or unused tag entries are harmless. Generally defined via an init parameter on the JspServlet.
      Specified by:
      getUseNonstandardTagOptimizations in interface Options
      Returns:
      which tags to use