]> source.dussan.org Git - gitblit.git/commitdiff
Use proper timezone to generate all metrics
authorJames Moger <james.moger@gitblit.com>
Sat, 25 Feb 2012 13:18:22 +0000 (08:18 -0500)
committerJames Moger <james.moger@gitblit.com>
Sat, 25 Feb 2012 13:18:22 +0000 (08:18 -0500)
src/com/gitblit/GitBlit.java
src/com/gitblit/utils/ActivityUtils.java
src/com/gitblit/utils/MetricUtils.java
src/com/gitblit/wicket/pages/ActivityPage.java
src/com/gitblit/wicket/pages/MetricsPage.java
src/com/gitblit/wicket/panels/ActivityPanel.html
tests/com/gitblit/tests/MetricUtilsTest.java

index a57e6055e82463425e9ff4ba9030b6cad1d35323..e6f07e08ec88a9318fa076816f213cd3ce0c3f99 100644 (file)
@@ -882,7 +882,7 @@ public class GitBlit implements ServletContextListener {
                if (repositoryMetricsCache.hasCurrent(model.name, model.lastChange)) {\r
                        return new ArrayList<Metric>(repositoryMetricsCache.getObject(model.name));\r
                }\r
-               List<Metric> metrics = MetricUtils.getDateMetrics(repository, null, true, null);\r
+               List<Metric> metrics = MetricUtils.getDateMetrics(repository, null, true, null, getTimezone());\r
                repositoryMetricsCache.updateObject(model.name, model.lastChange, metrics);\r
                return new ArrayList<Metric>(metrics);\r
        }\r
index 61b6242aa60badc5457865115e8c3a1e068fcf7e..d603a490f92c6db0a7421ef5fd7d43d8cf29efd6 100644 (file)
@@ -27,6 +27,7 @@ import java.util.Date;
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.TimeZone;\r
 \r
 import org.eclipse.jgit.lib.Constants;\r
 import org.eclipse.jgit.lib.ObjectId;\r
