From 872d6ef4df7d9150007a3b929483450f2af1a334 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Sun, 16 Feb 2020 08:21:05 +0000 Subject: [PATCH 1/5] NOTICK: Update Gradle files for DeteKt plugins. (#5970) --- build.gradle | 12 +++++++----- detekt-plugins/build.gradle | 18 +++--------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/build.gradle b/build.gradle index 43e567dd0b..23b522603a 100644 --- a/build.gradle +++ b/build.gradle @@ -465,18 +465,20 @@ task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) { } } -task detekt(type: JavaExec, dependsOn: ":detekt-plugins:jar") { - main = "io.gitlab.arturbosch.detekt.cli.Main" - classpath = configurations.detekt +tasks.register('detekt', JavaExec) { def input = "$projectDir" def config = "$projectDir/detekt-config.yml" def baseline = "$projectDir/detekt-baseline.xml" - def plugins = "$projectDir/detekt-plugins/build/libs/detekt-plugins-${version}.jar" + def detektPluginsJar = project(':detekt-plugins').tasks.jar + def plugins = detektPluginsJar.outputs.files.singleFile def params = ['-i', input, '-c', config, '-b', baseline, '--plugins', plugins] + inputs.files(detektPluginsJar, config, baseline) + main = "io.gitlab.arturbosch.detekt.cli.Main" + classpath = configurations.detekt args(params) } -task detektBaseline(type: JavaExec) { +tasks.register('detektBaseline', JavaExec) { main = "io.gitlab.arturbosch.detekt.cli.Main" classpath = configurations.detekt def input = "$projectDir" diff --git a/detekt-plugins/build.gradle b/detekt-plugins/build.gradle index 20c6e8aa28..4657d00954 100644 --- a/detekt-plugins/build.gradle +++ b/detekt-plugins/build.gradle @@ -1,23 +1,11 @@ plugins { - id 'java' id 'kotlin' - id 'kotlin-jpa' -} - -sourceCompatibility = 1.8 - -repositories { - mavenCentral() } dependencies { - testCompile group: 'junit', name: 'junit', version: '4.12' + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' + implementation "io.gitlab.arturbosch.detekt:detekt-api:$detekt_version" + testImplementation "junit:junit:$junit_version" testImplementation "io.gitlab.arturbosch.detekt:detekt-test:$detekt_version" testImplementation "org.assertj:assertj-core:$assertj_version" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" - implementation "io.gitlab.arturbosch.detekt:detekt-api:$detekt_version" -} - -publish { - name "corda-detekt-plugins" } From a18caef56b68dce3a8220dd375630b87d464d01d Mon Sep 17 00:00:00 2001 From: Thomas Schroeter Date: Mon, 17 Feb 2020 16:42:39 +0000 Subject: [PATCH 2/5] CORDA-3495: fix link to network builder (#5977) --- docs/source/network-builder.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/network-builder.rst b/docs/source/network-builder.rst index 168888ee21..1a4e5e7f35 100644 --- a/docs/source/network-builder.rst +++ b/docs/source/network-builder.rst @@ -16,7 +16,7 @@ Unlike the official image, a `node.conf` file and CorDapps are embedded into the More backends may be added in future. The tool is open source, so contributions to add more destinations for the containers are welcome! -`Download the Corda Network Builder `_. +`Download the Corda Network Builder `_. .. _pre-requisites: From 396a579c8b4dc8a04f8326153c754f7df473ffec Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Tue, 18 Feb 2020 09:09:18 +0000 Subject: [PATCH 3/5] NOTICK: Always use configured version of deterministic-rt.jar. (#5979) --- serialization-djvm/build.gradle | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/serialization-djvm/build.gradle b/serialization-djvm/build.gradle index 476c0c8e9b..a082370d25 100644 --- a/serialization-djvm/build.gradle +++ b/serialization-djvm/build.gradle @@ -12,10 +12,7 @@ description 'Serialization support for the DJVM' configurations { sandboxTesting - jdkRt.resolutionStrategy { - // Always check the repository for a newer SNAPSHOT. - cacheChangingModulesFor 0, 'seconds' - } + jdkRt } dependencies { @@ -35,7 +32,7 @@ dependencies { // Test utilities testImplementation "org.assertj:assertj-core:$assertj_version" testRuntimeOnly "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version" - jdkRt "net.corda:deterministic-rt:latest.integration" + jdkRt "net.corda:deterministic-rt:$deterministic_rt_version" // The DJVM will need this classpath to run the unit tests. sandboxTesting files(sourceSets.getByName("test").output) From 17f5bfc53b770ed0a3cf6cbc866f4fc82472f7f3 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Tue, 18 Feb 2020 09:10:19 +0000 Subject: [PATCH 4/5] Remove Schedulable states from core-deterministic. (#5975) --- core/src/main/kotlin/net/corda/core/contracts/Structures.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/src/main/kotlin/net/corda/core/contracts/Structures.kt b/core/src/main/kotlin/net/corda/core/contracts/Structures.kt index 74a1de3149..16d2c8cd85 100644 --- a/core/src/main/kotlin/net/corda/core/contracts/Structures.kt +++ b/core/src/main/kotlin/net/corda/core/contracts/Structures.kt @@ -134,8 +134,7 @@ interface LinearState : ContractState { val linearId: UniqueIdentifier } // DOCEND 2 - -@KeepForDJVM +@DeleteForDJVM interface SchedulableState : ContractState { /** * Indicate whether there is some activity to be performed at some future point in time with respect to this @@ -146,7 +145,6 @@ interface SchedulableState : ContractState { * * @return null if there is no activity to schedule. */ - @DeleteForDJVM fun nextScheduledActivity(thisStateRef: StateRef, flowLogicRefFactory: FlowLogicRefFactory): ScheduledActivity? } @@ -176,6 +174,7 @@ data class StateAndRef(val state: TransactionState, va // DOCEND 7 /** A wrapper for a [StateAndRef] indicating that it should be added to a transaction as a reference input state. */ +@KeepForDJVM data class ReferencedStateAndRef(val stateAndRef: StateAndRef) /** Filters a list of [StateAndRef] objects according to the type of the states */ From ae478cc8ad30d086e6748ba5f35433202d74aeba Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Tue, 18 Feb 2020 09:13:50 +0000 Subject: [PATCH 5/5] NOTICK: Add missing test for deserializing Duration for DJVM. (#5971) --- .../djvm/DeserializeDurationTest.kt | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 serialization-djvm/src/test/kotlin/net/corda/serialization/djvm/DeserializeDurationTest.kt diff --git a/serialization-djvm/src/test/kotlin/net/corda/serialization/djvm/DeserializeDurationTest.kt b/serialization-djvm/src/test/kotlin/net/corda/serialization/djvm/DeserializeDurationTest.kt new file mode 100644 index 0000000000..7a2c6a4db8 --- /dev/null +++ b/serialization-djvm/src/test/kotlin/net/corda/serialization/djvm/DeserializeDurationTest.kt @@ -0,0 +1,39 @@ +package net.corda.serialization.djvm + +import net.corda.core.serialization.internal._contextSerializationEnv +import net.corda.core.serialization.serialize +import net.corda.serialization.djvm.SandboxType.KOTLIN +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith +import org.junit.jupiter.api.fail +import java.time.Duration +import java.util.function.Function + +@ExtendWith(LocalSerialization::class) +class DeserializeDurationTest : TestBase(KOTLIN) { + @Test + fun `test deserializing duration`() { + val duration = Duration.ofSeconds(12345, 6789) + val data = duration.serialize() + + sandbox { + _contextSerializationEnv.set(createSandboxSerializationEnv(classLoader)) + + val sandboxDuration = data.deserializeFor(classLoader) + + val taskFactory = classLoader.createRawTaskFactory() + val showDuration = taskFactory.compose(classLoader.createSandboxFunction()).apply(ShowDuration::class.java) + val result = showDuration.apply(sandboxDuration) ?: fail("Result cannot be null") + + assertEquals(duration.toString(), result.toString()) + assertEquals(SANDBOX_STRING, result::class.java.name) + } + } + + class ShowDuration : Function { + override fun apply(duration: Duration): String { + return duration.toString() + } + } +}