| <HTML><HEAD><TITLE>Texen</TITLE></HEAD><BODY alink="#023264" bgcolor="#ffffff" leftmargin="4" link="#023264" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#023264"><TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD align="left" valign="top"><A href="http://jakarta.apache.org/index.html"><IMG border="0" hspace="0" src="resources/jakarta-logo.gif" vspace="0"></A></TD><TD align="left" bgcolor="#ffffff" valign="top" width="100%"><IMG align="right" alt="" border="0" hspace="0" src="resources/header.gif" vspace="0"></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"></TD></TR><TR><TD background="resources/line.gif" colspan="2" height="2" width="100%"><IMG alt="" border="0" height="2" hspace="0" src="resources/line.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD valign="top" width="1%"></TD><TD nowrap="1" valign="top" width="14%"><BR> |
| |
| <P>About</P> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="index.html">Overview</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="getting-started.html">Getting Started</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="install.html">Install</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="design.html">Design</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="contributors.html">Contributors</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="code-standards.html">Coding Standards</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="license.html">License</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="todo.html">TODO</A></LI></FONT> |
| <P>Guides</P> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="user-guide.html">User's Guide</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="developer-guide.html">Developer's Guide</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="vtl-reference-guide.html">VTL Reference Guide</A></LI></FONT> |
| <P>Tools</P> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="anakia.html">Anakia</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="texen.html">Texen</A></LI></FONT> |
| <FONT face="arial,helvetica,sanserif" size="-1"><LI><A href="migration.html">Migration To Velocity</A></LI></FONT> |
| </TD><TD align="left" valign="top" width="*"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD><BR> |
| |
| |
| |
| |
| |
| <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>What is Texen?</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif"> |
| |
| <P align="justify"> |
| Texen is a general purpose text generating utility. It is capable of |
| producing almost any sort of text output. Driven by Ant, essentially |
| an <A href="http://jakarta.apache.org/ant/">Ant</A> |
| Task, Texen uses a control template, an optional set of worker templates, |
| and control context to govern the generated output. Although TexenTask |
| can be used directly, it is usually subclassed to initialize your control |
| context before generating any output. |
| </P> |
| |
| <P align="justify"> |
| Texen was created to deal with the source generating |
| requirements of the Turbine web application framework. The |
| <A href="http://java.apache.org/turbine/torque.html">Torque</A> |
| utility in <A href="http://java.apache.org/turbine/">Turbine</A>, |
| which is a subclass of the TexenTask, is responsible |
| for generating the SQL, and the Object-Relational mapping sources |
| for a Turbine project. This is only one example; you can use |
| Texen to generate almost any sort of text output! |
| </P> |
| |
| </FONT></TD></TR></TABLE></DIV><BR> |
| |
| <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD bgcolor="#023264" width="100%"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="5"><B>The TexenTask</B></FONT></TD></TR><TR><TD><IMG border="0" height="5" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="98%"><TR><TD><FONT color="#000000" face="arial,helvetica,sanserif"> |
| |
| <P align="justify"> |
| This trivial example, which shows how to use Texen from an Ant build.xml, |
| is intended to illustrate how the Texen mechanism works. |
| </P> |
| |
| <P align="justify"> |
| <I>Ant Build File</I> |
| <DIV align="center"><TABLE border="0" cellpadding="0" cellspacing="4"><TR><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><PRE> |
| |
| <project name="HtmlGenerator" default="main" basedir="."> |
| |
| <taskdef name="texen" classname="org.apache.velocity.texen.ant.TexenTask"/> |
| |
| <!-- ================================================================ --> |
| <!-- G E N E R A T E H T M L P A G E S --> |
| <!-- ================================================================ --> |
| <!-- This target will generate a set of HTML pages based on --> |
| <!-- the information in our control context. --> |
| <!-- ================================================================ --> |
| |
| <target name="main"> |
| |
| <echo message="+------------------------------------------+"/> |
| <echo message="| |"/> |
| <echo message="| Generating HTML pages! |"/> |
| <echo message="| |"/> |
| <echo message="+------------------------------------------+"/> |
| |
| <texen |
| controlTemplate="Control.vm" |
| outputDirectory="." |
| templatePath="." |
| outputFile="generation.report" |
| /> |
| |
| </target> |
| |
| </project> |
| |
| </PRE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV> |
| </P> |
| |
| <P align="justify"> |
| <I>Control Template</I> |
| <DIV align="center"><TABLE border="0" cellpadding="0" cellspacing="4"><TR><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><PRE> |
| #* |
| |
| file: Control.vm |
| |
| This is the control template for our HTML |
| page generator! |
| |
| *# |
| |
| #set $Planets = ["Earth", "Mars", "Venus"] |
| |
| #foreach ($planet in $Planets) |
| |
| $outputFile = strings.concat([$planet, ".html"]) |
| $generator.parse("HtmlTemplate.vm", $outputFile, "planet", $planet) |
| |
| #end |
| |
| </PRE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV> |
| </P> |
| |
| <P align="justify"> |
| <I>Worker Template</I> |
| <DIV align="center"><TABLE border="0" cellpadding="0" cellspacing="4"><TR><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff"><PRE> |
| |
| #* |
| |
| file: HtmlTemplate.vm |
| |
| This is worker template. It is called by the |
| control template to produce useful output (or |
| not so useful in this case). :-) |
| |
| *# |
| |
| #set $bgcolor = "#ffffff" |
| |
| <html> |
| <head> |
| <title> |
| Everything you wanted to know about $planet! |
| </title> |
| </head> |
| <body bgcolor="$bgcolor"> |
| |
| $planet is a great place to live! |
| |
| </body> |
| </html> |
| |
| </PRE></TD><TD bgcolor="#023264" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#023264" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV> |
| </P> |
| |
| <P align="justify"> |
| Texen produces three html pages: Earth.html, |
| Mars.html, and Venus.html. To do something |
| more useful, you would subclass the TexenTask, place some objects |
| in the control context, and use the information placed in the |
| control context to generate useful output. |
| </P> |
| |
| <P align="justify"> |
| See the Torque utility in Turbine for a full working example of Texen. |
| A standalone version of Torque is available |
| <A href="http://java.apache.org/turbine/tdk/">here</A>. |
| </P> |
| |
| </FONT></TD></TR></TABLE></DIV><BR> |
| |
| |
| </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD bgcolor="#023264"><IMG height="1" src="resources/resources.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#023264" face="arial,helvetica,sanserif" size="-1"><I> |
| Copyright © 2000 The Apache Software Foundation. |
| All Rights Reserved. |
| </I></FONT></TD></TR></TABLE></BODY></HTML> |