From 4e835d54832710222d886511012bc0dd55f113b9 Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Thu, 20 Jun 2019 16:19:16 +0100 Subject: [PATCH] CORDA-2333: Updated the majority of the dependencies that were out of date (#5235) Some where not touched, including the crypto ones, libraries related to messaging and Kotlin. --- .idea/compiler.xml | 2 + build.gradle | 41 ++++++++++--------- constants.properties | 10 ++--- core/build.gradle | 4 -- .../core/utilities/EmbeddedExpressionsTest.kt | 15 ------- node/build.gradle | 6 +-- .../corda/node/persistence/H2SecurityTests.kt | 5 ++- .../kotlin/net/corda/node/internal/Node.kt | 6 +-- node/src/main/resources/build.properties | 2 +- samples/irs-demo/build.gradle | 4 +- .../cordapp/contracts-irs/build.gradle | 3 ++ .../testing/node/internal/CustomCordapp.kt | 14 ++++--- .../testing/node/internal/TestCordappImpl.kt | 2 +- .../node/internal/performance/Reporter.kt | 2 +- testing/test-cli/build.gradle | 4 +- tools/demobench/build.gradle | 7 ++-- tools/explorer/build.gradle | 10 ++--- tools/loadtest/build.gradle | 2 +- tools/network-bootstrapper/build.gradle | 3 +- 19 files changed, 64 insertions(+), 78 deletions(-) delete mode 100644 core/src/test/kotlin/net/corda/core/utilities/EmbeddedExpressionsTest.kt diff --git a/.idea/compiler.xml b/.idea/compiler.xml index f4c21d4188..ab8839639e 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -254,6 +254,8 @@ + + diff --git a/build.gradle b/build.gradle index 70b2e6780c..d17dcfdef2 100644 --- a/build.gradle +++ b/build.gradle @@ -40,23 +40,23 @@ buildscript { // We must configure it manually to use the latest capsule version. ext.capsule_version = '1.0.3' - ext.asm_version = '5.0.4' + ext.asm_version = '7.1' ext.artemis_version = '2.6.2' - // upgrade Jackson only when corda is using kotlin 1.3.10 + // TODO Upgrade Jackson only when corda is using kotlin 1.3.10 ext.jackson_version = '2.9.5' - ext.jetty_version = '9.4.18.v20190429' + ext.jetty_version = '9.4.19.v20190610' ext.jersey_version = '2.25' ext.servlet_version = '4.0.1' ext.assertj_version = '3.12.2' - ext.slf4j_version = '1.7.25' - ext.log4j_version = '2.9.1' + ext.slf4j_version = '1.7.26' + ext.log4j_version = '2.11.2' ext.bouncycastle_version = constants.getProperty("bouncycastleVersion") ext.guava_version = constants.getProperty("guavaVersion") ext.caffeine_version = constants.getProperty("caffeineVersion") ext.disruptor_version = constants.getProperty("disruptorVersion") ext.metrics_version = constants.getProperty("metricsVersion") ext.metrics_new_relic_version = constants.getProperty("metricsNewRelicVersion") - ext.okhttp_version = '3.14.1' + ext.okhttp_version = '3.14.2' ext.netty_version = '4.1.22.Final' ext.typesafe_config_version = constants.getProperty("typesafeConfigVersion") ext.fileupload_version = '1.4' @@ -68,27 +68,26 @@ buildscript { ext.junit_vintage_version = '5.5.0-RC1' ext.junit_jupiter_version = '5.5.0-RC1' ext.junit_platform_version = '1.5.0-RC1' - // TODO Update this to the latest version when hibernate is updated - ext.mockito_version = '2.18.3' + ext.mockito_version = '2.28.2' ext.mockito_kotlin_version = '1.6.0' ext.hamkrest_version = '1.7.0.0' ext.jopt_simple_version = '5.0.2' - ext.jansi_version = '1.14' - ext.hibernate_version = '5.3.10.Final' - ext.h2_version = '1.4.197' // Update docs if renamed or removed. + ext.jansi_version = '1.18' + ext.hibernate_version = '5.4.3.Final' + ext.h2_version = '1.4.199' // Update docs if renamed or removed. ext.postgresql_version = '42.2.5' ext.rxjava_version = '1.3.8' - ext.dokka_version = '0.9.17' + ext.dokka_version = '0.9.18' ext.eddsa_version = '0.2.0' ext.dependency_checker_version = '4.0.2' - ext.commons_collections_version = '4.1' + ext.commons_collections_version = '4.3' ext.beanutils_version = '1.9.3' ext.crash_version = '810d2b774b85d4938be01b9b65e29e4fddbc450b' ext.jsr305_version = constants.getProperty("jsr305Version") - ext.shiro_version = '1.4.0' + ext.shiro_version = '1.4.1' ext.artifactory_plugin_version = constants.getProperty('artifactoryPluginVersion') - ext.hikari_version = '2.5.1' - ext.liquibase_version = '3.5.5' + ext.hikari_version = '3.3.1' + ext.liquibase_version = '3.6.3' ext.artifactory_contextUrl = 'https://ci-artifactory.corda.r3cev.com/artifactory' ext.snake_yaml_version = constants.getProperty('snakeYamlVersion') ext.docker_compose_rule_version = '0.35.0' @@ -96,14 +95,16 @@ buildscript { ext.ghostdriver_version = '2.1.0' ext.eaagentloader_version = '1.0.3' ext.proguard_version = constants.getProperty('proguardVersion') - ext.jsch_version = '0.1.54' - ext.commons_cli_version = '1.4' + ext.jsch_version = '0.1.55' ext.protonj_version = '0.33.0' // Overide Artemis version ext.snappy_version = '0.4' - ext.class_graph_version = '4.6.12' + ext.class_graph_version = '4.8.41' ext.jcabi_manifests_version = '1.1' - ext.picocli_version = '3.8.0' + ext.picocli_version = '3.9.6' ext.commons_io_version = '2.6' + ext.controlsfx_version = '8.40.15' + ext.fontawesomefx_commons_version = '8.15' + ext.fontawesomefx_fontawesome_version = '4.7.0-5' // Name of the IntelliJ SDK created for the deterministic Java rt.jar. // ext.deterministic_idea_sdk = '1.8 (Deterministic)' diff --git a/constants.properties b/constants.properties index 380e57db5e..ba22b9948f 100644 --- a/constants.properties +++ b/constants.properties @@ -11,15 +11,15 @@ java8MinUpdateVersion=171 # net.corda.core.internal.CordaUtilsKt.PLATFORM_VERSION as well. # # ***************************************************************# platformVersion=5 -guavaVersion=25.1-jre +guavaVersion=28.0-jre quasarVersion=0.7.10 -proguardVersion=6.0.3 +proguardVersion=6.1.1 bouncycastleVersion=1.60 disruptorVersion=3.4.2 -typesafeConfigVersion=1.3.3 +typesafeConfigVersion=1.3.4 jsr305Version=3.0.2 artifactoryPluginVersion=4.7.3 snakeYamlVersion=1.19 -caffeineVersion=2.6.2 -metricsVersion=3.2.5 +caffeineVersion=2.7.0 +metricsVersion=4.1.0 metricsNewRelicVersion=1.1.1 diff --git a/core/build.gradle b/core/build.gradle index 6479aa08bc..8ba25591a6 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -105,10 +105,6 @@ dependencies { // RxJava: observable streams of events. compile "io.reactivex:rxjava:$rxjava_version" - - // Apache JEXL: An embeddable expression evaluation library. - // This may be temporary until we experiment with other ways to do on-the-fly contract specialisation via an API. - compile "org.apache.commons:commons-jexl3:3.0" compile "org.apache.commons:commons-lang3:3.9" diff --git a/core/src/test/kotlin/net/corda/core/utilities/EmbeddedExpressionsTest.kt b/core/src/test/kotlin/net/corda/core/utilities/EmbeddedExpressionsTest.kt deleted file mode 100644 index d344d5860a..0000000000 --- a/core/src/test/kotlin/net/corda/core/utilities/EmbeddedExpressionsTest.kt +++ /dev/null @@ -1,15 +0,0 @@ -package net.corda.core.utilities - -import org.apache.commons.jexl3.JexlBuilder -import org.apache.commons.jexl3.MapContext -import org.junit.Test -import kotlin.test.assertEquals - -class EmbeddedExpressionsTest { - @Test - fun basic() { - val jexl = JexlBuilder().create() - val result = jexl.createExpression("2 + 2").evaluate(MapContext()) - assertEquals(4, result) - } -} diff --git a/node/build.gradle b/node/build.gradle index 17d715bde9..b28b3df298 100644 --- a/node/build.gradle +++ b/node/build.gradle @@ -90,8 +90,8 @@ dependencies { testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version" // Kryo: object graph serialization. - compile "com.esotericsoftware:kryo:4.0.0" - compile "de.javakaffee:kryo-serializers:0.42" + compile "com.esotericsoftware:kryo:4.0.2" + compile "de.javakaffee:kryo-serializers:0.43" compile "com.google.guava:guava:$guava_version" @@ -120,7 +120,7 @@ dependencies { } // Coda Hale's Metrics: for monitoring of key statistics - compile "io.dropwizard.metrics:metrics-core:$metrics_version" + compile "io.dropwizard.metrics:metrics-jmx:$metrics_version" // JimFS: in memory java.nio filesystem. Used for test and simulation utilities. compile "com.google.jimfs:jimfs:1.1" diff --git a/node/src/integration-test/kotlin/net/corda/node/persistence/H2SecurityTests.kt b/node/src/integration-test/kotlin/net/corda/node/persistence/H2SecurityTests.kt index 5552a36a37..fda850e497 100644 --- a/node/src/integration-test/kotlin/net/corda/node/persistence/H2SecurityTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/persistence/H2SecurityTests.kt @@ -12,6 +12,7 @@ import net.corda.testing.driver.DriverParameters import net.corda.testing.driver.driver import net.corda.testing.driver.internal.incrementalPortAllocation import net.corda.testing.node.User +import org.h2.jdbc.JdbcSQLNonTransientException import org.junit.Test import java.net.InetAddress import java.sql.DriverManager @@ -96,7 +97,7 @@ class H2SecurityTests { val port = getFreePort() startNode(customOverrides = mapOf(h2AddressKey to "localhost:$port", dbPasswordKey to "x")).getOrThrow() DriverManager.getConnection("jdbc:h2:tcp://localhost:$port/node", "sa", "x").use { - assertFailsWith(org.h2.jdbc.JdbcSQLException::class) { + assertFailsWith(JdbcSQLNonTransientException::class) { it.createStatement().execute("CREATE ALIAS SET_PROPERTY FOR \"java.lang.System.setProperty\"") it.createStatement().execute("CALL SET_PROPERTY('abc', '1')") } @@ -116,7 +117,7 @@ class H2SecurityTests { it.proxy.startFlow(::MaliciousFlow).returnValue.getOrThrow() } DriverManager.getConnection("jdbc:h2:tcp://localhost:$port/node", "sa", "x").use { - assertFailsWith(org.h2.jdbc.JdbcSQLException::class) { + assertFailsWith(JdbcSQLNonTransientException::class) { it.createStatement().execute("CREATE ALIAS SET_PROPERTY FOR \"java.lang.System.setProperty\"") it.createStatement().execute("CALL SET_PROPERTY('abc', '1')") } diff --git a/node/src/main/kotlin/net/corda/node/internal/Node.kt b/node/src/main/kotlin/net/corda/node/internal/Node.kt index ddd045b787..675a6f4a01 100644 --- a/node/src/main/kotlin/net/corda/node/internal/Node.kt +++ b/node/src/main/kotlin/net/corda/node/internal/Node.kt @@ -1,8 +1,8 @@ package net.corda.node.internal -import com.codahale.metrics.JmxReporter import com.codahale.metrics.MetricFilter import com.codahale.metrics.MetricRegistry +import com.codahale.metrics.jmx.JmxReporter import com.github.benmanes.caffeine.cache.Caffeine import com.palominolabs.metrics.newrelic.AllEnabledMetricAttributeFilter import com.palominolabs.metrics.newrelic.NewRelicReporter @@ -64,7 +64,7 @@ import net.corda.serialization.internal.* import net.corda.serialization.internal.amqp.SerializationFactoryCacheKey import net.corda.serialization.internal.amqp.SerializerFactory import org.apache.commons.lang3.SystemUtils -import org.h2.jdbc.JdbcSQLException +import org.h2.jdbc.JdbcSQLNonTransientConnectionException import org.slf4j.Logger import org.slf4j.LoggerFactory import rx.Scheduler @@ -405,7 +405,7 @@ open class Node(configuration: NodeConfiguration, runOnStop += server::stop val url = try { server.start().url - } catch (e: JdbcSQLException) { + } catch (e: JdbcSQLNonTransientConnectionException) { if (e.cause is BindException) { throw AddressBindingException(effectiveH2Settings.address) } else { diff --git a/node/src/main/resources/build.properties b/node/src/main/resources/build.properties index 24b2d33977..5fe7182253 100644 --- a/node/src/main/resources/build.properties +++ b/node/src/main/resources/build.properties @@ -2,4 +2,4 @@ # Note: sadly, due to present limitation of IntelliJ-IDEA in processing resource files, these constants cannot be # imported from top-level 'constants.properties' file -jolokiaAgentVersion=1.6.0 +jolokiaAgentVersion=1.6.1 diff --git a/samples/irs-demo/build.gradle b/samples/irs-demo/build.gradle index c05c59a731..a30bcfbbbe 100644 --- a/samples/irs-demo/build.gradle +++ b/samples/irs-demo/build.gradle @@ -1,13 +1,13 @@ buildscript { ext { - springBootVersion = '1.5.10.RELEASE' + springBootVersion = '1.5.21.RELEASE' } repositories { mavenCentral() } dependencies { classpath "org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion" - classpath "io.spring.gradle:dependency-management-plugin:1.0.7.RELEASE" + classpath "io.spring.gradle:dependency-management-plugin:1.0.8.RELEASE" } } diff --git a/samples/irs-demo/cordapp/contracts-irs/build.gradle b/samples/irs-demo/cordapp/contracts-irs/build.gradle index 77e43fef34..35b5dfcfe0 100644 --- a/samples/irs-demo/cordapp/contracts-irs/build.gradle +++ b/samples/irs-demo/cordapp/contracts-irs/build.gradle @@ -8,6 +8,9 @@ dependencies { cordaRuntime project(':node-api') cordapp project(':finance:contracts') + // Apache JEXL: An embeddable expression evaluation library. + compile "org.apache.commons:commons-jexl3:3.1" + compile "com.fasterxml.jackson.core:jackson-annotations:${jackson_version}" testCompile project(':node-driver') diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/CustomCordapp.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/CustomCordapp.kt index 5730468390..e2665e96dc 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/CustomCordapp.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/CustomCordapp.kt @@ -48,13 +48,15 @@ data class CustomCordapp( @VisibleForTesting internal fun packageAsJar(file: Path) { val classGraph = ClassGraph() - classes.forEach { classGraph.addClassLoader(it.classLoader) } - val scanResult = classGraph - .whitelistPackages(*packages.toTypedArray()) - .whitelistClasses(*classes.map { it.name }.toTypedArray()) - .pooledScan() + if (packages.isNotEmpty()) { + classGraph.whitelistPaths(*packages.map { it.replace('.', '/') }.toTypedArray()) + } + if (classes.isNotEmpty()) { + classes.forEach { classGraph.addClassLoader(it.classLoader) } + classGraph.whitelistClasses(*classes.map { it.name }.toTypedArray()) + } - scanResult.use { + classGraph.pooledScan().use { scanResult -> JarOutputStream(file.outputStream()).use { jos -> jos.addEntry(testEntry(JarFile.MANIFEST_NAME)) { createTestManifest(name, versionId, targetPlatformVersion).write(jos) diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/TestCordappImpl.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/TestCordappImpl.kt index 6129a0f127..8ac3bbc428 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/TestCordappImpl.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/TestCordappImpl.kt @@ -54,7 +54,7 @@ data class TestCordappImpl(val scanPackage: String, override val config: Map { return packageToRootPaths.computeIfAbsent(scanPackage) { - val classGraph = ClassGraph().whitelistPackages(scanPackage) + val classGraph = ClassGraph().whitelistPaths(scanPackage.replace('.', '/')) classGraph.pooledScan().use { it.allResources .asSequence() diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/performance/Reporter.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/performance/Reporter.kt index cbd6cd5a00..a98bd635e4 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/performance/Reporter.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/performance/Reporter.kt @@ -1,8 +1,8 @@ package net.corda.testing.node.internal.performance import com.codahale.metrics.ConsoleReporter -import com.codahale.metrics.JmxReporter import com.codahale.metrics.MetricRegistry +import com.codahale.metrics.jmx.JmxReporter import net.corda.testing.node.internal.ShutdownManager import java.util.concurrent.TimeUnit import javax.management.ObjectName diff --git a/testing/test-cli/build.gradle b/testing/test-cli/build.gradle index c79b4c3eef..7b4ba684d3 100644 --- a/testing/test-cli/build.gradle +++ b/testing/test-cli/build.gradle @@ -4,8 +4,8 @@ apply plugin: 'kotlin' dependencies { compile "info.picocli:picocli:$picocli_version" compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - compile group: "com.fasterxml.jackson.dataformat", name: "jackson-dataformat-yaml", version: "2.9.0" - compile group: "com.fasterxml.jackson.core", name: "jackson-databind", version: "2.9.0" + compile "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jackson_version" + compile "com.fasterxml.jackson.core:jackson-databind:$jackson_version" compile "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.+" compile "org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}" diff --git a/tools/demobench/build.gradle b/tools/demobench/build.gradle index 3f9be21b8c..522d285080 100644 --- a/tools/demobench/build.gradle +++ b/tools/demobench/build.gradle @@ -1,8 +1,7 @@ ext { tornadofx_version = '1.7.15' - jna_version = '4.1.0' + jna_version = '4.5.2' purejavacomm_version = '0.0.18' - controlsfx_version = '8.40.12' java_home = System.properties.'java.home' pkg_source = "$buildDir/packagesrc" @@ -65,8 +64,8 @@ dependencies { compile "com.typesafe:config:$typesafe_config_version" // FontAwesomeFX: icons in the form of a font. - compile "de.jensd:fontawesomefx-fontawesome:4.7.0-5" - compile 'de.jensd:fontawesomefx-commons:8.15' + compile "de.jensd:fontawesomefx-fontawesome:$fontawesomefx_fontawesome_version" + compile "de.jensd:fontawesomefx-commons:$fontawesomefx_commons_version" // JediTerm: the terminal emulator used in IntelliJ. We have forked it and tweaked it, see https://github.com/corda/jediterm compile ':terminal-331a005d6793e52cefc9e2cec6774e62d5a546b1' diff --git a/tools/explorer/build.gradle b/tools/explorer/build.gradle index 806613af6e..1d4a9b6f46 100644 --- a/tools/explorer/build.gradle +++ b/tools/explorer/build.gradle @@ -34,22 +34,20 @@ dependencies { compileOnly "co.paralleluniverse:capsule:$capsule_version" // FontAwesomeFX: The "FontAwesome" icon library. - compile 'de.jensd:fontawesomefx-fontawesome:4.7.0' - compile 'de.jensd:fontawesomefx-commons:8.13' + compile "de.jensd:fontawesomefx-fontawesome:$fontawesomefx_fontawesome_version" + compile "de.jensd:fontawesomefx-commons:$fontawesomefx_commons_version" // ReactFX: Functional reactive UI programming. compile 'org.reactfx:reactfx:2.0-M5' compile 'org.fxmisc.easybind:easybind:1.0.3' - // JFXtras: useful widgets including a calendar control. - compile 'org.jfxtras:jfxtras-agenda:8.0-r5' - compile 'org.jfxtras:jfxtras-font-roboto:8.0-r5' + compile 'org.jfxtras:jfxtras-font-roboto:8.0-r6' // Humanize: formatting compile 'com.github.mfornos:humanize-icu:1.2.2' // Controls FX: more java FX components http://fxexperience.com/controlsfx/ - compile 'org.controlsfx:controlsfx:8.40.12' + compile "org.controlsfx:controlsfx:$controlsfx_version" // This provide com.apple.eawt stub for non-mac system. compile 'com.yuvimasory:orange-extensions:1.3.0' diff --git a/tools/loadtest/build.gradle b/tools/loadtest/build.gradle index 00480419c0..c55a2e2692 100644 --- a/tools/loadtest/build.gradle +++ b/tools/loadtest/build.gradle @@ -9,7 +9,7 @@ dependencies { compile project(':node-driver') // https://mvnrepository.com/artifact/com.jcraft/jsch - compile group: 'com.jcraft', name: 'jsch', version: '0.1.54' + compile "com.jcraft:jsch:$jsch_version" compile group: 'com.jcraft', name: 'jsch.agentproxy.core', version: '0.0.9' compile group: 'com.jcraft', name: 'jsch.agentproxy.sshagent', version: '0.0.9' compile group: 'com.jcraft', name: 'jsch.agentproxy.usocket-jna', version: '0.0.9' diff --git a/tools/network-bootstrapper/build.gradle b/tools/network-bootstrapper/build.gradle index 316be6e723..963ed2bdb8 100644 --- a/tools/network-bootstrapper/build.gradle +++ b/tools/network-bootstrapper/build.gradle @@ -1,6 +1,5 @@ ext { tornadofx_version = '1.7.15' - controlsfx_version = '8.40.12' } apply plugin: 'kotlin' @@ -23,7 +22,7 @@ configurations { } dependencies { - compile "com.microsoft.azure:azure:1.8.0" + compile "com.microsoft.azure:azure:1.22.0" compile "com.github.docker-java:docker-java:3.0.6" testCompile "org.jetbrains.kotlin:kotlin-test"