Fix some Scala 2.13 deprecations. (#4772)
* Remove unicode arrows.
* Remove view bounds.
* Remove braces from value functions.
* Remove all occurrences of procedure syntax.
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala b/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala
index 42e9b12..2b03ce8 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala
@@ -83,7 +83,7 @@
* @param from Reference, where the method was called from.
* @param message Message to write to the log if not empty
*/
- protected[common] def emit(loglevel: LogLevel, id: TransactionId, from: AnyRef, message: => String)
+ protected[common] def emit(loglevel: LogLevel, id: TransactionId, from: AnyRef, message: => String): Unit
}
/**
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
index deab30b..6518aee 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
@@ -172,7 +172,7 @@
* values of either sink. Code basically copied from {@code Sink.combine}
*/
def combine[T, U, M1, M2](first: Sink[U, M1], second: Sink[U, M2])(
- strategy: Int ⇒ Graph[UniformFanOutShape[T, U], NotUsed]): Sink[T, (M1, M2)] = {
+ strategy: Int => Graph[UniformFanOutShape[T, U], NotUsed]): Sink[T, (M1, M2)] = {
Sink.fromGraph(GraphDSL.create(first, second)((_, _)) { implicit b => (s1, s2) =>
import GraphDSL.Implicits._
val d = b.add(strategy(2))
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala
index 774cf2e..76fe33a 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/CouchDbRestStore.scala
@@ -534,7 +534,7 @@
}
attachmentHandler(
doc,
- Attached(getAttachmentName(name), contentType, Some(length.longValue()), Some(digest)))
+ Attached(getAttachmentName(name), contentType, Some(length.longValue), Some(digest)))
case x =>
throw DeserializationException("Attachment json does not have required fields" + x)
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBArtifactStore.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
index 57cb6ea..cec1576 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBArtifactStore.scala
@@ -397,7 +397,7 @@
.queryDocuments(collection.getSelfLink, querySpec, newFeedOptions())
.head()
.map { r =>
- val count = r.getResults.asScala.head.getLong(aggregate).longValue()
+ val count = r.getResults.asScala.head.getLong(aggregate).longValue
transid.finished(this, start, s"[COUNT] '$collName' completed: count $count")
collectMetrics(countToken, r.getRequestCharge)
if (count > skip) count - skip else 0L
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBViewMapper.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBViewMapper.scala
index 4bed781..14ca020 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBViewMapper.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBViewMapper.scala
@@ -276,8 +276,8 @@
//Go for case which does not specify upto as that would be the case with poll based query
case (None, Some(startFromQuery), Some(JsNumber(start))) =>
val now = nowInMillis().toEpochMilli
- val resultStartDelta = (now - start.longValue()).max(0)
- val queryStartDelta = (now - startFromQuery.longValue()).max(0)
+ val resultStartDelta = (now - start.longValue).max(0)
+ val queryStartDelta = (now - startFromQuery.longValue).max(0)
resultDeltaToken.histogram.record(resultStartDelta)
sinceDeltaToken.histogram.record(queryStartDelta)
Some(s"resultDelta=$resultStartDelta, sinceDelta=$queryStartDelta")
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/RetryMetricsCollector.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/RetryMetricsCollector.scala
index 44127d9..dafdf99 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/RetryMetricsCollector.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/RetryMetricsCollector.scala
@@ -94,7 +94,7 @@
val t = Try {
if (args != null & args.length > index) {
args(index) match {
- case n: Number => n.intValue()
+ case n: Number => n.intValue
case _ => 0
}
} else 0
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/database/memory/MemoryViewMapper.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/database/memory/MemoryViewMapper.scala
index e9a5fa1..4898e72 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/database/memory/MemoryViewMapper.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/database/memory/MemoryViewMapper.scala
@@ -54,13 +54,13 @@
protected def gte(js: JsObject, name: String, value: Number): Boolean =
JsHelpers.getFieldPath(js, name) match {
- case Some(JsNumber(n)) => n.longValue() >= value.longValue()
+ case Some(JsNumber(n)) => n.longValue >= value.longValue
case _ => false
}
protected def lte(js: JsObject, name: String, value: Number): Boolean =
JsHelpers.getFieldPath(js, name) match {
- case Some(JsNumber(n)) => n.longValue() <= value.longValue()
+ case Some(JsNumber(n)) => n.longValue <= value.longValue
case _ => false
}
@@ -68,7 +68,7 @@
val f =
(js: JsObject) =>
JsHelpers.getFieldPath(js, name) match {
- case Some(JsNumber(n)) => n.longValue()
+ case Some(JsNumber(n)) => n.longValue
case _ => 0L
}
val order = implicitly[Ordering[Long]]
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Attachments.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Attachments.scala
index 46f1949..e8a18b5 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Attachments.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Attachments.scala
@@ -47,14 +47,15 @@
// Attachments are considered free because the name/content type are system determined
// and a size check for the content is done during create/update
- implicit class SizeAttachment[T <% SizeConversion](a: Attachment[T]) extends SizeConversion {
+ implicit class SizeAttachment[T](a: Attachment[T])(implicit ev: T => SizeConversion) extends SizeConversion {
def sizeIn(unit: SizeUnits.Unit): ByteSize = a match {
case Inline(v) => (v: SizeConversion).sizeIn(unit)
case _ => 0.bytes
}
}
- implicit class OptionSizeAttachment[T <% SizeConversion](a: Option[Attachment[T]]) extends SizeConversion {
+ implicit class OptionSizeAttachment[T](a: Option[Attachment[T]])(implicit ev: T => SizeConversion)
+ extends SizeConversion {
def sizeIn(unit: SizeUnits.Unit): ByteSize = a match {
case Some(Inline(v)) => (v: SizeConversion).sizeIn(unit)
case _ => 0.bytes
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/ConcurrencyLimit.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/ConcurrencyLimit.scala
index 6736708..c903267 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/ConcurrencyLimit.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/ConcurrencyLimit.scala
@@ -78,7 +78,7 @@
def read(value: JsValue) = {
Try {
val JsNumber(c) = value
- require(c.isWhole(), "concurrency limit must be whole number")
+ require(c.isWhole, "concurrency limit must be whole number")
ConcurrencyLimit(c.toInt)
} match {
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Exec.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Exec.scala
index 4bc0ad3..886d88b 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Exec.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/Exec.scala
@@ -64,7 +64,7 @@
* A common super class for all action exec types that contain their executable
* code explicitly (i.e., any action other than a sequence).
*/
-sealed abstract class CodeExec[+T <% SizeConversion] extends Exec {
+sealed abstract class CodeExec[+T](implicit ev: T => SizeConversion) extends Exec {
/** An entrypoint (typically name of 'main' function). 'None' means a default value will be used. */
val entryPoint: Option[String]
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/LogLimit.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/LogLimit.scala
index 3a0f372..9197b60 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/LogLimit.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/LogLimit.scala
@@ -80,7 +80,7 @@
def read(value: JsValue) =
Try {
val JsNumber(mb) = value
- require(mb.isWhole(), "log limit must be whole number")
+ require(mb.isWhole, "log limit must be whole number")
LogLimit(mb.intValue MB)
} match {
case Success(limit) => limit
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/MemoryLimit.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/MemoryLimit.scala
index b38f4a6..6cef641 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/entity/MemoryLimit.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/entity/MemoryLimit.scala
@@ -76,7 +76,7 @@
def read(value: JsValue) =
Try {
val JsNumber(mb) = value
- require(mb.isWhole(), "memory limit must be whole number")
+ require(mb.isWhole, "memory limit must be whole number")
MemoryLimit(mb.intValue MB)
} match {
case Success(limit) => limit
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/core/yarn/YARNRESTUtil.scala b/common/scala/src/main/scala/org/apache/openwhisk/core/yarn/YARNRESTUtil.scala
index 9279c1b..472cfb4 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/core/yarn/YARNRESTUtil.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/core/yarn/YARNRESTUtil.scala
@@ -195,6 +195,6 @@
case httpresponse(code, content) =>
logging.error(this, "Unknown response from YARN")
- throw new Exception(s"Unknown response from YARN. Code: ${code.intValue()}, content: $content")
+ throw new Exception(s"Unknown response from YARN. Code: ${code.intValue}, content: $content")
}
}
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/utils/ExecutionContextFactory.scala b/common/scala/src/main/scala/org/apache/openwhisk/utils/ExecutionContextFactory.scala
index 0604a46..6250483 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/utils/ExecutionContextFactory.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/utils/ExecutionContextFactory.scala
@@ -39,13 +39,13 @@
* timeout duration
*
*/
- def expire[T](duration: FiniteDuration, using: Scheduler)(value: ⇒ Future[T])(
+ def expire[T](duration: FiniteDuration, using: Scheduler)(value: => Future[T])(
implicit ec: ExecutionContext): CancellableFuture[T] = {
val p = Promise[T]()
val cancellable = using.scheduleOnce(duration) {
p completeWith {
try value
- catch { case NonFatal(t) ⇒ Future.failed(t) }
+ catch { case NonFatal(t) => Future.failed(t) }
}
}
(cancellable, p.future)
diff --git a/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/CommonLoadBalancer.scala b/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/CommonLoadBalancer.scala
index 69c76f0..455399d 100644
--- a/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/CommonLoadBalancer.scala
+++ b/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/CommonLoadBalancer.scala
@@ -81,8 +81,8 @@
actorSystem.scheduler.schedule(10.seconds, 10.seconds)(emitMetrics())
override def activeActivationsFor(namespace: UUID): Future[Int] =
- Future.successful(activationsPerNamespace.get(namespace).map(_.intValue()).getOrElse(0))
- override def totalActiveActivations: Future[Int] = Future.successful(totalActivations.intValue())
+ Future.successful(activationsPerNamespace.get(namespace).map(_.intValue).getOrElse(0))
+ override def totalActiveActivations: Future[Int] = Future.successful(totalActivations.intValue)
/**
* Calculate the duration within which a completion ack must be received for an activation.
@@ -242,7 +242,7 @@
logging.info(this, s"received result ack for '$aid'")(tid)
}
- protected def releaseInvoker(invoker: InvokerInstanceId, entry: ActivationEntry)
+ protected def releaseInvoker(invoker: InvokerInstanceId, entry: ActivationEntry): Unit
// Singletons for counter metrics related to completion acks
protected val LOADBALANCER_COMPLETION_ACK_REGULAR =
diff --git a/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/LeanBalancer.scala b/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/LeanBalancer.scala
index 81576ec..80def27 100644
--- a/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/LeanBalancer.scala
+++ b/core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/LeanBalancer.scala
@@ -68,7 +68,7 @@
}
/** Creates an invoker for executing user actions. There is only one invoker in the lean model. */
- private def makeALocalThreadedInvoker() {
+ private def makeALocalThreadedInvoker(): Unit = {
implicit val ec = ExecutionContextFactory.makeCachedThreadPoolExecutionContext()
val limitConfig: ConcurrencyLimitConfig = loadConfigOrThrow[ConcurrencyLimitConfig](ConfigKeys.concurrencyLimit)
SpiLoader.get[InvokerProvider].instance(config, invokerName, messageProducer, poolConfig, limitConfig)
diff --git a/core/monitoring/user-events/src/test/scala/org/apache/openwhisk/core/monitoring/metrics/PrometheusRecorderTests.scala b/core/monitoring/user-events/src/test/scala/org/apache/openwhisk/core/monitoring/metrics/PrometheusRecorderTests.scala
index c0ffedf..22cafac 100644
--- a/core/monitoring/user-events/src/test/scala/org/apache/openwhisk/core/monitoring/metrics/PrometheusRecorderTests.scala
+++ b/core/monitoring/user-events/src/test/scala/org/apache/openwhisk/core/monitoring/metrics/PrometheusRecorderTests.scala
@@ -68,7 +68,7 @@
histogramCount(durationMetric, namespaceDemo, actionWithCustomPackage) shouldBe 1
histogramSum(durationMetric, namespaceDemo, actionWithCustomPackage) shouldBe (1.254 +- 0.01)
- gauge(memoryMetric, namespaceDemo, actionWithCustomPackage).intValue() shouldBe 256
+ gauge(memoryMetric, namespaceDemo, actionWithCustomPackage).intValue shouldBe 256
// Default package
counterTotal(activationMetric, namespaceDemo, actionWithDefaultPackage) shouldBe 1
diff --git a/tests/src/test/scala/common/WskTestHelpers.scala b/tests/src/test/scala/common/WskTestHelpers.scala
index 12a9f4d..aec41dc 100644
--- a/tests/src/test/scala/common/WskTestHelpers.scala
+++ b/tests/src/test/scala/common/WskTestHelpers.scala
@@ -282,7 +282,7 @@
* In the case that test throws an exception, print stderr and stdout
* from the provided RunResult.
*/
- def withPrintOnFailure(runResult: RunResult)(test: () => Unit) {
+ def withPrintOnFailure(runResult: RunResult)(test: () => Unit): Unit = {
try {
test()
} catch {
diff --git a/tests/src/test/scala/common/rest/SwaggerValidator.scala b/tests/src/test/scala/common/rest/SwaggerValidator.scala
index b13c94e..aaf7531 100644
--- a/tests/src/test/scala/common/rest/SwaggerValidator.scala
+++ b/tests/src/test/scala/common/rest/SwaggerValidator.scala
@@ -88,7 +88,7 @@
val specResponse = {
val builder = SimpleResponse.Builder
- .status(response.status.intValue())
+ .status(response.status.intValue)
val body = strictEntityBodyAsString(response.entity)
val withBody =
if (body.isEmpty) builder
diff --git a/tests/src/test/scala/invokerShoot/ShootInvokerTests.scala b/tests/src/test/scala/invokerShoot/ShootInvokerTests.scala
index c02dac3..91f1eb5 100644
--- a/tests/src/test/scala/invokerShoot/ShootInvokerTests.scala
+++ b/tests/src/test/scala/invokerShoot/ShootInvokerTests.scala
@@ -310,7 +310,7 @@
result.getFields("stdout", "code") match {
case Seq(JsString(stdout), JsNumber(code)) =>
stdout should not include "bytes from"
- code.intValue() should not be 0
+ code.intValue should not be 0
case _ => fail(s"fields 'stdout' or 'code' where not of the expected format, was $result")
}
}
diff --git a/tests/src/test/scala/org/apache/openwhisk/common/UserEventTests.scala b/tests/src/test/scala/org/apache/openwhisk/common/UserEventTests.scala
index 49c2ab5..9a8e0c2 100644
--- a/tests/src/test/scala/org/apache/openwhisk/common/UserEventTests.scala
+++ b/tests/src/test/scala/org/apache/openwhisk/common/UserEventTests.scala
@@ -47,7 +47,7 @@
val testActionsDir = WhiskProperties.getFileRelativeToWhiskHome("tests/dat/actions")
behavior of "UserEvents"
- override def afterAll() {
+ override def afterAll(): Unit = {
consumer.close()
}
diff --git a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/yarn/test/MockYARNRM.scala b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/yarn/test/MockYARNRM.scala
index 1fcb799..2b71c3f 100644
--- a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/yarn/test/MockYARNRM.scala
+++ b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/yarn/test/MockYARNRM.scala
@@ -184,7 +184,7 @@
})
this.server.setExecutor(null) // creates a default executor
- def start() {
+ def start(): Unit = {
this.server.start()
}
def stop(): Unit = {
diff --git a/tests/src/test/scala/org/apache/openwhisk/core/database/test/AttachmentStoreBehaviors.scala b/tests/src/test/scala/org/apache/openwhisk/core/database/test/AttachmentStoreBehaviors.scala
index 56a9d29..46f08ba 100644
--- a/tests/src/test/scala/org/apache/openwhisk/core/database/test/AttachmentStoreBehaviors.scala
+++ b/tests/src/test/scala/org/apache/openwhisk/core/database/test/AttachmentStoreBehaviors.scala
@@ -144,7 +144,7 @@
val docId = newDocId()
val error = new Error("boom!")
val faultySource = Source(1 to 10)
- .map { n ⇒
+ .map { n =>
if (n == 7) throw error
n
}
diff --git a/tests/src/test/scala/org/apache/openwhisk/core/loadBalancer/test/InvokerSupervisionTests.scala b/tests/src/test/scala/org/apache/openwhisk/core/loadBalancer/test/InvokerSupervisionTests.scala
index 1bf6d7d..aa07914 100644
--- a/tests/src/test/scala/org/apache/openwhisk/core/loadBalancer/test/InvokerSupervisionTests.scala
+++ b/tests/src/test/scala/org/apache/openwhisk/core/loadBalancer/test/InvokerSupervisionTests.scala
@@ -78,7 +78,7 @@
ExecManifest.initialize(config)
- override def afterAll {
+ override def afterAll: Unit = {
TestKit.shutdownActorSystem(system)
}
diff --git a/tests/src/test/scala/system/basic/WskActionTests.scala b/tests/src/test/scala/system/basic/WskActionTests.scala
index 74e1cc0..7383fe4 100644
--- a/tests/src/test/scala/system/basic/WskActionTests.scala
+++ b/tests/src/test/scala/system/basic/WskActionTests.scala
@@ -316,7 +316,7 @@
result.getFields("stdout", "code") match {
case Seq(JsString(stdout), JsNumber(code)) =>
stdout should not include "bytes from"
- code.intValue() should not be 0
+ code.intValue should not be 0
case _ => fail(s"fields 'stdout' or 'code' where not of the expected format, was $result")
}
}
diff --git a/tests/src/test/scala/system/basic/WskPackageTests.scala b/tests/src/test/scala/system/basic/WskPackageTests.scala
index 238a2d4..6a78373 100644
--- a/tests/src/test/scala/system/basic/WskPackageTests.scala
+++ b/tests/src/test/scala/system/basic/WskPackageTests.scala
@@ -176,7 +176,7 @@
* Check that a description of an item includes the specified parameters.
* Parameters keys in later parameter maps override earlier ones.
*/
- def checkForParameters(itemDescription: String, paramSets: Map[String, JsValue]*) {
+ def checkForParameters(itemDescription: String, paramSets: Map[String, JsValue]*): Unit = {
// Merge and the parameters handling overrides.
val merged = HashMap.empty[String, JsValue]
paramSets.foreach { merged ++= _ }
diff --git a/tests/src/test/scala/system/basic/WskSequenceTests.scala b/tests/src/test/scala/system/basic/WskSequenceTests.scala
index 06541bd..f151d9d 100644
--- a/tests/src/test/scala/system/basic/WskSequenceTests.scala
+++ b/tests/src/test/scala/system/basic/WskSequenceTests.scala
@@ -558,7 +558,7 @@
}
/** checks that the logs of the idx-th atomic action from a sequence contains logsStr */
- private def checkLogsAtomicAction(atomicActionIdx: Int, run: RunResult, regex: Regex) {
+ private def checkLogsAtomicAction(atomicActionIdx: Int, run: RunResult, regex: Regex): Unit = {
withActivation(wsk.activation, run, totalWait = 2 * allowedActionDuration) { activation =>
checkSequenceLogsAndAnnotations(activation, 1)
val componentId = activation.logs.get(atomicActionIdx)
diff --git a/tools/admin/src/main/scala/org/apache/openwhisk/core/cli/Main.scala b/tools/admin/src/main/scala/org/apache/openwhisk/core/cli/Main.scala
index 5f3aeb2..8e5a5f1 100644
--- a/tools/admin/src/main/scala/org/apache/openwhisk/core/cli/Main.scala
+++ b/tools/admin/src/main/scala/org/apache/openwhisk/core/cli/Main.scala
@@ -73,7 +73,7 @@
object Main {
val printedName = "wskadmin"
- def main(args: Array[String]) {
+ def main(args: Array[String]): Unit = {
//Parse conf before instantiating actorSystem to ensure fast pre check of config
val conf = new Conf(args)
initLogging(conf)