Mapping: Translate git time to epoch millis Git records time in seconds since epoch, Eiffel requires millis since epoch. Solves: Jira GER-1614 Change-Id: I841dbba504153986df52d3144503403f54e1ec19
diff --git a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventMapper.java b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventMapper.java index 10c4fa1..e1cd13c 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventMapper.java +++ b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EiffelEventMapper.java
@@ -44,11 +44,17 @@ public class EiffelEventMapper { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); + private static final long SECONDS_TO_MILLIS = 1000l; private final Provider<EiffelEventFactory> eventFactoryProvider; private final AccountResolver accountResolver; private final Provider<InternalChangeQuery> queryProvider; private final EventMappingConfig cfg; + private static long commitTimeInEpochMillis(RevCommit commit) { + /* Git records time in seconds since epoch, multiply by 1000. */ + return commit.getCommitTime() * SECONDS_TO_MILLIS; + } + @Inject public EiffelEventMapper( Provider<EiffelEventFactory> eventFactoryProvider, @@ -101,7 +107,7 @@ branch, commit.getName(), null, - Long.valueOf(commit.getCommitTime()), + commitTimeInEpochMillis(commit), parentEventIds); } @@ -142,7 +148,7 @@ logger.atFine().log( "\"submittedAt\" not set for (%s, %s, %s), falling back to commit.commitTime", repoName, branch, commit.getName()); - submitInfo.submittedAt = Long.valueOf(commit.getCommitTime()); + submitInfo.submittedAt = commitTimeInEpochMillis(commit); } } else { submitInfo = getSubmitInfo(commit, repoName, branch); @@ -227,7 +233,7 @@ "Unable to identify submitter of (%s,%s,%s), falling back to commit.committer.", repoName, branch, commit.getName()); si.submitter = toPersonInfo(commit.getCommitterIdent()); - si.submittedAt = Long.valueOf(commit.getCommitTime()); + si.submittedAt = commitTimeInEpochMillis(commit); return si; }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/EiffelEventsTest.java b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/EiffelEventsTest.java index 8d08ad4..ce326f4 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/EiffelEventsTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/EiffelEventsTest.java
@@ -50,8 +50,13 @@ protected static final String NAMESPACE = "gerrit-review"; protected static final String TAG_NAME = "v1.0"; protected static final String TAG_PURL_TEMPLATE = "pkg:generic/%s/%s@%s?vcs_url=git%%2B%s%%40%s"; + private static final long SECONDS_TO_MILLIS = 1000l; private static int number = 0; + protected static final Long commitTimeInEpochMillis(RevCommit commit) { + return commit.getCommitTime() * SECONDS_TO_MILLIS; + } + protected void assertSccLinks(List<UUID> parentUuids, EiffelLinkInfo... links) throws Exception { assertThat(links) .isEqualTo(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EventMappingIT.java b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EventMappingIT.java index ca79ec3..575e1aa 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EventMappingIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/mapping/EventMappingIT.java
@@ -103,7 +103,7 @@ assertGitIdentifier( event.data.gitIdentifier, project.get(), "master", accountlessAuthor.getName()); assertChangeInfo(event.data.change, "N/A", project.get(), accountlessAuthor.getName()); - assertSccMeta(event.meta, Long.valueOf(accountlessAuthor.getCommitTime())); + assertSccMeta(event.meta, commitTimeInEpochMillis(accountlessAuthor)); assertSccLinks(event.links); } @@ -119,7 +119,7 @@ assertGitIdentifier( event.data.gitIdentifier, project.get(), "master", authorWithAccount.getName()); assertChangeInfo(event.data.change, "N/A", project.get(), authorWithAccount.getName()); - assertSccMeta(event.meta, Long.valueOf(authorWithAccount.getCommitTime())); + assertSccMeta(event.meta, commitTimeInEpochMillis(authorWithAccount)); assertSccLinks(event.links); } @@ -178,7 +178,7 @@ assertPersonInfo(event.data.submitter, AUTHOR_NAME, AUTHOR_EMAIL, null); assertGitIdentifier(event.data.gitIdentifier, project.get(), "master", revCommit.getName()); - assertScsMeta(event.meta, Long.valueOf(revCommit.getCommitTime())); + assertScsMeta(event.meta, commitTimeInEpochMillis(revCommit)); assertScsLinks(event.links); } @@ -225,7 +225,7 @@ assertPersonInfo(event.data.submitter, submitter.name, submitter.email, submitter.username); assertGitIdentifier(event.data.gitIdentifier, project.get(), "master", revCommit.getName()); - assertScsMeta(event.meta, Long.valueOf(revCommit.getCommitTime())); + assertScsMeta(event.meta, commitTimeInEpochMillis(revCommit)); assertScsLinks(event.links); }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParserIT.java b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParserIT.java index 9ff17be..2941b38 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParserIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParserIT.java
@@ -143,7 +143,7 @@ EiffelSourceChangeSubmittedEventInfo notInSubmitTransaction = (EiffelSourceChangeSubmittedEventInfo) TestEventHub.EVENTS.get(2); assertEquals(admin.username(), notInSubmitTransaction.data.submitter.id); - assertEquals(Long.valueOf(headBeforeMerge.getCommitTime()), notInSubmitTransaction.meta.time); + assertEquals(commitTimeInEpochMillis(headBeforeMerge), notInSubmitTransaction.meta.time); assertCorrectEvent(3, scs.copy(mergedCommit)); EiffelSourceChangeSubmittedEventInfo inSubmitTransaction =