From aa61fc86db4f5ebf645ecf69c6f5ec36f2973e5a Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 21 Feb 2014 11:14:47 -0500 Subject: [PATCH] Add GO launch parameter to specify daily, rolling log file generation --- 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