markusthoemmes closed pull request #2627: Bumping Scala dependencies and clean
up dependency usage.
URL: https://github.com/apache/incubator-openwhisk/pull/2627
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/build.gradle b/build.gradle
index 135c13b792..05aba2771d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,6 +4,7 @@ buildscript {
}
dependencies {
classpath "cz.alenkacz:gradle-scalafmt:${gradle.scalafmt.version}"
+ classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.2.1'
}
}
@@ -37,3 +38,7 @@ def configureUnixClasspath(File script) {
}
.join('\n')
}
+
+allprojects {
+ apply plugin: 'ca.cutterslade.analyze'
+}
diff --git a/common/scala/build.gradle b/common/scala/build.gradle
index 2c04731bbf..31fe20ebd4 100644
--- a/common/scala/build.gradle
+++ b/common/scala/build.gradle
@@ -9,37 +9,53 @@ repositories {
}
dependencies {
- compile "org.scala-lang:scala-library:${gradle.scala.version}"
-
- compile 'com.github.pureconfig:pureconfig_2.11:0.7.2'
- compile 'io.spray:spray-json_2.11:1.3.3'
-
- compile 'com.typesafe.akka:akka-actor_2.11:2.5.6'
- compile 'com.typesafe.akka:akka-stream_2.11:2.5.6'
- compile 'com.typesafe.akka:akka-slf4j_2.11:2.5.6'
-
- compile 'com.typesafe.akka:akka-http-core_2.11:10.0.10'
- compile 'com.typesafe.akka:akka-http-spray-json_2.11:10.0.10'
-
- compile 'com.lightbend.akka:akka-stream-alpakka-file_2.11:0.15'
-
- compile 'ch.qos.logback:logback-classic:1.2.3'
- compile 'org.slf4j:jcl-over-slf4j:1.7.25'
- compile 'org.slf4j:log4j-over-slf4j:1.7.25'
- compile 'commons-codec:commons-codec:1.9'
+ /**
+ * Scala Dependencies
+ */
+ compile
"org.scala-lang:scala-library:${gradle.scala.major}.${gradle.scala.minor}.${gradle.scala.patch}"
+
+ // Runtime logging
+ permitUnusedDeclared
"com.typesafe.akka:akka-slf4j_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ runtime 'ch.qos.logback:logback-classic:1.2.3'
+ runtime 'org.slf4j:jcl-over-slf4j:1.7.25'
+ runtime 'org.slf4j:log4j-over-slf4j:1.7.25'
+
+ // Configuration
+ compile 'com.typesafe:config:1.3.2'
+ compile
"com.github.pureconfig:pureconfig_${gradle.scala.major}.${gradle.scala.minor}:0.7.2"
+
+ // Akka
+ compile
"com.typesafe.akka:akka-actor_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ compile
"com.typesafe.akka:akka-stream_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ compile
"com.typesafe.akka:akka-slf4j_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+
+ // Akka HTTP
+ compile
"com.typesafe.akka:akka-http_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"com.typesafe.akka:akka-http-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"com.typesafe.akka:akka-http-spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"io.spray:spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.spray_json.version}"
+ compile
"com.chuusai:shapeless_${gradle.scala.major}.${gradle.scala.minor}:${gradle.shapeless.version}"
+
+ compile
"com.lightbend.akka:akka-stream-alpakka-file_${gradle.scala.major}.${gradle.scala.minor}:0.15"
+
+ // Kamon
+ compile
"io.kamon:kamon-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.kamon.version}"
+ runtime
"io.kamon:kamon-statsd_${gradle.scala.major}.${gradle.scala.minor}:${gradle.kamon.version}"
+
+ /**
+ * Java Dependencies
+ */
compile 'commons-io:commons-io:2.4'
- compile 'commons-collections:commons-collections:3.2.2'
- compile 'org.apache.kafka:kafka-clients:0.11.0.1'
- compile ('org.apache.httpcomponents:httpclient:4.4.1') {
+ compile 'org.apache.commons:commons-collections4:4.1'
+ compile "org.apache.kafka:kafka-clients:${gradle.kafka.version}"
+ compile 'org.apache.httpcomponents:httpcore:4.4.4'
+ compile ('org.apache.httpcomponents:httpclient:4.5.2') {
exclude group: 'commons-logging'
}
compile ('com.fasterxml.uuid:java-uuid-generator:3.1.3') {
exclude group: 'log4j'
}
compile 'com.github.ben-manes.caffeine:caffeine:2.4.0'
- compile 'com.google.code.findbugs:jsr305:3.0.2'
- compile 'io.kamon:kamon-core_2.11:0.6.7'
- compile 'io.kamon:kamon-statsd_2.11:0.6.7'
}
tasks.withType(ScalaCompile) {
diff --git a/common/scala/src/main/scala/whisk/common/RingBuffer.scala
b/common/scala/src/main/scala/whisk/common/RingBuffer.scala
index 4f5a6c789e..a81db8c332 100644
--- a/common/scala/src/main/scala/whisk/common/RingBuffer.scala
+++ b/common/scala/src/main/scala/whisk/common/RingBuffer.scala
@@ -17,16 +17,16 @@
package whisk.common
-import org.apache.commons.collections.buffer.CircularFifoBuffer
+import org.apache.commons.collections4.queue.CircularFifoQueue
object RingBuffer {
def apply[T](size: Int) = new RingBuffer[T](size)
}
class RingBuffer[T](size: Int) {
- private val inner = new CircularFifoBuffer(size)
+ private val inner = new CircularFifoQueue[T](size)
- def add(el: T) = inner.add(el)
+ def add(el: T) = inner.offer(el)
def toList() = inner.toArray().asInstanceOf[Array[T]].toList
}
diff --git a/common/scala/src/main/scala/whisk/core/entity/ArgNormalizer.scala
b/common/scala/src/main/scala/whisk/core/entity/ArgNormalizer.scala
index 66676397f3..5dd6536dbb 100644
--- a/common/scala/src/main/scala/whisk/core/entity/ArgNormalizer.scala
+++ b/common/scala/src/main/scala/whisk/core/entity/ArgNormalizer.scala
@@ -17,9 +17,7 @@
package whisk.core.entity
-import spray.json.RootJsonFormat
-import spray.json.pimpString
-import spray.json.JsString
+import spray.json._
import scala.util.Try
protected[entity] trait ArgNormalizer[T] {
diff --git a/core/controller/build.gradle b/core/controller/build.gradle
index 45aba6d7fc..b5bbb0980d 100644
--- a/core/controller/build.gradle
+++ b/core/controller/build.gradle
@@ -11,9 +11,35 @@ repositories {
}
dependencies {
- compile 'com.typesafe.akka:akka-distributed-data_2.11:2.5.4'
- compile "org.scala-lang:scala-library:${gradle.scala.version}"
+ /**
+ * Scala Dependencies
+ */
+ compile
"org.scala-lang:scala-library:${gradle.scala.major}.${gradle.scala.minor}.${gradle.scala.patch}"
compile project(':common:scala')
+
+ // Configuration
+ compile
"com.github.pureconfig:pureconfig_${gradle.scala.major}.${gradle.scala.minor}:0.7.2"
+
+ // Akka
+ compile
"com.typesafe.akka:akka-actor_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ compile
"com.typesafe.akka:akka-stream_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ compile
"com.typesafe.akka:akka-cluster_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ compile
"com.typesafe.akka:akka-distributed-data_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+
+ // Akka HTTP
+ compile
"com.typesafe.akka:akka-http_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"com.typesafe.akka:akka-http-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"com.typesafe.akka:akka-http-spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"io.spray:spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.spray_json.version}"
+ compile
"com.chuusai:shapeless_${gradle.scala.major}.${gradle.scala.minor}:${gradle.shapeless.version}"
+
+ // Kamon
+ compile
"io.kamon:kamon-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.kamon.version}"
+
+ /**
+ * Java Dependencies
+ */
+ compile "org.apache.kafka:kafka-clients:${gradle.kafka.version}"
}
tasks.withType(ScalaCompile) {
diff --git a/core/invoker/build.gradle b/core/invoker/build.gradle
index 4a9ceff902..0c866f7a8e 100644
--- a/core/invoker/build.gradle
+++ b/core/invoker/build.gradle
@@ -10,11 +10,42 @@ repositories {
mavenCentral()
}
+analyzeClassesDependencies {
+ justWarn = true
+}
+
dependencies {
- compile "org.scala-lang:scala-library:${gradle.scala.version}"
+ /**
+ * Scala Dependencies
+ */
+ compile
"org.scala-lang:scala-library:${gradle.scala.major}.${gradle.scala.minor}.${gradle.scala.patch}"
compile project(':common:scala')
+ // Configuration
+ compile
"com.github.pureconfig:pureconfig_${gradle.scala.major}.${gradle.scala.minor}:0.7.2"
+
+ // Akka
+ compile
"com.typesafe.akka:akka-actor_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ compile
"com.typesafe.akka:akka-stream_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+
+ // Akka HTTP
+ compile
"com.typesafe.akka:akka-http_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"com.typesafe.akka:akka-http-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ compile
"io.spray:spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.spray_json.version}"
+ compile
"com.chuusai:shapeless_${gradle.scala.major}.${gradle.scala.minor}:${gradle.shapeless.version}"
+
+ compile
"com.lightbend.akka:akka-stream-alpakka-file_${gradle.scala.major}.${gradle.scala.minor}:0.15"
+
+ // Kamon
+ compile
"io.kamon:kamon-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.kamon.version}"
+
+ /**
+ * Java Dependencies
+ */
+ compile "org.apache.kafka:kafka-clients:${gradle.kafka.version}"
compile 'org.apache.curator:curator-recipes:4.0.0', { exclude group:
'org.apache.zookeeper', module:'zookeeper' }
+ compile 'org.apache.curator:curator-framework:4.0.0', { exclude group:
'org.apache.zookeeper', module:'zookeeper' }
+ compile 'org.apache.curator:curator-client:4.0.0', { exclude group:
'org.apache.zookeeper', module:'zookeeper' }
compile 'org.apache.zookeeper:zookeeper:3.4.11'
}
diff --git a/settings.gradle b/settings.gradle
index 57c899386a..1b812855ab 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -19,12 +19,21 @@ include 'tests:dat:blackbox:badproxy'
rootProject.name = 'openwhisk'
-gradle.ext.scala = [
- version: '2.11.11',
- compileFlags: ['-feature', '-unchecked', '-deprecation',
'-Xfatal-warnings', '-Ywarn-unused-import']
-]
-
gradle.ext.scalafmt = [
version: '1.5.0',
config: new File(rootProject.projectDir, '.scalafmt.conf')
]
+
+gradle.ext.scala = [
+ major: 2,
+ minor: 11,
+ patch: 12,
+ compileFlags: ['-feature', '-unchecked', '-deprecation',
'-Xfatal-warnings', '-Ywarn-unused-import']
+]
+gradle.ext.akka = [version: '2.5.8']
+gradle.ext.akka_http = [version: '10.0.10']
+gradle.ext.kafka = [version: '0.11.0.1']
+gradle.ext.spray_json = [version: '1.3.3']
+
+gradle.ext.kamon = [version: '0.6.7']
+gradle.ext.shapeless = [version: '2.3.2']
diff --git a/tests/build.gradle b/tests/build.gradle
index 2aa602ac1f..aebf2c1cff 100644
--- a/tests/build.gradle
+++ b/tests/build.gradle
@@ -6,6 +6,10 @@ repositories {
mavenCentral()
}
+analyzeTestClassesDependencies {
+ justWarn = true
+}
+
tasks.withType(Test) {
systemProperties(System.getProperties())
@@ -51,23 +55,43 @@ test.dependsOn([
])
dependencies {
- compile "org.scala-lang:scala-library:${gradle.scala.version}"
- compile 'org.apache.commons:commons-lang3:3.3.2'
- compile 'org.apache.httpcomponents:httpclient:4.5.2:tests'
- 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.4'
- 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-testkit_2.11:2.4.16'
- compile 'com.typesafe.akka:akka-http-testkit_2.11:10.0.10'
- compile 'com.github.java-json-tools:json-schema-validator:2.2.8';
-
- compile project(':common:scala')
- compile project(':core:controller')
- compile project(':core:invoker')
+ testCompile
"org.scala-lang:scala-library:${gradle.scala.major}.${gradle.scala.minor}.${gradle.scala.patch}"
+ testCompile project(':common:scala')
+ testCompile project(':core:controller')
+ testCompile project(':core:invoker')
+
+ testCompile
"io.spray:spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.spray_json.version}"
+
+ testCompile
"com.typesafe.akka:akka-actor_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ testCompile
"com.typesafe.akka:akka-stream_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ testCompile
"com.typesafe.akka:akka-http_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ testCompile
"com.typesafe.akka:akka-http-core_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+ testCompile
"com.typesafe.akka:akka-http-spray-json_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+
+ testCompile "org.apache.kafka:kafka-clients:${gradle.kafka.version}"
+
+ testCompile 'junit:junit:4.11'
+ testCompile
"org.scalatest:scalatest_${gradle.scala.major}.${gradle.scala.minor}:3.0.1"
+ testCompile
"org.scalactic:scalactic_${gradle.scala.major}.${gradle.scala.minor}:3.0.1"
+ testCompile
"org.scalamock:scalamock-core_${gradle.scala.major}.${gradle.scala.minor}:3.4.2"
+ testCompile
"org.scalamock:scalamock-scalatest-support_${gradle.scala.major}.${gradle.scala.minor}:3.4.2"
+ testCompile
"com.typesafe.akka:akka-testkit_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka.version}"
+ testCompile
"com.typesafe.akka:akka-http-testkit_${gradle.scala.major}.${gradle.scala.minor}:${gradle.akka_http.version}"
+
+ testCompile 'com.typesafe:config:1.3.1'
+ testCompile
"com.typesafe:ssl-config-core_${gradle.scala.major}.${gradle.scala.minor}:0.2.2"
+
+ testCompile 'org.apache.httpcomponents:httpcore:4.4.6'
+ testCompile 'commons-io:commons-io:2.4'
+ testCompile "org.apache.kafka:kafka-clients:${gradle.kafka.version}"
+
+ testCompile 'org.apache.commons:commons-lang3:3.3.2'
+ testCompile 'org.apache.httpcomponents:httpclient:4.5.2:tests'
+ testCompile 'com.jayway.restassured:rest-assured:2.6.0'
+ testCompile 'com.google.code.gson:gson:2.3.1'
+ testCompile 'com.fasterxml.jackson.core:jackson-databind:2.2.3'
+ testCompile 'com.github.java-json-tools:json-schema-core:1.2.8'
+ testCompile 'com.github.java-json-tools:json-schema-validator:2.2.8'
}
tasks.withType(ScalaCompile) {
diff --git
a/tests/src/test/scala/whisk/core/connector/test/MessageFeedTests.scala
b/tests/src/test/scala/whisk/core/connector/test/MessageFeedTests.scala
index b240eddf8a..b7b1d0ffc6 100644
--- a/tests/src/test/scala/whisk/core/connector/test/MessageFeedTests.scala
+++ b/tests/src/test/scala/whisk/core/connector/test/MessageFeedTests.scala
@@ -145,7 +145,7 @@ class MessageFeedTests
connector.expectMsg(Transition(connector.fsm, FillingPipeline,
DrainingPipeline))
connector.peekCount.get shouldBe peeks
- connector.expectNoMsg(500.milliseconds)
+ connector.expectNoMessage(500.milliseconds)
}
it should "transition from drain to fill mode" in {
@@ -162,7 +162,7 @@ class MessageFeedTests
// stay in drain mode, no more peeking
timeout(connector.fsm) // should be ignored
- connector.expectNoMsg(500.milliseconds)
+ connector.expectNoMessage(500.milliseconds)
connector.peekCount.get shouldBe peeks // no new reads
// expecting overflow of 2 in the queue, which is true if all expected
messages were sent
@@ -170,7 +170,7 @@ class MessageFeedTests
// drain one, should stay in draining state
connector.fsm ! Processed
- connector.expectNoMsg(500.milliseconds)
+ connector.expectNoMessage(500.milliseconds)
connector.peekCount.get shouldBe peeks // no new reads
// back to fill mode
@@ -182,6 +182,6 @@ class MessageFeedTests
connector.fill(1)
connector.expectMsg(Transition(connector.fsm, FillingPipeline,
DrainingPipeline))
- connector.expectNoMsg(500.milliseconds)
+ connector.expectNoMessage(500.milliseconds)
}
}
diff --git
a/tests/src/test/scala/whisk/core/containerpool/test/ContainerPoolTests.scala
b/tests/src/test/scala/whisk/core/containerpool/test/ContainerPoolTests.scala
index 0b531033d1..7e29d1d94d 100644
---
a/tests/src/test/scala/whisk/core/containerpool/test/ContainerPoolTests.scala
+++
b/tests/src/test/scala/whisk/core/containerpool/test/ContainerPoolTests.scala
@@ -131,7 +131,7 @@ class ContainerPoolTests
pool ! runMessage
containers(0).expectMsg(runMessage)
- containers(1).expectNoMsg(100.milliseconds)
+ containers(1).expectNoMessage(100.milliseconds)
}
it should "reuse a warm container when action is the same even if revision
changes" in within(timeout) {
@@ -145,7 +145,7 @@ class ContainerPoolTests
pool ! runMessageDifferentVersion
containers(0).expectMsg(runMessageDifferentVersion)
- containers(1).expectNoMsg(100.milliseconds)
+ containers(1).expectNoMessage(100.milliseconds)
}
it should "create a container if it cannot find a matching container" in
within(timeout) {
@@ -227,7 +227,7 @@ class ContainerPoolTests
containers(0).expectMsg(runMessage)
containers(0).send(pool, RescheduleJob) // emulate container failure ...
containers(0).send(pool, runMessage) // ... causing job to be rescheduled
- feed.expectNoMsg(100.millis)
+ feed.expectNoMessage(100.millis)
containers(1).expectMsg(runMessage) // job resent to new actor
}
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
index 4870acb72a..1f98c5c33f 100755
--- a/tools/travis/build.sh
+++ b/tools/travis/build.sh
@@ -14,9 +14,9 @@ git clone
https://github.com/apache/incubator-openwhisk-utilities.git
# run the scancode util. against project source code starting at its root
incubator-openwhisk-utilities/scancode/scanCode.py $ROOTDIR --config
$ROOTDIR/tools/build/scanCode.cfg
-# run scalafmt checks
+# run static code checks
cd $ROOTDIR
-TERM=dumb ./gradlew checkScalafmtAll
+TERM=dumb ./gradlew checkScalafmtAll analyzeDependencies
cd $ROOTDIR/ansible
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services