From b774dedd7f0ab1567e790610b70eb7f2241423fb Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 02 Dec 2011 15:31:38 -0500 Subject: [PATCH] Preliminary changes for running on RedHat OpenShift. Still in-progress. --- src/com/gitblit/WebXmlSettings.java | 29 +++++++++++++++++------------ 1 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/com/gitblit/WebXmlSettings.java b/src/com/gitblit/WebXmlSettings.java index 055c7d3..7c8120b 100644 --- a/src/com/gitblit/WebXmlSettings.java +++ b/src/com/gitblit/WebXmlSettings.java @@ -20,6 +20,7 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; +import java.text.MessageFormat; import java.util.Enumeration; import java.util.Map; import java.util.Properties; @@ -38,11 +39,10 @@ private final Properties properties = new Properties(); - private final ServletContext context; + private File overrideFile; public WebXmlSettings(ServletContext context) { super(WebXmlSettings.class); - this.context = context; Enumeration<?> keys = context.getInitParameterNames(); while (keys.hasMoreElements()) { String key = keys.nextElement().toString(); @@ -50,15 +50,21 @@ properties.put(key, decodeValue(value)); logger.debug(key + "=" + properties.getProperty(key)); } + } + + public void applyOverrides(File overrideFile) { + this.overrideFile = overrideFile; + // apply any web-configured overrides - File file = new File(context.getRealPath("/WEB-INF/web.properties")); - if (file.exists()) { + if (overrideFile.exists()) { try { - InputStream is = new FileInputStream(file); + InputStream is = new FileInputStream(overrideFile); properties.load(is); is.close(); } catch (Throwable t) { - logger.error("Failed to load web.properties setting overrides", t); + logger.error( + MessageFormat.format("Failed to apply {0} setting overrides", + overrideFile.getAbsolutePath()), t); } } } @@ -78,19 +84,18 @@ try { Properties props = new Properties(); // load pre-existing web-configuration - File file = new File(context.getRealPath("/WEB-INF/web.properties")); - if (file.exists()) { - InputStream is = new FileInputStream(file); + if (overrideFile.exists()) { + InputStream is = new FileInputStream(overrideFile); props.load(is); is.close(); } - + // put all new settings and persist props.putAll(settings); - OutputStream os = new FileOutputStream(file); + OutputStream os = new FileOutputStream(overrideFile); props.store(os, null); os.close(); - + // override current runtime settings properties.putAll(settings); return true; -- Gitblit v1.9.1