org.apache.jasper

Class JspC

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" />
 
Authors:
Danno Ferrin
Pierre Delisle
Costin Manolache
Yoav Shapira

Field Summary

static String
DEFAULT_IE_CLASS_ID

Method Summary

protected void
addExtension(String extension)
Adds the given file extension to the list of extensions handled as JSP files.
void
execute()
Executes the compilation.
boolean
genStringAsCharArray()
Indicates whether text strings are to be generated as char arrays.
void
generateWebMapping(String file, JspCompilationContext clctxt)
Map
getCache()
int
getCheckInterval()
Background compilation check intervals in seconds
boolean
getClassDebugInfo()
String
getClassPath()
String
getCompiler()
Compiler to use.
String
getCompilerSourceVM()
String
getCompilerTargetVM()
boolean
getDevelopment()
Is Jasper being used in development mode?
boolean
getErrorOnUseBeanInvalidClassAttribute()
List
getExtensions()
Returns the list of file extensions that are treated as JSP files.
boolean
getFailOnError()
boolean
getFork()
String
getIeClassId()
Gets the class-id value that is sent to Internet Explorer when using tags.
String
getJavaEncoding()
Returns the encoding to use for java files.
String
getJspCompilerPath()
Class
getJspCompilerPlugin()
JspConfig
getJspConfig()
Obtain JSP configuration informantion specified in web.xml.
boolean
getKeepGenerated()
boolean
getMappedFile()
Are we supporting HTML mapped servlets?
int
getModificationTestInterval()
Modification test interval.
Project
getProject()
Returns the project: may be null if not running inside an Ant project.
Object
getProtectionDomain()
File
getScratchDir()
boolean
getSendErrorToClient()
TagPluginManager
getTagPluginManager()
int
getTagPoolSize()
TldLocationsCache
getTldLocationsCache()
boolean
getTrimSpaces()
boolean
isCaching()
boolean
isPoolingEnabled()
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()
static void
main(arg[] )
protected void
mergeIntoWebXml()
Include the generated web.xml inside the webapp's web.xml.
protected File
resolveFile(String s)
Resolves the relative or absolute pathname correctly in both Ant and command-line situations.
void
scanFiles(File base)
Locate all jsp files in the webapp.
void
setAddWebXmlMappings(boolean b)
void
setArgs(String[] arg)
void
setCaching(boolean caching)
void
setClassDebugInfo(boolean b)
void
setClassName(String p)
Class name of the generated file ( without package ).
void
setClassPath(String s)
void
setCompile(boolean b)
Sets the compile flag.
void
setCompiler(String c)
void
setCompilerSourceVM(String vm)
void
setCompilerTargetVM(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(String ieClassId)
Sets the class-id value to be sent to Internet Explorer when using tags.
void
setJavaEncoding(String encodingName)
Sets the encoding to use for java files.
void
setJspFiles(String jspFiles)
Parses comma-separated list of JSP files to be processed.
void
setListErrors(boolean b)
void
setOutputDir(String s)
void
setPackage(String p)
void
setPoolingEnabled(boolean poolingEnabled)
void
setProject(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(String s)
Base dir for the webapp.
void
setValidateXml(boolean b)
void
setVerbose(int level)
Sets the verbosity level.
void
setWebXml(String s)
File where we generate a complete web.xml with the class definitions.
void
setWebXmlFragment(String s)
File where we generate a web.xml fragment with the class definitions.
void
setXpoweredBy(boolean xpoweredBy)

Field Details

DEFAULT_IE_CLASS_ID

public static final String DEFAULT_IE_CLASS_ID

Method Details

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"

execute

public void execute()
            throws JasperException
Executes the compilation.
Throws:
JasperException - If an error occurs

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

generateWebMapping

public void generateWebMapping(String file,
                               JspCompilationContext clctxt)
            throws IOException

getCache

public Map getCache()
Specified by:
getCache in interface Options

getCheckInterval

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

getClassDebugInfo

public boolean getClassDebugInfo()
Specified by:
getClassDebugInfo in interface Options

getClassPath

public String getClassPath()
Specified by:
getClassPath in interface Options

getCompiler

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

getCompilerSourceVM

public String getCompilerSourceVM()
Specified by:
getCompilerSourceVM in interface Options

getCompilerTargetVM

public String getCompilerTargetVM()
Specified by:
getCompilerTargetVM in interface Options

getDevelopment

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

getErrorOnUseBeanInvalidClassAttribute

public boolean getErrorOnUseBeanInvalidClassAttribute()
Specified by:
getErrorOnUseBeanInvalidClassAttribute in interface Options

getExtensions

public List getExtensions()
Returns the list of file extensions that are treated as JSP files.
Returns:
The list of extensions

getFailOnError

public boolean getFailOnError()

getFork

public boolean getFork()
Specified by:
getFork in interface Options

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

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

getJspCompilerPath

public String getJspCompilerPath()

getJspCompilerPlugin

public Class getJspCompilerPlugin()

getJspConfig

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

getKeepGenerated

public boolean getKeepGenerated()
Specified by:
getKeepGenerated in interface Options

getMappedFile

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

getModificationTestInterval

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

getProject

public Project getProject()
Returns the project: may be null if not running inside an Ant project.
Returns:
The project

getProtectionDomain

public Object getProtectionDomain()

getScratchDir

public File getScratchDir()
Specified by:
getScratchDir in interface Options

getSendErrorToClient

public boolean getSendErrorToClient()
Specified by:
getSendErrorToClient in interface Options

getTagPluginManager

public TagPluginManager getTagPluginManager()
Specified by:
getTagPluginManager in interface Options

getTagPoolSize

public int getTagPoolSize()

getTldLocationsCache

public TldLocationsCache getTldLocationsCache()
Specified by:
getTldLocationsCache in interface Options

getTrimSpaces

public boolean getTrimSpaces()
Specified by:
getTrimSpaces in interface Options

isCaching

public boolean isCaching()
Specified by:
isCaching in interface Options

isPoolingEnabled

public boolean isPoolingEnabled()
Specified by:
isPoolingEnabled in interface Options

isSmapDumped

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

isSmapSuppressed

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

isXpoweredBy

public boolean isXpoweredBy()
Specified by:
isXpoweredBy in interface Options

main

public static void main(arg[] )

mergeIntoWebXml

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

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

scanFiles

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

setAddWebXmlMappings

public void setAddWebXmlMappings(boolean b)

setArgs

public void setArgs(String[] arg)
            throws JasperException

setCaching

public void setCaching(boolean caching)

setClassDebugInfo

public void setClassDebugInfo(boolean b)

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 ?

setClassPath

public void setClassPath(String s)

setCompile

public void setCompile(boolean b)
Sets the compile flag.
Parameters:
b - Flag value

setCompiler

public void setCompiler(String c)

setCompilerSourceVM

public void setCompilerSourceVM(String vm)

setCompilerTargetVM

public void setCompilerTargetVM(String vm)

setErrorOnUseBeanInvalidClassAttribute

public void setErrorOnUseBeanInvalidClassAttribute(boolean b)

setFailOnError

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

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

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

setJavaEncoding

public void setJavaEncoding(String encodingName)
Sets the encoding to use for java files.
Parameters:
encodingName - The name, e.g. "UTF-8"

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

setListErrors

public void setListErrors(boolean b)

setOutputDir

public void setOutputDir(String s)

setPackage

public void setPackage(String p)

setPoolingEnabled

public void setPoolingEnabled(boolean poolingEnabled)

setProject

public void setProject(Project theProject)
Sets the project.
Parameters:
theProject - The project

setSmapDumped

public void setSmapDumped(boolean smapDumped)
Set smapSuppressed flag.

setSmapSuppressed

public void setSmapSuppressed(boolean smapSuppressed)
Set smapSuppressed flag.

setTrimSpaces

public void setTrimSpaces(boolean ts)

setUriroot

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

setValidateXml

public void setValidateXml(boolean b)

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

setWebXml

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

setWebXmlFragment

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

setXpoweredBy

public void setXpoweredBy(boolean xpoweredBy)

Copyright B) 2000-2004 Apache Software Foundation. All Rights Reserved.