Class JspC

  • All Implemented Interfaces:
    java.lang.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 Summary

      Fields 
      Modifier and Type Field Description
      protected boolean addWebXmlMappings
      Flag to merge generated mappings into existing web.xml.
      protected static int ALL_WEBXML
      Web.xml generation level for complete web.xml.
      protected int argPos
      Current position in the command-line arguments array.
      protected java.lang.String[] args
      Command-line arguments passed to JspC.
      protected boolean blockExternal
      Flag to block external entities during XML parsing.
      protected java.util.Map<java.lang.String,​TagLibraryInfo> cache
      Cache for TagLibraryInfo objects.
      protected boolean caching
      Flag to enable tag handler caching.
      protected boolean classDebugInfo
      Flag to include debug information in compiled classes.
      protected java.lang.String classPath
      Classpath for compiling generated servlets.
      protected boolean compile
      Flag to compile JSPs to class files.
      protected java.lang.String compiler
      Compiler implementation to use.
      protected java.lang.String compilerSourceVM
      Source Java version for compilation.
      protected java.lang.String compilerTargetVM
      Target Java VM version for compilation.
      protected JspCServletContext context
      The servlet context.
      protected static int DEFAULT_DIE_LEVEL
      Default exit code level when a compilation error occurs.
      protected int dieLevel
      Exit code level on compilation error.
      protected boolean errorOnUseBeanInvalidClassAttribute
      Needs better documentation, this data member does.
      protected java.util.List<java.lang.String> extensions
      The file extensions to be handled as JSP files.
      protected boolean failFast
      Flag to stop on first compilation error.
      protected boolean failOnError
      Throw an exception if there's a compilation error, or swallow it.
      protected static int FRG_WEBXML
      Web.xml generation level for web-fragment.
      protected boolean fullstop
      Flag indicating the full stop switch was encountered.
      protected boolean genStringAsCharArray
      Flag to generate string literals as char arrays.
      protected boolean helpNeeded
      Flag indicating help was requested.
      protected static int INC_WEBXML
      Web.xml generation level for include fragment.
      protected static java.util.Set<java.lang.String> insertBefore
      Set of XML elements before which generated content should be inserted.
      protected java.lang.String javaEncoding
      The java file encoding.
      protected JspConfig jspConfig
      JSP configuration parsed from web.xml.
      protected static java.lang.String LIST_ERRORS
      Command-line switch for listing errors.
      protected boolean listErrors
      Flag to list compilation errors.
      protected java.lang.ClassLoader loader
      ClassLoader used for JSP compilation.
      protected java.io.Writer mapout
      Writer for the generated web.xml output file.
      protected boolean mappedFile
      Flag to use mapped file compilation.
      protected java.io.CharArrayWriter mappingout
      Buffer for generated servlet-mapping declarations.
      protected static int NO_DIE_LEVEL
      Exit code level indicating no exit on error.
      protected java.util.List<java.lang.String> pages
      The pages.
      protected boolean poolingEnabled
      Flag to enable tag handler pooling.
      protected boolean quoteAttributeEL
      Flag to quote EL expressions in attributes.
      protected JspRuntimeContext rctxt
      The runtime context.
      protected TldScanner scanner
      Scanner for TLD files in the web application.
      protected java.io.File scratchDir
      Scratch directory for generated files.
      protected java.io.CharArrayWriter servletout
      Buffer for generated servlet declarations.
      protected static java.lang.String SHOW_SUCCESS
      Command-line switch for showing success messages.
      protected boolean showSuccess
      Flag to show success messages.
      protected boolean smapDumped
      Flag to dump SMAP files.
      protected boolean smapSuppressed
      Flag to suppress SMAP file generation.
      protected boolean strictQuoteEscaping
      Flag for strict quote escaping in attributes.
      protected static java.lang.String SWITCH_ADD_WEBAPP_XML_MAPPINGS
      Command-line switch for adding web.xml servlet mappings.
      protected static java.lang.String SWITCH_CACHE
      Command-line switch for enabling/disabling caching.
      protected static java.lang.String SWITCH_CLASS_NAME
      Command-line switch for setting the generated class name.
      protected static java.lang.String SWITCH_CLASSPATH
      Command-line switch for setting the classpath.
      protected static java.lang.String SWITCH_COMPILE
      Command-line switch for compiling to class files.
      protected static java.lang.String SWITCH_DIE
      Command-line switch prefix for setting the exit code on error.
      protected static java.lang.String SWITCH_DUMP_SMAP
      Command-line switch for dumping SMAP files.
      protected static java.lang.String SWITCH_ENCODING
      Command-line switch for setting the Java file encoding.
      protected static java.lang.String SWITCH_FAIL_FAST
      Command-line switch for failing on first error.
      protected static java.lang.String SWITCH_FILE_WEBAPP
      Command-line switch for setting the web application root.
      protected static java.lang.String SWITCH_FULL_STOP
      Command-line switch indicating the end of options.
      protected static java.lang.String SWITCH_HELP
      Command-line switch for displaying help.
      protected static java.lang.String SWITCH_MAPPED
      Command-line switch for using mapped file compilation.
      protected static java.lang.String SWITCH_NO_BLOCK_EXTERNAL
      Command-line switch for disabling external entity blocking.
      protected static java.lang.String SWITCH_NO_QUOTE_ATTRIBUTE_EL
      Command-line switch for disabling EL quoting in attributes.
      protected static java.lang.String SWITCH_NO_STRICT_QUOTE_ESCAPING
      Command-line switch for disabling strict quote escaping.
      protected static java.lang.String SWITCH_OUTPUT_DIR
      Command-line switch for setting the output directory.
      protected static java.lang.String SWITCH_PACKAGE_NAME
      Command-line switch for setting the package name.
      protected static java.lang.String SWITCH_POOLING
      Command-line switch for enabling tag handler pooling.
      protected static java.lang.String SWITCH_QUOTE_ATTRIBUTE_EL
      Command-line switch for enabling EL quoting in attributes.
      protected static java.lang.String SWITCH_SMAP
      Command-line switch for generating SMAP files.
      protected static java.lang.String SWITCH_SOURCE
      Command-line switch for setting the Java source version.
      protected static java.lang.String SWITCH_TARGET
      Command-line switch for setting the Java target version.
      protected static java.lang.String SWITCH_THREAD_COUNT
      Command-line switch for setting the thread count.
      protected static java.lang.String SWITCH_TRIM_SPACES
      Command-line switch for trimming whitespace in templates.
      protected static java.lang.String SWITCH_URI_BASE
      Command-line switch for setting the URI base.
      protected static java.lang.String SWITCH_URI_ROOT
      Command-line switch for setting the URI root.
      protected static java.lang.String SWITCH_VALIDATE_TLD
      Command-line switch for validating TLD files.
      protected static java.lang.String SWITCH_VALIDATE_XML
      Command-line switch for validating XML files.
      protected static java.lang.String SWITCH_VERBOSE
      Command-line switch for enabling verbose output.
      protected static java.lang.String SWITCH_WEBAPP_FRG
      Command-line switch for generating a web-fragment.xml file.
      protected static java.lang.String SWITCH_WEBAPP_INC
      Command-line switch for generating a web.xml include file.
      protected static java.lang.String SWITCH_WEBAPP_XML
      Command-line switch for generating a complete web.xml file.
      protected static java.lang.String SWITCH_WEBAPP_XML_ENCODING
      Command-line switch for setting the web.xml encoding.
      protected static java.lang.String SWITCH_XPOWERED_BY
      Command-line switch for enabling X-Powered-By header.
      protected TagPluginManager tagPluginManager
      Manager for tag plugin optimizations.
      protected java.lang.String targetClassName
      Target class name for a single generated servlet.
      protected java.lang.String targetPackage
      Target package for generated servlet classes.
      protected int threadCount
      The number of threads to use; default is one per core
      protected TldCache tldCache
      Cache for the TLD locations
      protected TrimSpacesOption trimSpaces
      Option for trimming whitespace in template text.
      protected java.lang.String uriBase
      Base URI for the web application.
      protected java.lang.String uriRoot
      Root directory of the web application.
      protected java.lang.String useNonstandardTagOptimizations
      Configuration for non-standard tag optimizations.
      protected boolean validateTld
      Flag to validate TLD files.
      protected boolean validateXml
      Flag to validate XML files.
      protected boolean verbose
      Flag for verbose output.
      protected java.lang.String webxmlEncoding
      Character encoding for generated web.xml files.
      protected java.lang.String webxmlFile
      Output file path for generated web.xml content.
      protected int webxmlLevel
      Level of web.xml generation (include, fragment, or complete).
      protected boolean xpoweredBy
      Flag to include X-Powered-By response header.
      • Fields inherited from class org.apache.tools.ant.Task

        target, taskName, taskType, wrapper
      • Fields inherited from class org.apache.tools.ant.ProjectComponent

        description, location, project
    • Constructor Summary

      Constructors 
      Constructor Description
      JspC()
      Creates a new JspC instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addExtension​(java.lang.String extension)
      Adds the given file extension to the list of extensions handled as JSP files.
      protected void completeWebXml()
      Writes the accumulated servlet declarations and mappings to the web.xml output, then closes the writer.
      void execute()
      Executes the compilation.
      void generateWebMapping​(java.lang.String file, JspCompilationContext clctxt)
      Adds servlet declaration and mapping for the JSP page servlet to the generated web.xml fragment.
      boolean genStringAsCharArray()
      Indicates whether text strings are to be generated as char arrays.
      java.util.Map<java.lang.String,​TagLibraryInfo> getCache()
      The web-application wide cache for the TagLibraryInfo tag library descriptors, used if Options.isCaching() returns true.
      int getCheckInterval()
      In JspC this always returns 0.
      boolean getClassDebugInfo()
      Returns whether debug information is included in compiled classes.
      java.lang.String getClassPath()
      Returns the classpath used by the compiler when compiling generated Servlets.
      java.lang.String getCompiler()
      Compiler to use.
      java.lang.String getCompilerClassName()
      Returns the fully qualified class name of the Jasper Java compiler implementation to use.
      java.lang.String getCompilerSourceVM()
      Returns the source Java VM version for the compiler, such as 1.8.
      java.lang.String getCompilerTargetVM()
      Returns the target Java VM version for the compiler, such as 1.8.
      boolean getDevelopment()
      In JspC this always returns false.
      boolean getDisplaySourceFragment()
      In JspC this always returns true.
      boolean getErrorOnUseBeanInvalidClassAttribute()
      Returns true if Jasper issues a compilation error instead of a runtime Instantiation error if the class attribute specified in useBean action is invalid.
      java.util.List<java.lang.String> getExtensions()
      Returns the list of file extensions that are treated as JSP files.
      boolean getFailOnError()
      Returns whether an exception will be thrown in case of a compilation error.
      boolean getFork()
      The boolean flag to tell Ant whether to fork JSP page compilations.
      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.
      java.lang.String getJavaEncoding()
      Returns the encoding to use for java files.
      JspConfig getJspConfig()
      Returns the JSP configuration information as specified in the web.xml deployment descriptor.
      int getJspIdleTimeout()
      Returns the idle timeout for JSP unloading.
      boolean getKeepGenerated()
      In JspC this always returns true.
      boolean getMappedFile()
      Returns whether HTML mapped Servlets are supported.
      int getMaxLoadedJsps()
      The maximum number of loaded jsps per web-application.
      int getModificationTestInterval()
      In JspC this always returns 0.
      boolean getQuoteAttributeEL()
      Returns whether quoting rules from JSP.1.6 are applied to EL expressions in attributes.
      boolean getRecompileOnFail()
      In JspC this always returns false.
      java.io.File getScratchDir()
      Returns the scratch directory used as the work folder for temporary compilation files.
      boolean getStrictQuoteEscaping()
      Returns whether strict quote escaping is enabled for scriplet expressions.
      TagPluginManager getTagPluginManager()
      Returns the Tag Plugin Manager used for applying tag plugins during JSP compilation.
      int getThreadCount()
      Returns the number of threads to use for compilation.
      TldCache getTldCache()
      The cache that maps URIs, resource paths and parsed TLD files for the various tag libraries 'exposed' by the web application.
      TrimSpacesOption getTrimSpaces()
      Returns the option for trimming whitespace-only template text.
      java.lang.String getUseNonstandardTagOptimizations()
      A string containing a comma-separated list of names to which custom tag implementations should be applied.
      protected java.lang.ClassLoader initClassLoader()
      Initializes the classloader as/if needed for the given compilation context.
      protected void initServletContext​(java.lang.ClassLoader classLoader)
      Initializes the servlet context, TLD scanner, TLD cache, runtime context, JSP config, and tag plugin manager for compilation.
      protected void initTldScanner​(JspCServletContext context, java.lang.ClassLoader classLoader)
      Initializes the TLD scanner for the given servlet context and class loader.
      protected void initWebXml()
      Initializes the web.xml output writers based on the configured generation level.
      boolean isBlockExternal()
      Returns whether external entity blocking is enabled.
      boolean isCaching()
      Returns whether caching is enabled for compiled JSP pages, used for precompilation scenarios.
      boolean isPoolingEnabled()
      Returns whether tag handler pooling is enabled for improved performance.
      boolean isSmapDumped()
      This setting is ignored if suppressSmap() is true.
      boolean isSmapSuppressed()
      Returns whether generation of SMAP (Source Map for Debugging) information is suppressed.
      boolean isValidateTld()
      Returns whether TLD validation is enabled.
      boolean isValidateXml()
      Returns whether XML validation is enabled.
      boolean isXpoweredBy()
      Returns whether the X-Powered-By response header should be generated in HTTP responses.
      protected void locateUriRoot​(java.io.File f)
      Find the WEB-INF dir by looking up in the directory tree.
      static void main​(java.lang.String[] arg)
      Entry point for the JspC command-line tool.
      protected void mergeIntoWebXml()
      Include the generated web.xml inside the webapp's web.xml.
      protected TldScanner newTldScanner​(JspCServletContext context, boolean namespaceAware, boolean validate, boolean blockExternal)
      Creates a new TLD scanner instance.
      protected java.lang.String nextArg()
      Returns the next command-line argument.
      protected java.lang.String nextFile()
      Returns the next file argument from the command-line.
      protected void processFile​(java.lang.String file)
      Processes a single JSP file, compiling it and generating the web.xml mapping.
      protected java.io.File resolveFile​(java.lang.String s)
      Resolves the relative or absolute pathname correctly in both Ant and command-line situations.
      void scanFiles()
      Locate all jsp files in the webapp.
      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.
      void setArgs​(java.lang.String[] arg)
      Apply command-line arguments.
      void setBlockExternal​(boolean b)
      Sets the option to block external entities during XML parsing.
      void setCaching​(boolean caching)
      Sets the option to enable caching.
      void setClassDebugInfo​(boolean b)
      Sets the option to include debug information in compiled class.
      void setClassName​(java.lang.String p)
      Class name of the generated file ( without package ).
      void setClassPath​(java.lang.String s)
      Sets the classpath used while compiling the servlets generated from JSP files
      void setCompile​(boolean b)
      Sets the compile flag.
      void setCompiler​(java.lang.String c)
      Sets the option to determine what compiler to use.
      void setCompilerSourceVM​(java.lang.String vm)
      Sets the compiler source VM.
      void setCompilerTargetVM​(java.lang.String vm)
      Sets the compiler target VM.
      void setErrorOnUseBeanInvalidClassAttribute​(boolean b)
      Sets the option to issue a compilation error if the class attribute specified in useBean action is invalid.
      void setFailOnError​(boolean b)
      Sets the option that throws an exception in case of a compilation error.
      void setFork​(boolean fork)
      Sets the option to fork a separate process for compilation.
      void setGenStringAsCharArray​(boolean genStringAsCharArray)
      Determines whether text strings are to be generated as char arrays, which improves performance in some cases.
      void setJavaEncoding​(java.lang.String encodingName)
      Sets the encoding to use for java files.
      void setJspFiles​(java.lang.String jspFiles)
      Parses comma-separated list of JSP files to be processed.
      void setListErrors​(boolean b)
      Sets the option to list compilation errors.
      void setMappedFile​(boolean b)
      Sets the option to use mapped file compilation.
      void setOutputDir​(java.lang.String s)
      Sets the output directory for generated files.
      void setPackage​(java.lang.String p)
      Sets the package name to be used for the generated servlet classes.
      void setPoolingEnabled​(boolean poolingEnabled)
      Sets the option to enable the tag handler pooling.
      void setQuoteAttributeEL​(boolean b)
      Sets the option to quote EL expressions in attributes.
      void setSmapDumped​(boolean smapDumped)
      Sets smapDumped flag.
      void setSmapSuppressed​(boolean smapSuppressed)
      Sets smapSuppressed flag.
      void setStrictQuoteEscaping​(boolean b)
      Sets the option for strict quote escaping in attributes.
      void setThreadCount​(java.lang.String threadCount)
      Sets the number of threads to use for compilation.
      void setTrimSpaces​(boolean trimSpaces)
      Sets the trim spaces option for backwards compatibility with 8.5.x.
      void setTrimSpaces​(java.lang.String ts)
      Sets the option to control handling of template text that consists entirely of whitespace.
      void setTrimSpaces​(TrimSpacesOption trimSpaces)
      Sets the option to control handling of template text that consists entirely of whitespace.
      void setUriroot​(java.lang.String s)
      Base dir for the webapp.
      void setUseNonstandardTagOptimizations​(java.lang.String useNonstandardTagOptimizations)
      Sets the set of custom tags to use nonstandard optimizations.
      void setValidateTld​(boolean b)
      Sets the option to validate TLD files.
      void setValidateXml​(boolean b)
      Sets the option to validate XML files.
      void setVerbose​(int level)
      Sets the verbosity level.
      void setWebFragmentXml​(java.lang.String s)
      File where we generate a complete web-fragment.xml with the class definitions.
      void setWebXml​(java.lang.String s)
      File where we generate a complete web.xml with the class definitions.
      void setWebXmlEncoding​(java.lang.String encoding)
      Sets the encoding to be used to read and write web.xml files.
      void setWebXmlInclude​(java.lang.String s)
      File where we generate configuration with the class definitions to be included in a web.xml file.
      void setXpoweredBy​(boolean xpoweredBy)
      Sets the option to enable generation of X-Powered-By response header.
      • Methods inherited from class org.apache.tools.ant.Task

        bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
      • Methods inherited from class org.apache.tools.ant.ProjectComponent

        clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SWITCH_VERBOSE

        protected static final java.lang.String SWITCH_VERBOSE
        Command-line switch for enabling verbose output.
        See Also:
        Constant Field Values
      • SWITCH_HELP

        protected static final java.lang.String SWITCH_HELP
        Command-line switch for displaying help.
        See Also:
        Constant Field Values
      • SWITCH_OUTPUT_DIR

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        protected static final java.lang.String SWITCH_CLASSPATH
        Command-line switch for setting the classpath.
        See Also:
        Constant Field Values
      • SWITCH_DIE

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

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

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

        protected static final java.lang.String SWITCH_SMAP
        Command-line switch for generating SMAP files.
        See Also:
        Constant Field Values
      • SWITCH_DUMP_SMAP

        protected static final java.lang.String SWITCH_DUMP_SMAP
        Command-line switch for dumping SMAP files.
        See Also:
        Constant Field Values
      • SWITCH_VALIDATE_TLD

        protected static final java.lang.String SWITCH_VALIDATE_TLD
        Command-line switch for validating TLD files.
        See Also:
        Constant Field Values
      • SWITCH_VALIDATE_XML

        protected static final java.lang.String SWITCH_VALIDATE_XML
        Command-line switch for validating XML files.
        See Also:
        Constant Field Values
      • SWITCH_NO_BLOCK_EXTERNAL

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

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

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

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

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

        protected static final java.lang.String SHOW_SUCCESS
        Command-line switch for showing success messages.
        See Also:
        Constant Field Values
      • LIST_ERRORS

        protected static final java.lang.String LIST_ERRORS
        Command-line switch for listing errors.
        See Also:
        Constant Field Values
      • INC_WEBXML

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

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

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

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

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

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

        protected java.lang.String classPath
        Classpath for compiling generated servlets.
      • loader

        protected java.lang.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 java.io.File scratchDir
        Scratch directory for generated files.
      • targetPackage

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

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

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

        protected java.lang.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 java.util.Map<java.lang.String,​TagLibraryInfo> cache
        Cache for TagLibraryInfo objects.
      • compiler

        protected java.lang.String compiler
        Compiler implementation to use.
      • compilerTargetVM

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

        protected java.lang.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 java.util.List<java.lang.String> extensions
        The file extensions to be handled as JSP files. Default list is .jsp and .jspx.
      • pages

        protected final java.util.List<java.lang.String> pages
        The pages.
      • errorOnUseBeanInvalidClassAttribute

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

        protected java.lang.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 java.lang.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 java.lang.String webxmlEncoding
        Character encoding for generated web.xml files.
      • addWebXmlMappings

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

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

        protected java.io.CharArrayWriter servletout
        Buffer for generated servlet declarations.
      • mappingout

        protected java.io.CharArrayWriter mappingout
        Buffer for generated servlet-mapping declarations.
      • 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 java.lang.String[] args
        Command-line arguments passed to JspC.
      • useNonstandardTagOptimizations

        protected java.lang.String useNonstandardTagOptimizations
        Configuration for non-standard tag optimizations.
    • Constructor Detail

      • JspC

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

      • main

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

        public void setArgs​(java.lang.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
      • 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​(java.lang.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:
        Options.isCaching()
      • getCache

        public java.util.Map<java.lang.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:
        Options.isSmapDumped()
      • 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 java.io.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 java.lang.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​(java.lang.String c)
        Sets the option to determine what compiler to use.
        Parameters:
        c - New value
        See Also:
        Options.getCompiler()
      • getCompilerClassName

        public java.lang.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 java.lang.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​(java.lang.String vm)
        Sets the compiler target VM.
        Parameters:
        vm - New value
        See Also:
        Options.getCompilerTargetVM()
      • getCompilerSourceVM

        public java.lang.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​(java.lang.String vm)
        Sets the compiler source VM.
        Parameters:
        vm - New value
        See Also:
        Options.getCompilerSourceVM()
      • 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 java.lang.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​(java.lang.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 java.lang.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​(java.lang.String s)
        Sets the classpath used while compiling the servlets generated from JSP files
        Parameters:
        s - New value
      • getExtensions

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

        protected void addExtension​(java.lang.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​(java.lang.String s)
        Base dir for the webapp. Used to generate class names and resolve includes.
        Parameters:
        s - New value
      • setJspFiles

        public void setJspFiles​(java.lang.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​(java.lang.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​(java.lang.String s)
        Sets the output directory for generated files.
        Parameters:
        s - Output directory path
      • setPackage

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

        public void setClassName​(java.lang.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​(java.lang.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​(java.lang.String s)
        File where we generate a complete web-fragment.xml with the class definitions.
        Parameters:
        s - New value
      • setWebXml

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

        public void setWebXmlEncoding​(java.lang.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​(java.lang.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​(java.lang.String file,
                                       JspCompilationContext clctxt)
                                throws java.io.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:
        java.io.IOException - An IO error occurred
      • mergeIntoWebXml

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

        protected void processFile​(java.lang.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 java.lang.String nextArg()
        Returns the next command-line argument.
        Returns:
        the next argument, or null if no more arguments
      • nextFile

        protected java.lang.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,
                                      java.lang.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​(java.lang.ClassLoader classLoader)
                                   throws java.io.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:
        java.io.IOException - If an I/O error occurs
        JasperException - If a JSP error occurs
      • initClassLoader

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

        protected void locateUriRoot​(java.io.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 java.io.File resolveFile​(java.lang.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 java.lang.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