FileTemplate.java 1.17 KB
package com.sitech.ismp.coll.busi.e2e.util;

import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;

import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;

public class FileTemplate {
	private static Map<String,Template> templateMap = new ConcurrentHashMap<String,Template>();
	
	public synchronized static VelocityEngine getVelocityEngine(String templetePath)
			throws Exception {
		VelocityEngine ve = new VelocityEngine();
		Properties p = new Properties();
		p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, templetePath);
		ve.init(p);
		return ve;
	}
	
	public synchronized static Template getRuleTemplate(String templetePath, String templateName)
			throws Exception {
		Template template = templateMap.get(templetePath + templateName);
		if (template == null) {
			template = getVelocityEngine(templetePath).getTemplate(templateName);
			templateMap.put(templetePath+templateName, template);
		}
		return template;
	}
	
	public synchronized static void removeRuleTemplate(String templetePath, String templateName){
		templateMap.remove(templetePath+templateName);
	}
}