From e1bcda8c6245035c96bf44ee09d61fa5a52bcafc Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 29 May 2014 17:18:38 -0400
Subject: [PATCH] Merged #93 "Clarify server.threadPoolSize setting documentation"

---
 src/main/java/com/gitblit/manager/RuntimeManager.java |   45 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 36 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/gitblit/manager/RuntimeManager.java b/src/main/java/com/gitblit/manager/RuntimeManager.java
index cfb4543..52f4d67 100644
--- a/src/main/java/com/gitblit/manager/RuntimeManager.java
+++ b/src/main/java/com/gitblit/manager/RuntimeManager.java
@@ -18,6 +18,7 @@
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 
@@ -40,23 +41,31 @@
 
 	private final ServerStatus serverStatus;
 
-	private TimeZone timezone;
+	private final ServerSettings settingsModel;
 
 	private File baseFolder;
 
-	private ServerSettings settingsModel;
+	private TimeZone timezone;
 
 	public RuntimeManager(IStoredSettings settings) {
+		this(settings, null);
+	}
+
+	public RuntimeManager(IStoredSettings settings, File baseFolder) {
 		this.settings = settings;
 		this.settingsModel = new ServerSettings();
 		this.serverStatus = new ServerStatus();
+		this.baseFolder = baseFolder == null ? new File("") : baseFolder;
 	}
 
 	@Override
-	public RuntimeManager setup() {
-		logger.info("Gitblit settings        = " + settings.toString());
-		logTimezone("JVM", TimeZone.getDefault());
-		logTimezone(Constants.NAME, getTimezone());
+	public RuntimeManager start() {
+		logger.info("Basefolder  : " + baseFolder.getAbsolutePath());
+		logger.info("Settings    : " + settings.toString());
+		logTimezone("JVM timezone: ", TimeZone.getDefault());
+		logTimezone("App timezone: ", getTimezone());
+		logger.info("JVM locale  : " + Locale.getDefault());
+		logger.info("App locale  : " +  (getLocale() == null ? "<client>" : getLocale()));
 		return this;
 	}
 
@@ -110,7 +119,9 @@
 	 */
 	@Override
 	public boolean isServingRepositories() {
-		return settings.getBoolean(Keys.git.enableGitServlet, true) || (settings.getInteger(Keys.git.daemonPort, 0) > 0);
+		return settings.getBoolean(Keys.git.enableGitServlet, true)
+				|| (settings.getInteger(Keys.git.daemonPort, 0) > 0)
+				|| (settings.getInteger(Keys.git.sshPort, 0) > 0);
 	}
 
 	/**
@@ -121,7 +132,7 @@
 	@Override
 	public TimeZone getTimezone() {
 		if (timezone == null) {
-			String tzid = settings.getString("web.timezone", null);
+			String tzid = settings.getString(Keys.web.timezone, null);
 			if (StringUtils.isEmpty(tzid)) {
 				timezone = TimeZone.getDefault();
 				return timezone;
@@ -135,7 +146,23 @@
 		SimpleDateFormat df = new SimpleDateFormat("z Z");
 		df.setTimeZone(zone);
 		String offset = df.format(new Date());
-		logger.info(type + " timezone is " + zone.getID() + " (" + offset + ")");
+		logger.info("{}{} ({})", new Object [] { type, zone.getID(), offset });
+	}
+
+	@Override
+	public Locale getLocale() {
+		String lc = settings.getString(Keys.web.forceDefaultLocale, null);
+		if (!StringUtils.isEmpty(lc)) {
+			int underscore = lc.indexOf('_');
+			if (underscore > 0) {
+				String lang = lc.substring(0, underscore);
+				String cc = lc.substring(underscore + 1);
+				return new Locale(lang, cc);
+			} else {
+				return new Locale(lc);
+			}
+		}
+		return null;
 	}
 
 	/**

--
Gitblit v1.9.1