Revert removal of Joda time in OutputStreamQuery The added test is broken; it assumes a hard coded timezone but the timezone can vary depending on the machine that runs the tests. This reverts commit ed962c3530d0ae666f800eab49948029e60da208. This reverts commit 620896859a000f3647d95eba342e6c2e7354113c. Change-Id: I3a48d9241e21c0e47e4cef98735672ae3e53d34f
diff --git a/gerrit-acceptance-tests/BUCK b/gerrit-acceptance-tests/BUCK index d14bae2..3f7e04f 100644 --- a/gerrit-acceptance-tests/BUCK +++ b/gerrit-acceptance-tests/BUCK
@@ -33,7 +33,6 @@ '//lib/guice:guice', '//lib/guice:guice-assistedinject', '//lib/guice:guice-servlet', - '//lib/joda:joda-time', '//lib/log:api', '//lib/jgit/org.eclipse.jgit:jgit', '//lib/mail:mail',
diff --git a/gerrit-acceptance-tests/BUILD b/gerrit-acceptance-tests/BUILD index 66ce1b5..71b1b45 100644 --- a/gerrit-acceptance-tests/BUILD +++ b/gerrit-acceptance-tests/BUILD
@@ -34,7 +34,6 @@ '//lib/guice:guice', '//lib/guice:guice-assistedinject', '//lib/guice:guice-servlet', - '//lib/joda:joda-time', '//lib/log:api', '//lib/jgit/org.eclipse.jgit:jgit', '//lib/mina:sshd',
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java index e80726a..2865ff87 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java
@@ -17,11 +17,7 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assert_; import static com.google.gerrit.acceptance.GitUtil.initSsh; -import static com.google.gerrit.server.query.change.OutputStreamQuery.TIMESTAMP_FORMAT; -import static java.util.concurrent.TimeUnit.SECONDS; -import com.google.common.base.CharMatcher; -import com.google.common.base.Splitter; import com.google.common.collect.Lists; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.NoHttpd; @@ -31,13 +27,8 @@ import com.google.gerrit.extensions.api.changes.ReviewInput; import com.google.gerrit.extensions.client.Side; import com.google.gerrit.server.data.ChangeAttribute; -import com.google.gerrit.testutil.TestTimeUtil; import com.google.gson.Gson; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; -import org.junit.After; -import org.junit.Before; import org.junit.Test; import java.util.ArrayList; @@ -49,20 +40,6 @@ private static Gson gson = new Gson(); - private String systemTimeZone; - - @Before - public void setTimeForTesting() { - systemTimeZone = System.setProperty("user.timezone", "US/Eastern"); - TestTimeUtil.resetWithClockStep(1, SECONDS); - } - - @After - public void resetTime() { - TestTimeUtil.useSystemTime(); - System.setProperty("user.timezone", systemTimeZone); - } - @Test public void testBasicQueryJSON() throws Exception { String changeId1 = createChange().getChangeId(); @@ -346,45 +323,6 @@ userSession.close(); } - @Test - public void testTimestampInTextQuery() throws Exception { - DateTimeFormatter dtf = DateTimeFormat.forPattern(TIMESTAMP_FORMAT); - String createdOnKey = "createdOn:"; - PushOneCommit.Result result = createChange(); - String textResult = executeSuccessfulTextQuery(result.getChangeId()); - assertThat(textResult).isNotNull(); - assertThat(textResult).contains(createdOnKey); - String value = getValueFromText(textResult, createdOnKey); - assertThat(value).isNotNull(); - assertThat(value).isEqualTo("2009-09-30 14:00:02 PDT"); - long expectedCreatedOn = result.getChange().change().getCreatedOn().getTime(); - assertThat(dtf.parseMillis(value)).isEqualTo(expectedCreatedOn); - } - - private String getValueFromText(String text, String key) { - Splitter s = Splitter.on(CharMatcher.is('\n')).trimResults().omitEmptyStrings(); - for (String line : s.splitToList(text)) { - if (line.startsWith(key)) { - return line.substring(key.length()).trim(); - } - } - return null; - } - - private String executeSuccessfulTextQuery(String params, SshSession session) - throws Exception { - String rawResponse = - session.exec("gerrit query --format=TEXT " + params); - assert_().withFailureMessage(session.getError()) - .that(session.hasError()).isFalse(); - return rawResponse; - } - - private String executeSuccessfulTextQuery(String params) - throws Exception { - return executeSuccessfulTextQuery(params, adminSshSession); - } - private List<ChangeAttribute> executeSuccessfulQuery(String params, SshSession session) throws Exception { String rawResponse =
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/OutputStreamQuery.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/OutputStreamQuery.java index 277a2a1..5e08ee3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/OutputStreamQuery.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/OutputStreamQuery.java
@@ -40,6 +40,8 @@ import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.util.io.DisabledOutputStream; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,15 +51,11 @@ import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.lang.reflect.Field; -import java.time.Instant; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; /** @@ -65,15 +63,11 @@ * command. */ public class OutputStreamQuery { - public static final String TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss zzz"; - private static final Logger log = LoggerFactory.getLogger(OutputStreamQuery.class); - private static final DateTimeFormatter dtf = DateTimeFormatter - .ofPattern(TIMESTAMP_FORMAT) - .withLocale(Locale.US) - .withZone(ZoneId.systemDefault()); + private static final DateTimeFormatter dtf = + DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss zzz"); public enum OutputFormat { TEXT, JSON @@ -401,7 +395,7 @@ out.print('\n'); } else if (value instanceof Long && isDateField(field)) { out.print(' '); - out.print(dtf.format(Instant.ofEpochMilli(((Long) value) * 1000L))); + out.print(dtf.print(((Long) value) * 1000L)); out.print('\n'); } else if (isPrimitive(value)) { out.print(' ');