@@ -60,10 +61,12 @@ public class ActivityUtils {
         * @param objectId\r
         *            the branch to retrieve. If this value is null or empty all\r
         *            branches are queried.\r
+        * @param timezone\r
+        *            the timezone for aggregating commits\r
         * @return\r
         */\r
        public static List<Activity> getRecentActivity(List<RepositoryModel> models, int daysBack,\r
-                       String objectId) {\r
+                       String objectId, TimeZone timezone) {\r
 \r
                // Activity panel shows last daysBack of activity across all\r
                // repositories.\r
@@ -72,9 +75,9 @@ public class ActivityUtils {
                // Build a map of DailyActivity from the available repositories for the\r
                // specified threshold date.\r
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");\r
-               df.setTimeZone(GitBlit.getTimezone());\r
+               df.setTimeZone(timezone);\r
                Calendar cal = Calendar.getInstance();\r
-               cal.setTimeZone(GitBlit.getTimezone());\r
+               cal.setTimeZone(timezone);\r
 \r
                Map<String, Activity> activity = new HashMap<String, Activity>();\r
                for (RepositoryModel model : models) {\r
index 2919b1520b961ddfcb0e574efee06b46a80cf901..e9e1fa5289e584a8c22de87a66ea6f8f477a2dc3 100644 (file)
@@ -24,6 +24,7 @@ import java.util.Date;
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.TimeZone;\r
 \r
 import org.eclipse.jgit.lib.ObjectId;\r
 import org.eclipse.jgit.lib.Repository;\r
@@ -84,10 +85,11 @@ public class MetricUtils {
         *            if null or empty, HEAD is assumed.\r
         * @param includeTotal\r
         * @param dateFormat\r
+        * @param timezone\r
         * @return list of metrics\r
         */\r
        public static List<Metric> getDateMetrics(Repository repository, String objectId,\r
-                       boolean includeTotal, String dateFormat) {\r
+                       boolean includeTotal, String dateFormat, TimeZone timezone) {\r
                Metric total = new Metric("TOTAL");\r
                final Map<String, Metric> metricMap = new HashMap<String, Metric>();\r
 \r
@@ -130,6 +132,7 @@ public class MetricUtils {
                                        // use specified date format\r
                                        df = new SimpleDateFormat(dateFormat);\r
                                }\r
+                               df.setTimeZone(timezone);\r
 \r
                                Iterable<RevCommit> revlog = revWalk;\r
                                for (RevCommit rev : revlog) {\r
index e59e68ee85b61bc5297bb6a42fb072821695fc21..bceac8f440cd8844b1b265ec5d30031e274edbd9 100644 (file)
@@ -67,7 +67,8 @@ public class ActivityPage extends RootPage {
 \r
                // determine repositories to view and retrieve the activity\r
                List<RepositoryModel> models = getRepositories(params);\r
-               List<Activity> recentActivity = ActivityUtils.getRecentActivity(models, daysBack, objectId);\r
+               List<Activity> recentActivity = ActivityUtils.getRecentActivity(models, \r
+                               daysBack, objectId, getTimeZone());\r
 \r
                if (recentActivity.size() == 0) {\r
                        // no activity, skip graphs and activity panel\r
@@ -173,6 +174,7 @@ public class ActivityPage extends RootPage {
                GoogleChart chart = new GoogleLineChart("chartDaily", getString("gb.dailyActivity"), "day",\r
                                getString("gb.commits"));\r
                SimpleDateFormat df = new SimpleDateFormat("MMM dd");\r
+               df.setTimeZone(getTimeZone());\r
                for (Activity metric : recentActivity) {\r
                        chart.addValue(df.format(metric.startDate), metric.getCommitCount());\r
                }\r
index 8fce27a8dd4f6c4ab9f1baadab87d752551b47d2..7a84f76ea5e3a4d75a27dda4834948108befeb86 100644 (file)
@@ -55,7 +55,7 @@ public class MetricsPage extends RepositoryPage {
                        add(new Label("branchTitle", objectId));\r
                }\r
                Metric metricsTotal = null;\r
-               List<Metric> metrics = MetricUtils.getDateMetrics(r, objectId, true, null);\r
+               List<Metric> metrics = MetricUtils.getDateMetrics(r, objectId, true, null, getTimeZone());\r
                metricsTotal = metrics.remove(0);\r
                if (metricsTotal == null) {\r
                        add(new Label("branchStats", ""));\r
@@ -135,7 +135,7 @@ public class MetricsPage extends RepositoryPage {
        }\r
 \r
        private List<Metric> getDayOfWeekMetrics(Repository repository, String objectId) {\r
-               List<Metric> list = MetricUtils.getDateMetrics(repository, objectId, false, "E");\r
+               List<Metric> list = MetricUtils.getDateMetrics(repository, objectId, false, "E", getTimeZone());\r
                SimpleDateFormat sdf = new SimpleDateFormat("E");\r
                Calendar cal = Calendar.getInstance();\r
 \r
index 3827dc476e442c674d5ea8989ed5fd9ad0fd104e..4c0566cf4eae15ac53b8b3e3475ed6311767aae0 100644 (file)
@@ -15,7 +15,7 @@
        </div>\r
        \r
        <wicket:fragment wicket:id="commitFragment">\r
-               <td class="date" style="width:50px; vertical-align: middle;" ><span wicket:id="time">[time of day]</span></td>\r
+               <td class="date" style="width:60px; vertical-align: middle;text-align: right;padding-right:10px;" ><span wicket:id="time">[time of day]</span></td>\r
                <td style="width:10em;text-align:left;vertical-align: middle;">\r
                        <span wicket:id="repository" class="repositorySwatch">[repository link]</span>\r
                </td>\r
index 43d02ebea39ed1d0680229c1da42012c69cb66a5..bb8261afc8bafc23d4ad2a0cee52f413986619dd 100644 (file)
@@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;\r
 \r
 import java.util.List;\r
+import java.util.TimeZone;\r
 \r
 import org.eclipse.jgit.lib.Repository;\r
 import org.junit.Test;\r
@@ -35,7 +36,8 @@ public class MetricUtilsTest {
        }\r
 \r
        private void testMetrics(Repository repository) throws Exception {\r
-               List<Metric> metrics = MetricUtils.getDateMetrics(repository, null, true, null);\r
+               List<Metric> metrics = MetricUtils.getDateMetrics(repository, null, true, null,\r
+                               TimeZone.getDefault());\r
                repository.close();\r
                assertTrue("No date metrics found!", metrics.size() > 0);\r
        }\r