1 7 package org.mmbase.applications.packaging.providerhandlers; 8 9 import java.io.DataOutputStream ; 10 import java.io.File ; 11 import java.io.FileOutputStream ; 12 import java.util.Iterator ; 13 14 import org.mmbase.applications.packaging.PackageManager; 15 import org.mmbase.applications.packaging.ProviderManager; 16 import org.mmbase.util.logging.Logger; 17 import org.mmbase.util.logging.Logging; 18 19 22 public class ProviderFileWriter { 23 24 private static Logger log = Logging.getLoggerInstance(ProviderFileWriter.class); 25 26 27 32 public static boolean write() { 33 String body = 34 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + 35 "<!DOCTYPE providers PUBLIC \"-//MMBase/DTD providers config 1.0//EN\" \"http://www.mmbase.org/dtd/providers_1_0.dtd\">\n"; 36 body += "<providers>\n"; 37 38 body += writeProviders(); 39 40 body += "</providers>\n"; 41 42 String filename = PackageManager.getConfigPath() + File.separator + "packaging" + File.separator + "providers.xml"; 43 saveFile(filename, body); 44 return true; 45 } 46 47 48 53 private static String writeProviders() { 54 String result = ""; 55 Iterator e = ProviderManager.getProviders(); 56 while (e.hasNext()) { 57 ProviderInterface p = (ProviderInterface) e.next(); 58 String method = p.getMethod(); 59 result += "\t<provider name=\"" + p.getName() + "\" maintainer=\"" + p.getMaintainer() + "\" "; 60 result += "method=\"" + method + "\" "; 61 result += ">\n"; 62 if (method.equals("http")) { 63 HttpProvider p2 = (HttpProvider) p; 64 result += "\t\t<path>" + p2.getPath() + "</path>\n"; 65 result += "\t\t<account>" + p2.getAccount() + "</account>\n"; 66 result += "\t\t<password>" + p2.getPassword() + "</password>\n"; 67 result += "\t\t<description>" + p2.getDescription() + "</description>\n"; 68 } else if (method.equals("disk")) { 69 result += "\t\t<path>" + p.getPath() + "</path>\n"; 70 result += "\t\t<description>" + p.getDescription() + "</description>\n"; 71 } 72 73 result += "\t</provider>\n"; 74 } 75 return result; 76 } 77 78 79 86 static boolean saveFile(String filename, String value) { 87 File sfile = new File (filename); 88 try { 89 DataOutputStream scan = new DataOutputStream (new FileOutputStream (sfile)); 90 scan.writeBytes(value); 91 scan.flush(); 92 scan.close(); 93 } catch (Exception e) { 94 log.error(Logging.stackTrace(e)); 95 } 96 return true; 97 } 98 99 } 100 101 | Popular Tags |