Build for Gerrit 2.14.10

Give up with the multi-release support and adapt to the latest
Gerrit 2.14.10 APIs

Change-Id: If03cb6a69eb79d1af31d3f729d8f5f243920082a
diff --git a/build.sbt b/build.sbt
index 62635ef..e3bfe8e 100644
--- a/build.sbt
+++ b/build.sbt
@@ -6,7 +6,7 @@
 
 scalaVersion := "2.11.8"
 
-val gerritVersion = "2.15.1"
+val gerritVersion = "2.14.10"
 
 val scalatraV = "2.4.+"
 
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala
index 1bb9b0c..bd5f7f3 100644
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala
+++ b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritFacade.scala
@@ -21,7 +21,6 @@
 import com.google.gerrit.server.plugins.{ListPlugins, PluginsCollection}
 import com.google.gson.JsonElement
 import com.google.inject.{ImplementedBy, Inject}
-import com.googlesource.gerrit.plugins.support.latest.LatestCapabilityControl
 import com.googlesource.gerrit.plugins.support.legacy.LegacyCapabilityControl
 
 import scala.util.{Failure, Success, Try}
@@ -32,10 +31,7 @@
 
   implicit class PimpedCapabilityControl(val cc: CapabilityControl) extends AnyVal {
 
-    def canDo(operation: String)(implicit pluginName: PluginName) =
-      LatestCapabilityControl(cc).canPerform(operation)
-        .orElse(LegacyCapabilityControl(cc).canPerform(operation))
-        .get
+    def canDo(operation: String)(implicit pluginName: PluginName) = LegacyCapabilityControl(cc).canPerform(operation)
   }
 }
 
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala
index 60bc037..9bca5e2 100644
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala
+++ b/src/main/scala/com/googlesource/gerrit/plugins/support/GerritSupportServlet.scala
@@ -75,7 +75,7 @@
   private def requireAdministrateServerPermissions(block: => ActionResult) = {
     val currentUser = currentUserProvider.get
     currentUser match {
-      case user if user.isIdentifiedUser && user.getCapabilities.canDo(COLLECT_SERVER_DATA) => block
+      case user if user.isIdentifiedUser && user.getCapabilities.canDo(COLLECT_SERVER_DATA).getOrElse(false) => block
       case _ => Forbidden("NOT ALLOWED to collect server data")
     }
   }
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/latest/CollectServerDataPermission.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/latest/CollectServerDataPermission.scala
deleted file mode 100644
index 8d83978..0000000
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/latest/CollectServerDataPermission.scala
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2017 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.googlesource.gerrit.plugins.support.latest
-
-import com.google.gerrit.extensions.api.access.PluginPermission
-
-class CollectServerDataPermission(pluginName: String) extends
-  PluginPermission(pluginName, CollectServerDataCapability.COLLECT_SERVER_DATA)
-
diff --git a/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala b/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala
deleted file mode 100644
index b2430ca..0000000
--- a/src/main/scala/com/googlesource/gerrit/plugins/support/latest/LatestCapabilityControl.scala
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2017 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.googlesource.gerrit.plugins.support.latest
-
-import com.google.gerrit.server.account.CapabilityControl
-import com.googlesource.gerrit.plugins.support.GerritFacade.PluginName
-
-import scala.util.Try
-import com.googlesource.gerrit.plugins.support.TryAll
-
-class LatestCapabilityControl(val capabilityControl: CapabilityControl)(implicit pluginName: PluginName) {
-
-  import LatestCapabilityControl._
-
-  def canPerform(operation: String): Try[Boolean] = TryAll {
-    for (
-      permissionConstructor <- CollectServerDataPermissionConstructor;
-      checkMedhod <- checkPermissionMethod
-    ) yield {
-      val permission = permissionConstructor.newInstance(pluginName.value).asInstanceOf[Object]
-      val result: Object = checkMedhod.invoke(capabilityControl, permission)
-      result.asInstanceOf[Boolean]
-    }
-  }.flatten
-}
-
-object LatestCapabilityControl {
-  lazy val GlobalOrPluginPermissionClass = TryAll {
-    Class.forName("com.google.gerrit.extensions.api.access.GlobalOrPluginPermission")
-  }
-
-  lazy val CollectServerDataPermissionClass = TryAll {
-    Class.forName("com.googlesource.gerrit.plugins.support.latest.CollectServerDataPermission")
-  }
-
-  lazy val CollectServerDataPermissionConstructor = TryAll {
-    CollectServerDataPermissionClass.map(_.getConstructor(classOf[String]))
-  }.flatten
-
-  lazy val checkPermissionMethod = TryAll {
-    GlobalOrPluginPermissionClass.map(classOf[CapabilityControl].getMethod("doCanForDefaultPermissionBackend", _))
-  }.flatten
-
-  def apply(cc: CapabilityControl)(implicit pluginName: PluginName) = new LatestCapabilityControl(cc)
-}