plugins {
    id "java"
    id 'org.springframework.boot'
    id "org.jetbrains.kotlin.jvm"
    id "org.jetbrains.kotlin.plugin.spring"
    id 'com.palantir.docker'
}

apply plugin: 'io.spring.dependency-management'
apply plugin: 'kotlin'

def ynrccStartClass = "com.supwisdom.agent.YnrccAgentApplication"

println("Build version: $buildVersion")


bootJar {
    mainClassName = ynrccStartClass
    archiveFileName = "${project.name}-${buildVersion}.${archiveExtension.getOrElse('.jar')}"
    manifest {
        attributes('YnrccAgent-Version': buildVersion)
    }
}

compileKotlin {
    kotlinOptions {
        freeCompilerArgs = ["-Xjsr305=strict"]
        jvmTarget = jdkVersion
    }
}

compileTestKotlin {
    kotlinOptions {
        freeCompilerArgs = ["-Xjsr305=strict"]
        jvmTarget = jdkVersion
    }
}

docker {
    def imageVersion
    if (details.gitHashFull.startsWith(details.lastTag) || !details.isCleanTag) {
        imageVersion = 'dev'
    } else {
        imageVersion = details.lastTag
    }
    println("Docker image tag : ${imageVersion}")
    name "${dockerRegistry}/ynrcc:${imageVersion}"
    println(bootJar.archiveFile.get())
    files bootJar.archiveFile.get()
    buildArgs([BUILD_VERSION: "${buildVersion}"])
}

dependencies {

    implementation project(":payapi-common")

    implementation "org.springframework.boot:spring-boot-starter-web"
    implementation "org.springframework.boot:spring-boot-autoconfigure"
    implementation "javax.ws.rs:javax.ws.rs-api:${javaxWSRSVersion}"

    implementation "org.dom4j:dom4j:${dom4jVersion}"
    implementation "commons-beanutils:commons-beanutils:${beanutilsVersion}"
    implementation "commons-net:commons-net:${commonNetVersion}"

    runtime("org.springframework.boot:spring-boot-devtools")
}

