]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5329 - Convert ES time to current timeZones
authorStephane Gamard <stephane.gamard@searchbox.com>
Fri, 20 Jun 2014 13:08:26 +0000 (15:08 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Fri, 20 Jun 2014 13:08:39 +0000 (15:08 +0200)
sonar-core/src/main/resources/org/sonar/core/persistence/migration/v44/Migration44Mapper.xml
sonar-server/src/main/java/org/sonar/server/search/IndexUtils.java
sonar-server/src/test/java/org/sonar/server/activity/ActivityBackendMediumTest.java

index 4484a1111e601f08be704b68bdc90f95dcbe3d3a..8adb47e20c769ae4f27cbc71f88dc6248f311fc0 100644 (file)
     rule_change.id as id,
     rule_change.change_date as createdAt,
     users.login as userLogin,
-    rule_def.plugin_name as ruleKey,
-    rule_def.plugin_rule_key as repository,
+    rule_def.plugin_name as repository,
+    rule_def.plugin_rule_key as ruleKey,
     profile.kee as profileKey,
     rule_change.new_severity as severity ,
     rule_def.name as ruleName,
-    rule_def_param.name as paramName,
+    rule_def_param.name as paramKey,
     rule_param_change.new_value as paramValue
     from active_rule_changes rule_change
     left join users on users.name = rule_change.username
     left join rules rule_def on rule_def.id = rule_change.rule_id
     left join rules_profiles profile on profile.id = rule_change.profile_id
     left join active_rule_param_changes rule_param_change on rule_param_change.active_rule_change_id = rule_change.id
-    left join rules_parameters rule_def_param on rule_def_param.id = rule_param_change.rules_parameter_id
+    left join rules_parameters rule_def_param on rule_param_change.rules_parameter_id = rule_def_param.id
     WHERE
     <choose>
       <when test="enabled != null">
index 02d69bb96ce26c1df990a3ad671774a9d7786a6e..bba38b2afe1ee065c2f14f4dc750f0f4b143ba15 100644 (file)
@@ -25,6 +25,7 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.TimeZone;
 
 public class IndexUtils {
 
@@ -38,8 +39,12 @@ public class IndexUtils {
       return null;
     }
     try {
+
+      // ES times are in UTC
       DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+      sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
       return sdf.parse(s);
+
     } catch (ParseException e) {
       throw new IllegalArgumentException("Cannot parse ES date: " + s, e);
     }
index 9c3dc5e7deb5656a85d275f5ccac646b0d3876e8..c20b68b8ddd9617accebb3dcb55b0b7ce6b9e954 100644 (file)
@@ -131,4 +131,13 @@ public class ActivityBackendMediumTest {
     }
     assertThat(count).isEqualTo(max);
   }
+
+  @Test
+  public void current_time_zone() {
+    service.write(dbSession, Activity.Type.QPROFILE, "now");
+    dbSession.commit();
+
+    Activity activity = service.search(new ActivityQuery(), new QueryOptions()).getHits().get(0);
+    assertThat(System.currentTimeMillis() - activity.time().getTime()).isLessThan(1000L);
+  }
 }