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/FileSettings.java |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/FileSettings.java b/src/main/java/com/gitblit/FileSettings.java
index d31fc2f..21a2043 100644
--- a/src/main/java/com/gitblit/FileSettings.java
+++ b/src/main/java/com/gitblit/FileSettings.java
@@ -103,6 +103,23 @@
 		return properties;
 	}
 
+	@Override
+	public boolean saveSettings() {
+		String content = FileUtils.readContent(propertiesFile, "\n");
+		for (String key : removals) {
+			String regex = "(?m)^(" + regExEscape(key) + "\\s*+=\\s*+)"
+				    + "(?:[^\r\n\\\\]++|\\\\(?:\r?\n|\r|.))*+$";
+			content = content.replaceAll(regex, "");
+		}
+		removals.clear();
+
+		FileUtils.writeContent(propertiesFile, content);
+		// manually set the forceReload flag because not all JVMs support real
+		// millisecond resolution of lastModified. (issue-55)
+		forceReload = true;
+		return true;
+	}
+
 	/**
 	 * Updates the specified settings in the settings file.
 	 */

--
Gitblit v1.9.1