mirror of
https://github.com/corda/corda.git
synced 2024-12-19 04:57:58 +00:00
fa33336d38
* Initial prototyping with Requery as a persistence replacement for Exposed/Hibernate Applied changes following PR review by RP Updated timestamp naming (removed committedTimestamp) and StateStatus (removed AWAITING_CONSENSUS) after discussion with RP. Removed FungibleState and LinearState schemas (and associated tests) - awaiting Requery uni-directional relationship fix. Added Transaction propagation such that requery re-uses any existing transaction context. Made requery default logging configurable (disabled by default) Nullable fields are now truly nullable (in the Kotlin and DDL sense) Fix for SimmValuation integration test. Workarounds applied to resolve Requery issues when sharing Transactional context. Addressed PR review comments from MH. Further updates following re-review by RP/MH Further updates following additional PR review comments by RP Minor update following additional PR review comments by RP Optimised makeUpdate state processing code. Resolved conflicts after rebase. Additional Unit tests and bug fix for correct spending of multiple contract state types within a single transaction. Required interface change to states() API to take a setOf (ContractStateClassTypes) Minor code clean-up. Re-write NodeVaultService consumed state makeUpdate function using SQL. * Resolve conflict after rebase from master
168 lines
6.1 KiB
Groovy
168 lines
6.1 KiB
Groovy
apply plugin: 'kotlin'
|
|
apply plugin: 'java'
|
|
apply plugin: 'net.corda.plugins.quasar-utils'
|
|
apply plugin: 'net.corda.plugins.publish-utils'
|
|
|
|
description 'Corda node modules'
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
maven {
|
|
url 'http://oss.sonatype.org/content/repositories/snapshots'
|
|
}
|
|
jcenter()
|
|
maven {
|
|
url 'https://dl.bintray.com/kotlin/exposed'
|
|
}
|
|
}
|
|
|
|
|
|
//noinspection GroovyAssignabilityCheck
|
|
configurations {
|
|
// we don't want isolated.jar in classPath, since we want to test jar being dynamically loaded as an attachment
|
|
runtime.exclude module: 'isolated'
|
|
|
|
integrationTestCompile.extendsFrom testCompile
|
|
integrationTestRuntime.extendsFrom testRuntime
|
|
}
|
|
|
|
sourceSets {
|
|
integrationTest {
|
|
kotlin {
|
|
compileClasspath += main.output + test.output
|
|
runtimeClasspath += main.output + test.output
|
|
srcDir file('src/integration-test/kotlin')
|
|
}
|
|
}
|
|
test {
|
|
resources {
|
|
srcDir "../config/test"
|
|
}
|
|
}
|
|
main {
|
|
resources {
|
|
srcDir "../config/dev"
|
|
}
|
|
}
|
|
}
|
|
|
|
// 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(':finance')
|
|
compile project(':node-schemas')
|
|
|
|
compile "com.google.code.findbugs:jsr305:3.0.1"
|
|
|
|
// Log4J: logging framework (with SLF4J bindings)
|
|
compile "org.apache.logging.log4j:log4j-slf4j-impl:${log4j_version}"
|
|
compile "org.apache.logging.log4j:log4j-core:${log4j_version}"
|
|
compile "org.apache.logging.log4j:log4j-web:${log4j_version}"
|
|
|
|
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:$guava_version"
|
|
|
|
// JOpt: for command line flags.
|
|
compile "net.sf.jopt-simple:jopt-simple:$jopt_simple_version"
|
|
|
|
// Artemis: for reliable p2p message queues.
|
|
compile "org.apache.activemq:artemis-server:${artemis_version}"
|
|
compile "org.apache.activemq:artemis-core-client:${artemis_version}"
|
|
runtime "org.apache.activemq:artemis-amqp-protocol:${artemis_version}"
|
|
|
|
// JAnsi: for drawing things to the terminal in nicely coloured ways.
|
|
compile "org.fusesource.jansi:jansi:$jansi_version"
|
|
|
|
// GraphStream: For visualisation
|
|
testCompile "org.graphstream:gs-core:1.3"
|
|
testCompile("org.graphstream:gs-ui:1.3") {
|
|
exclude group: "bouncycastle"
|
|
}
|
|
compile("com.intellij:forms_rt:7.0.3") {
|
|
exclude group: "asm"
|
|
}
|
|
|
|
// Force commons logging to version 1.2 to override Artemis, which pulls in 1.1.3 (ARTEMIS-424)
|
|
compile "commons-logging:commons-logging:1.2"
|
|
|
|
// Web stuff: for HTTP[S] servlets
|
|
compile "org.eclipse.jetty:jetty-servlet:${jetty_version}"
|
|
compile "org.eclipse.jetty:jetty-webapp:${jetty_version}"
|
|
compile "javax.servlet:javax.servlet-api:3.1.0"
|
|
compile "org.jolokia:jolokia-agent-war:$jolokia_version"
|
|
compile "commons-fileupload:commons-fileupload:1.3.2"
|
|
|
|
// Jersey for JAX-RS implementation for use in Jetty
|
|
compile "org.glassfish.jersey.core:jersey-server:${jersey_version}"
|
|
compile "org.glassfish.jersey.containers:jersey-container-servlet-core:${jersey_version}"
|
|
compile "org.glassfish.jersey.containers:jersey-container-jetty-http:${jersey_version}"
|
|
// NOTE there is a Jackson version clash between jersey-media-json-jackson (v2.5.4) and jackson-module-kotlin (v.2.5.5)
|
|
// Have not found an Issue in the issue tracker for Jersey for this issue
|
|
compile ("org.glassfish.jersey.media:jersey-media-json-jackson:${jersey_version}") {
|
|
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-annotations'
|
|
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
|
|
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core'
|
|
}
|
|
compile ("com.fasterxml.jackson.module:jackson-module-kotlin:${jackson_version}") {
|
|
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-annotations'
|
|
}
|
|
compile "com.fasterxml.jackson.core:jackson-annotations:${jackson_version}"
|
|
|
|
// Coda Hale's Metrics: for monitoring of key statistics
|
|
compile "io.dropwizard.metrics:metrics-core:3.1.2"
|
|
|
|
// JimFS: in memory java.nio filesystem. Used for test and simulation utilities.
|
|
compile "com.google.jimfs:jimfs:1.1"
|
|
|
|
// TypeSafe Config: for simple and human friendly config files.
|
|
compile "com.typesafe:config:$typesafe_config_version"
|
|
|
|
// Unit testing helpers.
|
|
testCompile "junit:junit:$junit_version"
|
|
testCompile "org.assertj:assertj-core:${assertj_version}"
|
|
testCompile "com.pholser:junit-quickcheck-core:$quickcheck_version"
|
|
testCompile "com.nhaarman:mockito-kotlin:1.1.0"
|
|
testCompile project(':test-utils')
|
|
testCompile project(':client')
|
|
testCompile project(':core')
|
|
|
|
// For H2 database support in persistence
|
|
compile "com.h2database:h2:1.4.193"
|
|
|
|
// Exposed: Kotlin SQL library - under evaluation
|
|
// TODO: Upgrade to Exposed 0.7 (has API changes)
|
|
compile "org.jetbrains.exposed:exposed:0.5.0"
|
|
|
|
// SQL connection pooling library
|
|
compile "com.zaxxer:HikariCP:2.5.1"
|
|
|
|
// Hibernate: an object relational mapper for writing state objects to the database automatically.
|
|
compile "org.hibernate:hibernate-core:$hibernate_version"
|
|
compile "org.hibernate:hibernate-java8:$hibernate_version"
|
|
|
|
// Capsule is a library for building independently executable fat JARs.
|
|
compile 'co.paralleluniverse:capsule:1.0.3'
|
|
|
|
// Java Atomix: RAFT library
|
|
compile 'io.atomix.copycat:copycat-client:1.1.4'
|
|
compile 'io.atomix.copycat:copycat-server:1.1.4'
|
|
compile 'io.atomix.catalyst:catalyst-netty:1.1.1'
|
|
|
|
// OkHTTP: Simple HTTP library.
|
|
compile "com.squareup.okhttp3:okhttp:$okhttp_version"
|
|
|
|
// Integration test helpers
|
|
integrationTestCompile "junit:junit:$junit_version"
|
|
}
|
|
|
|
task integrationTest(type: Test) {
|
|
testClassesDir = sourceSets.integrationTest.output.classesDir
|
|
classpath = sourceSets.integrationTest.runtimeClasspath
|
|
}
|