From 7baf2e4cd2ef8082b74937e26de75b01e630b5d4 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 17 Apr 2014 12:00:35 -0400 Subject: [PATCH] Expose JGit 3.x receive pack settings as Gitblit settings --- 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