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 =