Class JspC

java.lang.Object
org.apache.jasper.JspC
All Implemented Interfaces:
Options

public class JspC extends Object 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="jasper2" >
      <classpath>
          <pathelement location="${java.home}/../lib/tools.jar"/>
          <fileset dir="${ENV.CATALINA_HOME}/server/lib">
              <include name="*.jar"/>
          </fileset>
          <fileset dir="${ENV.CATALINA_HOME}/common/lib">
              <include name="*.jar"/>
          </fileset>
          <path refid="myjars"/>
       </classpath>
  </taskdef>

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

  • Constructor Details

    • JspC

      public JspC()
  • Method Details

    • main

      public static void main(String[] arg)
    • setArgs

      public void setArgs(String[] arg) throws JasperException
      Throws:
      JasperException
    • getDieLevel

      public int getDieLevel()
    • getKeepGenerated

      public boolean getKeepGenerated()
      Description copied from interface: Options
      Are we keeping generated code around?
      Specified by:
      getKeepGenerated in interface Options
    • getSaveBytecode

      public boolean getSaveBytecode()
      Description copied from interface: Options
      If class files are generated as byte arrays, should they be saved to disk at the end of compilations?
      Specified by:
      getSaveBytecode in interface Options
    • getTrimSpaces

      public boolean getTrimSpaces()
      Description copied from interface: Options
      Should white spaces between directives or actions be trimmed?
      Specified by:
      getTrimSpaces in interface Options
    • setTrimSpaces

      public void setTrimSpaces(boolean ts)
    • isPoolingEnabled

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

      public void setPoolingEnabled(boolean poolingEnabled)
    • isXpoweredBy

      public boolean isXpoweredBy()
      Description copied from interface: Options
      Is generation of X-Powered-By response header enabled/disabled?
      Specified by:
      isXpoweredBy in interface Options
    • setXpoweredBy

      public void setXpoweredBy(boolean xpoweredBy)
    • 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
    • setErrorOnUseBeanInvalidClassAttribute

      public void setErrorOnUseBeanInvalidClassAttribute(boolean b)
    • getTagPoolSize

      public int getTagPoolSize()
    • getInitialCapacity

      public int getInitialCapacity()
      Gets initial capacity of HashMap which maps JSPs to their corresponding servlets.
      Specified by:
      getInitialCapacity in interface Options
    • getMappedFile

      public boolean getMappedFile()
      Are we supporting HTML mapped servlets?
      Specified by:
      getMappedFile in interface Options
    • getProtectionDomain

      public Object getProtectionDomain()
    • getSendErrorToClient

      public boolean getSendErrorToClient()
      Description copied from interface: Options
      Should errors be sent to client or thrown into stderr?
      Specified by:
      getSendErrorToClient in interface Options
    • setClassDebugInfo

      public void setClassDebugInfo(boolean b)
    • getClassDebugInfo

      public boolean getClassDebugInfo()
      Description copied from interface: Options
      Should we include debug information in compiled class?
      Specified by:
      getClassDebugInfo in interface Options
    • getCheckInterval

      public int getCheckInterval()
      Background compilation check intervals in seconds
      Specified by:
      getCheckInterval in interface Options
    • getModificationTestInterval

      public int getModificationTestInterval()
      Modification test interval.
      Specified by:
      getModificationTestInterval in interface Options
    • getDevelopment

      public boolean getDevelopment()
      Is Jasper being used in development mode?
      Specified by:
      getDevelopment in interface Options
    • getUsePrecompiled

      public boolean getUsePrecompiled()
      Description copied from interface: Options
      Returns the value of the usePrecompiled (or use-precompiled) init param.
      Specified by:
      getUsePrecompiled in interface Options
    • isSmapSuppressed

      public boolean isSmapSuppressed()
      Is the generation of SMAP info for JSR45 debugging suppressed?
      Specified by:
      isSmapSuppressed in interface Options
    • setSmapSuppressed

      public void setSmapSuppressed(boolean smapSuppressed)
      Set smapSuppressed flag.
    • isSmapDumped

      public boolean isSmapDumped()
      Should SMAP info for JSR45 debugging be dumped to a file?
      Specified by:
      isSmapDumped in interface Options
    • setSmapDumped

      public void setSmapDumped(boolean smapDumped)
      Set smapSuppressed flag.
    • 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()
      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
    • setGenStringAsByteArray

      public void setGenStringAsByteArray(boolean genStringAsByteArray)
    • genStringAsByteArray

      public boolean genStringAsByteArray()
      Description copied from interface: Options
      Are text strings to be generated as byte arrays, if the page is unbuffered?
      Specified by:
      genStringAsByteArray in interface Options
    • isDefaultBufferNone

      public boolean isDefaultBufferNone()
      Description copied from interface: Options
      If the buffer attribute for the page directive is not specified, is the default "none"?
      Specified by:
      isDefaultBufferNone in interface Options
    • setDefaultBufferNone

      public void setDefaultBufferNone(boolean defaultBufferNone)
    • setIeClassId

      public void setIeClassId(String ieClassId)
      Sets the class-id value to be sent to Internet Explorer when using invalid input: '<'jsp:plugin> tags.
      Parameters:
      ieClassId - Class-id value
    • getIeClassId

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

      public File getScratchDir()
      Description copied from interface: Options
      What is my scratch dir?
      Specified by:
      getScratchDir in interface Options
    • getJspCompilerPlugin

      public Class getJspCompilerPlugin()
    • getJspCompilerPath

      public String getJspCompilerPath()
    • getCompiler

      public String getCompiler()
      Compiler to use.
      Specified by:
      getCompiler in interface Options
    • setCompiler

      public void setCompiler(String c)
    • getCompilerTargetVM

      public String getCompilerTargetVM()
      Description copied from interface: Options
      The compiler target VM, e.g. 1.1, 1.2, 1.3, 1.4, or 1.5.
      Specified by:
      getCompilerTargetVM in interface Options
      See Also:
    • setCompilerTargetVM

      public void setCompilerTargetVM(String vm)
    • getCompilerSourceVM

      public String getCompilerSourceVM()
      Description copied from interface: Options
      Compiler source VM, e.g. 1.3, 1.4, or 1.5.
      Specified by:
      getCompilerSourceVM in interface Options
    • setCompilerSourceVM

      public void setCompilerSourceVM(String vm)
    • getCompilerClassName

      public String getCompilerClassName()
      Description copied from interface: Options
      The name of class that implements JavaCompiler, used for Java compilations.
      Specified by:
      getCompilerClassName in interface Options
    • getTldScanner

      public TldScanner getTldScanner()
      Description copied from interface: Options
      The cache for the location of the TLD's for the various tag libraries 'exposed' by the web application. A tag library is 'exposed' either explicitely in web.xml or implicitely via the uri tag in the TLD of a taglib deployed in a jar file (WEB-INF/lib).
      Specified by:
      getTldScanner in interface Options
      Returns:
      the instance of the TldScanner 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
      boolean flag to tell Ant whether to fork JSP page compilations.
      Specified by:
      getFork in interface Options
    • getClassPath

      public String getClassPath()
      Description copied from interface: Options
      What classpath should I use while compiling the servlets generated from JSP files?
      Specified by:
      getClassPath in interface Options
    • setClassPath

      public void setClassPath(String s)
    • getSystemClassPath

      public String getSystemClassPath()
      Gets the system class path.
      Specified by:
      getSystemClassPath in interface Options
      Returns:
      The system class path
    • setSystemClassPath

      public void setSystemClassPath(String s)
      Sets the system class path.
      Parameters:
      s - The system class path to use
    • setUriroot

      public void setUriroot(String s)
      Base dir for the webapp. Used to generate class names and resolve includes
    • setSchemaResourcePrefix

      public static void setSchemaResourcePrefix(String prefix)
      Sets the path prefix for .xsd resources
    • setDtdResourcePrefix

      public static void setDtdResourcePrefix(String prefix)
      Sets the path prefix for .dtd resources
    • setJspFiles

      public void setJspFiles(String jspFiles)
    • setCompile

      public void setCompile(boolean b)
    • setVerbose

      public void setVerbose(int level)
    • setValidateXml

      public void setValidateXml(boolean b)
    • setIsValidationEnabled

      public void setIsValidationEnabled(boolean b)
    • isValidationEnabled

      public boolean isValidationEnabled()
      Specified by:
      isValidationEnabled in interface Options
    • setListErrors

      public void setListErrors(boolean b)
    • setOutputDir

      public void setOutputDir(String s)
    • setPackage

      public void setPackage(String p)
    • 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 ?
    • setWebXmlFragment

      public void setWebXmlFragment(String s)
      File where we generate a web.xml fragment with the class definitions.
    • setWebXml

      public void setWebXml(String s)
      File where we generate a complete web.xml with the class definitions.
    • setAddWebXmlMappings

      public void setAddWebXmlMappings(boolean b)
    • setFailOnError

      public void setFailOnError(boolean b)
      Set the option that throws an exception in case of a compilation error.
    • getFailOnError

      public boolean getFailOnError()
    • setIgnoreJspFragmentErrors

      public void setIgnoreJspFragmentErrors(boolean ignore)
    • getJspConfig

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

      public TagPluginManager getTagPluginManager()
      Description copied from interface: Options
      Obtain a Tag Plugin Manager
      Specified by:
      getTagPluginManager in interface Options
    • generateWebMapping

      public void generateWebMapping(String file, JspCompilationContext clctxt) throws IOException
      Throws:
      IOException
    • getJSPCompilationErrors

      public List<JasperException> getJSPCompilationErrors()
      Gets the list of JSP compilation errors caught during the most recent invocation of this instance's execute method when failOnError has been set to FALSE. Each error error in the list is represented by an instance of org.apache.jasper.JasperException.
      Returns:
      List of JSP compilation errors caught during most recent invocation of this instance's execute method, or an empty list if no errors were encountered or this instance's failOnError property was set to TRUE
    • mergeIntoWebXml

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

      private void processFile(String file) throws JasperException
      Throws:
      JasperException
    • scanFiles

      public void scanFiles(File base) throws JasperException
      Locate all jsp files in the webapp. Used if no explicit jsps are specified.
      Throws:
      JasperException
    • execute

      public void execute() throws JasperException
      Throws:
      JasperException
    • nextArg

      private String nextArg()
    • nextFile

      private String nextFile()
    • initWebXml

      private void initWebXml()
    • completeWebXml

      private void completeWebXml()
    • initServletContext

      private void initServletContext()
    • initClassLoader

      private void initClassLoader(JspCompilationContext clctxt) throws IOException
      Initializes the classloader as/if needed for the given compilation context.
      Parameters:
      clctxt - The compilation context
      Throws:
      IOException - If an error occurs
    • locateUriRoot

      private 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. XXX Maybe we should require the docbase.
    • initSystemClassLoader

      private ClassLoader initSystemClassLoader() throws IOException
      Throws:
      IOException
    • purgeJspFragmentErrors

      private void purgeJspFragmentErrors()