org.apache.jasper
Class JspC

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

public class JspC
extends java.lang.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, Yoav Shapira

Field Summary
static java.lang.String DEFAULT_IE_CLASS_ID
          The default Microsoft Internet Explorer class ID.
 
Constructor Summary
JspC()
          Constructor.
 
Method Summary
protected  void addExtension(java.lang.String extension)
          Adds the given file extension to the list of extensions handled as JSP files.
 void execute()
          Executes the compilation.
 void generateWebMapping(java.lang.String file, JspCompilationContext clctxt)
           
 boolean genStringAsCharArray()
          Indicates whether text strings are to be generated as char arrays.
 java.util.Map getCache()
          The web-application wide cache for the returned TreeNode by parseXMLDocument in TagLibraryInfoImpl.parseTLD, if isCaching returns true.
 int getCheckInterval()
          Background compilation check intervals in seconds
 boolean getClassDebugInfo()
          Should we include debug information in compiled class?
 java.lang.String getClassPath()
          What classpath should I use while compiling the servlets generated from JSP files?
 java.lang.String getCompiler()
          Compiler to use.
 java.lang.String getCompilerSourceVM()
          Compiler source VM, e.g. 1.3, 1.4, or 1.5.
 java.lang.String getCompilerTargetVM()
          The compiler target VM, e.g. 1.1, 1.2, 1.3, 1.4, or 1.5.
 boolean getDevelopment()
          Is Jasper being used in development mode?
 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 getExtensions()
          Returns the list of file extensions that are treated as JSP files.
 boolean getFailOnError()
           
 boolean getFork()
          boolean flag to tell Ant whether to fork JSP page compilations.
 java.lang.String getIeClassId()
          Gets the class-id value that is sent to Internet Explorer when using tags.
 java.lang.String getJavaEncoding()
          Returns the encoding to use for java files.
 java.lang.String getJspCompilerPath()
           
 java.lang.Class getJspCompilerPlugin()
           
 JspConfig getJspConfig()
          Obtain JSP configuration informantion specified in web.xml.
 boolean getKeepGenerated()
          Are we keeping generated code around?
 boolean getMappedFile()
          Are we supporting HTML mapped servlets?
 int getModificationTestInterval()
          Modification test interval.
 org.apache.tools.ant.Project getProject()
          Returns the project: may be null if not running inside an Ant project.
 java.lang.Object getProtectionDomain()
           
 java.io.File getScratchDir()
          What is my scratch dir?
 boolean getSendErrorToClient()
          Should errors be sent to client or thrown into stderr?
 TagPluginManager getTagPluginManager()
          Obtain a Tag Plugin Manager
 int getTagPoolSize()
           
 TldLocationsCache getTldLocationsCache()
          The cache for the location of the TLD's for the various tag libraries 'exposed' by the web application.
 boolean getTrimSpaces()
          Should white spaces between directives or actions be trimmed?
 boolean isCaching()
          Is caching enabled (used for precompilation).
 boolean isPoolingEnabled()
          Returns true if tag handler pooling is enabled, false otherwise.
 boolean isSmapDumped()
          Should SMAP info for JSR45 debugging be dumped to a file?
 boolean isSmapSuppressed()
          Is the generation of SMAP info for JSR45 debuggin suppressed?
 boolean isXpoweredBy()
          Is generation of X-Powered-By response header enabled/disabled?
static void main(java.lang.String[] arg)
           
protected  void mergeIntoWebXml()
          Include the generated web.xml inside the webapp's web.xml.
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(java.io.File base)
          Locate all jsp files in the webapp.
 void setAddWebXmlMappings(boolean b)
           
 void setArgs(java.lang.String[] arg)
           
 void setCaching(boolean caching)
           
 void setClassDebugInfo(boolean b)
           
 void setClassName(java.lang.String p)
          Class name of the generated file ( without package ).
 void setClassPath(java.lang.String s)
           
 void setCompile(boolean b)
          Sets the compile flag.
 void setCompiler(java.lang.String c)
           
 void setCompilerSourceVM(java.lang.String vm)
           
 void setCompilerTargetVM(java.lang.String vm)
           
 void setErrorOnUseBeanInvalidClassAttribute(boolean b)
           
 void setFailOnError(boolean b)
          Set the option that throws an exception in case of a compilation error.
 void setGenStringAsCharArray(boolean genStringAsCharArray)
          Determines whether text strings are to be generated as char arrays, which improves performance in some cases.
 void setIeClassId(java.lang.String ieClassId)
          Sets the class-id value to be sent to Internet Explorer when using tags.
 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)
           
 void setOutputDir(java.lang.String s)
           
 void setPackage(java.lang.String p)
           
 void setPoolingEnabled(boolean poolingEnabled)
           
 void setProject(org.apache.tools.ant.Project theProject)
          Sets the project.
 void setSmapDumped(boolean smapDumped)
          Set smapSuppressed flag.
 void setSmapSuppressed(boolean smapSuppressed)
          Set smapSuppressed flag.
 void setTrimSpaces(boolean ts)
           
 void setUriroot(java.lang.String s)
          Base dir for the webapp.
 void setValidateXml(boolean b)
           
 void setVerbose(int level)
          Sets the verbosity level.
 void setWebXml(java.lang.String s)
          File where we generate a complete web.xml with the class definitions.
 void setWebXmlFragment(java.lang.String s)
          File where we generate a web.xml fragment with the class definitions.
 void setXpoweredBy(boolean xpoweredBy)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_IE_CLASS_ID

