From 53a83f67aef203379e43a9ed89ccfcb16c16200e Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 27 Mar 2014 09:47:26 -0400 Subject: [PATCH] Implement setting removal for configuration settings --- src/main/java/com/gitblit/WebXmlSettings.java | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gitblit/WebXmlSettings.java b/src/main/java/com/gitblit/WebXmlSettings.java index 7ae2697..228c27d 100644 --- a/src/main/java/com/gitblit/WebXmlSettings.java +++ b/src/main/java/com/gitblit/WebXmlSettings.java @@ -80,6 +80,36 @@ } @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<String, String> settings) { try { Properties props = new Properties(); -- Gitblit v1.9.1