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
}

task testJar(type: Jar) {
    classifier "tests"
    from sourceSets.test.output
}

artifacts {
    testArtifacts testJar
    publish testJar
}

jar {
    archiveBaseName = 'corda-serialization'
    archiveClassifier = ''
}

publish {
    name jar.baseName
}
