Adapt to the new Time API To avoid JdkObsolete issues with Date Gerrit core started replacing usage of Timestamp class with Instant(see Ib6f4a1531). Adapt high-availability code to the new Time API to avoid compilation issues. This commit is based on multi-site fix (see I696480ee4). Change-Id: Ib4b57002df2d3a28689654bb1673ee7d724aa7c8
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java index 70ef751..4a3f473 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/AccountReindexRunnable.java
@@ -54,7 +54,7 @@ protected Optional<Timestamp> indexIfNeeded(AccountState as, Timestamp sinceTs) { try { Account a = as.account(); - Timestamp accountTs = a.registeredOn(); + Timestamp accountTs = Timestamp.from(a.registeredOn()); if (accountTs.after(sinceTs)) { log.atInfo().log("Index %s/%s/%s/%s", a.id(), a.fullName(), a.preferredEmail(), accountTs); accountIdx.index(a.id(), Operation.INDEX, Optional.empty());
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java index fcd345d..c0b60c3 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
@@ -101,7 +101,7 @@ @Override protected Optional<Timestamp> indexIfNeeded(Change c, Timestamp sinceTs) { try { - Timestamp changeTs = c.getLastUpdatedOn(); + Timestamp changeTs = Timestamp.from(c.getLastUpdatedOn()); if (changeTs.after(sinceTs)) { log.atInfo().log( "Index %s/%s/%s was updated after %s", c.getProject(), c.getId(), changeTs, sinceTs);
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java index 4ded55e..05efe07 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnable.java
@@ -30,6 +30,7 @@ import com.google.inject.Inject; import java.io.IOException; import java.sql.Timestamp; +import java.time.Instant; import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -73,7 +74,7 @@ Optional<InternalGroup> internalGroup = groups.getGroup(g.getUUID()); if (internalGroup.isPresent()) { InternalGroup group = internalGroup.get(); - Timestamp groupCreationTs = group.getCreatedOn(); + Timestamp groupCreationTs = Timestamp.from(group.getCreatedOn()); Repository allUsersRepo = repoManager.openRepository(allUsers); @@ -81,23 +82,24 @@ groups.getSubgroupsAudit(allUsersRepo, g.getUUID()); Stream<Timestamp> groupIdAudAddedTs = subGroupMembersAud.stream() - .map(AccountGroupByIdAudit::addedOn) + .map(accountGroupByIdAudit -> Timestamp.from(accountGroupByIdAudit.addedOn())) .filter(Objects::nonNull); Stream<Timestamp> groupIdAudRemovedTs = subGroupMembersAud.stream() .map(AccountGroupByIdAudit::removedOn) - .filter(Optional<Timestamp>::isPresent) - .map(Optional<Timestamp>::get); - + .filter(Optional<Instant>::isPresent) + .map(inst -> Timestamp.from(inst.get())); List<AccountGroupMemberAudit> groupMembersAud = groups.getMembersAudit(allUsersRepo, g.getUUID()); Stream<Timestamp> groupMemberAudAddedTs = - groupMembersAud.stream().map(AccountGroupMemberAudit::addedOn).filter(Objects::nonNull); + groupMembersAud.stream() + .map(accountGroupByIdAudit -> Timestamp.from(accountGroupByIdAudit.addedOn())) + .filter(Objects::nonNull); Stream<Timestamp> groupMemberAudRemovedTs = groupMembersAud.stream() .map(AccountGroupMemberAudit::removedOn) - .filter(Optional<Timestamp>::isPresent) - .map(Optional<Timestamp>::get); + .filter(Optional<Instant>::isPresent) + .map(inst -> Timestamp.from(inst.get())); Optional<Timestamp> groupLastTs = Streams.concat(
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java index 62d9c10..edc11b1 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/IndexTs.java
@@ -32,6 +32,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Optional; @@ -138,7 +139,8 @@ IndexName.CHANGE, !changeNotes.isPresent() ? LocalDateTime.now() - : changeNotes.get().getChange().getLastUpdatedOn().toLocalDateTime()); + : Timestamp.from(changeNotes.get().getChange().getLastUpdatedOn()) + .toLocalDateTime()); } catch (Exception e) { log.atWarning().withCause(e).log("Unable to update the latest TS for change %d", id); }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java index 1a2ebf7..67f5c0b 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerImpl.java
@@ -177,7 +177,7 @@ private long getTsFromChangeAndDraftComments(ChangeNotes notes) { Change change = notes.getChange(); - Timestamp changeTs = change.getLastUpdatedOn(); + Timestamp changeTs = Timestamp.from(change.getLastUpdatedOn()); for (HumanComment comment : commentsUtil.draftByChange(changeNotes.get())) { Timestamp commentTs = comment.writtenOn; changeTs = commentTs.after(changeTs) ? commentTs : changeTs;
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnableTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnableTest.java index 65001de..28dc451 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnableTest.java +++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnableTest.java
@@ -151,6 +151,6 @@ Change.id(123), Account.id(1000000), BranchNameKey.create("projectname", "main"), - changeTs); + changeTs.toInstant()); } }
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnableTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnableTest.java index afd6df4..0513d42 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnableTest.java +++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/GroupReindexRunnableTest.java
@@ -110,7 +110,7 @@ Collections.singletonList( AccountGroupMemberAudit.builder() .addedBy(Account.Id.tryParse("1").get()) - .addedOn(afterCurrentTime) + .addedOn(afterCurrentTime.toInstant()) .memberId(Account.Id.tryParse("1").get()) .groupId(AccountGroup.Id.parse("1")) .build())); @@ -130,10 +130,10 @@ AccountGroupMemberAudit accountGroupMemberAudit = AccountGroupMemberAudit.builder() .addedBy(Account.Id.tryParse("1").get()) - .addedOn(beforeCurrentTime) + .addedOn(beforeCurrentTime.toInstant()) .memberId(Account.Id.tryParse("1").get()) .groupId(AccountGroup.Id.parse("2")) - .removed(Account.Id.tryParse("2").get(), afterCurrentTime) + .removed(Account.Id.tryParse("2").get(), afterCurrentTime.toInstant()) .build(); when(groups.getGroup(uuid)).thenReturn(getInternalGroup(currentTime)); when(groups.getMembersAudit(any(), any())) @@ -158,7 +158,7 @@ .groupId(AccountGroup.Id.parse("1")) .includeUuid(UUID.parse("123")) .addedBy(Account.Id.tryParse("1").get()) - .addedOn(afterCurrentTime) + .addedOn(afterCurrentTime.toInstant()) .build())); Optional<Timestamp> groupLastTs = groupReindexRunnable.indexIfNeeded(groupReference, currentTime); @@ -178,8 +178,8 @@ .groupId(AccountGroup.Id.parse("1")) .includeUuid(UUID.parse("123")) .addedBy(Account.Id.tryParse("1").get()) - .addedOn(beforeCurrentTime) - .removed(Account.Id.tryParse("2").get(), afterCurrentTime) + .addedOn(beforeCurrentTime.toInstant()) + .removed(Account.Id.tryParse("2").get(), afterCurrentTime.toInstant()) .build(); when(groups.getGroup(uuid)).thenReturn(getInternalGroup(beforeCurrentTime)); @@ -201,7 +201,7 @@ .setOwnerGroupUUID(uuid) .setVisibleToAll(true) .setGroupUUID(UUID.parse("12")) - .setCreatedOn(timestamp) + .setCreatedOn(timestamp.toInstant()) .setMembers(ImmutableSet.<Id>builder().build()) .setSubgroups(ImmutableSet.<UUID>builder().build()) .build());
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java index 7c1e6df..ba0c8c5 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java +++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedIndexChangeHandlerTest.java
@@ -30,8 +30,8 @@ import com.google.gerrit.server.index.change.ChangeIndexer; import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.util.OneOffRequestContext; -import com.google.gerrit.server.util.time.TimeUtil; import java.io.IOException; +import java.time.Instant; import java.util.Optional; import java.util.concurrent.ScheduledExecutorService; import org.junit.Before; @@ -67,7 +67,7 @@ @Before public void setUp() throws Exception { id = Change.id(TEST_CHANGE_NUMBER); - Change change = new Change(null, id, null, null, TimeUtil.nowTs()); + Change change = new Change(null, id, null, null, Instant.now()); when(changeNotes.getChange()).thenReturn(change); when(configMock.index()).thenReturn(indexMock); when(changeCheckerFactoryMock.create(any())).thenReturn(changeCheckerAbsentMock);