<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>TexenTask xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/velocity/texen/ant/TexenTask.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.texen.ant;
<a name="2" href="#2">2</a>   
<a name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.    </em>
<a name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.StringTokenizer;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.collections.ExtendedProperties;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.tools.ant.BuildException;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.tools.ant.Project;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.tools.ant.Task;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.VelocityContext;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.app.VelocityEngine;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.context.Context;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.MethodInvocationException;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ParseErrorException;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ResourceNotFoundException;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.RuntimeConstants;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.texen.Generator;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.util.StringUtils;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * An ant task for generating output by using Velocity</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> *</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:jvanzyl@apache.org" target="alexandria_uri">mailto:jvanzyl@apache.org</a>"&gt;Jason van Zyl&lt;/a&gt;</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="robertdonkin@mac.com"&gt;Robert Burrell Donkin&lt;/a&gt;</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * @version $Id: TexenTask.java 463298 2006-10-12 16:10:32Z henning $</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> */</em>
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/velocity/texen/ant/TexenTask.html">TexenTask</a>
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">extends</strong> Task
<a name="54" href="#54">54</a>  {
<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * This message fragment (telling users to consult the log or</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * invoke ant with the -debug flag) is appended to rethrown</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * exception messages.</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     */</em>
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> String ERR_MSG_FRAGMENT =
<a name="61" href="#61">61</a>          <span class="jxr_string">". For more information consult the velocity log, or invoke ant "</span> +
<a name="62" href="#62">62</a>          <span class="jxr_string">"with the -debug flag."</span>;
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <em class="jxr_javadoccomment">/**</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * This is the control template that governs the output.</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * It may or may not invoke the services of worker</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * templates.</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">protected</strong> String controlTemplate;
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <em class="jxr_javadoccomment">/**</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * This is where Velocity will look for templates</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * using the file template loader.</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     */</em>
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">protected</strong> String templatePath;
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>      <em class="jxr_javadoccomment">/**</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * This is where texen will place all the output</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * that is a product of the generation process.</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     */</em>
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">protected</strong> String outputDirectory;
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>      <em class="jxr_javadoccomment">/**</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     * This is the file where the generated text</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * will be placed.</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     */</em>
<a name="87" href="#87">87</a>      <strong class="jxr_keyword">protected</strong> String outputFile;
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>      <em class="jxr_javadoccomment">/**</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * This is the encoding for the output file(s).</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
<a name="92" href="#92">92</a>      <strong class="jxr_keyword">protected</strong> String outputEncoding;
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * This is the encoding for the input file(s)</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * (templates).</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     */</em>
<a name="98" href="#98">98</a>      <strong class="jxr_keyword">protected</strong> String inputEncoding;
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>     <em class="jxr_javadoccomment">/**</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * These are properties that are fed into the</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * initial context from a properties file. This</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * is simply a convenient way to set some values</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * that you wish to make available in the context.</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * These values are not critical, like the template path</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * or output path, but allow a convenient way to</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * set a value that may be specific to a particular</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * generation task.</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * For example, if you are generating scripts to allow</em>
<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * user to automatically create a database, then</em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * you might want the &lt;code&gt;$databaseName&lt;/code&gt;</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * to be placed</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * in the initial context so that it is available</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * in a script that might look something like the</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * following:</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * &lt;code&gt;&lt;pre&gt;</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * #!bin/sh</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     *</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * echo y | mysqladmin create $databaseName</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * &lt;/pre&gt;&lt;/code&gt;</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * The value of &lt;code&gt;$databaseName&lt;/code&gt; isn't critical to</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * output, and you obviously don't want to change</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * the ant task to simply take a database name.</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * So initial context values can be set with</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * properties file.</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
<a name="132" href="#132">132</a>     <strong class="jxr_keyword">protected</strong> ExtendedProperties contextProperties;
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>     <em class="jxr_javadoccomment">/**</em>
<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * Property which controls whether the classpath</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * will be used when trying to locate templates.</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     */</em>
<a name="138" href="#138">138</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> useClasspath;
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>     <em class="jxr_javadoccomment">/**</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * The LogFile (incl. path) to log to.</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     */</em>
<a name="143" href="#143">143</a>     <strong class="jxr_keyword">protected</strong> String logFile;
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>     <em class="jxr_javadoccomment">/**</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     *   Property which controls whether the resource</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     *   loader will be told to cache.  Default false</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     */</em>
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>     <strong class="jxr_keyword">protected</strong> String useResourceLoaderCache = <span class="jxr_string">"false"</span>;
<a name="151" href="#151">151</a>     <em class="jxr_javadoccomment">/**</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     *</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">protected</strong> String resourceLoaderModificationCheckInterval = <span class="jxr_string">"2"</span>;
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>     <em class="jxr_javadoccomment">/**</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * [REQUIRED] Set the control template for the</em>
<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * generating process.</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @param controlTemplate</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     */</em>
<a name="161" href="#161">161</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setControlTemplate (String controlTemplate)
<a name="162" href="#162">162</a>     {
<a name="163" href="#163">163</a>         <strong class="jxr_keyword">this</strong>.controlTemplate = controlTemplate;
<a name="164" href="#164">164</a>     }
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>     <em class="jxr_javadoccomment">/**</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * Get the control template for the</em>
<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * generating process.</em>
<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @return The current control template.</em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     */</em>
<a name="171" href="#171">171</a>     <strong class="jxr_keyword">public</strong> String getControlTemplate()
<a name="172" href="#172">172</a>     {
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">return</strong> controlTemplate;
<a name="174" href="#174">174</a>     }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>     <em class="jxr_javadoccomment">/**</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * [REQUIRED] Set the path where Velocity will look</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * for templates using the file template</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * loader.</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     * @param templatePath</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     */</em>
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTemplatePath(String templatePath) <strong class="jxr_keyword">throws</strong> Exception
<a name="185" href="#185">185</a>     {
<a name="186" href="#186">186</a>         StringBuffer resolvedPath = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="187" href="#187">187</a>         StringTokenizer st = <strong class="jxr_keyword">new</strong> StringTokenizer(templatePath, <span class="jxr_string">","</span>);
<a name="188" href="#188">188</a>         <strong class="jxr_keyword">while</strong> ( st.hasMoreTokens() )
<a name="189" href="#189">189</a>         {
<a name="190" href="#190">190</a>             <em class="jxr_comment">// resolve relative path from basedir and leave</em>
<a name="191" href="#191">191</a>             <em class="jxr_comment">// absolute path untouched.</em>
<a name="192" href="#192">192</a>             File fullPath = project.resolveFile(st.nextToken());
<a name="193" href="#193">193</a>             resolvedPath.append(fullPath.getCanonicalPath());
<a name="194" href="#194">194</a>             <strong class="jxr_keyword">if</strong> ( st.hasMoreTokens() )
<a name="195" href="#195">195</a>             {
<a name="196" href="#196">196</a>                 resolvedPath.append(<span class="jxr_string">","</span>);
<a name="197" href="#197">197</a>             }
<a name="198" href="#198">198</a>         }
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">this</strong>.templatePath = resolvedPath.toString();
<a name="200" href="#200">200</a> 
<a name="201" href="#201">201</a>         System.out.println(templatePath);
<a name="202" href="#202">202</a>      }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>     <em class="jxr_javadoccomment">/**</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * Get the path where Velocity will look</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * for templates using the file template</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * loader.</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * @return The template path.</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     */</em>
<a name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> String getTemplatePath()
<a name="211" href="#211">211</a>     {
<a name="212" href="#212">212</a>         <strong class="jxr_keyword">return</strong> templatePath;
<a name="213" href="#213">213</a>     }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>     <em class="jxr_javadoccomment">/**</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * [REQUIRED] Set the output directory. It will be</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * created if it doesn't exist.</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * @param outputDirectory</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     */</em>
<a name="220" href="#220">220</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory(File outputDirectory)
<a name="221" href="#221">221</a>     {
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">try</strong>
<a name="223" href="#223">223</a>         {
<a name="224" href="#224">224</a>             <strong class="jxr_keyword">this</strong>.outputDirectory = outputDirectory.getCanonicalPath();
<a name="225" href="#225">225</a>         }
<a name="226" href="#226">226</a>         <strong class="jxr_keyword">catch</strong> (java.io.IOException ioe)
<a name="227" href="#227">227</a>         {
<a name="228" href="#228">228</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(ioe);
<a name="229" href="#229">229</a>         }
<a name="230" href="#230">230</a>     }
<a name="231" href="#231">231</a> 
<a name="232" href="#232">232</a>     <em class="jxr_javadoccomment">/**</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * Get the output directory.</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * @return The output directory.</em>
<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     */</em>
<a name="236" href="#236">236</a>     <strong class="jxr_keyword">public</strong> String getOutputDirectory()
<a name="237" href="#237">237</a>     {
<a name="238" href="#238">238</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
<a name="239" href="#239">239</a>     }
<a name="240" href="#240">240</a> 
<a name="241" href="#241">241</a>     <em class="jxr_javadoccomment">/**</em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     * [REQUIRED] Set the output file for the</em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     * generation process.</em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * @param outputFile</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     */</em>
<a name="246" href="#246">246</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOutputFile(String outputFile)
<a name="247" href="#247">247</a>     {
<a name="248" href="#248">248</a>         <strong class="jxr_keyword">this</strong>.outputFile = outputFile;
<a name="249" href="#249">249</a>     }
<a name="250" href="#250">250</a> 
<a name="251" href="#251">251</a>     <em class="jxr_javadoccomment">/**</em>
<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     * Set the output encoding.</em>
<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @param outputEncoding</em>
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     */</em>
<a name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOutputEncoding(String outputEncoding)
<a name="256" href="#256">256</a>     {
<a name="257" href="#257">257</a>         <strong class="jxr_keyword">this</strong>.outputEncoding = outputEncoding;
<a name="258" href="#258">258</a>     }
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>     <em class="jxr_javadoccomment">/**</em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     * Set the input (template) encoding.</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * @param inputEncoding</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     */</em>
<a name="264" href="#264">264</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setInputEncoding(String inputEncoding)
<a name="265" href="#265">265</a>     {
<a name="266" href="#266">266</a>         <strong class="jxr_keyword">this</strong>.inputEncoding = inputEncoding;
<a name="267" href="#267">267</a>     }
<a name="268" href="#268">268</a> 
<a name="269" href="#269">269</a>     <em class="jxr_javadoccomment">/**</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * Get the output file for the</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * generation process.</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * @return The output file.</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     */</em>
<a name="274" href="#274">274</a>     <strong class="jxr_keyword">public</strong> String getOutputFile()
<a name="275" href="#275">275</a>     {
<a name="276" href="#276">276</a>         <strong class="jxr_keyword">return</strong> outputFile;
<a name="277" href="#277">277</a>     }
<a name="278" href="#278">278</a> 
<a name="279" href="#279">279</a>     <em class="jxr_javadoccomment">/**</em>
<a name="280" href="#280">280</a> <em class="jxr_javadoccomment">     * Sets the log file.</em>
<a name="281" href="#281">281</a> <em class="jxr_javadoccomment">     * @param log</em>
<a name="282" href="#282">282</a> <em class="jxr_javadoccomment">     */</em>
<a name="283" href="#283">283</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setLogFile(String log)
<a name="284" href="#284">284</a>     {
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">this</strong>.logFile = log;
<a name="286" href="#286">286</a>     }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>     <em class="jxr_javadoccomment">/**</em>
<a name="289" href="#289">289</a> <em class="jxr_javadoccomment">     * Gets the log file.</em>
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     * @return The log file.</em>
<a name="291" href="#291">291</a> <em class="jxr_javadoccomment">     */</em>
<a name="292" href="#292">292</a>     <strong class="jxr_keyword">public</strong> String getLogFile()
<a name="293" href="#293">293</a>     {
<a name="294" href="#294">294</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.logFile;
<a name="295" href="#295">295</a>     }
<a name="296" href="#296">296</a> 
<a name="297" href="#297">297</a>     <em class="jxr_javadoccomment">/**</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     * Set the context properties that will be</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * fed into the initial context be the</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * generating process starts.</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">     * @param file</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     */</em>
<a name="303" href="#303">303</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setContextProperties( String file )
<a name="304" href="#304">304</a>     {
<a name="305" href="#305">305</a>         String[] sources = StringUtils.split(file,<span class="jxr_string">","</span>);
<a name="306" href="#306">306</a>         contextProperties = <strong class="jxr_keyword">new</strong> ExtendedProperties();
<a name="307" href="#307">307</a> 
<a name="308" href="#308">308</a>         <em class="jxr_comment">// Always try to get the context properties resource</em>
<a name="309" href="#309">309</a>         <em class="jxr_comment">// from a file first. Templates may be taken from a JAR</em>
<a name="310" href="#310">310</a>         <em class="jxr_comment">// file but the context properties resource may be a</em>
<a name="311" href="#311">311</a>         <em class="jxr_comment">// resource in the filesystem. If this fails than attempt</em>
<a name="312" href="#312">312</a>         <em class="jxr_comment">// to get the context properties resource from the</em>
<a name="313" href="#313">313</a>         <em class="jxr_comment">// classpath.</em>
<a name="314" href="#314">314</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; sources.length; i++)
<a name="315" href="#315">315</a>         {
<a name="316" href="#316">316</a>             ExtendedProperties source = <strong class="jxr_keyword">new</strong> ExtendedProperties();
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>             <strong class="jxr_keyword">try</strong>
<a name="319" href="#319">319</a>             {
<a name="320" href="#320">320</a>                 <em class="jxr_comment">// resolve relative path from basedir and leave</em>
<a name="321" href="#321">321</a>                 <em class="jxr_comment">// absolute path untouched.</em>
<a name="322" href="#322">322</a>                 File fullPath = project.resolveFile(sources[i]);
<a name="323" href="#323">323</a>                 log(<span class="jxr_string">"Using contextProperties file: "</span> + fullPath);
<a name="324" href="#324">324</a>                 source.load(<strong class="jxr_keyword">new</strong> FileInputStream(fullPath));
<a name="325" href="#325">325</a>             }
<a name="326" href="#326">326</a>             <strong class="jxr_keyword">catch</strong> (IOException e)
<a name="327" href="#327">327</a>             {
<a name="328" href="#328">328</a>                 ClassLoader classLoader = <strong class="jxr_keyword">this</strong>.getClass().getClassLoader();
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>                 <strong class="jxr_keyword">try</strong>
<a name="331" href="#331">331</a>                 {
<a name="332" href="#332">332</a>                     InputStream inputStream = classLoader.getResourceAsStream(sources[i]);
<a name="333" href="#333">333</a> 
<a name="334" href="#334">334</a>                     <strong class="jxr_keyword">if</strong> (inputStream == <strong class="jxr_keyword">null</strong>)
<a name="335" href="#335">335</a>                     {
<a name="336" href="#336">336</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"Context properties file "</span> + sources[i] +
<a name="337" href="#337">337</a>                             <span class="jxr_string">" could not be found in the file system or on the classpath!"</span>);
<a name="338" href="#338">338</a>                     }
<a name="339" href="#339">339</a>                     <strong class="jxr_keyword">else</strong>
<a name="340" href="#340">340</a>                     {
<a name="341" href="#341">341</a>                         source.load(inputStream);
<a name="342" href="#342">342</a>                     }
<a name="343" href="#343">343</a>                 }
<a name="344" href="#344">344</a>                 <strong class="jxr_keyword">catch</strong> (IOException ioe)
<a name="345" href="#345">345</a>                 {
<a name="346" href="#346">346</a>                     source = <strong class="jxr_keyword">null</strong>;
<a name="347" href="#347">347</a>                 }
<a name="348" href="#348">348</a>             }
<a name="349" href="#349">349</a> 
<a name="350" href="#350">350</a>             <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>)
<a name="351" href="#351">351</a>             {
<a name="352" href="#352">352</a>                 <strong class="jxr_keyword">for</strong> (Iterator j = source.getKeys(); j.hasNext(); )
<a name="353" href="#353">353</a>                 {
<a name="354" href="#354">354</a>                     String name = (String) j.next();
<a name="355" href="#355">355</a>                     String value = StringUtils.nullTrim(source.getString(name));
<a name="356" href="#356">356</a>                     contextProperties.setProperty(name,value);
<a name="357" href="#357">357</a>                 }
<a name="358" href="#358">358</a>             }
<a name="359" href="#359">359</a>         }
<a name="360" href="#360">360</a>     }
<a name="361" href="#361">361</a> 
<a name="362" href="#362">362</a>     <em class="jxr_javadoccomment">/**</em>
<a name="363" href="#363">363</a> <em class="jxr_javadoccomment">     * Get the context properties that will be</em>
<a name="364" href="#364">364</a> <em class="jxr_javadoccomment">     * fed into the initial context be the</em>
<a name="365" href="#365">365</a> <em class="jxr_javadoccomment">     * generating process starts.</em>
<a name="366" href="#366">366</a> <em class="jxr_javadoccomment">     * @return The current context properties.</em>
<a name="367" href="#367">367</a> <em class="jxr_javadoccomment">     */</em>
<a name="368" href="#368">368</a>     <strong class="jxr_keyword">public</strong> ExtendedProperties getContextProperties()
<a name="369" href="#369">369</a>     {
<a name="370" href="#370">370</a>         <strong class="jxr_keyword">return</strong> contextProperties;
<a name="371" href="#371">371</a>     }
<a name="372" href="#372">372</a> 
<a name="373" href="#373">373</a>     <em class="jxr_javadoccomment">/**</em>
<a name="374" href="#374">374</a> <em class="jxr_javadoccomment">     * Set the use of the classpath in locating templates</em>
<a name="375" href="#375">375</a> <em class="jxr_javadoccomment">     *</em>
<a name="376" href="#376">376</a> <em class="jxr_javadoccomment">     * @param useClasspath true means the classpath will be used.</em>
<a name="377" href="#377">377</a> <em class="jxr_javadoccomment">     */</em>
<a name="378" href="#378">378</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUseClasspath(<strong class="jxr_keyword">boolean</strong> useClasspath)
<a name="379" href="#379">379</a>     {
<a name="380" href="#380">380</a>         <strong class="jxr_keyword">this</strong>.useClasspath = useClasspath;
<a name="381" href="#381">381</a>     }
<a name="382" href="#382">382</a> 
<a name="383" href="#383">383</a>     <em class="jxr_javadoccomment">/**</em>
<a name="384" href="#384">384</a> <em class="jxr_javadoccomment">     * @param useResourceLoaderCache</em>
<a name="385" href="#385">385</a> <em class="jxr_javadoccomment">     */</em>
<a name="386" href="#386">386</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUseResourceLoaderCache(String useResourceLoaderCache)
<a name="387" href="#387">387</a>     {
<a name="388" href="#388">388</a>         <strong class="jxr_keyword">this</strong>.useResourceLoaderCache = useResourceLoaderCache;
<a name="389" href="#389">389</a>     }
<a name="390" href="#390">390</a> 
<a name="391" href="#391">391</a>     <em class="jxr_javadoccomment">/**</em>
<a name="392" href="#392">392</a> <em class="jxr_javadoccomment">     * @param resourceLoaderModificationCheckInterval</em>
<a name="393" href="#393">393</a> <em class="jxr_javadoccomment">     */</em>
<a name="394" href="#394">394</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setResourceLoaderModificationCheckInterval(String resourceLoaderModificationCheckInterval)
<a name="395" href="#395">395</a>     {
<a name="396" href="#396">396</a>         <strong class="jxr_keyword">this</strong>.resourceLoaderModificationCheckInterval = resourceLoaderModificationCheckInterval;
<a name="397" href="#397">397</a>     }
<a name="398" href="#398">398</a>     <em class="jxr_javadoccomment">/**</em>
<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     * Creates a VelocityContext.</em>
<a name="400" href="#400">400</a> <em class="jxr_javadoccomment">     *</em>
<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     * @return new Context</em>
<a name="402" href="#402">402</a> <em class="jxr_javadoccomment">     * @throws Exception the execute method will catch</em>
<a name="403" href="#403">403</a> <em class="jxr_javadoccomment">     *         and rethrow as a &lt;code&gt;BuildException&lt;/code&gt;</em>
<a name="404" href="#404">404</a> <em class="jxr_javadoccomment">     */</em>
<a name="405" href="#405">405</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/context/Context.html">Context</a> initControlContext()
<a name="406" href="#406">406</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="407" href="#407">407</a>     {
<a name="408" href="#408">408</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/VelocityContext.html">VelocityContext</a>();
<a name="409" href="#409">409</a>     }
<a name="410" href="#410">410</a> 
<a name="411" href="#411">411</a>     <em class="jxr_javadoccomment">/**</em>
<a name="412" href="#412">412</a> <em class="jxr_javadoccomment">     * Execute the input script with Velocity</em>
<a name="413" href="#413">413</a> <em class="jxr_javadoccomment">     *</em>
<a name="414" href="#414">414</a> <em class="jxr_javadoccomment">     * @throws BuildException</em>
<a name="415" href="#415">415</a> <em class="jxr_javadoccomment">     * BuildExceptions are thrown when required attributes are missing.</em>
<a name="416" href="#416">416</a> <em class="jxr_javadoccomment">     * Exceptions thrown by Velocity are rethrown as BuildExceptions.</em>
<a name="417" href="#417">417</a> <em class="jxr_javadoccomment">     */</em>
<a name="418" href="#418">418</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute ()
<a name="419" href="#419">419</a>         <strong class="jxr_keyword">throws</strong> BuildException
<a name="420" href="#420">420</a>     {
<a name="421" href="#421">421</a>         <em class="jxr_comment">// Make sure the template path is set.</em>
<a name="422" href="#422">422</a>         <strong class="jxr_keyword">if</strong> (templatePath == <strong class="jxr_keyword">null</strong> &amp;&amp; useClasspath == false)
<a name="423" href="#423">423</a>         {
<a name="424" href="#424">424</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(
<a name="425" href="#425">425</a>                 <span class="jxr_string">"The template path needs to be defined if you are not using "</span> +
<a name="426" href="#426">426</a>                 <span class="jxr_string">"the classpath for locating templates!"</span>);
<a name="427" href="#427">427</a>         }
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>         <em class="jxr_comment">// Make sure the control template is set.</em>
<a name="430" href="#430">430</a>         <strong class="jxr_keyword">if</strong> (controlTemplate == <strong class="jxr_keyword">null</strong>)
<a name="431" href="#431">431</a>         {
<a name="432" href="#432">432</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"The control template needs to be defined!"</span>);
<a name="433" href="#433">433</a>         }
<a name="434" href="#434">434</a> 
<a name="435" href="#435">435</a>         <em class="jxr_comment">// Make sure the output directory is set.</em>
<a name="436" href="#436">436</a>         <strong class="jxr_keyword">if</strong> (outputDirectory == <strong class="jxr_keyword">null</strong>)
<a name="437" href="#437">437</a>         {
<a name="438" href="#438">438</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"The output directory needs to be defined!"</span>);
<a name="439" href="#439">439</a>         }
<a name="440" href="#440">440</a> 
<a name="441" href="#441">441</a>         <em class="jxr_comment">// Make sure there is an output file.</em>
<a name="442" href="#442">442</a>         <strong class="jxr_keyword">if</strong> (outputFile == <strong class="jxr_keyword">null</strong>)
<a name="443" href="#443">443</a>         {
<a name="444" href="#444">444</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"The output file needs to be defined!"</span>);
<a name="445" href="#445">445</a>         }
<a name="446" href="#446">446</a> 
<a name="447" href="#447">447</a>         <a href="../../../../../org/apache/velocity/app/VelocityEngine.html">VelocityEngine</a> ve = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/app/VelocityEngine.html">VelocityEngine</a>();
<a name="448" href="#448">448</a> 
<a name="449" href="#449">449</a>         <strong class="jxr_keyword">try</strong>
<a name="450" href="#450">450</a>         {
<a name="451" href="#451">451</a>             <em class="jxr_comment">// Setup the Velocity Runtime.</em>
<a name="452" href="#452">452</a>             <strong class="jxr_keyword">if</strong> (templatePath != <strong class="jxr_keyword">null</strong>)
<a name="453" href="#453">453</a>             {
<a name="454" href="#454">454</a>                 log(<span class="jxr_string">"Using templatePath: "</span> + templatePath, Project.MSG_VERBOSE);
<a name="455" href="#455">455</a>                 ve.setProperty(
<a name="456" href="#456">456</a>                     RuntimeConstants.FILE_RESOURCE_LOADER_PATH, templatePath);
<a name="457" href="#457">457</a>             }
<a name="458" href="#458">458</a> 
<a name="459" href="#459">459</a>             <strong class="jxr_keyword">if</strong> (useClasspath)
<a name="460" href="#460">460</a>             {
<a name="461" href="#461">461</a>                 log(<span class="jxr_string">"Using classpath"</span>);
<a name="462" href="#462">462</a>                 ve.addProperty(
<a name="463" href="#463">463</a>                     VelocityEngine.RESOURCE_LOADER, <span class="jxr_string">"classpath"</span>);
<a name="464" href="#464">464</a> 
<a name="465" href="#465">465</a>                 ve.setProperty(
<a name="466" href="#466">466</a>                     <span class="jxr_string">"classpath."</span> + VelocityEngine.RESOURCE_LOADER + <span class="jxr_string">".class"</span>,
<a name="467" href="#467">467</a>                         <span class="jxr_string">"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"</span>);
<a name="468" href="#468">468</a> 
<a name="469" href="#469">469</a>                 ve.setProperty(
<a name="470" href="#470">470</a>                     <span class="jxr_string">"classpath."</span> + VelocityEngine.RESOURCE_LOADER +
<a name="471" href="#471">471</a>                         <span class="jxr_string">".cache"</span>, useResourceLoaderCache);
<a name="472" href="#472">472</a> 
<a name="473" href="#473">473</a>                 ve.setProperty(
<a name="474" href="#474">474</a>                     <span class="jxr_string">"classpath."</span> + VelocityEngine.RESOURCE_LOADER +
<a name="475" href="#475">475</a>                         <span class="jxr_string">".modificationCheckInterval"</span>, resourceLoaderModificationCheckInterval);
<a name="476" href="#476">476</a>             }
<a name="477" href="#477">477</a> 
<a name="478" href="#478">478</a>             <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.logFile != <strong class="jxr_keyword">null</strong>)
<a name="479" href="#479">479</a>             {
<a name="480" href="#480">480</a>                 ve.setProperty(RuntimeConstants.RUNTIME_LOG, <strong class="jxr_keyword">this</strong>.logFile);
<a name="481" href="#481">481</a>             }
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a>             ve.init();
<a name="484" href="#484">484</a> 
<a name="485" href="#485">485</a>             <em class="jxr_comment">// Create the text generator.</em>
<a name="486" href="#486">486</a>             <a href="../../../../../org/apache/velocity/texen/Generator.html">Generator</a> generator = Generator.getInstance();
<a name="487" href="#487">487</a>             generator.setVelocityEngine(ve);
<a name="488" href="#488">488</a>             generator.setOutputPath(outputDirectory);
<a name="489" href="#489">489</a>             generator.setInputEncoding(inputEncoding);
<a name="490" href="#490">490</a>             generator.setOutputEncoding(outputEncoding);
<a name="491" href="#491">491</a> 
<a name="492" href="#492">492</a>             <strong class="jxr_keyword">if</strong> (templatePath != <strong class="jxr_keyword">null</strong>)
<a name="493" href="#493">493</a>             {
<a name="494" href="#494">494</a>                 generator.setTemplatePath(templatePath);
<a name="495" href="#495">495</a>             }
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>             <em class="jxr_comment">// Make sure the output directory exists, if it doesn't</em>
<a name="498" href="#498">498</a>             <em class="jxr_comment">// then create it.</em>
<a name="499" href="#499">499</a>             File file = <strong class="jxr_keyword">new</strong> File(outputDirectory);
<a name="500" href="#500">500</a>             <strong class="jxr_keyword">if</strong> (! file.exists())
<a name="501" href="#501">501</a>             {
<a name="502" href="#502">502</a>                 file.mkdirs();
<a name="503" href="#503">503</a>             }
<a name="504" href="#504">504</a> 
<a name="505" href="#505">505</a>             String path = outputDirectory + File.separator + outputFile;
<a name="506" href="#506">506</a>             log(<span class="jxr_string">"Generating to file "</span> + path, Project.MSG_INFO);
<a name="507" href="#507">507</a>             Writer writer = generator.getWriter(path, outputEncoding);
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>             <em class="jxr_comment">// The generator and the output path should</em>
<a name="510" href="#510">510</a>             <em class="jxr_comment">// be placed in the init context here and</em>
<a name="511" href="#511">511</a>             <em class="jxr_comment">// not in the generator class itself.</em>
<a name="512" href="#512">512</a>             <a href="../../../../../org/apache/velocity/context/Context.html">Context</a> c = initControlContext();
<a name="513" href="#513">513</a> 
<a name="514" href="#514">514</a>             <em class="jxr_comment">// Everything in the generator class should be</em>
<a name="515" href="#515">515</a>             <em class="jxr_comment">// pulled out and placed in here. What the generator</em>
<a name="516" href="#516">516</a>             <em class="jxr_comment">// class does can probably be added to the Velocity</em>
<a name="517" href="#517">517</a>             <em class="jxr_comment">// class and the generator class can probably</em>
<a name="518" href="#518">518</a>             <em class="jxr_comment">// be removed all together.</em>
<a name="519" href="#519">519</a>             populateInitialContext(c);
<a name="520" href="#520">520</a> 
<a name="521" href="#521">521</a>             <em class="jxr_comment">// Feed all the options into the initial</em>
<a name="522" href="#522">522</a>             <em class="jxr_comment">// control context so they are available</em>
<a name="523" href="#523">523</a>             <em class="jxr_comment">// in the control/worker templates.</em>
<a name="524" href="#524">524</a>             <strong class="jxr_keyword">if</strong> (contextProperties != <strong class="jxr_keyword">null</strong>)
<a name="525" href="#525">525</a>             {
<a name="526" href="#526">526</a>                 Iterator i = contextProperties.getKeys();
<a name="527" href="#527">527</a> 
<a name="528" href="#528">528</a>                 <strong class="jxr_keyword">while</strong> (i.hasNext())
<a name="529" href="#529">529</a>                 {
<a name="530" href="#530">530</a>                     String property = (String) i.next();
<a name="531" href="#531">531</a>                     String value = StringUtils.nullTrim(contextProperties.getString(property));
<a name="532" href="#532">532</a> 
<a name="533" href="#533">533</a>                     <em class="jxr_comment">// Now lets quickly check to see if what</em>
<a name="534" href="#534">534</a>                     <em class="jxr_comment">// we have is numeric and try to put it</em>
<a name="535" href="#535">535</a>                     <em class="jxr_comment">// into the context as an Integer.</em>
<a name="536" href="#536">536</a>                     <strong class="jxr_keyword">try</strong>
<a name="537" href="#537">537</a>                     {
<a name="538" href="#538">538</a>                         c.put(property, <strong class="jxr_keyword">new</strong> Integer(value));
<a name="539" href="#539">539</a>                     }
<a name="540" href="#540">540</a>                     <strong class="jxr_keyword">catch</strong> (NumberFormatException nfe)
<a name="541" href="#541">541</a>                     {
<a name="542" href="#542">542</a>                         <em class="jxr_comment">// Now we will try to place the value into</em>
<a name="543" href="#543">543</a>                         <em class="jxr_comment">// the context as a boolean value if it</em>
<a name="544" href="#544">544</a>                         <em class="jxr_comment">// maps to a valid boolean value.</em>
<a name="545" href="#545">545</a>                         String booleanString =
<a name="546" href="#546">546</a>                             contextProperties.testBoolean(value);
<a name="547" href="#547">547</a> 
<a name="548" href="#548">548</a>                         <strong class="jxr_keyword">if</strong> (booleanString != <strong class="jxr_keyword">null</strong>)
<a name="549" href="#549">549</a>                         {
<a name="550" href="#550">550</a>                             c.put(property, Boolean.valueOf(booleanString));
<a name="551" href="#551">551</a>                         }
<a name="552" href="#552">552</a>                         <strong class="jxr_keyword">else</strong>
<a name="553" href="#553">553</a>                         {
<a name="554" href="#554">554</a>                             <em class="jxr_comment">// We are going to do something special</em>
<a name="555" href="#555">555</a>                             <em class="jxr_comment">// for properties that have a "file.contents"</em>
<a name="556" href="#556">556</a>                             <em class="jxr_comment">// suffix: for these properties will pull</em>
<a name="557" href="#557">557</a>                             <em class="jxr_comment">// in the contents of the file and make</em>
<a name="558" href="#558">558</a>                             <em class="jxr_comment">// them available in the context. So for</em>
<a name="559" href="#559">559</a>                             <em class="jxr_comment">// a line like the following in a properties file:</em>
<a name="560" href="#560">560</a>                             <em class="jxr_comment">//</em>
<a name="561" href="#561">561</a>                             <em class="jxr_comment">// license.file.contents = license.txt</em>
<a name="562" href="#562">562</a>                             <em class="jxr_comment">//</em>
<a name="563" href="#563">563</a>                             <em class="jxr_comment">// We will pull in the contents of license.txt</em>
<a name="564" href="#564">564</a>                             <em class="jxr_comment">// and make it available in the context as</em>
<a name="565" href="#565">565</a>                             <em class="jxr_comment">// $license. This should make texen a little</em>
<a name="566" href="#566">566</a>                             <em class="jxr_comment">// more flexible.</em>
<a name="567" href="#567">567</a>                             <strong class="jxr_keyword">if</strong> (property.endsWith(<span class="jxr_string">"file.contents"</span>))
<a name="568" href="#568">568</a>                             {
<a name="569" href="#569">569</a>                                 <em class="jxr_comment">// We need to turn the license file from relative to</em>
<a name="570" href="#570">570</a>                                 <em class="jxr_comment">// absolute, and let Ant help :)</em>
<a name="571" href="#571">571</a>                                 value = StringUtils.fileContentsToString(
<a name="572" href="#572">572</a>                                     project.resolveFile(value).getCanonicalPath());
<a name="573" href="#573">573</a> 
<a name="574" href="#574">574</a>                                 property = property.substring(
<a name="575" href="#575">575</a>                                     0, property.indexOf(<span class="jxr_string">"file.contents"</span>) - 1);
<a name="576" href="#576">576</a>                             }
<a name="577" href="#577">577</a> 
<a name="578" href="#578">578</a>                             c.put(property, value);
<a name="579" href="#579">579</a>                         }
<a name="580" href="#580">580</a>                     }
<a name="581" href="#581">581</a>                 }
<a name="582" href="#582">582</a>             }
<a name="583" href="#583">583</a> 
<a name="584" href="#584">584</a>             writer.write(generator.parse(controlTemplate, c));
<a name="585" href="#585">585</a>             writer.flush();
<a name="586" href="#586">586</a>             writer.close();
<a name="587" href="#587">587</a>             generator.shutdown();
<a name="588" href="#588">588</a>             cleanup();
<a name="589" href="#589">589</a>         }
<a name="590" href="#590">590</a>         <strong class="jxr_keyword">catch</strong>( BuildException e)
<a name="591" href="#591">591</a>         {
<a name="592" href="#592">592</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="593" href="#593">593</a>         }
<a name="594" href="#594">594</a>         <strong class="jxr_keyword">catch</strong>( MethodInvocationException e )
<a name="595" href="#595">595</a>         {
<a name="596" href="#596">596</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(
<a name="597" href="#597">597</a>                 <span class="jxr_string">"Exception thrown by '"</span> + e.getReferenceName() + <span class="jxr_string">"."</span> +
<a name="598" href="#598">598</a>                     e.getMethodName() +<span class="jxr_string">"'"</span> + ERR_MSG_FRAGMENT,
<a name="599" href="#599">599</a>                         e.getWrappedThrowable());
<a name="600" href="#600">600</a>         }
<a name="601" href="#601">601</a>         <strong class="jxr_keyword">catch</strong>( ParseErrorException e )
<a name="602" href="#602">602</a>         {
<a name="603" href="#603">603</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"Velocity syntax error"</span> + ERR_MSG_FRAGMENT ,e);
<a name="604" href="#604">604</a>         }
<a name="605" href="#605">605</a>         <strong class="jxr_keyword">catch</strong>( ResourceNotFoundException e )
<a name="606" href="#606">606</a>         {
<a name="607" href="#607">607</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"Resource not found"</span> + ERR_MSG_FRAGMENT,e);
<a name="608" href="#608">608</a>         }
<a name="609" href="#609">609</a>         <strong class="jxr_keyword">catch</strong>( Exception e )
<a name="610" href="#610">610</a>         {
<a name="611" href="#611">611</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> BuildException(<span class="jxr_string">"Generation failed"</span> + ERR_MSG_FRAGMENT ,e);
<a name="612" href="#612">612</a>         }
<a name="613" href="#613">613</a>     }
<a name="614" href="#614">614</a> 
<a name="615" href="#615">615</a>     <em class="jxr_javadoccomment">/**</em>
<a name="616" href="#616">616</a> <em class="jxr_javadoccomment">     * &lt;p&gt;Place useful objects into the initial context.&lt;/p&gt;</em>
<a name="617" href="#617">617</a> <em class="jxr_javadoccomment">     *</em>
<a name="618" href="#618">618</a> <em class="jxr_javadoccomment">     * &lt;p&gt;TexenTask places &lt;code&gt;Date().toString()&lt;/code&gt; into the</em>
<a name="619" href="#619">619</a> <em class="jxr_javadoccomment">     * context as &lt;code&gt;$now&lt;/code&gt;.  Subclasses who want to vary the</em>
<a name="620" href="#620">620</a> <em class="jxr_javadoccomment">     * objects in the context should override this method.&lt;/p&gt;</em>
<a name="621" href="#621">621</a> <em class="jxr_javadoccomment">     *</em>
<a name="622" href="#622">622</a> <em class="jxr_javadoccomment">     * &lt;p&gt;&lt;code&gt;$generator&lt;/code&gt; is not put into the context in this</em>
<a name="623" href="#623">623</a> <em class="jxr_javadoccomment">     * method.&lt;/p&gt;</em>
<a name="624" href="#624">624</a> <em class="jxr_javadoccomment">     *</em>
<a name="625" href="#625">625</a> <em class="jxr_javadoccomment">     * @param context The context to populate, as retrieved from</em>
<a name="626" href="#626">626</a> <em class="jxr_javadoccomment">     * {@link #initControlContext()}.</em>
<a name="627" href="#627">627</a> <em class="jxr_javadoccomment">     *</em>
<a name="628" href="#628">628</a> <em class="jxr_javadoccomment">     * @throws Exception Error while populating context.  The {@link</em>
<a name="629" href="#629">629</a> <em class="jxr_javadoccomment">     * #execute()} method will catch and rethrow as a</em>
<a name="630" href="#630">630</a> <em class="jxr_javadoccomment">     * &lt;code&gt;BuildException&lt;/code&gt;.</em>
<a name="631" href="#631">631</a> <em class="jxr_javadoccomment">     */</em>
<a name="632" href="#632">632</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> populateInitialContext(<a href="../../../../../org/apache/velocity/context/Context.html">Context</a> context)
<a name="633" href="#633">633</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="634" href="#634">634</a>     {
<a name="635" href="#635">635</a>         context.put(<span class="jxr_string">"now"</span>, <strong class="jxr_keyword">new</strong> Date().toString());
<a name="636" href="#636">636</a>     }
<a name="637" href="#637">637</a> 
<a name="638" href="#638">638</a>     <em class="jxr_javadoccomment">/**</em>
<a name="639" href="#639">639</a> <em class="jxr_javadoccomment">     * A hook method called at the end of {@link #execute()} which can</em>
<a name="640" href="#640">640</a> <em class="jxr_javadoccomment">     * be overridden to perform any necessary cleanup activities (such</em>
<a name="641" href="#641">641</a> <em class="jxr_javadoccomment">     * as the release of database connections, etc.).  By default,</em>
<a name="642" href="#642">642</a> <em class="jxr_javadoccomment">     * does nothing.</em>
<a name="643" href="#643">643</a> <em class="jxr_javadoccomment">     *</em>
<a name="644" href="#644">644</a> <em class="jxr_javadoccomment">     * @exception Exception Problem cleaning up.</em>
<a name="645" href="#645">645</a> <em class="jxr_javadoccomment">     */</em>
<a name="646" href="#646">646</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> cleanup()
<a name="647" href="#647">647</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="648" href="#648">648</a>     {
<a name="649" href="#649">649</a>     }
<a name="650" href="#650">650</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

