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);