1 24 25 package org.objectweb.jonas_ws.wsgen.generator.axis; 26 27 import java.io.File ; 28 import java.io.FileWriter ; 29 import java.io.IOException ; 30 31 import org.apache.velocity.Template; 32 import org.apache.velocity.VelocityContext; 33 import org.apache.velocity.app.VelocityEngine; 34 import org.apache.velocity.runtime.RuntimeConstants; 35 36 import org.objectweb.jonas_lib.I18n; 37 38 import org.objectweb.jonas_ws.wsgen.WsGenException; 39 40 import org.objectweb.jonas.common.Log; 41 42 import org.objectweb.util.monolog.api.BasicLevel; 43 import org.objectweb.util.monolog.api.Logger; 44 45 50 public class JVelocity { 51 52 53 private static I18n i18n = I18n.getInstance(JVelocity.class); 54 55 58 private static Logger logger = Log.getLogger(Log.JONAS_WSGEN_PREFIX); 59 60 61 private VelocityEngine vEngine; 62 63 64 private Template template; 65 66 74 public JVelocity(String tmplName) throws WsGenException { 75 String jonasRoot = System.getProperty("install.root"); 77 78 if (jonasRoot == null) { 79 String err = i18n.getMessage("JVelocity.constr.notset"); 80 throw new WsGenException(err); 81 } 82 83 String path2Tmpl = new String (jonasRoot + File.separatorChar + "templates" + File.separatorChar + "wsgen" 84 + File.separatorChar + "generator" + File.separatorChar + "axis"); 85 86 vEngine = new VelocityEngine(); 88 vEngine.setProperty(RuntimeConstants.VM_LIBRARY, ""); 89 vEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "file"); 90 vEngine.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, path2Tmpl); 91 92 try { 93 vEngine.init(); 94 } catch (Exception e) { 95 String err = i18n.getMessage("JVelocity.constr.initFailure"); 96 throw new WsGenException(err, e); 97 } 98 99 try { 101 template = vEngine.getTemplate(tmplName); 102 } catch (Exception e) { 103 String err = i18n.getMessage("JVelocity.constr.tmplError", tmplName); 104 throw new WsGenException(err, e); 105 } 106 } 107 108 116 public void generate(File fs, VelocityContext context) throws WsGenException { 117 FileWriter fwriter = null; 118 119 try { 120 File fdir = fs.getParentFile(); 122 123 if (fdir != null) { 124 if (!fdir.exists()) { 125 if (!fdir.mkdirs()) { 126 String err = i18n.getMessage("JVelocity.generate.directories", fdir.getPath()); 127 throw new WsGenException(err); 128 } 129 } 130 } 131 132 fwriter = new FileWriter (fs); 133 } catch (IOException e) { 134 String err = i18n.getMessage("JVelocity.generate.file", fs); 135 throw new WsGenException(err, e); 136 } 137 138 try { 139 template.merge(context, fwriter); 140 } catch (Exception e) { 141 String err = i18n.getMessage("JVelocity.generate.cannot", fs); 142 throw new WsGenException(err, e); 143 } 144 145 try { 146 fwriter.flush(); 147 fwriter.close(); 148 } catch (IOException e) { 149 String err = i18n.getMessage("JVelocity.generate.close", fs); 151 logger.log(BasicLevel.WARN, err); 152 } 153 } 154 } | Popular Tags |