plugins {
    id 'java-library'
    id 'maven-publish'
    id 'checkstyle'
    alias libs.plugins.yumi.gradle.licenser.plugin
    alias libs.plugins.jaredsburrows.license.plugin
}

java {
    withJavadocJar()
    withSourcesJar()
}

dependencies {

    api project(":access")
    api project(":domain-events-core")
    api project(":types")
    api project(":service-registry")
    api project(":domain-events-mq")

    api libs.jakarta.jms.api
    runtimeOnly libs.active.mq.client
    runtimeOnly libs.active.mq.client.jakarta
    compileOnly libs.jackson.core
    api libs.jackson.databind
    compileOnly libs.slf4j.api

    testImplementation project(":access")
    testImplementation project(":types")
    testImplementation project(":type-utils")
    testImplementation project(":mirror")
    testImplementation project(":service-registry")
    testImplementation project(":domain-events-core")
    testImplementation project(":domain-events-spring-tx")
    testImplementation project(":jackson-integration")
    testImplementation project(":builder")
    testImplementation project(":domain-events-activemq-classic-5")

    testImplementation libs.slf4j.api
    testImplementation libs.lombok
    testAnnotationProcessor libs.lombok

    testImplementation libs.assertj
    testImplementation libs.logback.classic

    testImplementation libs.spring.boot3.starter
    testImplementation libs.spring.boot3.starter.json
    testImplementation libs.spring.boot3.starter.jooq
    testImplementation libs.spring.boot3.starter.test

    testImplementation libs.spring.boot3.starter.activemq

    testImplementation libs.h2
    testImplementation libs.awaitility

    testImplementation (libs.active.mq.broker) {
        exclude (group: 'org.apache.activemq', module: 'activemq-client-jakarta')
    }

    testImplementation libs.active.mq.client.jakarta
    testImplementation libs.javax.jms.api
    testImplementation libs.bundles.gruelbox.transactionoutbox
}
