diff options
author | James Moger <james.moger@gitblit.com> | 2012-02-21 17:32:04 -0500 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2012-02-21 17:32:04 -0500 |
commit | 6c6e7d393119dc31a8a6c407236af10290abc77e (patch) | |
tree | bd6ee3924bac82a7da9de55b326c22026e6e6d6d /src | |
parent | 18d7a1ac2142f5b16a480cb51d7bcc1bce55cd61 (diff) | |
download | gitblit-6c6e7d393119dc31a8a6c407236af10290abc77e.tar.gz gitblit-6c6e7d393119dc31a8a6c407236af10290abc77e.zip |
Allow specifying a timezone in gitblit.properties/web.xml (issue 54)
Diffstat (limited to 'src')
-rw-r--r-- | src/com/gitblit/GitBlit.java | 37 | ||||
-rw-r--r-- | src/com/gitblit/wicket/WicketUtils.java | 22 | ||||
-rw-r--r-- | src/com/gitblit/wicket/pages/BasePage.java | 2 | ||||
-rw-r--r-- | src/com/gitblit/wicket/panels/BasePanel.java | 2 |
4 files changed, 49 insertions, 14 deletions
diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 7cb813fe..9c1cd40f 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -23,16 +23,19 @@ import java.io.InputStream; 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 @@ import com.gitblit.utils.StringUtils; 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 @@ public class GitBlit implements ServletContextListener { private ServerStatus serverStatus;
private MailExecutor mailExecutor;
+
+ private TimeZone timezone;
public GitBlit() {
if (gitblit == null) {
@@ -160,6 +165,23 @@ public class GitBlit implements ServletContextListener { 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;
+ }
/**
* Returns the boolean value for the specified key. If the key does not
@@ -1767,6 +1789,10 @@ public class GitBlit implements ServletContextListener { 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 @@ public class GitBlit implements ServletContextListener { }
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 + ")");
}
/**
diff --git a/src/com/gitblit/wicket/WicketUtils.java b/src/com/gitblit/wicket/WicketUtils.java index 8c1cf3c8..7be5328e 100644 --- a/src/com/gitblit/wicket/WicketUtils.java +++ b/src/com/gitblit/wicket/WicketUtils.java @@ -408,9 +408,10 @@ public class WicketUtils { public static Label createDateLabel(String wicketId, Date date, TimeZone timeZone) {
String format = GitBlit.getString(Keys.web.datestampShortFormat, "MM/dd/yy");
DateFormat df = new SimpleDateFormat(format);
- if (timeZone != null) {
- df.setTimeZone(timeZone);
+ if (timeZone == null) {
+ timeZone = GitBlit.getTimezone();
}
+ df.setTimeZone(timeZone);
String dateString;
if (date.getTime() == 0) {
dateString = "--";
@@ -438,9 +439,10 @@ public class WicketUtils { public static Label createTimeLabel(String wicketId, Date date, TimeZone timeZone) {
String format = GitBlit.getString(Keys.web.timeFormat, "HH:mm");
DateFormat df = new SimpleDateFormat(format);
- if (timeZone != null) {
- df.setTimeZone(timeZone);
+ if (timeZone == null) {
+ timeZone = GitBlit.getTimezone();
}
+ df.setTimeZone(timeZone);
String timeString;
if (date.getTime() == 0) {
timeString = "--";
@@ -449,7 +451,6 @@ public class WicketUtils { }
String title = TimeUtils.timeAgo(date);
Label label = new Label(wicketId, timeString);
- WicketUtils.setCssClass(label, TimeUtils.timeAgoCss(date));
if (!StringUtils.isEmpty(title)) {
WicketUtils.setHtmlTooltip(label, title);
}
@@ -459,9 +460,10 @@ public class WicketUtils { public static Label createDatestampLabel(String wicketId, Date date, TimeZone timeZone) {
String format = GitBlit.getString(Keys.web.datestampLongFormat, "EEEE, MMMM d, yyyy");
DateFormat df = new SimpleDateFormat(format);
- if (timeZone != null) {
- df.setTimeZone(timeZone);
+ if (timeZone == null) {
+ timeZone = GitBlit.getTimezone();
}
+ df.setTimeZone(timeZone);
String dateString;
if (date.getTime() == 0) {
dateString = "--";
@@ -483,7 +485,6 @@ public class WicketUtils { title = tmp;
}
Label label = new Label(wicketId, dateString);
- WicketUtils.setCssClass(label, TimeUtils.timeAgoCss(date));
if (!StringUtils.isEmpty(title)) {
WicketUtils.setHtmlTooltip(label, title);
}
@@ -494,9 +495,10 @@ public class WicketUtils { String format = GitBlit.getString(Keys.web.datetimestampLongFormat,
"EEEE, MMMM d, yyyy HH:mm Z");
DateFormat df = new SimpleDateFormat(format);
- if (timeZone != null) {
- df.setTimeZone(timeZone);
+ if (timeZone == null) {
+ timeZone = GitBlit.getTimezone();
}
+ df.setTimeZone(timeZone);
String dateString;
if (date.getTime() == 0) {
dateString = "--";
diff --git a/src/com/gitblit/wicket/pages/BasePage.java b/src/com/gitblit/wicket/pages/BasePage.java index 515e9ce1..3852818a 100644 --- a/src/com/gitblit/wicket/pages/BasePage.java +++ b/src/com/gitblit/wicket/pages/BasePage.java @@ -181,7 +181,7 @@ public abstract class BasePage extends WebPage { protected TimeZone getTimeZone() {
return GitBlit.getBoolean(Keys.web.useClientTimezone, false) ? GitBlitWebSession.get()
- .getTimezone() : TimeZone.getDefault();
+ .getTimezone() : GitBlit.getTimezone();
}
protected String getServerName() {
diff --git a/src/com/gitblit/wicket/panels/BasePanel.java b/src/com/gitblit/wicket/panels/BasePanel.java index 73e13991..3606dd04 100644 --- a/src/com/gitblit/wicket/panels/BasePanel.java +++ b/src/com/gitblit/wicket/panels/BasePanel.java @@ -38,7 +38,7 @@ public abstract class BasePanel extends Panel { protected TimeZone getTimeZone() {
return GitBlit.getBoolean(Keys.web.useClientTimezone, false) ? GitBlitWebSession.get()
- .getTimezone() : TimeZone.getDefault();
+ .getTimezone() : GitBlit.getTimezone();
}
protected void setPersonSearchTooltip(Component component, String value, Constants.SearchType searchType) {
|