From ddcebbd982d81dabf8cb1c89f60f9b876a23b58c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 04 Sep 2014 13:32:44 -0400
Subject: [PATCH] Merged #149 "Repo creation with initial commit fails if user does not have an email address"

---
 src/main/java/com/gitblit/manager/RuntimeManager.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/manager/RuntimeManager.java b/src/main/java/com/gitblit/manager/RuntimeManager.java
index 9805701..9cdc64e 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;
 
@@ -63,6 +64,8 @@
 		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;
 	}
 
@@ -116,9 +119,42 @@
 	 */
 	@Override
 	public boolean isServingRepositories() {
-		return settings.getBoolean(Keys.git.enableGitServlet, true)
-				|| (settings.getInteger(Keys.git.daemonPort, 0) > 0)
-				|| (settings.getInteger(Keys.git.sshPort, 0) > 0);
+		return isServingHTTP()
+				|| isServingGIT()
+				|| isServingSSH();
+	}
+
+	/**
+	 * Determine if this Gitblit instance is actively serving git repositories
+	 * over the HTTP protocol.
+	 *
+	 * @return true if Gitblit is serving repositories over the HTTP protocol
+	 */
+	@Override
+	public boolean isServingHTTP() {
+		return settings.getBoolean(Keys.git.enableGitServlet, true);
+	}
+
+	/**
+	 * Determine if this Gitblit instance is actively serving git repositories
+	 * over the Git Daemon protocol.
+	 *
+	 * @return true if Gitblit is serving repositories over the Git Daemon protocol
+	 */
+	@Override
+	public boolean isServingGIT() {
+		return settings.getInteger(Keys.git.daemonPort, 0) > 0;
+	}
+
+	/**
+	 * Determine if this Gitblit instance is actively serving git repositories
+	 * over the SSH protocol.
+	 *
+	 * @return true if Gitblit is serving repositories over the SSH protocol
+	 */
+	@Override
+	public boolean isServingSSH() {
+		return settings.getInteger(Keys.git.sshPort, 0) > 0;
 	}
 
 	/**
@@ -146,6 +182,22 @@
 		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;
+	}
+
 	/**
 	 * Is Gitblit running in debug mode?
 	 *

--
Gitblit v1.9.1