Bump to 2.9-SNAPSHOT API

Update the API version and adapt to use ChangesCollection.

Also update Java source version to 1.7 to align with 2.9

Change-Id: I1cff01d51d49ffc9559d7f29872f64d5d5c4ceff
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 470942d..0c78c22 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,16 +1,15 @@
-#Thu Jul 28 11:02:36 PDT 2011
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.7
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
diff --git a/pom.xml b/pom.xml
index edb405d..adfebec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
   <groupId>com.googlesource.gerrit.plugins.reviewersbyblame</groupId>
   <artifactId>reviewersbyblame</artifactId>
   <packaging>jar</packaging>
-  <version>2.8.1</version>
+  <version>2.9-SNAPSHOT</version>
   <name>reviewersbyblame</name>
 
   <properties>
@@ -59,8 +59,8 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>2.3.2</version>
         <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
+          <source>1.7</source>
+          <target>1.7</target>
           <encoding>UTF-8</encoding>
         </configuration>
       </plugin>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
index c70ae98..8bf16f8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
@@ -33,20 +33,20 @@
 import com.google.common.collect.Maps;
 import com.google.common.collect.Ordering;
 import com.google.common.collect.Sets;
+import com.google.gerrit.extensions.api.changes.AddReviewerInput;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.client.Patch.ChangeType;
 import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.account.AccountByEmailCache;
 import com.google.gerrit.server.account.AccountCache;
 import com.google.gerrit.server.change.ChangeResource;
+import com.google.gerrit.server.change.ChangesCollection;
 import com.google.gerrit.server.change.PostReviewers;
 import com.google.gerrit.server.patch.PatchList;
 import com.google.gerrit.server.patch.PatchListCache;
 import com.google.gerrit.server.patch.PatchListEntry;
 import com.google.gerrit.server.patch.PatchListNotAvailableException;
-import com.google.gerrit.server.project.ChangeControl;
 import com.google.gerrit.server.project.ProjectCache;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
@@ -68,8 +68,7 @@
   private final AccountCache accountCache;
   private final PatchListCache patchListCache;
   private final Provider<PostReviewers> reviewersProvider;
-  private final IdentifiedUser.GenericFactory identifiedUserFactory;
-  private final ChangeControl.GenericFactory changeControlFactory;
+  private final ChangesCollection changes;
 
   public interface Factory {
     ReviewersByBlame create(RevCommit commit, Change change, PatchSet ps,
@@ -79,18 +78,16 @@
   @Inject
   public ReviewersByBlame(final AccountByEmailCache byEmailCache,
       final AccountCache accountCache,
-      final ChangeControl.GenericFactory changeControlFactory,
+      final ChangesCollection changes,
       final Provider<PostReviewers> reviewersProvider,
-      final IdentifiedUser.GenericFactory identifiedUserFactory,
       final PatchListCache patchListCache, final ProjectCache projectCache,
       @Assisted final RevCommit commit, @Assisted final Change change,
       @Assisted final PatchSet ps, @Assisted final int maxReviewers,
       @Assisted final Repository repo) {
     this.byEmailCache = byEmailCache;
     this.accountCache = accountCache;
-    this.changeControlFactory = changeControlFactory;
+    this.changes = changes;
     this.reviewersProvider = reviewersProvider;
-    this.identifiedUserFactory = identifiedUserFactory;
     this.patchListCache = patchListCache;
     this.commit = commit;
     this.change = change;
@@ -134,13 +131,10 @@
    */
   private void addReviewers(Set<Account.Id> topReviewers, Change change) {
     try {
-      ChangeControl changeControl =
-          changeControlFactory.controlFor(change,
-              identifiedUserFactory.create(change.getOwner()));
-      ChangeResource changeResource = new ChangeResource(changeControl);
+      ChangeResource changeResource = changes.parse(change.getId());
       PostReviewers post = reviewersProvider.get();
       for (Account.Id accountId : topReviewers) {
-        PostReviewers.Input input = new PostReviewers.Input();
+        AddReviewerInput input = new AddReviewerInput();
         input.reviewer = accountId.toString();
         post.apply(changeResource, input);
       }