corda/testing/node-driver/build.gradle
2024-10-25 15:25:59 +01:00

159 lines
6.4 KiB
Groovy

apply plugin: 'org.jetbrains.kotlin.jvm'
apply plugin: 'org.jetbrains.kotlin.plugin.jpa'
apply plugin: 'net.corda.plugins.quasar-utils'
apply plugin: 'net.corda.plugins.api-scanner'
apply plugin: 'corda.common-publishing'
description 'Corda Node Driver module'
//noinspection GroovyAssignabilityCheck
configurations {
integrationTestImplementation.extendsFrom testImplementation
integrationTestRuntime.extendsFrom testRuntimeOnly
}
sourceSets {
integrationTest {
kotlin {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
srcDir file('src/integration-test/kotlin')
}
resources {
srcDir file('src/integration-test/resources')
}
}
}
dependencies {
implementation project(':core')
implementation project(':node')
implementation project(':node-api')
implementation project(':serialization')
implementation project(':client:rpc')
implementation project(':client:mock')
implementation project(':common-configuration-parsing')
implementation project(':common-validation')
implementation project(':core-test-utils')
implementation project(':test-common')
implementation project(':test-utils')
implementation project(':tools:cliutils')
implementation group: 'org.apache.sshd', name: 'sshd-common', version: '2.12.1'
implementation "javax.persistence:javax.persistence-api:2.2"
// Integration test helpers
testImplementation "org.assertj:assertj-core:$assertj_version"
integrationTestImplementation project(":client:jackson")
integrationTestImplementation "junit:junit:$junit_version"
integrationTestImplementation "org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}"
integrationTestImplementation "info.picocli:picocli:$picocli_version"
integrationTestImplementation "com.google.guava:guava:$guava_version"
integrationTestImplementation 'com.googlecode.json-simple:json-simple:1.1.1'
integrationTestImplementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
integrationTestImplementation 'org.hamcrest:hamcrest-library:2.1'
integrationTestRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junit_vintage_version}"
integrationTestRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junit_jupiter_version}"
integrationTestRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}"
// Jetty dependencies for NetworkMapClient test.
// Web stuff: for HTTP[S] servlets
implementation "org.eclipse.jetty.ee10:jetty-ee10-servlet:${jetty_version}"
implementation "org.eclipse.jetty.ee10:jetty-ee10-webapp:${jetty_version}"
implementation "javax.servlet:javax.servlet-api:${servlet_version}"
implementation "org.gradle:gradle-tooling-api:7.1"
// Jersey for JAX-RS implementation for use in Jetty
implementation "org.glassfish.jersey.core:jersey-server:${jersey_version}"
implementation "org.glassfish.jersey.containers:jersey-container-servlet-core:${jersey_version}"
implementation "org.glassfish.jersey.containers:jersey-container-jetty-http:${jersey_version}"
implementation "org.glassfish.jersey.inject:jersey-hk2:$jersey_version"
implementation "io.reactivex:rxjava:$rxjava_version"
implementation("org.apache.activemq:artemis-core-client:${artemis_version}") {
exclude group: 'org.jgroups', module: 'jgroups'
}
// Bouncy castle support needed for X509 certificate manipulation
implementation "org.bouncycastle:bcprov-lts8on:${bouncycastle_version}"
implementation "org.bouncycastle:bcpkix-lts8on:${bouncycastle_version}"
implementation "org.bouncycastle:bcutil-lts8on:${bouncycastle_version}"
implementation "com.google.code.findbugs:jsr305:$jsr305_version"
implementation "com.google.jimfs:jimfs:1.1"
implementation group: "com.typesafe", name: "config", version: typesafe_config_version
implementation "io.github.classgraph:classgraph:$class_graph_version"
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
implementation "org.mockito.kotlin:mockito-kotlin:$mockito_kotlin_version"
implementation "com.esotericsoftware:kryo:$kryo_version"
implementation "io.dropwizard.metrics:metrics-jmx:$metrics_version"
implementation "org.apache.commons:commons-lang3:$commons_lang3_version"
implementation "org.assertj:assertj-core:${assertj_version}"
implementation "org.apache.logging.log4j:log4j-core:$log4j_version"
implementation "junit:junit:$junit_version"
implementation("org.apache.activemq:artemis-server:${artemis_version}") {
exclude group: 'org.apache.commons', module: 'commons-dbcp2'
exclude group: 'org.jgroups', module: 'jgroups'
}
implementation "co.paralleluniverse:quasar-core:$quasar_version"
implementation "org.hibernate:hibernate-core:$hibernate_version"
}
compileJava {
doFirst {
options.compilerArgs = [
'--add-modules', 'jdk.incubator.foreign'
]
}
}
processResources {
from(project(":node:capsule").files("src/main/resources/node-jvm-args.txt")) {
into("net/corda/testing/node/internal")
}
}
task integrationTest(type: Test) {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
}
jar {
baseName 'corda-node-driver'
manifest {
// This JAR is part of Corda's testing framework.
// Driver will not include it as part of an out-of-process node.
attributes('Corda-Testing': true)
}
}
tasks.named('javadoc', Javadoc) {
enabled = false
}
scanApi {
//Constructors that are synthesized by Kotlin unexpectedly
excludeMethods = [
"net.corda.testing.node.MockServices": [
"<init>(Lnet/corda/node/cordapp/CordappLoader;Lnet/corda/core/node/services/IdentityService;Lnet/corda/core/node/NetworkParameters;Lnet/corda/testing/core/TestIdentity;[Ljava/security/KeyPair;Lkotlin/jvm/internal/DefaultConstructorMarker;)V"
],
"net.corda.testing.node.InMemoryMessagingNetwork\$MessageTransfer": [
"<init>(Lnet/corda/testing/node/InMemoryMessagingNetwork\$PeerHandle;Lnet/corda/node/services/messaging/Message;Lnet/corda/core/messaging/MessageRecipients;Lkotlin/jvm/internal/DefaultConstructorMarker;)V"
]
]
}
publishing {
publications {
maven(MavenPublication) {
artifactId jar.baseName
from components.java
}
}
}