WepsRunFileGenerator.java [src/java/m/weps] Revision: Date:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package m.weps;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import java.util.logging.Logger;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
/**
*
* @author wlloyd
*/
public class WepsRunFileGenerator {
static final Logger log = Logger.getLogger(WepsRunFileGenerator.class.getName());
public static WepsRunFileGenerator vt;
/**
* @param args the command line arguments
*/
public static void GenerateWepsRunFile(WepsModelRun wmr, String outputDir, String outputFilename) {
log.info("Generating Weps Run File");
vt = new WepsRunFileGenerator();
Properties prop = new Properties();
if (wmr == null)
wmr = new WepsModelRun();
if (outputDir == null)
outputDir = ".";
if (outputFilename == null)
outputFilename = "weps.run";
log.info("setting properties");
VelocityEngine ve = new VelocityEngine();
ve.setProperty( RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,"org.apache.velocity.runtime.log.Log4JLogChute" );
ve.setProperty("runtime.log.logsystem.log4j.logger",log.getName());
ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
ve.init();
VelocityContext vc = new VelocityContext();
vc.put("wmr", wmr);
log.info("Fetching weps template");
try
{
// Fetch weps file template from classpath base dir
final String templatePath = "weps.vm";
InputStream input = WepsRunFileGenerator.class.getClassLoader().getResourceAsStream(templatePath);
if (input == null) {
throw new IOException("Template file doesn't exist");
}
ve.getTemplate("weps.vm");
FileWriter fw = new FileWriter(outputDir + "/" + outputFilename);
ve.mergeTemplate("weps.vm", Charset.defaultCharset().displayName(), vc, fw);
fw.close();
}
catch (Exception e)
{
log.severe("err=" + e.toString());
for (StackTraceElement ste : e.getStackTrace())
log.severe(ste.toString());
}
}
}