apply plugin: 'org.jetbrains.kotlin.jvm'
// Java Persistence API support: create no-arg constructor
// see: http://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell
apply plugin: 'org.jetbrains.kotlin.plugin.jpa'
apply plugin: 'net.corda.plugins.quasar-utils'
apply plugin: 'net.corda.plugins.cordapp'
apply plugin: 'corda.common-publishing'

description 'Corda finance module - contracts'

dependencies {
    cordaProvided project(':core')

    implementation "javax.persistence:javax.persistence-api:2.2"
    implementation "org.hibernate:hibernate-core:$hibernate_version"
    implementation "org.slf4j:slf4j-api:$slf4j_version"

    testImplementation project(path: ':core', configuration: 'testArtifacts')
    testImplementation project(':node')
    testImplementation project(':node-api')
    testImplementation project(':finance:workflows')
    testImplementation project(':core-test-utils')
    testImplementation project(':test-utils')
    testImplementation project(':node-driver')
    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}"

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

configurations {
    testArtifacts.extendsFrom testRuntimeOnlyClasspath
}

jar {
    archiveBaseName = 'corda-finance-contracts'
    archiveClassifier = ''
    manifest {
        attributes('Corda-Revision': 'n/a')
        attributes('Corda-Vendor': 'Corda Open Source')
    }
}

cordapp {
    targetPlatformVersion corda_platform_version.toInteger()
    minimumPlatformVersion 1
    contract {
        name "Corda Finance Demo"
        versionId 2
        vendor "R3"
        licence "Open Source (Apache 2)"
    }
    // By default the Cordapp is signed by Corda development certificate, for production build pass the following system properties to Gradle to use specific keystore e.g:
    // ./gradlew -Dsigning.enabled="true" -Dsigning.keystore="/path/to/keystore.jks" -Dsigning.alias="alias" -Dsigning.storepass="password" -Dsigning.keypass="password"
}

publishing {
    publications {
        maven(MavenPublication) {
            artifactId 'corda-finance-contracts'
            from components.cordapp
        }
    }
}
