From 6c6e7d393119dc31a8a6c407236af10290abc77e Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 21 Feb 2012 17:32:04 -0500 Subject: [PATCH] Allow specifying a timezone in gitblit.properties/web.xml (issue 54) --- src/com/gitblit/GitBlit.java | 37 +++++++++++++++++++++++++++++++++++-- 1 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 7cb813f..9c1cd40 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -23,16 +23,19 @@ import java.io.InputStreamReader; import java.lang.reflect.Field; import java.text.MessageFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.TimeZone; import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executors; @@ -103,7 +106,7 @@ public class GitBlit implements ServletContextListener { private static GitBlit gitblit; - + private final Logger logger = LoggerFactory.getLogger(GitBlit.class); private final ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(5); @@ -132,6 +135,8 @@ private ServerStatus serverStatus; private MailExecutor mailExecutor; + + private TimeZone timezone; public GitBlit() { if (gitblit == null) { @@ -159,6 +164,23 @@ */ public static boolean isGO() { return self().settings instanceof FileSettings; + } + + /** + * Returns the preferred timezone for the Gitblit instance. + * + * @return a timezone + */ + public static TimeZone getTimezone() { + if (self().timezone == null) { + String tzid = getString("web.timezone", null); + if (StringUtils.isEmpty(tzid)) { + self().timezone = TimeZone.getDefault(); + return self().timezone; + } + self().timezone = TimeZone.getTimeZone(tzid); + } + return self().timezone; } /** @@ -1767,6 +1789,10 @@ repositoriesFolder = getRepositoriesFolder(); logger.info("Git repositories folder " + repositoriesFolder.getAbsolutePath()); repositoryResolver = new FileResolver<Void>(repositoriesFolder, true); + + logTimezone("JVM", TimeZone.getDefault()); + logTimezone(Constants.NAME, getTimezone()); + serverStatus = new ServerStatus(isGO()); String realm = settings.getString(Keys.realm.userService, "users.properties"); IUserService loginService = null; @@ -1786,7 +1812,14 @@ } if (startFederation) { configureFederation(); - } + } + } + + private void logTimezone(String type, TimeZone zone) { + SimpleDateFormat df = new SimpleDateFormat("z Z"); + df.setTimeZone(zone); + String offset = df.format(new Date()); + logger.info(type + " timezone is " + zone.getID() + " (" + offset + ")"); } /** -- Gitblit v1.9.1