allprojects { ext { strata_version = '1.1.2' } } apply plugin: 'kotlin' 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') } } } configurations { integrationTestCompile.extendsFrom testCompile integrationTestRuntimeOnly.extendsFrom testRuntimeOnly } dependencies { if (System.getProperty('excludeShell') == null) { cordaDriver "net.corda:corda-shell:$corda_release_version" } cordaCompile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" // 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') // Cordformation needs a SLF4J implementation when executing the Network // Bootstrapper, but Log4J doesn't shutdown completely from within Gradle. // Use a much simpler SLF4J implementation here instead. cordaRuntime "org.slf4j:slf4j-simple:$slf4j_version" // Corda integration dependencies cordaRuntime project(path: ":node:capsule", configuration: 'runtimeArtifacts') cordaRuntime project(path: ":testing:testserver:testcapsule:", configuration: 'runtimeArtifacts') cordaCompile project(':core') cordaCompile(project(':testing:testserver')) { exclude group: "org.apache.logging.log4j" } // Javax is required for webapis compile "org.glassfish.jersey.core:jersey-server:$jersey_version" // Cordapp dependencies // Specify your cordapp's dependencies below, including dependent cordapps compile "com.opengamma.strata:strata-basics:$strata_version" compile "com.opengamma.strata:strata-product:$strata_version" compile "com.opengamma.strata:strata-data:$strata_version" compile "com.opengamma.strata:strata-calc:$strata_version" compile "com.opengamma.strata:strata-pricer:$strata_version" compile "com.opengamma.strata:strata-report:$strata_version" compile "com.opengamma.strata:strata-market:$strata_version" compile "com.opengamma.strata:strata-collect:$strata_version" compile "com.opengamma.strata:strata-loader:$strata_version" compile "com.opengamma.strata:strata-math:$strata_version" // Test dependencies testCompile project(':node-driver') testImplementation "org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}" testImplementation "junit:junit:$junit_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}" testCompile "org.assertj:assertj-core:$assertj_version" } jar { // A CorDapp does not configure the Node's logging! exclude "**/log4j2*.xml" } def nodeTask = tasks.getByPath(':node:capsule:assemble') def webTask = tasks.getByPath(':testing:testserver:testcapsule::assemble') task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar', nodeTask, webTask]) { 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)" } }