From 52ea54f74299f275996829bcf9398fbe7a22d32f Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Fri, 24 Mar 2017 11:22:53 +0000 Subject: [PATCH] Upgraded both guava and guava-testlib to 21.0 and made sure they share the same version variable --- build.gradle | 8 +-- buildSrc/build.gradle | 10 +++- publish.properties => constants.properties | 1 + .../corda/core/utilities/NonEmptySetTest.kt | 6 +- gradle-plugins/build.gradle | 6 +- gradle-plugins/publish-utils/build.gradle | 7 +-- .../node/utilities/JDBCHashMapTestSuite.kt | 57 ++++++++++++------- .../net/corda/node/utilities/JDBCHashMap.kt | 1 + test-utils/build.gradle | 2 +- 9 files changed, 58 insertions(+), 40 deletions(-) rename publish.properties => constants.properties (62%) diff --git a/build.gradle b/build.gradle index 85211e7cff..ffc6109037 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ buildscript { // For sharing constants between builds - Properties props = new Properties() - file("publish.properties").withInputStream { props.load(it) } + Properties constants = new Properties() + file("constants.properties").withInputStream { constants.load(it) } // Our version: bump this on release. ext.corda_version = "0.10-SNAPSHOT" - ext.gradle_plugins_version = props.getProperty("gradlePluginsVersion") + ext.gradle_plugins_version = constants.getProperty("gradlePluginsVersion") // Dependency versions. Can run 'gradle dependencyUpdates' to find new versions of things. // @@ -22,7 +22,7 @@ buildscript { ext.slf4j_version = '1.7.24' ext.log4j_version = '2.7' ext.bouncycastle_version = '1.56' - ext.guava_version = '19.0' + ext.guava_version = constants.getProperty("guavaVersion") ext.quickcheck_version = '0.7' ext.okhttp_version = '3.5.0' ext.netty_version = '4.1.5.Final' diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index fb34bb0911..bd4f497c0b 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -1,3 +1,10 @@ +buildscript { + Properties constants = new Properties() + file("../constants.properties").withInputStream { constants.load(it) } + + ext.guava_version = constants.getProperty("guavaVersion") +} + apply plugin: 'maven' repositories { @@ -5,6 +12,5 @@ repositories { } dependencies { - // Cannot use ext.guava_version here :( - compile "com.google.guava:guava:20.0" + compile "com.google.guava:guava:$guava_version" } diff --git a/publish.properties b/constants.properties similarity index 62% rename from publish.properties rename to constants.properties index 7b15069c1f..305d4edf02 100644 --- a/publish.properties +++ b/constants.properties @@ -1 +1,2 @@ gradlePluginsVersion=0.10.2 +guavaVersion=21.0 \ No newline at end of file diff --git a/core/src/test/kotlin/net/corda/core/utilities/NonEmptySetTest.kt b/core/src/test/kotlin/net/corda/core/utilities/NonEmptySetTest.kt index fc2232e019..6a086b39ba 100644 --- a/core/src/test/kotlin/net/corda/core/utilities/NonEmptySetTest.kt +++ b/core/src/test/kotlin/net/corda/core/utilities/NonEmptySetTest.kt @@ -4,10 +4,7 @@ import com.google.common.collect.testing.SetTestSuiteBuilder import com.google.common.collect.testing.TestIntegerSetGenerator import com.google.common.collect.testing.features.CollectionFeature import com.google.common.collect.testing.features.CollectionSize -import com.google.common.collect.testing.testers.CollectionAddAllTester -import com.google.common.collect.testing.testers.CollectionClearTester -import com.google.common.collect.testing.testers.CollectionRemoveAllTester -import com.google.common.collect.testing.testers.CollectionRetainAllTester +import com.google.common.collect.testing.testers.* import junit.framework.TestSuite import net.corda.core.serialization.deserialize import net.corda.core.serialization.serialize @@ -45,6 +42,7 @@ class NonEmptySetTest { .suppressing(CollectionRemoveAllTester::class.java.getMethod("testRemoveAll_nullCollectionReferenceNonEmptySubject")) .suppressing(CollectionClearTester::class.java.methods.toList()) .suppressing(CollectionRetainAllTester::class.java.methods.toList()) + .suppressing(CollectionRemoveIfTester::class.java.getMethod("testRemoveIf_allPresent")) .createTestSuite() } diff --git a/gradle-plugins/build.gradle b/gradle-plugins/build.gradle index ec25663802..59eabc9f26 100644 --- a/gradle-plugins/build.gradle +++ b/gradle-plugins/build.gradle @@ -3,11 +3,11 @@ buildscript { // For sharing constants between builds - Properties props = new Properties() - file("../publish.properties").withInputStream { props.load(it) } + Properties constants = new Properties() + file("../constants.properties").withInputStream { constants.load(it) } // If you bump this version you must re-bootstrap the codebase. See the README for more information. - ext.gradle_plugins_version = props.getProperty("gradlePluginsVersion") + ext.gradle_plugins_version = constants.getProperty("gradlePluginsVersion") repositories { mavenLocal() diff --git a/gradle-plugins/publish-utils/build.gradle b/gradle-plugins/publish-utils/build.gradle index 733de1bbee..fa302b9dc3 100644 --- a/gradle-plugins/publish-utils/build.gradle +++ b/gradle-plugins/publish-utils/build.gradle @@ -4,11 +4,10 @@ apply plugin: 'com.jfrog.bintray' // Used for bootstrapping project buildscript { - // For sharing constants between builds - Properties props = new Properties() - file("../../publish.properties").withInputStream { props.load(it) } + Properties constants = new Properties() + file("../../constants.properties").withInputStream { constants.load(it) } - ext.gradle_plugins_version = props.getProperty("gradlePluginsVersion") + ext.gradle_plugins_version = constants.getProperty("gradlePluginsVersion") repositories { jcenter() diff --git a/node/src/integration-test/kotlin/net/corda/node/utilities/JDBCHashMapTestSuite.kt b/node/src/integration-test/kotlin/net/corda/node/utilities/JDBCHashMapTestSuite.kt index 348e62d59b..7d6f5b0cf6 100644 --- a/node/src/integration-test/kotlin/net/corda/node/utilities/JDBCHashMapTestSuite.kt +++ b/node/src/integration-test/kotlin/net/corda/node/utilities/JDBCHashMapTestSuite.kt @@ -1,5 +1,14 @@ package net.corda.node.utilities +import com.google.common.collect.testing.MapTestSuiteBuilder +import com.google.common.collect.testing.SetTestSuiteBuilder +import com.google.common.collect.testing.TestStringMapGenerator +import com.google.common.collect.testing.TestStringSetGenerator +import com.google.common.collect.testing.features.CollectionFeature +import com.google.common.collect.testing.features.CollectionSize +import com.google.common.collect.testing.features.MapFeature +import com.google.common.collect.testing.features.SetFeature +import com.google.common.collect.testing.testers.* import junit.framework.TestSuite import net.corda.testing.node.makeTestDataSourceProperties import org.assertj.core.api.Assertions.assertThat @@ -56,39 +65,43 @@ class JDBCHashMapTestSuite { } @JvmStatic - fun createMapTestSuite(loadOnInit: Boolean, constrained: Boolean): TestSuite = com.google.common.collect.testing.MapTestSuiteBuilder + fun createMapTestSuite(loadOnInit: Boolean, constrained: Boolean): TestSuite = MapTestSuiteBuilder .using(JDBCHashMapTestGenerator(loadOnInit = loadOnInit, constrained = constrained)) .named("test JDBCHashMap with loadOnInit=$loadOnInit") .withFeatures( - com.google.common.collect.testing.features.CollectionSize.ANY, - com.google.common.collect.testing.features.MapFeature.ALLOWS_ANY_NULL_QUERIES, - com.google.common.collect.testing.features.MapFeature.GENERAL_PURPOSE, - com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ITERATOR_REMOVE, - com.google.common.collect.testing.features.CollectionFeature.KNOWN_ORDER + CollectionSize.ANY, + MapFeature.ALLOWS_ANY_NULL_QUERIES, + MapFeature.GENERAL_PURPOSE, + CollectionFeature.SUPPORTS_ITERATOR_REMOVE, + CollectionFeature.KNOWN_ORDER ) // putAll(null) not supported by Kotlin MutableMap interface - .suppressing(com.google.common.collect.testing.testers.MapPutAllTester::class.java.getMethod("testPutAll_nullCollectionReference")) + .suppressing(MapPutAllTester::class.java.getMethod("testPutAll_nullCollectionReference")) + // We suppress the following because of NotReallyMutableEntry + .suppressing(MapReplaceAllTester::class.java.getMethod("testReplaceAllPreservesOrder")) + .suppressing(MapReplaceAllTester::class.java.getMethod("testReplaceAllRotate")) + .suppressing(MapEntrySetTester::class.java.getMethod("testSetValue")) .createTestSuite() @JvmStatic - fun createSetTestSuite(loadOnInit: Boolean, constrained: Boolean): TestSuite = com.google.common.collect.testing.SetTestSuiteBuilder + fun createSetTestSuite(loadOnInit: Boolean, constrained: Boolean): TestSuite = SetTestSuiteBuilder .using(JDBCHashSetTestGenerator(loadOnInit = loadOnInit, constrained = constrained)) .named("test JDBCHashSet with loadOnInit=$loadOnInit") .withFeatures( - com.google.common.collect.testing.features.CollectionSize.ANY, - com.google.common.collect.testing.features.SetFeature.GENERAL_PURPOSE, - com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ITERATOR_REMOVE, - com.google.common.collect.testing.features.CollectionFeature.KNOWN_ORDER + CollectionSize.ANY, + SetFeature.GENERAL_PURPOSE, + CollectionFeature.SUPPORTS_ITERATOR_REMOVE, + CollectionFeature.KNOWN_ORDER ) // add/remove/retainAll(null) not supported by Kotlin MutableSet interface - .suppressing(com.google.common.collect.testing.testers.CollectionAddAllTester::class.java.getMethod("testAddAll_nullCollectionReference")) - .suppressing(com.google.common.collect.testing.testers.CollectionAddAllTester::class.java.getMethod("testAddAll_nullUnsupported")) - .suppressing(com.google.common.collect.testing.testers.CollectionAddTester::class.java.getMethod("testAdd_nullUnsupported")) - .suppressing(com.google.common.collect.testing.testers.CollectionCreationTester::class.java.getMethod("testCreateWithNull_unsupported")) - .suppressing(com.google.common.collect.testing.testers.CollectionRemoveAllTester::class.java.getMethod("testRemoveAll_nullCollectionReferenceNonEmptySubject")) - .suppressing(com.google.common.collect.testing.testers.CollectionRemoveAllTester::class.java.getMethod("testRemoveAll_nullCollectionReferenceEmptySubject")) - .suppressing(com.google.common.collect.testing.testers.CollectionRetainAllTester::class.java.getMethod("testRetainAll_nullCollectionReferenceNonEmptySubject")) - .suppressing(com.google.common.collect.testing.testers.CollectionRetainAllTester::class.java.getMethod("testRetainAll_nullCollectionReferenceEmptySubject")) + .suppressing(CollectionAddAllTester::class.java.getMethod("testAddAll_nullCollectionReference")) + .suppressing(CollectionAddAllTester::class.java.getMethod("testAddAll_nullUnsupported")) + .suppressing(CollectionAddTester::class.java.getMethod("testAdd_nullUnsupported")) + .suppressing(CollectionCreationTester::class.java.getMethod("testCreateWithNull_unsupported")) + .suppressing(CollectionRemoveAllTester::class.java.getMethod("testRemoveAll_nullCollectionReferenceNonEmptySubject")) + .suppressing(CollectionRemoveAllTester::class.java.getMethod("testRemoveAll_nullCollectionReferenceEmptySubject")) + .suppressing(CollectionRetainAllTester::class.java.getMethod("testRetainAll_nullCollectionReferenceNonEmptySubject")) + .suppressing(CollectionRetainAllTester::class.java.getMethod("testRetainAll_nullCollectionReferenceEmptySubject")) .createTestSuite() private fun setUpDatabaseTx() { @@ -134,7 +147,7 @@ class JDBCHashMapTestSuite { /** * Generator of map instances needed for testing. */ - class JDBCHashMapTestGenerator(val loadOnInit: Boolean, val constrained: Boolean) : com.google.common.collect.testing.TestStringMapGenerator() { + class JDBCHashMapTestGenerator(val loadOnInit: Boolean, val constrained: Boolean) : TestStringMapGenerator() { override fun create(elements: Array>): Map { val map = if (loadOnInit) loadOnInitTrueMap else if (constrained) memoryConstrainedMap else loadOnInitFalseMap map.clear() @@ -176,7 +189,7 @@ class JDBCHashMapTestSuite { /** * Generator of set instances needed for testing. */ - class JDBCHashSetTestGenerator(val loadOnInit: Boolean, val constrained: Boolean) : com.google.common.collect.testing.TestStringSetGenerator() { + class JDBCHashSetTestGenerator(val loadOnInit: Boolean, val constrained: Boolean) : TestStringSetGenerator() { override fun create(elements: Array): Set { val set = if (loadOnInit) loadOnInitTrueSet else if (constrained) memoryConstrainedSet else loadOnInitFalseSet set.clear() diff --git a/node/src/main/kotlin/net/corda/node/utilities/JDBCHashMap.kt b/node/src/main/kotlin/net/corda/node/utilities/JDBCHashMap.kt index e4584fdef7..93be612b3d 100644 --- a/node/src/main/kotlin/net/corda/node/utilities/JDBCHashMap.kt +++ b/node/src/main/kotlin/net/corda/node/utilities/JDBCHashMap.kt @@ -272,6 +272,7 @@ abstract class AbstractJDBCHashMap(va override fun containsKey(key: K): Boolean = (get(key) != null) // We haven't implemented setValue. We could implement if necessary. + // Make sure to remove the relevant suppressed tests in JDBCHashMapTestSuite.createMapTestSuite if this is implemented. private class NotReallyMutableEntry(key: K, value: V, val seqNo: Int) : AbstractMap.SimpleImmutableEntry(key, value), MutableMap.MutableEntry { override fun setValue(newValue: V): V { throw UnsupportedOperationException("Not really mutable. Implement if really required.") diff --git a/test-utils/build.gradle b/test-utils/build.gradle index 41b60836dc..25501c842e 100644 --- a/test-utils/build.gradle +++ b/test-utils/build.gradle @@ -38,7 +38,7 @@ dependencies { compile "junit:junit:$junit_version" // Guava: Google test library (collections test suite) - compile "com.google.guava:guava-testlib:19.0" + compile "com.google.guava:guava-testlib:$guava_version" // OkHTTP: Simple HTTP library. compile "com.squareup.okhttp3:okhttp:$okhttp_version"