mirror of
https://github.com/corda/corda.git
synced 2024-12-19 04:57:58 +00:00
1e8ea8eb2c
It uses Artemis (an embeddable MQ broker) and can run in either a 'serving' mode, in which case it will sit around waiting to sell fake commercial paper assets, or a 'buying' mode in which case it will connect to a specified serving node and run the two party trade protocol. Most services are either mocked out or too trivial to be useful at this point. They will be fleshed out in the future.
118 lines
3.6 KiB
Groovy
118 lines
3.6 KiB
Groovy
group 'com.r3cev.prototyping'
|
|
version '1.0-SNAPSHOT'
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'kotlin'
|
|
apply plugin: 'application'
|
|
|
|
// apply plugin: 'org.jetbrains.dokka'
|
|
|
|
allprojects {
|
|
sourceCompatibility = 1.8
|
|
targetCompatibility = 1.8
|
|
}
|
|
|
|
buildscript {
|
|
ext.kotlin_version = '1.0.0-beta-4584'
|
|
ext.quasar_version = '0.7.4'
|
|
ext.asm_version = '0.5.3'
|
|
ext.artemis_version = '1.2.0'
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.4"
|
|
}
|
|
}
|
|
|
|
|
|
repositories {
|
|
// mavenLocal()
|
|
mavenCentral()
|
|
maven {
|
|
url 'http://oss.sonatype.org/content/repositories/snapshots'
|
|
}
|
|
jcenter()
|
|
}
|
|
|
|
configurations {
|
|
quasar
|
|
}
|
|
|
|
// This block makes Gradle print an error and refuse to continue if we get multiple versions of the same library
|
|
// included simultaneously.
|
|
configurations.all() {
|
|
resolutionStrategy {
|
|
failOnVersionConflict()
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
testCompile 'junit:junit:4.12'
|
|
|
|
compile "com.google.code.findbugs:jsr305:3.0.1"
|
|
compile "org.slf4j:slf4j-jdk14:1.7.13"
|
|
|
|
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
|
compile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
|
|
|
|
compile("com.google.guava:guava:19.0") {
|
|
force = true // Conflict between Quasar and Artemis
|
|
}
|
|
|
|
compile "net.sf.jopt-simple:jopt-simple:4.9"
|
|
|
|
compile("com.esotericsoftware:kryo:3.0.3")
|
|
compile "de.javakaffee:kryo-serializers:0.37"
|
|
|
|
// Quasar: for the bytecode rewriting for state machines.
|
|
compile("co.paralleluniverse:quasar-core:${quasar_version}:jdk8")
|
|
quasar("co.paralleluniverse:quasar-core:${quasar_version}:jdk8@jar")
|
|
|
|
// Artemis: for reliable p2p message queues.
|
|
compile("org.apache.activemq:artemis-server:${artemis_version}") {
|
|
exclude group: "com.google.guava", module: "guava" // Artemis is on Guava 18
|
|
}
|
|
compile "org.apache.activemq:artemis-core-client:${artemis_version}"
|
|
|
|
// For visualisation
|
|
compile "org.graphstream:gs-core:1.3"
|
|
compile "org.graphstream:gs-ui:1.3"
|
|
compile("com.intellij:forms_rt:7.0.3") {
|
|
exclude group: "asm"
|
|
}
|
|
}
|
|
|
|
// These lines tell Gradle to add a couple of JVM command line arguments to unit test and program runs, which set up
|
|
// the Quasar bytecode rewriting system so fibers can be suspended. The verifyInstrumentation line makes things run
|
|
// slower but you get a much better error message if you forget to annotate a method with @Suspendable that needs it.
|
|
//
|
|
// In Java 9 (hopefully) the requirement to annotate methods as @Suspendable will go away.
|
|
tasks.withType(Test) {
|
|
jvmArgs "-javaagent:${configurations.quasar.singleFile}"
|
|
jvmArgs "-Dco.paralleluniverse.fibers.verifyInstrumentation"
|
|
}
|
|
tasks.withType(JavaExec) {
|
|
jvmArgs "-javaagent:${configurations.quasar.singleFile}"
|
|
jvmArgs "-Dco.paralleluniverse.fibers.verifyInstrumentation"
|
|
}
|
|
|
|
mainClassName = 'core.node.TraderDemoKt'
|
|
|
|
task runDemoBuyer(type: JavaExec, dependsOn: ':classes') {
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
main = 'core.node.TraderDemoKt'
|
|
args = ['--dir=alpha', '--service-fake-trades', '--network-address=alpha']
|
|
}
|
|
|
|
task runDemoSeller(type: JavaExec, dependsOn: ':classes') {
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
main = 'core.node.TraderDemoKt'
|
|
args = ['--dir=beta', '--fake-trade-with=alpha', '--network-address=beta:31338',
|
|
'--timestamper-identity-file=alpha/identity-public', '--timestamper-address=alpha']
|
|
}
|