Merge branch 'stable-3.0' into stable-3.1 * stable-3.0: Add Gatling e2e-test for rename-project Bump Bazel version to 3.5.0 Change-Id: Ibd09263648a8b2c94aee61fec181448774ca687b
diff --git a/WORKSPACE b/WORKSPACE index 9e27745..0abed59 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -3,7 +3,7 @@ load("//:bazlets.bzl", "load_bazlets") load_bazlets( - commit = "6d2b8f41ed34dad925b767399d1e4be378abb029", + commit = "3f9dadc615dc4053369a42d9ada37dafd8d4763c", #local_path = "/home/<user>/projects/bazlets", )
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProject.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProject.java index 170e0d6..8904144 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProject.java
@@ -14,8 +14,8 @@ package com.googlesource.gerrit.plugins.renameproject; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.client.ProjectState; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.git.meta.MetaDataUpdate; import com.google.gerrit.server.project.ProjectCache; import com.google.gerrit.server.project.ProjectConfig;
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 80b1306..fce6fa8 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameCommand.java
@@ -17,8 +17,8 @@ import static com.googlesource.gerrit.plugins.renameproject.RenameProject.CANCELLATION_MSG; import static com.googlesource.gerrit.plugins.renameproject.RenameProject.WARNING_LIMIT; +import com.google.gerrit.entities.Change; import com.google.gerrit.extensions.restapi.RestApiException; -import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.project.ProjectResource; import com.google.gerrit.server.project.ProjectState;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameLog.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameLog.java index 6449cba..e37edb1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameLog.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameLog.java
@@ -16,9 +16,9 @@ import com.google.common.collect.ListMultimap; import com.google.common.collect.MultimapBuilder; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.systemstatus.ServerInformation; import com.google.gerrit.json.OutputFormat; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.AuditEvent; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.audit.AuditService;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameProject.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameProject.java index c7937b6..3104491 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RenameProject.java
@@ -20,6 +20,9 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Strings; import com.google.common.cache.Cache; +import com.google.gerrit.entities.Change; +import com.google.gerrit.entities.Change.Id; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.extensions.api.access.PluginPermission; import com.google.gerrit.extensions.restapi.AuthException; @@ -27,9 +30,6 @@ import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestModifyView; -import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.Change.Id; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.extensions.events.PluginEvent; @@ -61,7 +61,7 @@ public class RenameProject implements RestModifyView<ProjectResource, Input> { @Override - public Object apply(ProjectResource resource, Input input) + public Response<?> apply(ProjectResource resource, Input input) throws IOException, AuthException, BadRequestException, ResourceConflictException, InterruptedException, ConfigInvalidException, RenameRevertException { assertCanRename(resource, input, Optional.empty()); @@ -178,7 +178,7 @@ assertNewNameNotNull(input); assertRenamePermission(rsrc); - renamePreconditions.assertCanRename(rsrc, new Project.NameKey(input.name)); + renamePreconditions.assertCanRename(rsrc, Project.nameKey(input.name)); log.debug("Rename preconditions check successful."); } catch (CannotRenameProjectException e) { throw new ResourceConflictException(e.getMessage()); @@ -189,7 +189,7 @@ List<Change.Id> changeIds, ProjectResource rsrc, Input input, Optional<ProgressMonitor> pm) throws InterruptedException, ConfigInvalidException, IOException, RenameRevertException { Project.NameKey oldProjectKey = rsrc.getNameKey(); - Project.NameKey newProjectKey = new Project.NameKey(input.name); + Project.NameKey newProjectKey = Project.nameKey(input.name); Exception ex = null; stepsPerformed.clear(); try {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProject.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProject.java index 0671c71..484492a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProject.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProject.java
@@ -14,9 +14,9 @@ package com.googlesource.gerrit.plugins.renameproject; -import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.Change.Id; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Change; +import com.google.gerrit.entities.Change.Id; +import com.google.gerrit.entities.Project; import com.google.inject.Inject; import com.googlesource.gerrit.plugins.renameproject.RenameProject.Step; import com.googlesource.gerrit.plugins.renameproject.cache.CacheRenameHandler;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/cache/CacheRenameHandler.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/cache/CacheRenameHandler.java index 4526489..5b16875 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/cache/CacheRenameHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/cache/CacheRenameHandler.java
@@ -14,7 +14,7 @@ package com.googlesource.gerrit.plugins.renameproject.cache; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.project.ProjectCache; import com.google.inject.Inject; import com.google.inject.Singleton;
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 3e30f6e..204c564 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
@@ -14,15 +14,14 @@ package com.googlesource.gerrit.plugins.renameproject.conditions; +import com.google.gerrit.entities.BranchNameKey; +import com.google.gerrit.entities.Project; +import com.google.gerrit.entities.RefNames; import com.google.gerrit.extensions.common.ProjectInfo; -import com.google.gerrit.extensions.restapi.RestApiException; -import com.google.gerrit.reviewdb.client.Branch; -import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.client.RefNames; +import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.server.config.AllProjectsName; import com.google.gerrit.server.config.AllUsersName; import com.google.gerrit.server.git.GitRepositoryManager; -import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.project.ProjectResource; import com.google.gerrit.server.restapi.project.ListChildProjects; import com.google.gerrit.server.submit.MergeOpRepoManager; @@ -91,17 +90,18 @@ private void assertHasNoChildProjects(ProjectResource rsrc) throws CannotRenameProjectException { try { - List<ProjectInfo> children = listChildProjectsProvider.get().apply(rsrc); - if (!children.isEmpty()) { + Response<List<ProjectInfo>> children = listChildProjectsProvider.get().apply(rsrc); + if (!children.value().isEmpty()) { String childrenString = String.join( - ", ", children.stream().map(info -> info.name).collect(Collectors.toList())); + ", ", + children.value().stream().map(info -> info.name).collect(Collectors.toList())); String message = String.format("Cannot rename project because it has children: %s", childrenString); log.error(message); throw new CannotRenameProjectException(message); } - } catch (PermissionBackendException | RestApiException e) { + } catch (Exception e) { throw new CannotRenameProjectException(e); } } @@ -109,12 +109,12 @@ private void assertIsNotSubscribed(Project.NameKey key) throws CannotRenameProjectException { try (Repository repo = repoManager.openRepository(key); MergeOpRepoManager orm = ormProvider.get()) { - Set<Branch.NameKey> branches = new HashSet<>(); - for (Ref ref : repo.getRefDatabase().getRefs(RefNames.REFS_HEADS).values()) { - branches.add(new Branch.NameKey(key, ref.getName())); + Set<BranchNameKey> branches = new HashSet<>(); + for (Ref ref : repo.getRefDatabase().getRefsByPrefix(RefNames.REFS_HEADS)) { + branches.add(BranchNameKey.create(key, ref.getName())); } SubmoduleOp sub = subOpFactory.create(branches, orm); - for (Branch.NameKey b : branches) { + for (BranchNameKey b : branches) { if (!sub.superProjectSubscriptionsForSubmoduleBranch(b).isEmpty()) { String message = "Cannot rename a project subscribed to by the other projects"; log.error(message);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/DatabaseRenameHandler.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/DatabaseRenameHandler.java index 2ed4ad5..7019327 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/DatabaseRenameHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/DatabaseRenameHandler.java
@@ -16,9 +16,9 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Account; +import com.google.gerrit.entities.Change; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.ServerInitiated; import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.account.AccountsUpdate; @@ -122,12 +122,11 @@ private void updateWatchEntries(Project.NameKey newProjectKey) throws IOException, ConfigInvalidException { for (AccountState a : accountQueryProvider.get().byWatchedProject(oldProjectKey)) { - Account.Id accountId = a.getAccount().getId(); - ImmutableMap<ProjectWatchKey, ImmutableSet<NotifyType>> projectWatches = - a.getProjectWatches(); + Account.Id accountId = a.account().id(); + ImmutableMap<ProjectWatchKey, ImmutableSet<NotifyType>> projectWatches = a.projectWatches(); Map<ProjectWatchKey, Set<NotifyType>> newProjectWatches = new HashMap<>(); List<ProjectWatchKey> oldProjectWatches = new ArrayList<>(); - for (ProjectWatchKey watchKey : a.getProjectWatches().keySet()) { + for (ProjectWatchKey watchKey : a.projectWatches().keySet()) { if (oldProjectKey.equals(watchKey.project())) { newProjectWatches.put( ProjectWatchKey.create(newProjectKey, watchKey.filter()), @@ -151,14 +150,14 @@ } catch (ConfigInvalidException e) { log.error( "Updating watch entry for user {} in project {} failed. Watch config found invalid.", - a.getUserName(), + a.userName(), newProjectKey.get(), e); throw e; } catch (IOException e) { log.error( "Updating watch entry for user {} in project {} failed.", - a.getUserName(), + a.userName(), newProjectKey.get(), e); throw e;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/IndexUpdateHandler.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/IndexUpdateHandler.java index f75b784..81fa156 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/IndexUpdateHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/database/IndexUpdateHandler.java
@@ -15,8 +15,8 @@ package com.googlesource.gerrit.plugins.renameproject.database; import com.google.common.util.concurrent.ThreadFactoryBuilder; -import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Change; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.index.change.ChangeIndexer; import com.google.inject.Inject; import com.google.inject.Singleton;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/renameproject/fs/FilesystemRenameHandler.java b/src/main/java/com/googlesource/gerrit/plugins/renameproject/fs/FilesystemRenameHandler.java index 1572d53..a1ea2b1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/fs/FilesystemRenameHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/fs/FilesystemRenameHandler.java
@@ -14,7 +14,7 @@ package com.googlesource.gerrit.plugins.renameproject.fs; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.inject.Inject; import com.google.inject.Singleton;
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 7df0e60..9fe5a0c 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/RenameIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/RenameIT.java
@@ -24,10 +24,10 @@ import com.google.gerrit.acceptance.UseLocalDisk; import com.google.gerrit.acceptance.UseSsh; import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations; +import com.google.gerrit.entities.Change.Id; +import com.google.gerrit.entities.Project; +import com.google.gerrit.entities.Project.NameKey; import com.google.gerrit.extensions.client.ProjectWatchInfo; -import com.google.gerrit.reviewdb.client.Change.Id; -import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.client.Project.NameKey; import com.google.gerrit.server.project.ProjectState; import com.google.inject.Inject; import com.googlesource.gerrit.plugins.renameproject.RenameProject.Input; @@ -60,10 +60,10 @@ adminSshSession.exec(PLUGIN_NAME + " " + project.get() + " " + NEW_PROJECT_NAME); adminSshSession.assertSuccess(); - ProjectState projectState = projectCache.get(new Project.NameKey(NEW_PROJECT_NAME)); + ProjectState projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME)); assertThat(projectState).isNotNull(); assertThat(queryProvider.get().byProject(project)).isEmpty(); - assertThat(queryProvider.get().byProject(new Project.NameKey(NEW_PROJECT_NAME))).isNotEmpty(); + assertThat(queryProvider.get().byProject(Project.nameKey(NEW_PROJECT_NAME))).isNotEmpty(); } @Test @@ -74,7 +74,7 @@ adminSshSession.exec(PLUGIN_NAME + " " + project.get() + " " + newProjectName); adminSshSession.assertFailure(); - ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName)); + ProjectState projectState = projectCache.get(Project.nameKey(newProjectName)); assertThat(projectState).isNull(); } @@ -85,7 +85,7 @@ adminSshSession.exec(PLUGIN_NAME + " " + allProjects.get() + " " + NEW_PROJECT_NAME); adminSshSession.assertFailure(); - ProjectState projectState = projectCache.get(new Project.NameKey(NEW_PROJECT_NAME)); + ProjectState projectState = projectCache.get(Project.nameKey(NEW_PROJECT_NAME)); assertThat(projectState).isNull(); }
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 f77d80e..b6e6057 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProjectTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/RevertRenameProjectTest.java
@@ -21,10 +21,10 @@ import com.google.gerrit.acceptance.PushOneCommit.Result; import com.google.gerrit.acceptance.TestPlugin; import com.google.gerrit.acceptance.UseLocalDisk; +import com.google.gerrit.entities.Change; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.api.changes.ChangeApi; import com.google.gerrit.extensions.common.ChangeInfo; -import com.google.gerrit.reviewdb.client.Change; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.project.ProjectResource; import com.google.gerrit.server.project.ProjectState; import com.googlesource.gerrit.plugins.renameproject.RenameProject.Step; @@ -55,7 +55,7 @@ revertRenameProject = plugin.getSysInjector().getInstance(RevertRenameProject.class); oldProjectKey = project; - newProjectKey = new Project.NameKey(NEW_PROJECT_NAME); + newProjectKey = Project.nameKey(NEW_PROJECT_NAME); pm = Optional.of(Mockito.mock(ProgressMonitor.class));
diff --git a/src/test/java/com/googlesource/gerrit/plugins/renameproject/SubmoduleUtil.java b/src/test/java/com/googlesource/gerrit/plugins/renameproject/SubmoduleUtil.java index 68515c4..be4dc37 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/SubmoduleUtil.java +++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/SubmoduleUtil.java
@@ -17,7 +17,7 @@ import static com.google.common.truth.Truth.assertThat; import com.google.gerrit.common.data.SubscribeSection; -import com.google.gerrit.reviewdb.client.Project.NameKey; +import com.google.gerrit.entities.Project.NameKey; import com.google.gerrit.server.git.meta.MetaDataUpdate; import com.google.gerrit.server.git.meta.MetaDataUpdate.Server; import com.google.gerrit.server.project.ProjectCache;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditionsTest.java b/src/test/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditionsTest.java index e42e550..adc0791 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditionsTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/conditions/RenamePreconditionsTest.java
@@ -17,11 +17,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.common.ProjectInfo; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.config.AllProjectsName; +import com.google.gerrit.server.config.AllProjectsNameProvider; import com.google.gerrit.server.config.AllUsersName; +import com.google.gerrit.server.config.AllUsersNameProvider; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.project.ProjectResource; import com.google.gerrit.server.project.ProjectState; @@ -43,8 +46,6 @@ @RunWith(MockitoJUnitRunner.class) public class RenamePreconditionsTest { - @Mock private AllProjectsName allProjects; - @Mock private AllUsersName allUsersName; @Mock private Provider<ListChildProjects> listChildProjectsProvider; @Mock private GitRepositoryManager repoManager; @Mock private SubmoduleOp.Factory subOpFactory; @@ -56,12 +57,16 @@ @Mock private Repository repo; @Mock private ListChildProjects listChildProjects; + private AllProjectsName allProjects; + private AllUsersName allUsersName; private ProjectResource oldRsrc; - private List<ProjectInfo> children = new ArrayList<>(); - private Project.NameKey newProjectKey = new Project.NameKey("newProject"); + private Response<List<ProjectInfo>> children = Response.ok(new ArrayList<>()); + private Project.NameKey newProjectKey = Project.nameKey("newProject"); @Before public void setUp() throws Exception { + allProjects = new AllProjectsName(AllProjectsNameProvider.DEFAULT); + allUsersName = new AllUsersName(AllUsersNameProvider.DEFAULT); oldRsrc = new ProjectResource(control, user); when(repoManager.openRepository(newProjectKey)).thenReturn(repo); when(repo.getObjectDatabase()).thenReturn(objDb); @@ -102,13 +107,13 @@ @Test(expected = CannotRenameProjectException.class) public void testAssertCannotRenameHasChildren() throws Exception { - Project oldProject = new Project(new Project.NameKey("oldProject")); + Project oldProject = new Project(Project.nameKey("oldProject")); when(oldRsrc.getNameKey()).thenReturn(oldProject.getNameKey()); when(objDb.exists()).thenReturn(false); when(listChildProjectsProvider.get()).thenReturn(listChildProjects); ProjectInfo projInfo = mock(ProjectInfo.class); - children.add(projInfo); + children.value().add(projInfo); when(listChildProjects.apply(oldRsrc)).thenReturn(children); preconditions.assertCanRename(oldRsrc, newProjectKey);