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" />
 
Author:
Danno Ferrin, Pierre Delisle, Costin Manolache, Yoav Shapira
  • Field Details

    • DEFAULT_IE_CLASS_ID

      @Deprecated public static final String DEFAULT_IE_CLASS_ID
      Deprecated.
      See Also:
    • SWITCH_VERBOSE

      protected static final String SWITCH_VERBOSE
      See Also:
    • SWITCH_HELP

      protected static final String SWITCH_HELP
      See Also:
    • SWITCH_OUTPUT_DIR

      protected static final String SWITCH_OUTPUT_DIR
      See Also:
    • SWITCH_PACKAGE_NAME

      protected static final String SWITCH_PACKAGE_NAME
      See Also:
    • SWITCH_CACHE

      protected static final String SWITCH_CACHE
      See Also:
    • SWITCH_CLASS_NAME

      protected static final String SWITCH_CLASS_NAME
      See Also:
    • SWITCH_FULL_STOP

      protected static final String SWITCH_FULL_STOP
      See Also:
    • SWITCH_COMPILE

      protected static final String SWITCH_COMPILE
      See Also:
    • SWITCH_FAIL_FAST

      protected static final String SWITCH_FAIL_FAST
      See Also:
    • SWITCH_SOURCE

      protected static final String SWITCH_SOURCE
      See Also:
    • SWITCH_TARGET

      protected static final String SWITCH_TARGET
      See Also:
    • SWITCH_URI_BASE

      protected static final String SWITCH_URI_BASE
      See Also:
    • SWITCH_URI_ROOT

      protected static final String SWITCH_URI_ROOT
      See Also:
    • SWITCH_FILE_WEBAPP

      protected static final String SWITCH_FILE_WEBAPP
      See Also:
    • SWITCH_WEBAPP_INC

      protected static final String SWITCH_WEBAPP_INC
      See Also:
    • SWITCH_WEBAPP_FRG

      protected static final String SWITCH_WEBAPP_FRG
      See Also:
    • SWITCH_WEBAPP_XML

      protected static final String SWITCH_WEBAPP_XML
      See Also:
    • SWITCH_WEBAPP_XML_ENCODING

      protected static final String SWITCH_WEBAPP_XML_ENCODING
      See Also:
    • SWITCH_ADD_WEBAPP_XML_MAPPINGS

      protected static final String SWITCH_ADD_WEBAPP_XML_MAPPINGS
      See Also:
    • SWITCH_MAPPED

      protected static final String SWITCH_MAPPED
      See Also:
    • SWITCH_XPOWERED_BY

      protected static final String SWITCH_XPOWERED_BY
      See Also:
    • SWITCH_TRIM_SPACES

      protected static final String SWITCH_TRIM_SPACES
      See Also:
    • SWITCH_CLASSPATH

      protected static final String SWITCH_CLASSPATH
      See Also:
    • SWITCH_DIE

      protected static final String SWITCH_DIE
      See Also:
    • SWITCH_POOLING

      protected static final String SWITCH_POOLING
      See Also:
    • SWITCH_ENCODING

      protected static final String SWITCH_ENCODING
      See Also:
    • SWITCH_SMAP

      protected static final String SWITCH_SMAP
      See Also:
    • SWITCH_DUMP_SMAP

      protected static final String SWITCH_DUMP_SMAP
      See Also:
    • SWITCH_VALIDATE_TLD

      protected static final String SWITCH_VALIDATE_TLD
      See Also:
    • SWITCH_VALIDATE_XML

      protected static final String SWITCH_VALIDATE_XML
      See Also:
    • SWITCH_NO_BLOCK_EXTERNAL

      protected static final String SWITCH_NO_BLOCK_EXTERNAL
      See Also:
    • SWITCH_NO_STRICT_QUOTE_ESCAPING

      protected static final String SWITCH_NO_STRICT_QUOTE_ESCAPING
      See Also:
    • SWITCH_QUOTE_ATTRIBUTE_EL

      protected static final String SWITCH_QUOTE_ATTRIBUTE_EL
      See Also:
    • SWITCH_NO_QUOTE_ATTRIBUTE_EL

      protected static final String SWITCH_NO_QUOTE_ATTRIBUTE_EL
      See Also:
    • SWITCH_THREAD_COUNT

      protected static final String SWITCH_THREAD_COUNT
      See Also:
    • SHOW_SUCCESS

      protected static final String SHOW_SUCCESS
      See Also:
    • LIST_ERRORS

      protected static final String LIST_ERRORS
      See Also:
    • INC_WEBXML

      protected static final int INC_WEBXML
      See Also:
    • FRG_WEBXML

      protected static final int FRG_WEBXML
      See Also:
    • ALL_WEBXML

      protected static final int ALL_WEBXML
      See Also:
    • DEFAULT_DIE_LEVEL

      protected static final int DEFAULT_DIE_LEVEL
      See Also:
    • NO_DIE_LEVEL

      protected static final int NO_DIE_LEVEL
      See Also:
    • insertBefore

      protected static final Set<String> insertBefore
    • classPath

      protected String classPath
    • loader

      protected ClassLoader loader
    • trimSpaces

      protected TrimSpacesOption trimSpaces
    • genStringAsCharArray

      protected boolean genStringAsCharArray
    • validateTld

      protected boolean validateTld
    • validateXml

      protected boolean validateXml
    • blockExternal

      protected boolean blockExternal
    • strictQuoteEscaping

      protected boolean strictQuoteEscaping
    • quoteAttributeEL

      protected boolean quoteAttributeEL
    • xpoweredBy

      protected boolean xpoweredBy
    • mappedFile

      protected boolean mappedFile
    • poolingEnabled

      protected boolean poolingEnabled
    • scratchDir

      protected File scratchDir
    • ieClassId

      protected String ieClassId
    • targetPackage

      protected String targetPackage
    • targetClassName

      protected String targetClassName
    • uriBase

      protected String uriBase
    • uriRoot

      protected String uriRoot
    • dieLevel

      protected int dieLevel
    • helpNeeded

      protected boolean helpNeeded
    • compile

      protected boolean compile
    • failFast

      protected boolean failFast
    • smapSuppressed

      protected boolean smapSuppressed
    • smapDumped

      protected boolean smapDumped
    • caching

      protected boolean caching
    • cache

      protected final Map<String,TagLibraryInfo> cache
    • compiler

      protected String compiler
    • compilerTargetVM

      protected String compilerTargetVM
    • compilerSourceVM

      protected String compilerSourceVM
    • classDebugInfo

      protected boolean classDebugInfo
    • 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
    • webxmlLevel

      protected int webxmlLevel
    • webxmlEncoding

      protected String webxmlEncoding
    • addWebXmlMappings

      protected boolean addWebXmlMappings
    • mapout

      protected Writer mapout
    • servletout

      protected CharArrayWriter servletout
    • mappingout

      protected CharArrayWriter mappingout
    • 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
    • tagPluginManager

      protected TagPluginManager tagPluginManager
    • scanner

      protected TldScanner scanner
    • verbose

      protected boolean verbose
    • listErrors

      protected boolean listErrors
    • showSuccess

      protected boolean showSuccess
    • argPos

      protected int argPos
    • fullstop

      protected boolean fullstop
    • args

      protected String[] args
  • Constructor Details

    • JspC

      public JspC()
  • Method Details

    • main

      public static void main(String[] arg)
    • 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.
      Specified by:
      getKeepGenerated in interface Options
      Returns:
      true to keep the generated source
    • getTrimSpaces

      public TrimSpacesOption getTrimSpaces()
      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)
    • 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)
    • isPoolingEnabled

      public boolean isPoolingEnabled()
      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()
      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.
      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()
      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()
      Specified by:
      getMappedFile in interface Options
      Returns:
      true if HTML mapped Servlets are supported.
    • setMappedFile

      public void setMappedFile(boolean b)
    • setClassDebugInfo

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

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

      public boolean isCaching()
      Specified by:
      isCaching in interface Options
      Returns:
      true is 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.
      Specified by:
      getCheckInterval in interface Options
      Returns:
      background compile thread check interval in seconds
    • getModificationTestInterval

      public int getModificationTestInterval()
      In JspC this always returns 0.
      Specified by:
      getModificationTestInterval in interface Options
      Returns:
      modification test interval.
    • getRecompileOnFail

      public boolean getRecompileOnFail()
      In JspC this always returns false.
      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()
      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
    • setIeClassId

      @Deprecated public void setIeClassId(String ieClassId)
      Deprecated.
      Will be removed in Tomcat 10.1
      Sets the class-id value to be sent to Internet Explorer when using <jsp:plugin> tags.
      Parameters:
      ieClassId - Class-id value
    • getIeClassId

      @Deprecated public String getIeClassId()
      Deprecated.
      Description copied from interface: Options
      Gets the class-id value that is sent to Internet Explorer when using <jsp:plugin> tags.
      Specified by:
      getIeClassId in interface Options
      Returns:
      Class-id value
    • getScratchDir

      public File getScratchDir()
      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()
      Specified by:
      getCompilerClassName in interface Options
      Returns:
      Jasper Java compiler class to use.
    • getCompilerTargetVM

      public String getCompilerTargetVM()
      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()
      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)
    • getClassPath

      public String getClassPath()
      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)
    • isValidateTld

      public boolean isValidateTld()
    • setValidateXml

      public void setValidateXml(boolean b)
    • isValidateXml

      public boolean isValidateXml()
    • setBlockExternal

      public void setBlockExternal(boolean b)
    • isBlockExternal

      public boolean isBlockExternal()
    • setStrictQuoteEscaping

      public void setStrictQuoteEscaping(boolean b)
    • getStrictQuoteEscaping

      public boolean getStrictQuoteEscaping()
      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)
    • getQuoteAttributeEL

      public boolean getQuoteAttributeEL()
      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()
    • setThreadCount

      public void setThreadCount(String threadCount)
    • setListErrors

      public void setListErrors(boolean b)
    • setOutputDir

      public void setOutputDir(String s)
    • 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
    • setWebXmlFragment

      @Deprecated public void setWebXmlFragment(String s)
      Deprecated.
      Will be removed in Tomcat 10. Use setWebXmlInclude(String)
      File where we generate a web.xml fragment with the class definitions.
      Parameters:
      s - 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
    • getFailOnError

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

      public JspConfig getJspConfig()
      Specified by:
      getJspConfig in interface Options
      Returns:
      JSP configuration information specified in web.xml.
    • getTagPluginManager

      public TagPluginManager getTagPluginManager()
      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
      Throws:
      JasperException
    • scanFiles

      @Deprecated public void scanFiles(File base)
      Deprecated.
      This will be removed in Tomcat 10. Use scanFiles()
      Locate all jsp files in the webapp. Used if no explicit jsps are specified.
      Parameters:
      base - Base path
    • 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()
    • nextFile

      protected String nextFile()
    • initWebXml

      protected void initWebXml() throws JasperException
      Throws:
      JasperException
    • completeWebXml

      protected void completeWebXml()
    • initTldScanner

      protected void initTldScanner(JspCServletContext context, ClassLoader classLoader)
    • newTldScanner

      protected TldScanner newTldScanner(JspCServletContext context, boolean namespaceAware, boolean validate, boolean blockExternal)
    • initServletContext

      protected void initServletContext(ClassLoader classLoader) throws IOException, JasperException
      Throws:
      IOException
      JasperException
    • 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