import static org.gradle.api.JavaVersion.VERSION_1_8 plugins { id 'org.jetbrains.kotlin.jvm' id 'net.corda.plugins.publish-utils' id 'com.jfrog.artifactory' id 'java-library' id 'idea' } description 'Serialization support for the DJVM' configurations { sandboxTesting jdkRt } dependencies { api project(':core') api project(':serialization') api "net.corda.djvm:corda-djvm:$djvm_version" api 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' implementation 'org.jetbrains.kotlin:kotlin-reflect' implementation(project(':serialization-djvm:deserializers')) { transitive = false } testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_jupiter_version" testImplementation "org.junit.jupiter:junit-jupiter-params:$junit_jupiter_version" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_jupiter_version" // Test utilities testImplementation "org.assertj:assertj-core:$assertj_version" testRuntimeOnly "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version" jdkRt "net.corda:deterministic-rt:$deterministic_rt_version" // The DJVM will need this classpath to run the unit tests. sandboxTesting files(sourceSets.getByName("test").output) sandboxTesting project(':serialization-djvm:deserializers') sandboxTesting project(path: ':serialization-deterministic', configuration: 'deterministicArtifacts') sandboxTesting "org.slf4j:slf4j-nop:$slf4j_version" } // The DJVM only supports Java 8 byte-code. compileTestJava { sourceCompatibility = VERSION_1_8 targetCompatibility = VERSION_1_8 } compileTestKotlin { kotlinOptions { jvmTarget = VERSION_1_8 } } jar { archiveBaseName = 'corda-serialization-djvm' manifest { attributes('Automatic-Module-Name': 'net.corda.serialization.djvm') attributes('Sealed': true) } } tasks.withType(Test) { useJUnitPlatform() systemProperty 'deterministic-rt.path', configurations.jdkRt.asPath systemProperty 'sandbox-libraries.path', configurations.sandboxTesting.asPath // Configure the host timezone to match the DJVM's. systemProperty 'user.timezone', 'UTC' } publish { name jar.archiveBaseName.get() } idea { module { downloadJavadoc = true downloadSources = true } }