Class 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" />
     
    Author:
    Danno Ferrin, Pierre Delisle, Costin Manolache
    • Constructor Detail

      • JspC

        public JspC()
    • Method Detail

      • main

        public static void main​(String[] arg)
      • 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
      • 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 tags.
        Parameters:
        ieClassId - Class-id value
      • getIeClassId

        public String getIeClassId()
        Gets the class-id value that is sent to Internet Explorer when using 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()
      • setCompiler

        public void setCompiler​(String c)
      • 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)
      • 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
      • 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
      • scanFiles

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