mirror of
https://github.com/corda/corda.git
synced 2024-12-28 16:58:55 +00:00
1ecf646f7e
* Sql setup scripts for Oracle and datasource configuration. * CashSelection for Oracle. * Workaround of forbidden distinct for BLOBs. * ojdbc8.jar driver dependency from Oracle Maven repository, ojdbc6.jar from lib (it's not in Maven repo). * allow to use random Port in node names and trim it from schema name, remove schema with port numbers from db setup (to cater for new test, non Oracle specific change) * Removed unnecessary code from ConfigUtilities (non Oracle specific change) * Removed db integration tests setup for RPCStabilityTest as it doesn't start any nodes
240 lines
9.3 KiB
Groovy
240 lines
9.3 KiB
Groovy
apply plugin: 'kotlin'
|
|
// Java Persistence API support: create no-arg constructor
|
|
// see: http://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell
|
|
apply plugin: 'kotlin-jpa'
|
|
apply plugin: 'java'
|
|
apply plugin: 'net.corda.plugins.quasar-utils'
|
|
apply plugin: 'net.corda.plugins.publish-utils'
|
|
apply plugin: 'com.jfrog.artifactory'
|
|
|
|
description 'Corda node modules'
|
|
|
|
//noinspection GroovyAssignabilityCheck
|
|
configurations {
|
|
compile {
|
|
// We don't need these because we already include netty-all.
|
|
exclude group: 'io.netty', module: 'netty-transport'
|
|
exclude group: 'io.netty', module: 'netty-handler'
|
|
}
|
|
|
|
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')
|
|
}
|
|
java {
|
|
compileClasspath += main.output + test.output
|
|
runtimeClasspath += main.output + test.output
|
|
srcDir file('src/integration-test/java')
|
|
}
|
|
resources {
|
|
srcDir file('src/integration-test/resources')
|
|
srcDir file('../../testing/test-utils/src/main/resources')
|
|
}
|
|
}
|
|
}
|
|
|
|
// Use manual resource copying of log4j2.xml rather than source sets.
|
|
// This prevents problems in IntelliJ with regard to duplicate source roots.
|
|
processResources {
|
|
from file("$rootDir/config/dev/log4j2.xml")
|
|
from file("$rootDir/config/dev/jolokia-access.xml")
|
|
}
|
|
|
|
processTestResources {
|
|
from file("$rootDir/config/test/jolokia-access.xml")
|
|
}
|
|
|
|
// 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(':node-api')
|
|
compile project(":confidential-identities")
|
|
compile project(':client:rpc')
|
|
compile "net.corda.plugins:cordform-common:$gradle_plugins_version"
|
|
|
|
// Log4J: logging framework (with SLF4J bindings)
|
|
compile "org.apache.logging.log4j:log4j-slf4j-impl:${log4j_version}"
|
|
compile "org.apache.logging.log4j:log4j-web:${log4j_version}"
|
|
compile "org.slf4j:jul-to-slf4j:$slf4j_version"
|
|
|
|
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
|
|
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
|
testCompile "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.
|
|
// TODO: remove the forced update of commons-collections and beanutils when artemis updates them
|
|
compile "org.apache.commons:commons-collections4:${commons_collections_version}"
|
|
compile "commons-beanutils:commons-beanutils:${beanutils_version}"
|
|
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}") {
|
|
// Gains our proton-j version from core module.
|
|
exclude group: 'org.apache.qpid', module: 'proton-j'
|
|
}
|
|
|
|
// JAnsi: for drawing things to the terminal in nicely coloured ways.
|
|
compile "org.fusesource.jansi:jansi:$jansi_version"
|
|
|
|
// Manifests: for reading stuff from the manifest file
|
|
compile "com.jcabi:jcabi-manifests:1.1"
|
|
|
|
compile("com.intellij:forms_rt:7.0.3") {
|
|
exclude group: "asm"
|
|
}
|
|
|
|
// Jackson support: serialisation to/from JSON, YAML, etc
|
|
compile project(':client:jackson')
|
|
|
|
// Coda Hale's Metrics: for monitoring of key statistics
|
|
compile "io.dropwizard.metrics:metrics-core:3.1.2"
|
|
compile group: 'io.dropwizard.metrics', name: 'metrics-graphite', version: '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.github.stefanbirkner:system-rules:1.16.0'
|
|
testCompile project(':test-utils')
|
|
testCompile project(':client:jfx')
|
|
testCompile project(':finance')
|
|
|
|
// sample test schemas
|
|
testCompile project(path: ':finance', configuration: 'testArtifacts')
|
|
|
|
// For H2 database support in persistence
|
|
compile "com.h2database:h2:$h2_version"
|
|
|
|
// For the MySQLUniquenessProvider
|
|
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'
|
|
|
|
// SQL connection pooling library
|
|
compile "com.zaxxer:HikariCP:${hikari_version}"
|
|
|
|
// 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.
|
|
// We only need this dependency to compile our Caplet against.
|
|
compileOnly "co.paralleluniverse:capsule:$capsule_version"
|
|
|
|
// Java Atomix: RAFT library
|
|
compile 'io.atomix.copycat:copycat-client:1.2.3'
|
|
compile 'io.atomix.copycat:copycat-server:1.2.3'
|
|
compile 'io.atomix.catalyst:catalyst-netty:1.1.2'
|
|
|
|
// Netty: All of it.
|
|
compile "io.netty:netty-all:$netty_version"
|
|
|
|
// CRaSH: An embeddable monitoring and admin shell with support for adding new commands written in Groovy.
|
|
compile("com.github.corda.crash:crash.shell:$crash_version") {
|
|
exclude group: "org.slf4j", module: "slf4j-jdk14"
|
|
exclude group: "org.bouncycastle"
|
|
}
|
|
|
|
compile("com.github.corda.crash:crash.connectors.ssh:$crash_version") {
|
|
exclude group: "org.slf4j", module: "slf4j-jdk14"
|
|
exclude group: "org.bouncycastle"
|
|
}
|
|
|
|
// OkHTTP: Simple HTTP library.
|
|
compile "com.squareup.okhttp3:okhttp:$okhttp_version"
|
|
|
|
// BFT-SMaRt
|
|
compile 'commons-codec:commons-codec:1.10'
|
|
compile 'com.github.bft-smart:library:master-v1.1-beta-g6215ec8-87'
|
|
|
|
// FastClasspathScanner: classpath scanning
|
|
compile 'io.github.lukehutch:fast-classpath-scanner:2.0.21'
|
|
|
|
// Apache Shiro: authentication, authorization and session management.
|
|
compile "org.apache.shiro:shiro-core:${shiro_version}"
|
|
|
|
// Jsh: A SSH implementation for tunneling inbound traffic via a relay
|
|
compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
|
|
|
|
// Integration test helpers
|
|
integrationTestCompile "junit:junit:$junit_version"
|
|
integrationTestCompile "org.assertj:assertj-core:${assertj_version}"
|
|
|
|
// Jsh: Testing SSH server
|
|
integrationTestCompile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
|
|
|
|
// Jetty dependencies for NetworkMapClient test.
|
|
// Web stuff: for HTTP[S] servlets
|
|
testCompile "org.eclipse.jetty:jetty-servlet:${jetty_version}"
|
|
testCompile "org.eclipse.jetty:jetty-webapp:${jetty_version}"
|
|
testCompile "javax.servlet:javax.servlet-api:3.1.0"
|
|
|
|
// Jersey for JAX-RS implementation for use in Jetty
|
|
testCompile "org.glassfish.jersey.core:jersey-server:${jersey_version}"
|
|
testCompile "org.glassfish.jersey.containers:jersey-container-servlet-core:${jersey_version}"
|
|
testCompile "org.glassfish.jersey.containers:jersey-container-jetty-http:${jersey_version}"
|
|
|
|
// Add runtime-only dependency on the JDBC driver for the specified DB provider (used in database integration tests)
|
|
def DB_PROVIDER = System.getProperty("databaseProvider")
|
|
switch (DB_PROVIDER) {
|
|
case null: //DB provider not provided, use default H2 driver (already in the classpath)
|
|
break
|
|
case "integration-sql-server" :
|
|
runtime "com.microsoft.sqlserver:mssql-jdbc:6.2.1.jre8"
|
|
break
|
|
case "integration-azure-sql" :
|
|
runtime "com.microsoft.sqlserver:mssql-jdbc:6.2.1.jre8"
|
|
break
|
|
case "integration-oracle" :
|
|
runtime ("com.oracle.jdbc:ojdbc8:12.2.0.1") { //exclude unnecessary or conflicting libraries
|
|
exclude group: "com.oracle.jdbc", module: "ucp"
|
|
exclude group: "com.oracle.jdbc", module: "ons"
|
|
exclude group: "com.oracle.jdbc", module: "xmlparserv2"
|
|
exclude group: "com.oracle.jdbc", module: "xdb6"
|
|
exclude group: "com.oracle.jdbc", module: "oraclepki"
|
|
exclude group: "com.oracle.jdbc", module: "osdt_cert"
|
|
exclude group: "com.oracle.jdbc", module: "osdt_core"
|
|
}
|
|
break
|
|
case "integration-oracle-11" :
|
|
runtime files("lib/ojdbc6.jar")
|
|
break
|
|
case "integration-postgres" :
|
|
runtime "org.postgresql:postgresql:${postgresql_version}"
|
|
break
|
|
default:
|
|
throw new GradleException('Unsupported DB provider: ' + DB_PROVIDER)
|
|
}
|
|
|
|
// Jolokia JVM monitoring agent
|
|
runtime "org.jolokia:jolokia-jvm:${jolokia_version}:agent"
|
|
}
|
|
|
|
task integrationTest(type: Test) {
|
|
testClassesDirs = sourceSets.integrationTest.output.classesDirs
|
|
classpath = sourceSets.integrationTest.runtimeClasspath
|
|
}
|
|
|
|
jar {
|
|
baseName 'corda-node'
|
|
}
|
|
|
|
publish {
|
|
name jar.baseName
|
|
}
|