allprojects { ext { strata_version = '1.1.2' } } apply plugin: 'org.jetbrains.kotlin.jvm' apply plugin: 'idea' apply plugin: 'net.corda.plugins.quasar-utils' apply plugin: 'net.corda.plugins.cordapp' apply plugin: 'net.corda.plugins.cordformation' sourceSets { integrationTest { kotlin { compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output srcDir file('src/integration-test/kotlin') } } } compileKotlin.dependsOn(":samples:simm-valuation-demo:contracts-states:shrink") configurations { integrationTestImplementation.extendsFrom testImplementation integrationTestRuntimeOnly.extendsFrom testRuntimeOnly } dependencies { if (System.getProperty('excludeShell') == null) { cordaDriver "net.corda:corda-shell:$corda_shell_version" } implementation project(':core-test-utils') // The SIMM demo CorDapp depends upon Cash CorDapp features cordapp project(':finance:contracts') cordapp project(':finance:workflows') cordapp project(path: ':samples:simm-valuation-demo:contracts-states', configuration: 'shrinkArtifacts') cordapp project(':samples:simm-valuation-demo:flows') cordaBootstrapper "org.slf4j:slf4j-simple:$slf4j_version" cordaBootstrapper project(":node-api") // Corda integration dependencies corda project(path: ":node:capsule", configuration: 'runtimeArtifacts') corda project(path: ":testing:testserver:testcapsule:", configuration: 'runtimeArtifacts') cordaProvided project(':core') cordaProvided(project(':testing:testserver')) { exclude group: "org.apache.logging.log4j" } // Javax is required for webapis implementation "org.glassfish.jersey.core:jersey-server:$jersey_version" implementation "org.glassfish.jersey.inject:jersey-hk2:$jersey_version" // Cordapp dependencies // Specify your cordapp's dependencies below, including dependent cordapps implementation "com.opengamma.strata:strata-basics:$strata_version" implementation "com.opengamma.strata:strata-product:$strata_version" implementation "com.opengamma.strata:strata-data:$strata_version" implementation "com.opengamma.strata:strata-calc:$strata_version" implementation "com.opengamma.strata:strata-pricer:$strata_version" implementation "com.opengamma.strata:strata-report:$strata_version" implementation "com.opengamma.strata:strata-market:$strata_version" implementation "com.opengamma.strata:strata-collect:$strata_version" implementation "com.opengamma.strata:strata-loader:$strata_version" implementation "com.opengamma.strata:strata-math:$strata_version" // Test dependencies testImplementation project(':core') testImplementation project(':node-driver') testImplementation project(':core-test-utils') testImplementation project(':test-utils') testImplementation "org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}" testImplementation "junit:junit:$junit_version" testImplementation "org.assertj:assertj-core:$assertj_version" testImplementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version" testRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junit_vintage_version}" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junit_jupiter_version}" testRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}" } jar { // A CorDapp does not configure the Node's logging! exclude "**/log4j2*.xml" duplicatesStrategy = DuplicatesStrategy.EXCLUDE } configurations.cordaCordapp.canBeResolved = true task deployNodes(type: net.corda.plugins.Cordform) { directory file("$buildDir/nodes") nodeDefaults { cordapp project(':finance:contracts') cordapp project(':finance:workflows') cordapp project(':samples:simm-valuation-demo:contracts-states') cordapp project(':samples:simm-valuation-demo:flows') rpcUsers = [['username': "default", 'password': "default", 'permissions': [ 'ALL' ]]] runSchemaMigration = true } node { name "O=Notary Node,L=Zurich,C=CH" notary = [validating : true, serviceLegalName: "O=Notary Service,L=Zurich,C=CH" ] p2pPort 10002 rpcSettings { address "localhost:10014" adminAddress "localhost:10015" } rpcUsers = [] extraConfig = [ custom: [ jvmArgs: ["-Xmx1g"] ], 'h2Settings.address' : 'localhost:10038' ] } node { name "O=Bank A,L=London,C=GB" p2pPort 10004 webPort 10005 rpcSettings { address("localhost:10016") adminAddress("localhost:10017") } extraConfig = [ custom: [ jvmArgs: ["-Xmx1g"] ], 'h2Settings.address' : 'localhost:10039' ] } node { name "O=Bank B,L=New York,C=US" p2pPort 10007 webPort 10008 rpcSettings { address("localhost:10026") adminAddress("localhost:10027") } extraConfig = [ custom: [ jvmArgs: ["-Xmx1g"] ], 'h2Settings.address' : 'localhost:10040' ] } node { name "O=Bank C,L=Tokyo,C=JP" p2pPort 10010 webPort 10011 rpcSettings { address("localhost:10036") adminAddress("localhost:10037") } extraConfig = [ custom: [ jvmArgs: ["-Xmx1g"] ], 'h2Settings.address' : 'localhost:10041' ] } } task integrationTest(type: Test, dependsOn: []) { testClassesDirs = sourceSets.integrationTest.output.classesDirs classpath = sourceSets.integrationTest.runtimeClasspath } cordapp { targetPlatformVersion = corda_platform_version.toInteger() contract { name "net/corda/vega/contracts" versionId 1 vendor "R3" licence "Open Source (Apache 2)" } workflow { name "net/corda/vega/flows" versionId 1 vendor "R3" licence "Open Source (Apache 2)" } }