Merge branch 'stable-3.1' into stable-3.2
* stable-3.1:
Add Gatling e2e-test for rename-project
Add REST endpoint to rename operation
Adapt checks to the new rename replication feature
Introduce rename replication feature
Upgrade bazlets to latest stable-3.1 to build with 3.1.12 API
RenamePreconditions: check if project state is not null
Upgrade bazlets to latest stable-3.0 to build with 3.0.15 API
Upgrade bazlets to latest stable-2.16 to build with 2.16.26 API
Upgrade bazlets to latest stable-2.16 to build with 2.16.23 API
Conflict resolution for WORKSPACE is to keep the original bazlets
version.
A new testRenameReplicationViaSshAdminUser test needs to be adapted to
stable-3.2 because ProjectCahce.get() method return Optional of
ProjectState instead. GerritConfig is moved from acceptance package
to acceptance.config.
Change-Id: If8b67dd7bca810db1e4d31e5a8d16c5efb7d1f1e
diff --git a/WORKSPACE b/WORKSPACE
index b4840fb..4d7507b 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "87fd5f0d0a89d01df13deaf2d21a4bdb3bc03cfd",
+ commit = "8dc0767541f16b35d2136eccebffd9ebe2b81133",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameCommand.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameCommand.java
index 9773f96..cac0b30 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameCommand.java
@@ -34,6 +34,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
+import java.util.NoSuchElementException;
import java.util.Optional;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
@@ -88,7 +89,7 @@
}
}
}
- } catch (RestApiException | IOException e) {
+ } catch (NoSuchElementException | RestApiException | IOException e) {
throw die(e);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditions.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditions.java
index 204c564..cab2957 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditions.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditions.java
@@ -25,7 +25,7 @@
import com.google.gerrit.server.project.ProjectResource;
import com.google.gerrit.server.restapi.project.ListChildProjects;
import com.google.gerrit.server.submit.MergeOpRepoManager;
-import com.google.gerrit.server.submit.SubmoduleException;
+import com.google.gerrit.server.submit.SubmoduleConflictException;
import com.google.gerrit.server.submit.SubmoduleOp;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -121,7 +121,7 @@
throw new CannotRenameProjectException(message);
}
}
- } catch (IOException | SubmoduleException e) {
+ } catch (IOException | SubmoduleConflictException e) {
throw new CannotRenameProjectException(e);
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProjectTest.java b/src/test/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProjectTest.java
index aa3776f..02c47c5 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProjectTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProjectTest.java
@@ -34,10 +34,13 @@
@Test
public void testLockUnlockSucceeds() throws IOException, ConfigInvalidException {
- assertThat(projectCache.get(project).getProject().getState()).isEqualTo(ProjectState.ACTIVE);
+ assertThat(projectCache.get(project).get().getProject().getState())
+ .isEqualTo(ProjectState.ACTIVE);
lockUnlockInstance.lock(project);
- assertThat(projectCache.get(project).getProject().getState()).isEqualTo(ProjectState.READ_ONLY);
+ assertThat(projectCache.get(project).get().getProject().getState())
+ .isEqualTo(ProjectState.READ_ONLY);
lockUnlockInstance.unlock(project);
- assertThat(projectCache.get(project).getProject().getState()).isEqualTo(ProjectState.ACTIVE);
+ assertThat(projectCache.get(project).get().getProject().getState())
+ .isEqualTo(ProjectState.ACTIVE);
}
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/renameproject/RenameIT.java b/src/test/java/com/googlesource/gerrit/plugins/renameproject/RenameIT.java
index a69ddc9..7b41fb2 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/RenameIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/RenameIT.java
@@ -22,13 +22,13 @@
import static org.mockito.Mockito.when;
import com.google.common.cache.Cache;
-import com.google.gerrit.acceptance.GerritConfig;
import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
import com.google.gerrit.acceptance.PushOneCommit.Result;
import com.google.gerrit.acceptance.RestResponse;
import com.google.gerrit.acceptance.TestPlugin;
import com.google.gerrit.acceptance.UseLocalDisk;
import com.google.gerrit.acceptance.UseSsh;
+import com.google.gerrit.acceptance.config.GerritConfig;
import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
import com.google.gerrit.entities.Change.Id;
import com.google.gerrit.entities.Project;
@@ -39,6 +39,7 @@
import com.googlesource.gerrit.plugins.renameproject.RenameProject.Input;
import java.io.OutputStream;
import java.util.List;
+import java.util.Optional;
import javax.inject.Named;
import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.transport.URIish;
@@ -71,8 +72,8 @@
adminSshSession.exec(PLUGIN_NAME + " " + project.get() + " " + NEW_PROJECT_NAME);
adminSshSession.assertSuccess();
- ProjectState projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
- assertThat(projectState).isNotNull();
+ Optional<ProjectState> projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
+ assertThat(projectState.isPresent()).isTrue();
assertThat(queryProvider.get().byProject(project)).isEmpty();
assertThat(queryProvider.get().byProject(Project.nameKey(NEW_PROJECT_NAME))).isNotEmpty();
}
@@ -96,8 +97,8 @@
PLUGIN_NAME + " " + project.get() + " " + NEW_PROJECT_NAME + " " + REPLICATION_OPTION);
adminSshSession.assertSuccess();
- ProjectState projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
- assertThat(projectState).isNotNull();
+ Optional<ProjectState> projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
+ assertThat(projectState.isPresent()).isTrue();
}
@Test
@@ -108,8 +109,8 @@
adminSshSession.exec(PLUGIN_NAME + " " + project.get() + " " + newProjectName);
adminSshSession.assertFailure();
- ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
- assertThat(projectState).isNull();
+ Optional<ProjectState> projectState = projectCache.get(Project.nameKey(newProjectName));
+ assertThat(projectState.isPresent()).isFalse();
}
@Test
@@ -119,8 +120,8 @@
adminSshSession.exec(PLUGIN_NAME + " " + allProjects.get() + " " + NEW_PROJECT_NAME);
adminSshSession.assertFailure();
- ProjectState projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
- assertThat(projectState).isNull();
+ Optional<ProjectState> projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
+ assertThat(projectState.isPresent()).isFalse();
}
@Test
@@ -235,8 +236,8 @@
RestResponse r = renameProjectTo(NEW_PROJECT_NAME);
r.assertOK();
- ProjectState projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
- assertThat(projectState).isNotNull();
+ Optional<ProjectState> projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME));
+ assertThat(projectState.isPresent()).isTrue();
assertThat(queryProvider.get().byProject(project)).isEmpty();
assertThat(queryProvider.get().byProject(Project.nameKey(NEW_PROJECT_NAME))).isNotEmpty();
}
@@ -249,8 +250,8 @@
RestResponse r = renameProjectTo(newProjectName);
r.assertBadRequest();
- ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
- assertThat(projectState).isNull();
+ Optional<ProjectState> projectState = projectCache.get(Project.nameKey(newProjectName));
+ assertThat(projectState.isPresent()).isFalse();
}
private RestResponse renameProjectTo(String newName) throws Exception {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProjectTest.java b/src/test/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProjectTest.java
index b6e6057..f33829d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProjectTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProjectTest.java
@@ -126,22 +126,22 @@
}
private void assertReverted() throws Exception {
- ProjectState oldProjectState = projectCache.get(oldProjectKey);
- assertThat(oldProjectState).isNotNull();
+ Optional<ProjectState> oldProjectState = projectCache.get(oldProjectKey);
+ assertThat(oldProjectState.isPresent()).isTrue();
- ProjectState newProjectState = projectCache.get(newProjectKey);
- assertThat(newProjectState).isNull();
+ Optional<ProjectState> newProjectState = projectCache.get(newProjectKey);
+ assertThat(newProjectState.isPresent()).isFalse();
assertThat(queryProvider.get().byProject(oldProjectKey)).isNotEmpty();
assertThat(queryProvider.get().byProject(newProjectKey)).isEmpty();
}
private void assertRenamed(Result result) throws Exception {
- ProjectState oldProjectState = projectCache.get(oldProjectKey);
- assertThat(oldProjectState).isNull();
+ Optional<ProjectState> oldProjectState = projectCache.get(oldProjectKey);
+ assertThat(oldProjectState.isPresent()).isFalse();
- ProjectState newProjectState = projectCache.get(newProjectKey);
- assertThat(newProjectState).isNotNull();
+ Optional<ProjectState> newProjectState = projectCache.get(newProjectKey);
+ assertThat(newProjectState.isPresent()).isTrue();
if (renameProject.getStepsPerformed().contains(Step.DATABASE)) {
ChangeApi changeApi = gApi.changes().id(NEW_PROJECT_NAME, result.getChange().getId().get());