From 53a83f67aef203379e43a9ed89ccfcb16c16200e Mon Sep 17 00:00:00 2001 From: James Moger Date: Fri, 21 Mar 2014 12:41:35 -0400 Subject: Implement setting removal for configuration settings --- src/main/java/com/gitblit/WebXmlSettings.java | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/main/java/com/gitblit/WebXmlSettings.java') diff --git a/src/main/java/com/gitblit/WebXmlSettings.java b/src/main/java/com/gitblit/WebXmlSettings.java index 7ae26975..228c27db 100644 --- a/src/main/java/com/gitblit/WebXmlSettings.java +++ b/src/main/java/com/gitblit/WebXmlSettings.java @@ -79,6 +79,36 @@ public class WebXmlSettings extends IStoredSettings { return properties; } + @Override + public synchronized boolean saveSettings() { + try { + Properties props = new Properties(); + // load pre-existing web-configuration + if (overrideFile.exists()) { + InputStream is = new FileInputStream(overrideFile); + props.load(is); + is.close(); + } + + // put all new settings and persist + for (String key : removals) { + props.remove(key); + } + removals.clear(); + OutputStream os = new FileOutputStream(overrideFile); + props.store(os, null); + os.close(); + + // override current runtime settings + properties.clear(); + properties.putAll(props); + return true; + } catch (Throwable t) { + logger.error("Failed to save settings!", t); + } + return false; + } + @Override public synchronized boolean saveSettings(Map settings) { try { -- cgit v1.2.3