mirror of
https://github.com/corda/corda.git
synced 2024-12-21 22:07:55 +00:00
b4c3fa1948
* Fixed incorrect attachment loading integration test `AttachmentLoadingTests.test that attachments retrieved over the network are not used for code` was a false-positive - it was incorrect on multiple levels. Fixing it required updating the finance:isolated CorDapp, at which point it was given the new MANIFEST metadata for V4, and moved out of the net.corda.finance namespace to avoid package sealing issues. The new test exposed a bug in the LedgerTransaction verification logic. This was cleaned up as it was too easy to verify on the wrong instance.
207 lines
7.8 KiB
Groovy
207 lines
7.8 KiB
Groovy
// Import private compile time constants
|
|
buildscript {
|
|
def properties = new Properties()
|
|
file("$projectDir/src/main/resources/build.properties").withInputStream { properties.load(it) }
|
|
|
|
ext.jolokia_version = properties.getProperty('jolokiaAgentVersion')
|
|
}
|
|
|
|
plugins {
|
|
id 'com.google.cloud.tools.jib' version '0.9.4'
|
|
}
|
|
|
|
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 {
|
|
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')
|
|
}
|
|
}
|
|
}
|
|
|
|
jib.container {
|
|
mainClass = "net.corda.node.Corda"
|
|
args = ['--log-to-console', '--no-local-shell', '--config-file=/config/node.conf']
|
|
// The Groovy string needs to be converted to a `java.lang.String` below.
|
|
jvmFlags = ['-Xmx1g', "-javaagent:/app/libs/quasar-core-${quasar_version}-jdk8.jar".toString()]
|
|
}
|
|
|
|
// 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(':client:rpc')
|
|
compile project(':tools:shell')
|
|
compile project(':tools:cliutils')
|
|
compile project(':common-validation')
|
|
compile project(':common-configuration-parsing')
|
|
|
|
// 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-jdk8:$kotlin_version"
|
|
runtimeOnly "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
|
|
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
|
testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
|
|
|
|
// Kryo: object graph serialization.
|
|
compile "com.esotericsoftware:kryo:4.0.0"
|
|
compile "de.javakaffee:kryo-serializers:0.42"
|
|
|
|
compile "com.google.guava:guava:$guava_version"
|
|
|
|
// For caches rather than guava
|
|
compile "com.github.ben-manes.caffeine:caffeine:$caffeine_version"
|
|
|
|
// For async logging
|
|
compile "com.lmax:disruptor:$disruptor_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'
|
|
}
|
|
|
|
// Manifests: for reading stuff from the manifest file
|
|
compile "com.jcabi:jcabi-manifests:$jcabi_manifests_version"
|
|
|
|
compile("com.intellij:forms_rt:7.0.3") {
|
|
exclude group: "asm"
|
|
}
|
|
|
|
// Coda Hale's Metrics: for monitoring of key statistics
|
|
compile "io.dropwizard.metrics:metrics-core:$metrics_version"
|
|
|
|
// 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 project(':test-utils')
|
|
testCompile project(':client:jfx')
|
|
testCompile project(':finance:contracts')
|
|
testCompile project(':finance:workflows')
|
|
|
|
// sample test schemas
|
|
testCompile project(path: ':finance:contracts', configuration: 'testArtifacts')
|
|
|
|
// For H2 database support in persistence
|
|
compile "com.h2database:h2:$h2_version"
|
|
|
|
// For Postgres database support in persistence
|
|
compile "org.postgresql:postgresql:$postgresql_version"
|
|
|
|
// 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.
|
|
// We only need this dependency to compile our Caplet against.
|
|
compileOnly "co.paralleluniverse:capsule:$capsule_version"
|
|
testCompile "co.paralleluniverse:capsule:$capsule_version"
|
|
|
|
// OkHTTP: Simple HTTP library.
|
|
compile "com.squareup.okhttp3:okhttp:$okhttp_version"
|
|
|
|
// Apache Shiro: authentication, authorization and session management.
|
|
compile "org.apache.shiro:shiro-core:${shiro_version}"
|
|
|
|
//Picocli for command line interface
|
|
compile "info.picocli:picocli:$picocli_version"
|
|
|
|
// Integration test helpers
|
|
integrationTestCompile "junit:junit:$junit_version"
|
|
integrationTestCompile "org.assertj:assertj-core:${assertj_version}"
|
|
|
|
// AgentLoader: dynamic loading of JVM agents
|
|
compile group: 'com.ea.agentloader', name: 'ea-agent-loader', version: "${eaagentloader_version}"
|
|
|
|
// 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}"
|
|
|
|
// Jolokia JVM monitoring agent, required to push logs through slf4j
|
|
compile "org.jolokia:jolokia-jvm:${jolokia_version}:agent"
|
|
// Optional New Relic JVM reporter, used to push metrics to the configured account associated with a newrelic.yml configuration. See https://mvnrepository.com/artifact/com.palominolabs.metrics/metrics-new-relic
|
|
compile "com.palominolabs.metrics:metrics-new-relic:${metrics_new_relic_version}"
|
|
|
|
testCompile(project(':test-cli'))
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
// Resolves a Gradle warning about not scanning for pre-processors.
|
|
options.compilerArgs << '-proc:none'
|
|
}
|
|
|
|
task integrationTest(type: Test) {
|
|
testClassesDirs = sourceSets.integrationTest.output.classesDirs
|
|
classpath = sourceSets.integrationTest.runtimeClasspath
|
|
}
|
|
|
|
jar {
|
|
baseName 'corda-node'
|
|
}
|
|
|
|
publish {
|
|
name jar.baseName
|
|
}
|