apply plugin: 'kotlin' apply plugin: 'net.corda.plugins.quasar-utils' apply plugin: 'net.corda.plugins.publish-utils' apply plugin: 'net.corda.plugins.api-scanner' apply plugin: 'com.jfrog.artifactory' description 'Corda client RPC modules' //noinspection GroovyAssignabilityCheck configurations { integrationTestCompile.extendsFrom testCompile integrationTestRuntimeOnly.extendsFrom testRuntimeOnly smokeTestCompile.extendsFrom compile smokeTestRuntimeOnly.extendsFrom runtimeOnly } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" } sourceSets { integrationTest { kotlin { compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output srcDir file('src/integration-test/kotlin') } java { compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output srcDir file('src/integration-test/java') } resources { srcDirs "src/integration-test/resources" } } smokeTest { kotlin { // We must NOT have any Node code on the classpath, so do NOT // include the test or integrationTest dependencies here. compileClasspath += main.output runtimeClasspath += main.output srcDir file('src/smoke-test/kotlin') } java { compileClasspath += main.output runtimeClasspath += main.output srcDir file('src/smoke-test/java') } } } processSmokeTestResources { from(project(':node:capsule').tasks['buildCordaJAR']) { rename 'corda-(.*)', 'corda.jar' } from(project(':finance:workflows').tasks['jar']) { rename '.*finance-workflows-.*', 'cordapp-finance-workflows.jar' } from(project(':finance:contracts').tasks['jar']) { rename '.*finance-contracts-.*', 'cordapp-finance-contracts.jar' } } // To find potential version conflicts, run "gradle htmlDependencyReport" and then look in // build/reports/project/dependencies/index.html for green highlighted parts of the tree. dependencies { compile project(':core') compile project(':node-api') // For caches rather than guava compile "com.github.ben-manes.caffeine:caffeine:$caffeine_version" testImplementation "junit:junit:$junit_version" testRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junit_vintage_version}" testRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}" // Unit testing helpers. testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version" testCompile "org.assertj:assertj-core:${assertj_version}" testCompile project(':node-driver') testCompile project(':client:mock') integrationTestCompile project(path: ':node-api', configuration: 'testArtifacts') // Smoke tests do NOT have any Node code on the classpath! smokeTestCompile project(':smoke-test-utils') smokeTestCompile project(':finance:contracts') smokeTestCompile project(':finance:workflows') smokeTestCompile "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version" smokeTestCompile "org.apache.logging.log4j:log4j-core:$log4j_version" smokeTestCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version" smokeTestCompile "org.assertj:assertj-core:${assertj_version}" smokeTestImplementation "junit:junit:$junit_version" smokeTestRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junit_vintage_version}" smokeTestRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}" // JDK11: required by Quasar at run-time smokeTestRuntimeOnly "com.esotericsoftware:kryo:4.0.2" } task integrationTest(type: Test) { testClassesDirs = sourceSets.integrationTest.output.classesDirs classpath = sourceSets.integrationTest.runtimeClasspath } task smokeTest(type: Test) { testClassesDirs = sourceSets.smokeTest.output.classesDirs classpath = sourceSets.smokeTest.runtimeClasspath } jar { baseName 'corda-rpc' manifest { attributes 'Automatic-Module-Name': 'net.corda.client.rpc' } } publish { name jar.baseName }