Fix plugin build with latest master snapshot api

Switch to the snapshot api for that matter, until a new release
containing these recent api changes comes out.

- Adapt to the move of state setting from Project to ProjectConfig.
- Adapt to the changed SubmoduleOp api for subscriptions information.
- Adapt to the new SubscribeSection and Project Builders.

Change-Id: I3c467e2f1fc42c2c6d7a9c02f1244518931cda17
diff --git a/WORKSPACE b/WORKSPACE
index 33950a2..864a80f 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -12,7 +12,7 @@
     "gerrit_api",
 )
 
-gerrit_api()
+gerrit_api(version = "3.3.0-SNAPSHOT")
 
 load("//:external_plugin_deps.bzl", "external_plugin_deps")
 
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 8904144..91f4d9e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/renameproject/LockUnlockProject.java
@@ -44,11 +44,11 @@
     MetaDataUpdate md = metaDataUpdateFactory.create(key);
 
     ProjectConfig projectConfig = projectConfigFactory.read(md);
-    Project p = projectConfig.getProject();
-    p.setState(ProjectState.READ_ONLY);
+    projectConfig.updateProject(project -> project.setState(ProjectState.READ_ONLY));
 
     md.setMessage(String.format("Lock project while renaming the project %s\n", key.get()));
     projectConfig.commit(md);
+    Project p = projectConfig.getProject();
     projectCache.evict(p);
   }
 
@@ -56,11 +56,11 @@
     MetaDataUpdate md = metaDataUpdateFactory.create(key);
 
     ProjectConfig projectConfig = projectConfigFactory.read(md);
-    Project p = projectConfig.getProject();
-    p.setState(ProjectState.ACTIVE);
+    projectConfig.updateProject(project -> project.setState(ProjectState.ACTIVE));
 
     md.setMessage(String.format("Unlock project after renaming the project to %s\n", key.get()));
     projectConfig.commit(md);
+    Project p = projectConfig.getProject();
     projectCache.evict(p);
   }
 }
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 cab2957..b20f365 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
@@ -115,7 +115,7 @@
       }
       SubmoduleOp sub = subOpFactory.create(branches, orm);
       for (BranchNameKey b : branches) {
-        if (!sub.superProjectSubscriptionsForSubmoduleBranch(b).isEmpty()) {
+        if (sub.hasSuperproject(b)) {
           String message = "Cannot rename a project subscribed to by the other projects";
           log.error(message);
           throw new CannotRenameProjectException(message);
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 be4dc37..5d6b384 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/renameproject/SubmoduleUtil.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/renameproject/SubmoduleUtil.java
@@ -54,12 +54,12 @@
       throws Exception {
     try (MetaDataUpdate md = metaDataUpdateFactory.create(sub)) {
       md.setMessage("Added superproject subscription");
-      SubscribeSection s;
+      SubscribeSection.Builder s;
       ProjectConfig pc = projectConfigFactory.read(md);
       if (pc.getSubscribeSections().containsKey(superName)) {
-        s = pc.getSubscribeSections().get(superName);
+        s = pc.getSubscribeSections().get(superName).toBuilder();
       } else {
-        s = new SubscribeSection(superName);
+        s = SubscribeSection.builder(superName);
       }
       String refspec;
       if (superBranch == null) {
@@ -72,7 +72,7 @@
       } else {
         s.addMultiMatchRefSpec(refspec);
       }
-      pc.addSubscribeSection(s);
+      pc.addSubscribeSection(s.build());
       ObjectId oldId = pc.getRevision();
       ObjectId newId = pc.commit(md);
       assertThat(newId).isNotEqualTo(oldId);
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 adc0791..989292b 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
@@ -89,7 +89,7 @@
 
   @Test(expected = CannotRenameProjectException.class)
   public void testAssertCannotRenameAllProjects() throws Exception {
-    Project oldProject = new Project(allProjects);
+    Project oldProject = Project.builder(allProjects).build();
     when(oldRsrc.getNameKey()).thenReturn(oldProject.getNameKey());
     when(objDb.exists()).thenReturn(false);
 
@@ -98,7 +98,7 @@
 
   @Test(expected = CannotRenameProjectException.class)
   public void testAssertCannotRenameAllUsers() throws Exception {
-    Project oldProject = new Project(allUsersName);
+    Project oldProject = Project.builder(allUsersName).build();
     when(oldRsrc.getNameKey()).thenReturn(oldProject.getNameKey());
     when(objDb.exists()).thenReturn(false);
 
@@ -107,7 +107,7 @@
 
   @Test(expected = CannotRenameProjectException.class)
   public void testAssertCannotRenameHasChildren() throws Exception {
-    Project oldProject = new Project(Project.nameKey("oldProject"));
+    Project oldProject = Project.builder(Project.nameKey("oldProject")).build();
     when(oldRsrc.getNameKey()).thenReturn(oldProject.getNameKey());
     when(objDb.exists()).thenReturn(false);