corda/serialization/build.gradle
Chris Rankin caeafb8201
ENT-6357: Deserialize LedgerTransaction elements for each Contract.verify(). (#6962)
* ENT-6357: Deserialize LedgerTransaction elements for each Contract.verify().

* Lock the LedgerTransaction and NetworkParameters objects down for contract verification.

* Refactor BasicVerifier to be package private instead of public.

* Simplify verifyConstraints() operation.

* Review fixes: replace HashSet with LinkedHashSet, and add signing parties to commands via mapIndexed.

* Ensure tests also run notary nodes "out of process".

* Streamline SerializationContext switching.

* Cache deserialised cryptographic instances during contract verification.

* Invoke Class.forName() instead of ClassLoader.loadClass() to reduce contention on the system classloader's lock.

* Deserialization cache key now pre-computes its hash code.

* Allow AttachmentsClassLoader to be used concurrently.

* Cache all Envelope objects for reuse during contract verification.

* Generate CertPathProxy hash code using conventional algorithm.

* Adjust CustomSerializer.Proxy to allow better access to SerializationContext.
2021-11-10 16:38:40 +00:00

78 lines
2.3 KiB
Groovy

import static org.gradle.api.JavaVersion.VERSION_1_8
apply plugin: 'kotlin'
apply plugin: 'net.corda.plugins.publish-utils'
apply plugin: 'com.jfrog.artifactory'
description 'Corda serialization'
// required by DJVM and Avian JVM (for running inside the SGX enclave) which only supports Java 8.
targetCompatibility = VERSION_1_8
dependencies {
compile project(":core")
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile "org.apache.activemq:artemis-commons:${artemis_version}"
compile "org.ow2.asm:asm:$asm_version"
compile "com.google.guava:guava:$guava_version"
// For AMQP serialisation.
compile "org.apache.qpid:proton-j:$protonj_version"
// ClassGraph: classpath scanning
compile "io.github.classgraph:classgraph:$class_graph_version"
// Pure-Java Snappy compression
compile "org.iq80.snappy:snappy:$snappy_version"
// For caches rather than guava
compile "com.github.ben-manes.caffeine:caffeine:$caffeine_version"
testImplementation "org.junit.jupiter:junit-jupiter-api:${junit_jupiter_version}"
testImplementation "junit:junit:$junit_version"
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junit_vintage_version}"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junit_jupiter_version}"
testRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}"
testRuntimeOnly "org.slf4j:slf4j-simple:$slf4j_version"
testCompile "org.assertj:assertj-core:$assertj_version"
testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
testCompile "org.mockito:mockito-core:$mockito_version"
testCompile 'org.hamcrest:hamcrest-library:2.1'
testCompile "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
}
configurations {
testArtifacts.extendsFrom testRuntimeClasspath
}
tasks.withType(Javadoc).configureEach {
// We have no public or protected Java classes to document.
enabled = false
}
task testJar(type: Jar) {
archiveClassifier = 'tests'
from sourceSets.test.output
}
artifacts {
testArtifacts testJar
publish testJar
}
jar {
archiveBaseName = 'corda-serialization'
archiveClassifier = ''
}
publish {
name jar.archiveBaseName
}