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: CanonicalizerPlugin
apply plugin: 'net.corda.plugins.publish-utils'
apply plugin: 'net.corda.plugins.quasar-utils'
apply plugin: 'net.corda.plugins.cordapp'
apply plugin: 'com.jfrog.artifactory'

description 'Corda finance modules'

sourceSets {
    integrationTest {
        kotlin {
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output
            srcDir file('src/integration-test/kotlin')
        }
    }
}

dependencies {
    // Note the :finance module is a CorDapp in its own right
    // and CorDapps using :finance features should use 'cordapp' not 'compile' linkage.
    cordaCompile project(':core')
    cordaCompile project(':confidential-identities')

    // TODO Remove this once we have app configs
    compile "com.typesafe:config:$typesafe_config_version"

    testCompile project(':test-utils')
    testCompile project(path: ':core', configuration: 'testArtifacts')
    testCompile "junit:junit:$junit_version"

    // AssertJ: for fluent assertions for testing
    testCompile "org.assertj:assertj-core:$assertj_version"
}

configurations {
    testArtifacts.extendsFrom testRuntime
    integrationTestCompile.extendsFrom testCompile
    integrationTestRuntime.extendsFrom testRuntime
}

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

task integrationTest(type: Test, dependsOn: []) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
}

artifacts {
    testArtifacts testJar
}

jar {
    baseName 'corda-finance'
}

publish {
    name jar.baseName
}