public static final java.lang.String DEFAULT_IE_CLASS_ID
The default Microsoft Internet Explorer class ID.

See Also:
Constant Field Values
Constructor Detail

JspC

public JspC()
Constructor.

Method Detail

main

public static void main(java.lang.String[] arg)

setArgs

public void setArgs(java.lang.String[] arg)
             throws JasperException
Throws:
JasperException

getKeepGenerated

public boolean getKeepGenerated()
Description copied from interface: Options
Are we keeping generated code around?

Specified by:
getKeepGenerated 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()

getMappedFile

public boolean getMappedFile()
Are we supporting HTML mapped servlets?

Specified by:
getMappedFile in interface Options

getProtectionDomain

public java.lang.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

isCaching

public boolean isCaching()
Description copied from interface: Options
Is caching enabled (used for precompilation).

Specified by:
isCaching in interface Options
See Also:
Options.isCaching()

setCaching

public void setCaching(boolean caching)
See Also:
Options.isCaching()

getCache

public java.util.Map getCache()
Description copied from interface: Options
The web-application wide cache for the returned TreeNode by parseXMLDocument in TagLibraryInfoImpl.parseTLD, if isCaching returns true.

Specified by:
getCache in interface Options
Returns:
the Map(String uri, TreeNode tld) instance.
See Also:
Options.getCache()

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

isSmapSuppressed

public boolean isSmapSuppressed()
Is the generation of SMAP info for JSR45 debuggin 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

setIeClassId

public void setIeClassId(java.lang.String ieClassId)
Sets the class-id value to be sent to Internet Explorer when using tags.

Parameters:
ieClassId - Class-id value

getIeClassId

public java.lang.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 java.io.File getScratchDir()
Description copied from interface: Options
What is my scratch dir?

Specified by:
getScratchDir in interface Options

getJspCompilerPlugin

public java.lang.Class getJspCompilerPlugin()

getJspCompilerPath

public java.lang.String getJspCompilerPath()

getCompiler

public java.lang.String getCompiler()
Compiler to use.

Specified by:
getCompiler in interface Options

setCompiler

public void setCompiler(java.lang.String c)

getCompilerTargetVM

public java.lang.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:
Options.getCompilerTargetVM()

setCompilerTargetVM

public void setCompilerTargetVM(java.lang.String vm)

getCompilerSourceVM

public java.lang.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
See Also:
Options.getCompilerSourceVM()

setCompilerSourceVM

public void setCompilerSourceVM(java.lang.String vm)
See Also:
Options.getCompilerSourceVM()

getTldLocationsCache

public TldLocationsCache getTldLocationsCache()
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:
getTldLocationsCache in interface Options
Returns:
the instance of the TldLocationsCache 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
boolean flag to tell Ant whether to fork JSP page compilations.

Specified by:
getFork in interface Options

getClassPath

public java.lang.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(java.lang.String s)

getExtensions

public java.util.List 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"

setProject

public void setProject(org.apache.tools.ant.Project theProject)
Sets the project.

Parameters:
theProject - The project

getProject

public org.apache.tools.ant.Project getProject()
Returns the project: may be null if not running inside an Ant project.

Returns:
The project

setUriroot

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


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

setValidateXml

public void setValidateXml(boolean b)

setListErrors

public void setListErrors(boolean b)

setOutputDir

public void setOutputDir(java.lang.String s)

setPackage

public void setPackage(java.lang.String p)

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 ?


setWebXmlFragment

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


setWebXml

public void setWebXml(java.lang.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()

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(java.lang.String file,
                               JspCompilationContext clctxt)
                        throws java.io.IOException
Throws:
java.io.IOException

mergeIntoWebXml

protected void mergeIntoWebXml()
                        throws java.io.IOException
Include the generated web.xml inside the webapp's web.xml.

Throws:
java.io.IOException

scanFiles

public void scanFiles(java.io.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
Executes the compilation.

Throws:
JasperException - If an error occurs

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


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.