plugins {
    id "java-library"
    id "ivy-publish"
}

java {
    withJavadocJar()
    withSourcesJar()
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
}

dependencies {
    compileOnly libs.jdt.annotations

    api gradleApi(),
        libs.bundles.jackson

    implementation project(":common")

    testImplementation gradleTestKit()
    testImplementation "org.junit.jupiter:junit-jupiter-api:5.11.4"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.11.4"
    testRuntimeOnly "org.junit.platform:junit-platform-launcher:1.11.4"
}

task printVersion{
    doLast {
        println "project: $project.group:$project.name:$project.version"
        println "jar: ${->jar.archiveFileName.get()}"
    }
}

test {
    useJUnitPlatform()
}

publishing {
    repositories {
        ivy {
            url "${System.properties["user.home"]}/ivy-repo"
        }
    }
    publications {
        ivy(IvyPublication) {
            from components.java
            descriptor.description {
                text = providers.provider({ description })
            }
        }
    }
}
