/** Lee del config.xml la configuración. */ public void unmarshalPlugins() { HashMap pc = Launcher.getPluginConfig(); Iterator iter = pc.keySet().iterator(); while (iter.hasNext()) { Object obj = iter.next(); PluginConfig pconfig = (PluginConfig) pc.get(obj); try { String fileName = Launcher.getAndamiConfig().getPluginsDirectory() + File.separator + (String) obj + File.separator + "config.xml"; FileInputStream is = new FileInputStream(fileName); Reader reader = com.iver.utiles.xml.XMLEncodingUtils.getReader(is); if (reader == null) { // the encoding was not correctly detected, use system default reader = new FileReader(fileName); } else { // use a buffered reader to improve performance reader = new BufferedReader(reader); } pconfig = (PluginConfig) PluginConfig.unmarshal(reader); Launcher.getPluginConfig().put(obj, pconfig); } catch (Exception e) { System.out.println("Exception unmarshalPlugin " + e); } } // hay que refrescar la aplicación /// ((App)App.instance).run(); }
/** Escribe sobre el config.xml, la nueva configuración. */ public void marshalPlugins() { HashMap pc = Launcher.getPluginConfig(); Iterator iter = pc.keySet().iterator(); while (iter.hasNext()) { Object obj = iter.next(); PluginConfig pconfig = (PluginConfig) pc.get(obj); Writer writer; try { FileOutputStream fos = new FileOutputStream( Launcher.getAndamiConfig().getPluginsDirectory() + File.separator + (String) obj + File.separator + "config.xml"); // castor uses xerces, and xerces uses UTF-8 by default, so we should use // UTF-8 to create the writer, as long as we continue using castor+xerces writer = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8")); try { pconfig.marshal(writer); } catch (MarshalException e1) { e1.printStackTrace(); } catch (ValidationException e1) { e1.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } // hay que refrescar la aplicación /// ((App)App.instance).run(); } }