corda/samples/trader-demo/build.gradle

163 lines
5.3 KiB
Groovy
Raw Normal View History

2016-11-17 11:03:40 +00:00
apply plugin: 'kotlin'
apply plugin: 'idea'
apply plugin: 'net.corda.plugins.quasar-utils'
apply plugin: 'net.corda.plugins.cordapp'
2016-11-17 11:03:40 +00:00
apply plugin: 'net.corda.plugins.cordformation'
cordapp {
info {
name "Trader Demo"
vendor "R3"
targetPlatformVersion corda_platform_version.toInteger()
minimumPlatformVersion 1
}
}
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
}
2016-11-17 11:03:40 +00:00
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compile "net.sf.jopt-simple:jopt-simple:$jopt_simple_version"
cordaCompile project(':client:rpc')
// 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"
// We only need this for its DUMMY_BANK constants, and
// DO NOT want it added to Gradle's runtime classpath.
compileOnly project(':test-utils')
2016-11-17 11:03:40 +00:00
// The trader demo CorDapp depends upon Cash CorDapp features
cordapp project(':finance:contracts')
cordapp project(':finance:workflows')
cordapp project(':samples:trader-demo:workflows-trader')
2016-11-17 11:03:40 +00:00
// Corda integration dependencies
cordaRuntime project(path: ":node:capsule", configuration: 'runtimeArtifacts')
2016-11-17 11:03:40 +00:00
testCompile(project(':node-driver')) {
// We already have a SLF4J implementation on our runtime classpath,
// and we don't need another one.
exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
}
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"
}
task integrationTest(type: Test, dependsOn: []) {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
2016-11-17 11:03:40 +00:00
}
def nodeTask = tasks.getByPath(':node:capsule:assemble')
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar', nodeTask]) {
ext.rpcUsers = [['username': "demo", 'password': "demo", 'permissions': ["ALL"]]]
nodeDefaults {
projectCordapp {
deploy = false // TODO This is a bug, project cordapp should be disabled if no cordapp plugin is applied.
}
cordapp project(':finance:workflows')
cordapp project(':finance:contracts')
cordapp project(':samples:trader-demo:workflows-trader')
runSchemaMigration = true
}
2016-11-17 11:03:40 +00:00
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:10003"
adminAddress "localhost:10004"
}
extraConfig = ['h2Settings.address' : 'localhost:10014']
2016-11-17 11:03:40 +00:00
}
node {
name "O=Bank A,L=London,C=GB"
p2pPort 10005
rpcUsers = ext.rpcUsers
rpcSettings {
address "localhost:10006"
adminAddress "localhost:10007"
}
extraConfig = ['h2Settings.address' : 'localhost:10015']
2016-11-17 11:03:40 +00:00
}
node {
name "O=Bank B,L=New York,C=US"
p2pPort 10008
rpcUsers = ext.rpcUsers
rpcSettings {
address "localhost:10009"
adminAddress "localhost:10010"
}
extraConfig = ['h2Settings.address' : 'localhost:10016']
2016-11-17 11:03:40 +00:00
}
Bank of Corda integration with Trader Demo and Explorer Initial conversion of Explorer to use IssuerFlow (from BankOfCorda) Initial conversion of TraderDemo to use IssuerFlow (from BankOfCorda) Updated TraderDemo to use IssuerFlow (from BankOfCorda) Fixed TraderDemo integration text (added new BankOfCorda node) Updated Explorer with changes IssuerRequest params Explorer now correctly displaying transaction id upon Issue. Moved IssuerFlow into finance package so can be reused across multiple demos (TraderDemo) and applications (eg Explorer) Refactored BankOfCorda demo to use Finance package and TestUtil constants Updated TraderDemo to use IssuerFlow Updated Explorer to use finance package IssuerFlow. Advertised BankOfCorda as Issuer for usage by Explorer. Explorer no longer depends on BankOfCorda demo since IssuerFlow promoted to Finance module Added IssuerFlow to AbstractNode whitelist. Explicit declarations of IssuerFlow no longer required. Added plugin registration of IssuerFlow at bootstrap. Revert whitelisting of IssuerFlow (plugin configured) Refactored to use constant BOC definition. Added gradle RPC security config. Updated documentation Fixed incorrect references. Renamed Issuer banks. Added new permission set (for Issuer nodes) Added node nearestCity info Added new Issuer Event Generator for Issuer nodes only Associated currency with issuer using ServiceType naming structure. Added argument flag (-S) to trigger event generator simulation node. Fixed problem with issuers not resolving from network map. Updated perms on Issuer rpc proxy nodes. Fixed minor in cash generateExit identified by Explorer. Changes applied in prep for AWG demo. Added IntelliJ run-configurations for launching Explorer demo nodes (with and without simulation) Updated documentation (and added additional gradle task to launch Explorer nodes in simulation mode). Fix following rebase. Addressed review items from PR. Updated TraderDemo readme. Updated TraderDemo gradle file to launch Bank of Corda node. Updated JRE properties. Updated IssuerModel to incorporate correct JFX Observable handling. Fixed bug with Exit command not displaying any currency. Added TODO's for revisiting correct Exception handling strategy. Optimization for when issuing cash to self. Minor updates following PR review. Remove old refs to Royal Mint and Federal Reserve
2016-12-06 16:16:47 +00:00
node {
name "O=BankOfCorda,L=New York,C=US"
p2pPort 10011
rpcUsers = ext.rpcUsers
rpcSettings {
address "localhost:10012"
adminAddress "localhost:10013"
}
extraConfig = ['h2Settings.address' : 'localhost:10017']
Bank of Corda integration with Trader Demo and Explorer Initial conversion of Explorer to use IssuerFlow (from BankOfCorda) Initial conversion of TraderDemo to use IssuerFlow (from BankOfCorda) Updated TraderDemo to use IssuerFlow (from BankOfCorda) Fixed TraderDemo integration text (added new BankOfCorda node) Updated Explorer with changes IssuerRequest params Explorer now correctly displaying transaction id upon Issue. Moved IssuerFlow into finance package so can be reused across multiple demos (TraderDemo) and applications (eg Explorer) Refactored BankOfCorda demo to use Finance package and TestUtil constants Updated TraderDemo to use IssuerFlow Updated Explorer to use finance package IssuerFlow. Advertised BankOfCorda as Issuer for usage by Explorer. Explorer no longer depends on BankOfCorda demo since IssuerFlow promoted to Finance module Added IssuerFlow to AbstractNode whitelist. Explicit declarations of IssuerFlow no longer required. Added plugin registration of IssuerFlow at bootstrap. Revert whitelisting of IssuerFlow (plugin configured) Refactored to use constant BOC definition. Added gradle RPC security config. Updated documentation Fixed incorrect references. Renamed Issuer banks. Added new permission set (for Issuer nodes) Added node nearestCity info Added new Issuer Event Generator for Issuer nodes only Associated currency with issuer using ServiceType naming structure. Added argument flag (-S) to trigger event generator simulation node. Fixed problem with issuers not resolving from network map. Updated perms on Issuer rpc proxy nodes. Fixed minor in cash generateExit identified by Explorer. Changes applied in prep for AWG demo. Added IntelliJ run-configurations for launching Explorer demo nodes (with and without simulation) Updated documentation (and added additional gradle task to launch Explorer nodes in simulation mode). Fix following rebase. Addressed review items from PR. Updated TraderDemo readme. Updated TraderDemo gradle file to launch Bank of Corda node. Updated JRE properties. Updated IssuerModel to incorporate correct JFX Observable handling. Fixed bug with Exit command not displaying any currency. Added TODO's for revisiting correct Exception handling strategy. Optimization for when issuing cash to self. Minor updates following PR review. Remove old refs to Royal Mint and Federal Reserve
2016-12-06 16:16:47 +00:00
}
//All other nodes should be using LoggingBuyerFlow as it is a subclass of BuyerFlow
node {
name "O=NonLogging Bank,L=London,C=GB"
p2pPort 10025
rpcUsers = ext.rpcUsers
rpcSettings {
address "localhost:10026"
adminAddress "localhost:10027"
}
extraConfig = ['h2Settings.address' : 'localhost:10035']
flowOverride("net.corda.traderdemo.flow.SellerFlow", "net.corda.traderdemo.flow.BuyerFlow")
}
2016-11-17 11:03:40 +00:00
}
idea {
module {
downloadJavadoc = true // defaults to false
downloadSources = true
}
}
task runBank(type: JavaExec, dependsOn: jar) {
classpath = sourceSets.test.runtimeClasspath
main = 'net.corda.traderdemo.TraderDemoKt'
args '--role'
args 'BANK'
}
task runSeller(type: JavaExec, dependsOn: jar) {
classpath = sourceSets.test.runtimeClasspath
main = 'net.corda.traderdemo.TraderDemoKt'
args '--role'
args 'SELLER'
}