Adapt to removal of change etags in Gerrit core Etags have been removed in Gerrit core, in particular the ChangeResource#getEtag method (change Ia92fbad2a) and the ChangeETagComputation extension point (change Ib49748bfb) have been removed. Change-Id: If328225ee452d078be6b515dcc7e64ce095e65ad Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/java/com/google/gerrit/plugins/checks/ChecksETagComputation.java b/java/com/google/gerrit/plugins/checks/ChecksETagComputation.java deleted file mode 100644 index 3373cee..0000000 --- a/java/com/google/gerrit/plugins/checks/ChecksETagComputation.java +++ /dev/null
@@ -1,54 +0,0 @@ -// Copyright (C) 2019 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.plugins.checks; - -import com.google.gerrit.entities.Change; -import com.google.gerrit.entities.Project; -import com.google.gerrit.exceptions.StorageException; -import com.google.gerrit.server.change.ChangeETagComputation; -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.io.IOException; - -/** - * Ensures that the ETag of a change changes when there was any check update for the change. - * - * <p>This prevents callers using ETags from potentially seeing outdated submittability and combined - * check state information in {@link com.google.gerrit.extensions.common.ChangeInfo} when a check - * for the change was created or updated. - */ -@Singleton -public class ChecksETagComputation implements ChangeETagComputation { - private final Checks checks; - - @Inject - ChecksETagComputation(Checks checks) { - this.checks = checks; - } - - @Override - public String getETag(Project.NameKey projectName, Change.Id changeId) { - try { - return checks.getETag(projectName, changeId); - } catch (IOException e) { - // The change ETag will be invalidated if the checks can be accessed the next time. - throw new StorageException( - String.format( - "Failed to compute ETag for checks of change %s in project %s", - changeId, projectName), - e); - } - } -}
diff --git a/java/com/google/gerrit/plugins/checks/Module.java b/java/com/google/gerrit/plugins/checks/Module.java index 4787df6..9cfb9b0 100644 --- a/java/com/google/gerrit/plugins/checks/Module.java +++ b/java/com/google/gerrit/plugins/checks/Module.java
@@ -31,7 +31,6 @@ import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.ServerInitiated; import com.google.gerrit.server.UserInitiated; -import com.google.gerrit.server.change.ChangeETagComputation; import com.google.gerrit.server.change.ChangePluginDefinedInfoFactory; import com.google.gerrit.server.git.validators.CommitValidationListener; import com.google.gerrit.server.git.validators.MergeValidationListener; @@ -63,10 +62,6 @@ .to(CheckerRefOperationValidator.class) .in(SINGLETON); - DynamicSet.bind(binder(), ChangeETagComputation.class) - .to(ChecksETagComputation.class) - .in(SINGLETON); - DynamicSet.bind(binder(), ChangePluginDefinedInfoFactory.class) .to(ChangeCheckAttributeFactory.class); bind(DynamicOptions.DynamicBean.class)
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java index 704a1ca..67107ea 100644 --- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java +++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/CreateCheckIT.java
@@ -367,21 +367,6 @@ assertThat(response.getEntityContent()).isEqualTo("checks are not supported on a change edit"); } - @Test - public void creationOfCheckChangesETagOfChange() throws Exception { - CheckerUuid checkerUuid = checkerOperations.newChecker().repository(project).create(); - - String oldETag = parseChangeResource(patchSetId.changeId().toString()).getETag(); - - CheckInput input = new CheckInput(); - input.checkerUuid = checkerUuid.get(); - input.state = CheckState.RUNNING; - checksApiFactory.revision(patchSetId).create(input).get(); - - String newETag = parseChangeResource(patchSetId.changeId().toString()).getETag(); - assertThat(newETag).isNotEqualTo(oldETag); - } - // TODO(gerrit-team) More tests, especially for multiple checkers and PS and how commits behave private Check getCheck(Project.NameKey project, PatchSet.Id patchSetId, CheckerUuid checkerUuid)
diff --git a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java index 98d58ce..6258169 100644 --- a/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java +++ b/javatests/com/google/gerrit/plugins/checks/acceptance/api/UpdateCheckIT.java
@@ -418,30 +418,4 @@ assertThat(info.message).isEqualTo("some message"); assertThat(info.url).isEqualTo("https://www.example.com"); } - - @Test - public void updateOfCheckChangesETagOfChange() throws Exception { - String oldETag = parseChangeResource(patchSetId.changeId().toString()).getETag(); - - CheckInput input = new CheckInput(); - input.state = CheckState.FAILED; - checksApiFactory.revision(patchSetId).id(checkKey.checkerUuid()).update(input); - - String newETag = parseChangeResource(patchSetId.changeId().toString()).getETag(); - assertThat(newETag).isNotEqualTo(oldETag); - } - - @Test - public void noOpUpdateOfCheckDoesNotChangeETagOfChange() throws Exception { - CheckInput input = new CheckInput(); - input.state = CheckState.FAILED; - checksApiFactory.revision(patchSetId).id(checkKey.checkerUuid()).update(input); - - String oldETag = parseChangeResource(patchSetId.changeId().toString()).getETag(); - - checksApiFactory.revision(patchSetId).id(checkKey.checkerUuid()).update(input); - - String newETag = parseChangeResource(patchSetId.changeId().toString()).getETag(); - assertThat(newETag).isEqualTo(oldETag); - } }