From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/WebXmlSettings.java | 36 +++++++++++++++++++++++++++++++++--- 1 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/WebXmlSettings.java b/src/main/java/com/gitblit/WebXmlSettings.java index 7c8120b..228c27d 100644 --- a/src/main/java/com/gitblit/WebXmlSettings.java +++ b/src/main/java/com/gitblit/WebXmlSettings.java @@ -31,9 +31,9 @@ /** * Loads Gitblit settings from the context-parameter values of a web.xml file. - * + * * @author James Moger - * + * */ public class WebXmlSettings extends IStoredSettings { @@ -54,7 +54,7 @@ public void applyOverrides(File overrideFile) { this.overrideFile = overrideFile; - + // apply any web-configured overrides if (overrideFile.exists()) { try { @@ -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