private static boolean replaceServerProperties(XMLServer server) { Class<?> serverclazz; try { serverclazz = Class.forName(server.getClazz()); } catch (ClassNotFoundException e) { try { serverclazz = Class.forName("com.ingby.socbox.bischeck.servers." + server.getClazz()); } catch (Exception ret) { return false; } } java.util.Properties defaultproperties = null; Method method; try { method = serverclazz.getMethod("getServerProperties"); defaultproperties = (java.util.Properties) method.invoke(null); } catch (Exception ret) { return false; } Iterator<XMLProperty> iter = server.getProperty().iterator(); // Update the default properties with what is currently set // in the server property while (iter.hasNext()) { XMLProperty xmlprop = iter.next(); if (defaultproperties.containsKey(xmlprop.getKey())) defaultproperties.setProperty(xmlprop.getKey(), xmlprop.getValue()); } // Create a new server property list List<XMLProperty> serverproperty = new ArrayList<XMLProperty>(); Iterator<Object> keyiter = defaultproperties.keySet().iterator(); while (keyiter.hasNext()) { String key = (String) keyiter.next(); XMLProperty xmlprop = new XMLProperty(); xmlprop.setKey(key); xmlprop.setValue((String) defaultproperties.get(key)); serverproperty.add(xmlprop); } server.getProperty().clear(); server.getProperty().addAll(serverproperty); return true; }
public static void saveProperty() { String servername = params.get("servername"); String key = params.get("key"); String value = params.get("value"); boolean existingKey = false; XMLServers serversconfig = getCache(); Iterator<XMLServer> servers = serversconfig.getServer().iterator(); while (servers.hasNext()) { XMLServer server = servers.next(); if (server.getName().equals(servername)) { Iterator<XMLProperty> propertiesIter = server.getProperty().iterator(); while (propertiesIter.hasNext()) { XMLProperty xmlprop = propertiesIter.next(); if (xmlprop.getKey().equals(key)) { existingKey = true; xmlprop.setValue(value); } } if (!existingKey) { List<XMLProperty> propertiesList = server.getProperty(); XMLProperty property = new XMLProperty(); property.setKey(key); property.setValue(value); propertiesList.add(property); } flash.success(Messages.get("SaveServerPropertySuccess")); edit(server.getName()); } } }