Velocityのevaluate

先日、Velocity1.5 でのテンプレートをファイルでなく文字列インスタンスにある場合の取り扱いを書いたが、
Velocity1.4 から実行可能な、evaluate のサンプルを記しておく。

String template = "======= $foo ========";
StringWriter writer = new StringWriter();

VelocityContext context = new VelocityContext();
VelocityEngine velocityEngine = new VelocityEngine();
Properties prop = new Properties();
prop.setProperty("input.encoding","Windows-31J");
prop.setProperty("output.encoding","Windows-31J");
// velocity ログを出力させない設定!
prop.setProperty("runtime.log.logsystem.class","org.apache.velocity.runtime.log.NullLogSystem");
// Velocity初期化
velocityEngine.init(prop);

context.put("foo","Hello");

velocityEngine.evaluate(context , writer , null , template);

System.out.println(writer.getBuffer().toString());