1010import org .apache .velocity .Template ;
1111import org .apache .velocity .VelocityContext ;
1212import org .apache .velocity .app .VelocityEngine ;
13+ import org .apache .velocity .runtime .RuntimeConstants ;
14+ import org .apache .velocity .runtime .resource .loader .FileResourceLoader ;
1315
1416import com .stormdealers .mcp .model .EntityObject ;
1517import com .stormdealers .mcp .model .Generatable ;
@@ -29,10 +31,11 @@ public class VelocityRenderer implements IProjectProcess {
2931 private final Logger log = LogManager .getLogger (VelocityRenderer .class );
3032
3133 private void createFolder (String folder ) {
32- log .info ("Creating folder if it doesn't exist: " + folder );
3334 File f = new File (folder );
34- if (!f .exists ())
35+ if (!f .exists ()){
36+ log .info ("Creating folder " + folder );
3537 f .mkdirs ();
38+ }
3639 }
3740
3841 public void processProjectObject (ProjectObject po ) throws RenderException {
@@ -148,32 +151,34 @@ private void renderToFolder(EntityObject eo, String template, String folder, Str
148151
149152 VelocityEngine ve = new VelocityEngine ();
150153 // Tried using classpath, but discarded it.
151- // ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
152- // ve.setProperty("classpath.resource.loader.class",
153- // ClasspathResourceLoader.class.getName());
154+ ve .setProperty (RuntimeConstants .RESOURCE_LOADER , "file" );
155+ ve .setProperty ("file.resource.loader.class" , FileResourceLoader .class .getName ());
156+ // setting it empty, so we can use an absolute path
157+ ve .setProperty ("file.resource.loader.path" , "" );
154158 ve .init ();
155159 VelocityContext ctx = new VelocityContext ();
156160 ctx .put ("ENTITY" , eo );
157161
158162 // now, let's expand the template path in case we are using one of our
159163 // default templates.
160164 if (template .startsWith ("templates/" )) {
161- // ok, we assume it's one of our default templates in MODEL_HOME
162- String modelHomeFolder = System .getProperty ("MCP_HOME" );
165+ // ok, we assume it's one of our default templates in MCP_HOME
166+ String modelHomeFolder = System .getenv ("MCP_HOME" );
163167 if (!modelHomeFolder .endsWith (File .separator ))
164168 modelHomeFolder = modelHomeFolder + File .separator ;
165169 template = modelHomeFolder + template ;
166170 }
167-
171+
172+
168173 Template t = ve .getTemplate (template );
169174 StringWriter writer = new StringWriter ();
170175 t .merge (ctx , writer );
171- System .out .println (writer );
176+ // System.out.println(writer);
172177
178+ log .info ("Writing file " + fullFileName );
173179 FileWriter fileWriter = new FileWriter (fullFileName );
174180 fileWriter .write (writer .toString ());
175- fileWriter .flush ();
181+ fileWriter .flush ();
176182 fileWriter .close ();
177-
178183 }
179184}
0 commit comments