Class TexenTask
- java.lang.Object
-
- org.apache.tools.ant.ProjectComponent
-
- org.apache.tools.ant.Task
-
- org.apache.velocity.texen.ant.TexenTask
-
- All Implemented Interfaces:
java.lang.Cloneable
public class TexenTask extends org.apache.tools.ant.Task
An ant task for generating output by using Velocity- Version:
- $Id: TexenTask.java 463298 2006-10-12 16:10:32Z henning $
- Author:
- Jason van Zyl, Robert Burrell Donkin
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.collections.ExtendedProperties
contextProperties
These are properties that are fed into the initial context from a properties file.protected java.lang.String
controlTemplate
This is the control template that governs the output.protected java.lang.String
inputEncoding
This is the encoding for the input file(s) (templates).protected java.lang.String
logFile
The LogFile (incl.protected java.lang.String
outputDirectory
This is where texen will place all the output that is a product of the generation process.protected java.lang.String
outputEncoding
This is the encoding for the output file(s).protected java.lang.String
outputFile
This is the file where the generated text will be placed.protected java.lang.String
resourceLoaderModificationCheckInterval
protected java.lang.String
templatePath
This is where Velocity will look for templates using the file template loader.protected boolean
useClasspath
Property which controls whether the classpath will be used when trying to locate templates.protected java.lang.String
useResourceLoaderCache
Property which controls whether the resource loader will be told to cache.
-
Constructor Summary
Constructors Constructor Description TexenTask()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
cleanup()
A hook method called at the end ofexecute()
which can be overridden to perform any necessary cleanup activities (such as the release of database connections, etc.).void
execute()
Execute the input script with Velocityorg.apache.commons.collections.ExtendedProperties
getContextProperties()
Get the context properties that will be fed into the initial context be the generating process starts.java.lang.String
getControlTemplate()
Get the control template for the generating process.java.lang.String
getLogFile()
Gets the log file.java.lang.String
getOutputDirectory()
Get the output directory.java.lang.String
getOutputFile()
Get the output file for the generation process.java.lang.String
getTemplatePath()
Get the path where Velocity will look for templates using the file template loader.Context
initControlContext()
Creates a VelocityContext.protected void
populateInitialContext(Context context)
Place useful objects into the initial context.void
setContextProperties(java.lang.String file)
Set the context properties that will be fed into the initial context be the generating process starts.void
setControlTemplate(java.lang.String controlTemplate)
[REQUIRED] Set the control template for the generating process.void
setInputEncoding(java.lang.String inputEncoding)
Set the input (template) encoding.void
setLogFile(java.lang.String log)
Sets the log file.void
setOutputDirectory(java.io.File outputDirectory)
[REQUIRED] Set the output directory.void
setOutputEncoding(java.lang.String outputEncoding)
Set the output encoding.void
setOutputFile(java.lang.String outputFile)
[REQUIRED] Set the output file for the generation process.void
setResourceLoaderModificationCheckInterval(java.lang.String resourceLoaderModificationCheckInterval)
void
setTemplatePath(java.lang.String templatePath)
[REQUIRED] Set the path where Velocity will look for templates using the file template loader.void
setUseClasspath(boolean useClasspath)
Set the use of the classpath in locating templatesvoid
setUseResourceLoaderCache(java.lang.String useResourceLoaderCache)
-
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
-
-
-
-
Field Detail
-
controlTemplate
protected java.lang.String controlTemplate
This is the control template that governs the output. It may or may not invoke the services of worker templates.
-
templatePath
protected java.lang.String templatePath
This is where Velocity will look for templates using the file template loader.
-
outputDirectory
protected java.lang.String outputDirectory
This is where texen will place all the output that is a product of the generation process.
-
outputFile
protected java.lang.String outputFile
This is the file where the generated text will be placed.
-
outputEncoding
protected java.lang.String outputEncoding
This is the encoding for the output file(s).
-
inputEncoding
protected java.lang.String inputEncoding
This is the encoding for the input file(s) (templates).
-
contextProperties
protected org.apache.commons.collections.ExtendedProperties contextProperties
These are properties that are fed into the initial context from a properties file. This is simply a convenient way to set some values that you wish to make available in the context.
These values are not critical, like the template path or output path, but allow a convenient way to set a value that may be specific to a particular generation task.
For example, if you are generating scripts to allow user to automatically create a database, then you might want the
$databaseName
to be placed in the initial context so that it is available in a script that might look something like the following:
The value of#!bin/sh echo y | mysqladmin create $databaseName
$databaseName
isn't critical to output, and you obviously don't want to change the ant task to simply take a database name. So initial context values can be set with properties file.
-
useClasspath
protected boolean useClasspath
Property which controls whether the classpath will be used when trying to locate templates.
-
logFile
protected java.lang.String logFile
The LogFile (incl. path) to log to.
-
useResourceLoaderCache
protected java.lang.String useResourceLoaderCache
Property which controls whether the resource loader will be told to cache. Default false
-
resourceLoaderModificationCheckInterval
protected java.lang.String resourceLoaderModificationCheckInterval
-
-
Method Detail
-
setControlTemplate
public void setControlTemplate(java.lang.String controlTemplate)
[REQUIRED] Set the control template for the generating process.- Parameters:
controlTemplate
-
-
getControlTemplate
public java.lang.String getControlTemplate()
Get the control template for the generating process.- Returns:
- The current control template.
-
setTemplatePath
public void setTemplatePath(java.lang.String templatePath) throws java.lang.Exception
[REQUIRED] Set the path where Velocity will look for templates using the file template loader.- Parameters:
templatePath
-- Throws:
java.lang.Exception
-
getTemplatePath
public java.lang.String getTemplatePath()
Get the path where Velocity will look for templates using the file template loader.- Returns:
- The template path.
-
setOutputDirectory
public void setOutputDirectory(java.io.File outputDirectory)
[REQUIRED] Set the output directory. It will be created if it doesn't exist.- Parameters:
outputDirectory
-
-
getOutputDirectory
public java.lang.String getOutputDirectory()
Get the output directory.- Returns:
- The output directory.
-
setOutputFile
public void setOutputFile(java.lang.String outputFile)
[REQUIRED] Set the output file for the generation process.- Parameters:
outputFile
-
-
setOutputEncoding
public void setOutputEncoding(java.lang.String outputEncoding)
Set the output encoding.- Parameters:
outputEncoding
-
-
setInputEncoding
public void setInputEncoding(java.lang.String inputEncoding)
Set the input (template) encoding.- Parameters:
inputEncoding
-
-
getOutputFile
public java.lang.String getOutputFile()
Get the output file for the generation process.- Returns:
- The output file.
-
setLogFile
public void setLogFile(java.lang.String log)
Sets the log file.- Parameters:
log
-
-
getLogFile
public java.lang.String getLogFile()
Gets the log file.- Returns:
- The log file.
-
setContextProperties
public void setContextProperties(java.lang.String file)
Set the context properties that will be fed into the initial context be the generating process starts.- Parameters:
file
-
-
getContextProperties
public org.apache.commons.collections.ExtendedProperties getContextProperties()
Get the context properties that will be fed into the initial context be the generating process starts.- Returns:
- The current context properties.
-
setUseClasspath
public void setUseClasspath(boolean useClasspath)
Set the use of the classpath in locating templates- Parameters:
useClasspath
- true means the classpath will be used.
-
setUseResourceLoaderCache
public void setUseResourceLoaderCache(java.lang.String useResourceLoaderCache)
- Parameters:
useResourceLoaderCache
-
-
setResourceLoaderModificationCheckInterval
public void setResourceLoaderModificationCheckInterval(java.lang.String resourceLoaderModificationCheckInterval)
- Parameters:
resourceLoaderModificationCheckInterval
-
-
initControlContext
public Context initControlContext() throws java.lang.Exception
Creates a VelocityContext.- Returns:
- new Context
- Throws:
java.lang.Exception
- the execute method will catch and rethrow as aBuildException
-
execute
public void execute() throws org.apache.tools.ant.BuildException
Execute the input script with Velocity- Overrides:
execute
in classorg.apache.tools.ant.Task
- Throws:
org.apache.tools.ant.BuildException
- BuildExceptions are thrown when required attributes are missing. Exceptions thrown by Velocity are rethrown as BuildExceptions.
-
populateInitialContext
protected void populateInitialContext(Context context) throws java.lang.Exception
Place useful objects into the initial context.
TexenTask places
Date().toString()
into the context as$now
. Subclasses who want to vary the objects in the context should override this method.$generator
is not put into the context in this method.- Parameters:
context
- The context to populate, as retrieved frominitControlContext()
.- Throws:
java.lang.Exception
- Error while populating context. Theexecute()
method will catch and rethrow as aBuildException
.
-
cleanup
protected void cleanup() throws java.lang.Exception
A hook method called at the end ofexecute()
which can be overridden to perform any necessary cleanup activities (such as the release of database connections, etc.). By default, does nothing.- Throws:
java.lang.Exception
- Problem cleaning up.
-
-