From 6a74e2d8ce1a0c6bcd64bdb1c64907726d007345 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 06 Mar 2014 13:38:44 -0500
Subject: [PATCH] Improve the GO reindex-tickets shell scripts
---
src/main/java/com/gitblit/FileSettings.java | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/FileSettings.java b/src/main/java/com/gitblit/FileSettings.java
index 12739d2..d31fc2f 100644
--- a/src/main/java/com/gitblit/FileSettings.java
+++ b/src/main/java/com/gitblit/FileSettings.java
@@ -32,7 +32,7 @@
*/
public class FileSettings extends IStoredSettings {
- protected final File propertiesFile;
+ protected File propertiesFile;
private final Properties properties = new Properties();
@@ -40,9 +40,32 @@
private volatile boolean forceReload;
- public FileSettings(String file) {
+ public FileSettings() {
super(FileSettings.class);
+ }
+
+ public FileSettings(String file) {
+ this();
+ load(file);
+ }
+
+ public void load(String file) {
this.propertiesFile = new File(file);
+ }
+
+ /**
+ * Merges the provided settings into this instance. This will also
+ * set the target file for this instance IFF it is unset AND the merge
+ * source is also a FileSettings. This is a little sneaky.
+ */
+ @Override
+ public void merge(IStoredSettings settings) {
+ super.merge(settings);
+
+ // sneaky: set the target file from the merge source
+ if (propertiesFile == null && settings instanceof FileSettings) {
+ this.propertiesFile = ((FileSettings) settings).propertiesFile;
+ }
}
/**
@@ -51,7 +74,7 @@
*/
@Override
protected synchronized Properties read() {
- if (propertiesFile.exists() && (forceReload || (propertiesFile.lastModified() > lastModified))) {
+ if (propertiesFile != null && propertiesFile.exists() && (forceReload || (propertiesFile.lastModified() > lastModified))) {
FileInputStream is = null;
try {
Properties props = new Properties();
--
Gitblit v1.9.1