1 18 19 package org.apache.roller.ui.rendering.velocity; 20 21 import java.io.InputStream ; 22 import java.util.Properties ; 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 import org.apache.roller.config.RollerConfig; 26 import org.apache.roller.ui.core.RollerContext; 27 import org.apache.velocity.Template; 28 import org.apache.velocity.app.VelocityEngine; 29 import org.apache.velocity.exception.ParseErrorException; 30 import org.apache.velocity.exception.ResourceNotFoundException; 31 32 33 39 public class RollerVelocity { 40 41 public static final String VELOCITY_CONFIG = "/WEB-INF/velocity.properties"; 42 43 private static Log log = LogFactory.getLog(RollerVelocity.class); 44 45 private static VelocityEngine velocityEngine = null; 46 47 48 static { 49 log.info("Initializing Velocity Rendering Engine"); 50 51 Properties velocityProps = new Properties (); 53 54 try { 55 InputStream instream = 56 RollerContext.getServletContext().getResourceAsStream(VELOCITY_CONFIG); 57 58 velocityProps.load(instream); 59 60 if(RollerConfig.getBooleanProperty("rendering.legacyModels.enabled")) { 62 String macroLibraries = (String ) velocityProps.get("velocimacro.library"); 63 String oldLibraries = RollerConfig.getProperty("velocity.oldMacroLibraries"); 64 65 velocityProps.setProperty("velocimacro.library", oldLibraries+","+macroLibraries); 67 } 68 69 log.debug("Velocity engine props = "+velocityProps); 70 71 velocityEngine = new VelocityEngine(); 73 74 velocityEngine.init(velocityProps); 76 77 } catch (Exception e) { 78 throw new RuntimeException (e); 79 } 80 } 81 82 83 89 public static VelocityEngine getEngine() { 90 return velocityEngine; 91 } 92 93 94 97 public static Template getTemplate(String name) 98 throws ResourceNotFoundException, ParseErrorException, Exception { 99 return velocityEngine.getTemplate(name); 100 } 101 102 103 106 public static Template getTemplate(String name, String encoding) 107 throws ResourceNotFoundException, ParseErrorException, Exception { 108 return velocityEngine.getTemplate(name, encoding); 109 } 110 111 } 112 | Popular Tags |