This is an automated email from the ASF dual-hosted git repository.

csantanapr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new b860a2e  Switch to Scala 2.12.7 (#4062)
b860a2e is described below

commit b860a2e233d1e76792d3e4b2eb5c16e0d64794a0
Author: Chetan Mehrotra <chet...@apache.org>
AuthorDate: Wed Nov 7 05:17:39 2018 +0530

    Switch to Scala 2.12.7 (#4062)
---
 .travis.yml                                        |  2 +-
 common/scala/build.gradle                          | 28 +++++++++++-----------
 .../src/main/scala/whisk/common/Logging.scala      |  1 +
 .../main/scala/whisk/core/connector/Message.scala  |  8 +++----
 .../whisk/core/database/CouchDbRestStore.scala     |  4 ++--
 .../scala/whisk/core/database/StoreUtils.scala     |  4 ++--
 .../database/cosmosdb/CosmosDBArtifactStore.scala  |  6 ++---
 .../core/database/memory/MemoryArtifactStore.scala | 25 +++++++------------
 .../whisk/core/database/s3/S3AttachmentStore.scala | 20 ++++++----------
 .../src/main/scala/whisk/core/entity/Limits.scala  |  2 +-
 .../whisk/core/mesos/MesosContainerFactory.scala   |  2 +-
 core/controller/build.gradle                       |  6 ++---
 .../controller/BasicAuthenticationDirective.scala  |  2 +-
 settings.gradle                                    |  6 ++---
 tests/build.gradle                                 |  8 +++----
 .../scala/actionContainers/ActionContainer.scala   |  1 -
 tests/src/test/scala/common/RunCliCmd.scala        |  4 ++--
 .../whisk/core/connector/test/TestConnector.scala  |  6 ++---
 .../docker/test/ProcessRunnerTests.scala           |  1 -
 .../kubernetes/test/KubernetesClientTests.scala    |  6 ++---
 .../mesos/test/MesosContainerFactoryTest.scala     |  6 ++---
 .../core/database/test/CacheConcurrencyTests.scala |  2 +-
 .../scala/whisk/core/entity/test/SchemaTests.scala |  1 -
 tools/admin/build.gradle                           |  2 +-
 24 files changed, 69 insertions(+), 84 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 5f06f6c..1a0b8ab 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,7 +21,7 @@ group: deprecated-2017Q3
 
 language: scala
 scala:
-   - 2.11.8
+   - 2.12.7
 
 services:
   - docker
diff --git a/common/scala/build.gradle b/common/scala/build.gradle
index c6eb005..aa62429 100644
--- a/common/scala/build.gradle
+++ b/common/scala/build.gradle
@@ -32,18 +32,18 @@ repositories {
 dependencies {
     compile "org.scala-lang:scala-library:${gradle.scala.version}"
 
-    compile 'com.github.pureconfig:pureconfig_2.11:0.9.0'
-    compile 'io.spray:spray-json_2.11:1.3.4'
-    compile 'com.lihaoyi:fastparse_2.11:1.0.0'
+    compile 'com.github.pureconfig:pureconfig_2.12:0.9.0'
+    compile 'io.spray:spray-json_2.12:1.3.4'
+    compile 'com.lihaoyi:fastparse_2.12:1.0.0'
 
-    compile 'com.typesafe.akka:akka-actor_2.11:2.5.12'
-    compile 'com.typesafe.akka:akka-stream_2.11:2.5.12'
-    compile 'com.typesafe.akka:akka-slf4j_2.11:2.5.12'
+    compile 'com.typesafe.akka:akka-actor_2.12:2.5.12'
+    compile 'com.typesafe.akka:akka-stream_2.12:2.5.12'
+    compile 'com.typesafe.akka:akka-slf4j_2.12:2.5.12'
 
-    compile 'com.typesafe.akka:akka-http-core_2.11:10.1.1'
-    compile 'com.typesafe.akka:akka-http-spray-json_2.11:10.1.1'
+    compile 'com.typesafe.akka:akka-http-core_2.12:10.1.1'
+    compile 'com.typesafe.akka:akka-http-spray-json_2.12:10.1.1'
 
-    compile 'com.lightbend.akka:akka-stream-alpakka-file_2.11:0.15'
+    compile 'com.lightbend.akka:akka-stream-alpakka-file_2.12:0.15'
 
     compile 'ch.qos.logback:logback-classic:1.2.3'
     compile 'org.slf4j:jcl-over-slf4j:1.7.25'
@@ -61,10 +61,10 @@ dependencies {
     compile 'com.github.ben-manes.caffeine:caffeine:2.6.2'
     compile 'com.google.code.findbugs:jsr305:3.0.2'
     compile 'io.fabric8:kubernetes-client:4.0.3'
-    compile 'io.kamon:kamon-core_2.11:0.6.7'
-    compile 'io.kamon:kamon-statsd_2.11:0.6.7'
+    compile 'io.kamon:kamon-core_2.12:0.6.7'
+    compile 'io.kamon:kamon-statsd_2.12:0.6.7'
     //for mesos
-    compile 'com.adobe.api.platform.runtime:mesos-actor:0.0.8'
+    compile 'com.adobe.api.platform.runtime:mesos-actor:0.0.8_2.12'
 
     //tracing support
     compile 'io.opentracing:opentracing-api:0.31.0'
@@ -73,11 +73,11 @@ dependencies {
     compile 'io.zipkin.reporter2:zipkin-sender-okhttp3:2.6.1'
     compile 'io.zipkin.reporter2:zipkin-reporter:2.6.1'
 
-    compile 'io.reactivex:rxscala_2.11:0.26.5'
+    compile 'io.reactivex:rxscala_2.12:0.26.5'
     compile 'io.reactivex:rxjava-reactive-streams:1.2.1'
     compile 'com.microsoft.azure:azure-cosmosdb:2.1.0'
 
-    compile ('com.lightbend.akka:akka-stream-alpakka-s3_2.11:0.19') {
+    compile ('com.lightbend.akka:akka-stream-alpakka-s3_2.12:0.19') {
         exclude group: 'commons-logging'
         exclude group: 'org.apache.httpcomponents' //Not used as alpakka uses 
akka-http
         exclude group: 'com.fasterxml.jackson.core'
diff --git a/common/scala/src/main/scala/whisk/common/Logging.scala 
b/common/scala/src/main/scala/whisk/common/Logging.scala
index d0457f8..c61f059 100644
--- a/common/scala/src/main/scala/whisk/common/Logging.scala
+++ b/common/scala/src/main/scala/whisk/common/Logging.scala
@@ -111,6 +111,7 @@ class PrintStreamLogging(outputStream: PrintStream = 
Console.out) extends Loggin
       case InfoLevel    => "INFO"
       case WarningLevel => "WARN"
       case ErrorLevel   => "ERROR"
+      case LogLevel(_)  => "UNKNOWN"
     }
 
     val logMessage = Seq(message).collect {
diff --git a/common/scala/src/main/scala/whisk/core/connector/Message.scala 
b/common/scala/src/main/scala/whisk/core/connector/Message.scala
index ebfb59b..5122ef3 100644
--- a/common/scala/src/main/scala/whisk/core/connector/Message.scala
+++ b/common/scala/src/main/scala/whisk/core/connector/Message.scala
@@ -75,8 +75,8 @@ object ActivationMessage extends DefaultJsonProtocol {
  * Message that is sent from the invoker to the controller after action is 
completed or after slot is free again for
  * new actions.
  */
-abstract class AcknowledegmentMessage() extends Message {
-  override val transid: TransactionId
+abstract class AcknowledegmentMessage(private val tid: TransactionId) extends 
Message {
+  override val transid: TransactionId = tid
   override def serialize: String = {
     AcknowledegmentMessage.serdes.write(this).compactPrint
   }
@@ -90,7 +90,7 @@ case class CompletionMessage(override val transid: 
TransactionId,
                              activationId: ActivationId,
                              isSystemError: Boolean,
                              invoker: InvokerInstanceId)
-    extends AcknowledegmentMessage() {
+    extends AcknowledegmentMessage(transid) {
 
   override def toString = {
     activationId.asString
@@ -109,7 +109,7 @@ object CompletionMessage extends DefaultJsonProtocol {
  * The whisk activation field will have its logs stripped.
  */
 case class ResultMessage(override val transid: TransactionId, response: 
Either[ActivationId, WhiskActivation])
-    extends AcknowledegmentMessage() {
+    extends AcknowledegmentMessage(transid) {
 
   override def toString = {
     response.fold(l => l, r => r.activationId).asString
diff --git 
a/common/scala/src/main/scala/whisk/core/database/CouchDbRestStore.scala 
b/common/scala/src/main/scala/whisk/core/database/CouchDbRestStore.scala
index 8518a95..49a6290 100644
--- a/common/scala/src/main/scala/whisk/core/database/CouchDbRestStore.scala
+++ b/common/scala/src/main/scala/whisk/core/database/CouchDbRestStore.scala
@@ -555,10 +555,10 @@ class CouchDbRestStore[DocumentAbstraction <: 
DocumentSerializer](dbProtocol: St
   }
 
   private def reportFailure[T, U](f: Future[T], onFailure: Throwable => U): 
Future[T] = {
-    f.onFailure({
+    f.failed.foreach {
       case _: ArtifactStoreException => // These failures are intentional and 
shouldn't trigger the catcher.
       case x                         => onFailure(x)
-    })
+    }
     f
   }
 }
diff --git a/common/scala/src/main/scala/whisk/core/database/StoreUtils.scala 
b/common/scala/src/main/scala/whisk/core/database/StoreUtils.scala
index d901fde..21ac05a 100644
--- a/common/scala/src/main/scala/whisk/core/database/StoreUtils.scala
+++ b/common/scala/src/main/scala/whisk/core/database/StoreUtils.scala
@@ -38,11 +38,11 @@ private[database] object StoreUtils {
     implicit transid: TransactionId,
     logging: Logging,
     ec: ExecutionContext): Future[T] = {
-    f.onFailure({
+    f.failed.foreach {
       case _: ArtifactStoreException => // These failures are intentional and 
shouldn't trigger the catcher.
       case x =>
         transid.failed(this, start, s"${failureMessage(x)} 
[${x.getClass.getSimpleName}]", ErrorLevel)
-    })
+    }
     f
   }
 
diff --git 
a/common/scala/src/main/scala/whisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
 
b/common/scala/src/main/scala/whisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
index 24dc040..a03dd8e 100644
--- 
a/common/scala/src/main/scala/whisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
+++ 
b/common/scala/src/main/scala/whisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
@@ -238,9 +238,9 @@ class CosmosDBArtifactStore[DocumentAbstraction <: 
DocumentSerializer](protected
       .runWith(Sink.seq)
       .map(_.toList)
 
-    f.onSuccess({
-      case out => transid.finished(this, start, s"[QUERY] '$collName' 
completed: matched ${out.size}")
-    })
+    f.foreach { out =>
+      transid.finished(this, start, s"[QUERY] '$collName' completed: matched 
${out.size}")
+    }
     reportFailure(f, start, failure => s"[QUERY] '$collName' internal error, 
failure: '${failure.getMessage}'")
   }
 
diff --git 
a/common/scala/src/main/scala/whisk/core/database/memory/MemoryArtifactStore.scala
 
b/common/scala/src/main/scala/whisk/core/database/memory/MemoryArtifactStore.scala
index f01064c..39f94c8 100644
--- 
a/common/scala/src/main/scala/whisk/core/database/memory/MemoryArtifactStore.scala
+++ 
b/common/scala/src/main/scala/whisk/core/database/memory/MemoryArtifactStore.scala
@@ -36,7 +36,7 @@ import whisk.http.Messages
 import scala.collection.concurrent.TrieMap
 import scala.concurrent.{ExecutionContext, Future}
 import scala.reflect.ClassTag
-import scala.util.Try
+import scala.util.{Failure, Success, Try}
 
 object MemoryArtifactStoreProvider extends ArtifactStoreProvider {
   override def makeStore[D <: DocumentSerializer: ClassTag](useBatching: 
Boolean)(
@@ -130,15 +130,12 @@ class MemoryArtifactStore[DocumentAbstraction <: 
DocumentSerializer](dbName: Str
     }
 
     val f = Future.fromTry(t)
-
-    f.onFailure({
-      case _: DocumentConflictException =>
+    f.onComplete {
+      case Success(_) => transid.finished(this, start, s"[PUT] '$dbName' 
completed document: '$docinfoStr'")
+      case Failure(_: DocumentConflictException) =>
         transid.finished(this, start, s"[PUT] '$dbName', document: 
'$docinfoStr'; conflict.")
-    })
-
-    f.onSuccess({
-      case _ => transid.finished(this, start, s"[PUT] '$dbName' completed 
document: '$docinfoStr'")
-    })
+      case Failure(_) =>
+    }
 
     reportFailure(f, start, failure => s"[PUT] '$dbName' internal error, 
failure: '${failure.getMessage}'")
   }
@@ -239,9 +236,7 @@ class MemoryArtifactStore[DocumentAbstraction <: 
DocumentSerializer](dbName: Str
     }.toList
 
     val f = Future.sequence(r).map(_.flatten)
-    f.onSuccess({
-      case _ => transid.finished(this, start, s"[QUERY] '$dbName' completed: 
matched ${out.size}")
-    })
+    f.foreach(_ => transid.finished(this, start, s"[QUERY] '$dbName' 
completed: matched ${out.size}"))
     reportFailure(f, start, failure => s"[QUERY] '$dbName' internal error, 
failure: '${failure.getMessage}'")
 
   }
@@ -270,10 +265,8 @@ class MemoryArtifactStore[DocumentAbstraction <: 
DocumentSerializer](dbName: Str
     } else {
       val storedName = attachmentUri.path.toString()
       val f = attachmentStore.readAttachment(doc.id, storedName, sink)
-      f.onSuccess {
-        case _ =>
-          transid.finished(this, start, s"[ATT_GET] '$dbName' completed: found 
attachment '$name' of document '$doc'")
-      }
+      f.foreach(_ =>
+        transid.finished(this, start, s"[ATT_GET] '$dbName' completed: found 
attachment '$name' of document '$doc'"))
       f
     }
   }
diff --git 
a/common/scala/src/main/scala/whisk/core/database/s3/S3AttachmentStore.scala 
b/common/scala/src/main/scala/whisk/core/database/s3/S3AttachmentStore.scala
index e02f49b..df9056e 100644
--- a/common/scala/src/main/scala/whisk/core/database/s3/S3AttachmentStore.scala
+++ b/common/scala/src/main/scala/whisk/core/database/s3/S3AttachmentStore.scala
@@ -87,11 +87,9 @@ class S3AttachmentStore(client: S3Client, bucket: String, 
prefix: String)(implic
       .runWith(combinedSink(client.multipartUpload(bucket, objectKey(docId, 
name), contentType)))
       .map(r => AttachResult(r.digest, r.length))
 
-    f.onSuccess({
-      case _ =>
-        transid
-          .finished(this, start, s"[ATT_PUT] '$prefix' completed uploading 
attachment '$name' of document 'id: $docId'")
-    })
+    f.foreach(_ =>
+      transid
+        .finished(this, start, s"[ATT_PUT] '$prefix' completed uploading 
attachment '$name' of document 'id: $docId'"))
 
     reportFailure(
       f,
@@ -147,10 +145,8 @@ class S3AttachmentStore(client: S3Client, bucket: String, 
prefix: String)(implic
       .runWith(Sink.seq)
       .map(_ => true)
 
-    f.onSuccess {
-      case _ =>
-        transid.finished(this, start, s"[ATTS_DELETE] completed: deleting 
attachments of document 'id: $docId'")
-    }
+    f.foreach(_ =>
+      transid.finished(this, start, s"[ATTS_DELETE] completed: deleting 
attachments of document 'id: $docId'"))
 
     reportFailure(
       f,
@@ -167,10 +163,8 @@ class S3AttachmentStore(client: S3Client, bucket: String, 
prefix: String)(implic
       .deleteObject(bucket, objectKey(docId, name))
       .map(_ => true)
 
-    f.onSuccess {
-      case _ =>
-        transid.finished(this, start, s"[ATT_DELETE] completed: deleting 
attachment '$name' of document 'id: $docId'")
-    }
+    f.foreach(_ =>
+      transid.finished(this, start, s"[ATT_DELETE] completed: deleting 
attachment '$name' of document 'id: $docId'"))
 
     reportFailure(
       f,
diff --git a/common/scala/src/main/scala/whisk/core/entity/Limits.scala 
b/common/scala/src/main/scala/whisk/core/entity/Limits.scala
index 5937df7..0e775e4 100644
--- a/common/scala/src/main/scala/whisk/core/entity/Limits.scala
+++ b/common/scala/src/main/scala/whisk/core/entity/Limits.scala
@@ -82,5 +82,5 @@ protected[core] object ActionLimits extends 
ArgNormalizer[ActionLimits] with Def
 
 protected[core] object TriggerLimits extends ArgNormalizer[TriggerLimits] with 
DefaultJsonProtocol {
 
-  override protected[core] implicit val serdes = 
jsonFormat0(TriggerLimits.apply)
+  override protected[core] implicit val serdes = 
jsonFormat0(TriggerLimits.apply _)
 }
diff --git 
a/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala 
b/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala
index 474361a..b29bbd8 100644
--- a/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala
+++ b/common/scala/src/main/scala/whisk/core/mesos/MesosContainerFactory.scala
@@ -76,7 +76,7 @@ class MesosContainerFactory(config: WhiskConfig,
                               
loadConfigOrThrow[ContainerArgsConfig](ConfigKeys.containerArgs),
                             mesosConfig: MesosConfig = 
loadConfigOrThrow[MesosConfig](ConfigKeys.mesos),
                             clientFactory: (ActorSystem, MesosConfig) => 
ActorRef = MesosContainerFactory.createClient,
-                            taskIdGenerator: () => String = 
MesosContainerFactory.taskIdGenerator)
+                            taskIdGenerator: () => String = 
MesosContainerFactory.taskIdGenerator _)
     extends ContainerFactory {
 
   val subscribeTimeout = 10.seconds
diff --git a/core/controller/build.gradle b/core/controller/build.gradle
index b7cfb8e..4ce950f 100644
--- a/core/controller/build.gradle
+++ b/core/controller/build.gradle
@@ -39,9 +39,9 @@ repositories {
 
 dependencies {
     compile "org.scala-lang:scala-library:${gradle.scala.version}"
-    compile 
'com.lightbend.akka.management:akka-management-cluster-bootstrap_2.11:0.11.0'
-    compile 
'com.lightbend.akka.discovery:akka-discovery-kubernetes-api_2.11:0.11.0'
-    compile 
'com.lightbend.akka.discovery:akka-discovery-marathon-api_2.11:0.11.0'
+    compile 
'com.lightbend.akka.management:akka-management-cluster-bootstrap_2.12:0.11.0'
+    compile 
'com.lightbend.akka.discovery:akka-discovery-kubernetes-api_2.12:0.11.0'
+    compile 
'com.lightbend.akka.discovery:akka-discovery-marathon-api_2.12:0.11.0'
     compile project(':common:scala')
     scoverage gradle.scoverage.deps
 }
diff --git 
a/core/controller/src/main/scala/whisk/core/controller/BasicAuthenticationDirective.scala
 
b/core/controller/src/main/scala/whisk/core/controller/BasicAuthenticationDirective.scala
index c0e06c5..83233ee 100644
--- 
a/core/controller/src/main/scala/whisk/core/controller/BasicAuthenticationDirective.scala
+++ 
b/core/controller/src/main/scala/whisk/core/controller/BasicAuthenticationDirective.scala
@@ -53,7 +53,7 @@ object BasicAuthenticationDirective extends 
AuthenticationDirectiveProvider {
             logging.debug(this, s"authentication not valid")
             None
         }
-        future onFailure { case t => logging.error(this, s"authentication 
error: $t") }
+        future.failed.foreach(t => logging.error(this, s"authentication error: 
$t"))
         future
       }.toOption
     } getOrElse {
diff --git a/settings.gradle b/settings.gradle
index dd60500..ca9b7c0 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -33,7 +33,7 @@ include 'tools:admin'
 rootProject.name = 'openwhisk'
 
 gradle.ext.scala = [
-    version: '2.11.11',
+    version: '2.12.7',
     compileFlags: ['-feature', '-unchecked', '-deprecation', 
'-Xfatal-warnings', '-Ywarn-unused-import']
 ]
 
@@ -44,8 +44,8 @@ gradle.ext.scalafmt = [
 
 gradle.ext.scoverage = [
     deps: [
-        'org.scoverage:scalac-scoverage-plugin_2.11:1.3.1',
-        'org.scoverage:scalac-scoverage-runtime_2.11:1.3.1'
+        'org.scoverage:scalac-scoverage-plugin_2.12:1.3.1',
+        'org.scoverage:scalac-scoverage-runtime_2.12:1.3.1'
     ]
 ]
 
diff --git a/tests/build.gradle b/tests/build.gradle
index 4be83ca..ba89352 100644
--- a/tests/build.gradle
+++ b/tests/build.gradle
@@ -152,11 +152,11 @@ dependencies {
     compile 'org.apache.httpcomponents:httpmime:4.3.6'
     compile 'junit:junit:4.11'
     compile 'com.jayway.restassured:rest-assured:2.6.0'
-    compile 'org.scalatest:scalatest_2.11:3.0.1'
-    compile 'com.typesafe.akka:akka-testkit_2.11:2.5.12'
+    compile 'org.scalatest:scalatest_2.12:3.0.1'
+    compile 'com.typesafe.akka:akka-testkit_2.12:2.5.12'
     compile 'com.google.code.gson:gson:2.3.1'
-    compile 'org.scalamock:scalamock-scalatest-support_2.11:3.4.2'
-    compile 'com.typesafe.akka:akka-http-testkit_2.11:10.1.1'
+    compile 'org.scalamock:scalamock-scalatest-support_2.12:3.4.2'
+    compile 'com.typesafe.akka:akka-http-testkit_2.12:10.1.1'
     compile 'com.github.java-json-tools:json-schema-validator:2.2.8'
     compile "org.mockito:mockito-core:2.15.0"
     compile 'io.opentracing:opentracing-mock:0.31.0'
diff --git a/tests/src/test/scala/actionContainers/ActionContainer.scala 
b/tests/src/test/scala/actionContainers/ActionContainer.scala
index 153b6d2..d582659 100644
--- a/tests/src/test/scala/actionContainers/ActionContainer.scala
+++ b/tests/src/test/scala/actionContainers/ActionContainer.scala
@@ -240,7 +240,6 @@ object ActionContainer {
   }
   private def concurrentSyncPost(host: String, port: Int, endPoint: String, 
contents: Seq[JsValue])(
     implicit logging: Logging,
-    ec: ExecutionContext,
     as: ActorSystem): Seq[(Int, Option[JsObject])] = {
 
     implicit val transid = TransactionId.testing
diff --git a/tests/src/test/scala/common/RunCliCmd.scala 
b/tests/src/test/scala/common/RunCliCmd.scala
index aee4439..e3e7e44 100644
--- a/tests/src/test/scala/common/RunCliCmd.scala
+++ b/tests/src/test/scala/common/RunCliCmd.scala
@@ -19,7 +19,7 @@ package common
 
 import java.io.File
 
-import scala.collection.JavaConversions.mapAsJavaMap
+import scala.collection.JavaConverters._
 import scala.collection.mutable.Buffer
 import org.scalatest.Matchers
 import TestUtils._
@@ -48,7 +48,7 @@ trait RunCliCmd extends Matchers {
              env: Map[String, String],
              fileStdin: Option[File],
              params: Seq[String]): RunResult = {
-    TestUtils.runCmd(expectedExitCode, dir, TestUtils.logger, env, 
fileStdin.getOrElse(null), params: _*)
+    TestUtils.runCmd(expectedExitCode, dir, TestUtils.logger, env.asJava, 
fileStdin.getOrElse(null), params: _*)
   }
 
   /**
diff --git a/tests/src/test/scala/whisk/core/connector/test/TestConnector.scala 
b/tests/src/test/scala/whisk/core/connector/test/TestConnector.scala
index 8b428e5..67faeab 100644
--- a/tests/src/test/scala/whisk/core/connector/test/TestConnector.scala
+++ b/tests/src/test/scala/whisk/core/connector/test/TestConnector.scala
@@ -22,7 +22,7 @@ import java.util.concurrent.LinkedBlockingQueue
 
 import scala.concurrent.Future
 import scala.concurrent.duration._
-import scala.collection.JavaConversions._
+import scala.collection.JavaConverters._
 
 import org.apache.kafka.clients.producer.RecordMetadata
 import org.apache.kafka.common.TopicPartition
@@ -41,7 +41,7 @@ class TestConnector(topic: String, override val maxPeek: Int, 
allowMoreThanMax:
     val msgs = new ArrayList[Message]
     queue.synchronized {
       queue.drainTo(msgs, if (allowMoreThanMax) Int.MaxValue else maxPeek)
-      msgs map { m =>
+      msgs.asScala map { m =>
         offset += 1
         (topic, -1, offset, m.serialize.getBytes)
       }
@@ -87,7 +87,7 @@ class TestConnector(topic: String, override val maxPeek: Int, 
allowMoreThanMax:
 
     def sendBulk(topic: String, msgs: Seq[Message]): Future[RecordMetadata] = {
       queue.synchronized {
-        if (queue.addAll(msgs)) {
+        if (queue.addAll(msgs.asJava)) {
           logging.info(this, s"put: ${msgs.length} messages")
           Future.successful(new RecordMetadata(new TopicPartition(topic, 0), 
0, queue.size, -1, Long.box(-1L), -1, -1))
         } else {
diff --git 
a/tests/src/test/scala/whisk/core/containerpool/docker/test/ProcessRunnerTests.scala
 
b/tests/src/test/scala/whisk/core/containerpool/docker/test/ProcessRunnerTests.scala
index 4527373..519e000 100644
--- 
a/tests/src/test/scala/whisk/core/containerpool/docker/test/ProcessRunnerTests.scala
+++ 
b/tests/src/test/scala/whisk/core/containerpool/docker/test/ProcessRunnerTests.scala
@@ -25,7 +25,6 @@ import org.junit.runner.RunWith
 import org.scalatest.FlatSpec
 import org.scalatest.junit.JUnitRunner
 
-import scala.concurrent.ExecutionContext.Implicits.global
 import whisk.core.containerpool.docker._
 
 import scala.concurrent.ExecutionContext
diff --git 
a/tests/src/test/scala/whisk/core/containerpool/kubernetes/test/KubernetesClientTests.scala
 
b/tests/src/test/scala/whisk/core/containerpool/kubernetes/test/KubernetesClientTests.scala
index 3336e83..78f2d8a 100644
--- 
a/tests/src/test/scala/whisk/core/containerpool/kubernetes/test/KubernetesClientTests.scala
+++ 
b/tests/src/test/scala/whisk/core/containerpool/kubernetes/test/KubernetesClientTests.scala
@@ -26,7 +26,6 @@ import akka.stream.scaladsl.{Concat, Sink, Source}
 
 import scala.concurrent.Await
 import scala.concurrent.ExecutionContext
-import scala.concurrent.ExecutionContext.Implicits.global
 import scala.concurrent.Future
 import scala.concurrent.duration._
 import org.junit.runner.RunWith
@@ -79,7 +78,7 @@ class KubernetesClientTests
 
   /** Returns a KubernetesClient with a mocked result for 'executeProcess' */
   def kubernetesClient(fixture: => Future[String]) = {
-    new KubernetesClient()(global) {
+    new KubernetesClient()(executionContext) {
       override def executeProcess(args: Seq[String], timeout: 
Duration)(implicit ec: ExecutionContext,
                                                                         as: 
ActorSystem) =
         fixture
@@ -89,7 +88,7 @@ class KubernetesClientTests
   def kubernetesContainer(id: ContainerId) =
     new KubernetesContainer(id, ContainerAddress("ip"), "ip", "docker://" + 
id.asString)(kubernetesClient {
       Future.successful("")
-    }, actorSystem, global, logging)
+    }, actorSystem, executionContext, logging)
 
   behavior of "KubernetesClient"
 
@@ -178,6 +177,7 @@ class KubernetesClientTests
 
 object KubernetesClientTests {
   import scala.language.implicitConversions
+  import scala.concurrent.ExecutionContext.Implicits.global
 
   implicit def strToDate(str: String): Option[Instant] =
     KubernetesClient.parseK8STimestamp(str).toOption
diff --git 
a/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala
 
b/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala
index d5187ed..6500859 100644
--- 
a/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala
+++ 
b/tests/src/test/scala/whisk/core/containerpool/mesos/test/MesosContainerFactoryTest.scala
@@ -127,7 +127,7 @@ class MesosContainerFactoryTest
         containerArgsConfig,
         mesosConfig,
         (_, _) => testActor,
-        testTaskId)
+        testTaskId _)
 
     expectMsg(Subscribe)
     factory.createContainer(
@@ -173,7 +173,7 @@ class MesosContainerFactoryTest
         containerArgsConfig,
         mesosConfig,
         (system, mesosConfig) => probe.testActor,
-        testTaskId)
+        testTaskId _)
 
     probe.expectMsg(Subscribe)
     //emulate successful subscribe
@@ -244,7 +244,7 @@ class MesosContainerFactoryTest
         new ContainerArgsConfig("bridge", Seq.empty, Map("extra1" -> Set("e1", 
"e2"), "extra2" -> Set("e3", "e4"))),
         mesosConfig,
         (system, mesosConfig) => probe.testActor,
-        testTaskId)
+        testTaskId _)
 
     probe.expectMsg(Subscribe)
     //emulate successful subscribe
diff --git 
a/tests/src/test/scala/whisk/core/database/test/CacheConcurrencyTests.scala 
b/tests/src/test/scala/whisk/core/database/test/CacheConcurrencyTests.scala
index a669296..54811ec 100644
--- a/tests/src/test/scala/whisk/core/database/test/CacheConcurrencyTests.scala
+++ b/tests/src/test/scala/whisk/core/database/test/CacheConcurrencyTests.scala
@@ -19,7 +19,7 @@ package whisk.core.database.test
 
 import scala.collection.parallel._
 import scala.concurrent.duration.DurationInt
-import scala.concurrent.forkjoin.ForkJoinPool
+import java.util.concurrent.ForkJoinPool
 import org.junit.runner.RunWith
 import org.scalatest.BeforeAndAfterEach
 import org.scalatest.FlatSpec
diff --git a/tests/src/test/scala/whisk/core/entity/test/SchemaTests.scala 
b/tests/src/test/scala/whisk/core/entity/test/SchemaTests.scala
index 7569ffc4..7245850 100644
--- a/tests/src/test/scala/whisk/core/entity/test/SchemaTests.scala
+++ b/tests/src/test/scala/whisk/core/entity/test/SchemaTests.scala
@@ -21,7 +21,6 @@ import java.util.Base64
 
 import scala.concurrent.duration.DurationInt
 import scala.language.postfixOps
-import scala.language.reflectiveCalls
 import scala.util.Failure
 import scala.util.Try
 import org.junit.runner.RunWith
diff --git a/tools/admin/build.gradle b/tools/admin/build.gradle
index 60fbf4e..2284bad 100644
--- a/tools/admin/build.gradle
+++ b/tools/admin/build.gradle
@@ -48,7 +48,7 @@ bootJar {
 
 dependencies {
     compile project(':common:scala')
-    compile 'org.rogach:scallop_2.11:3.1.2'
+    compile 'org.rogach:scallop_2.12:3.1.2'
     scoverage gradle.scoverage.deps
 }
 

Reply via email to