plugins {
    id "java-platform"
    id "release-conventions"
}

javaPlatform {
    allowDependencies()
}

repositories {
    mavenCentral()
}

dependencies {
    constraints {
        api project(":arconia-core")

        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-core")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-artemis")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-docling")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-kafka")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-lgtm")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-mariadb")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-mongodb")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-mongodb-atlas")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-mysql")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-ollama")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-oracle")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-oracle-xe")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-phoenix")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-postgresql")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-rabbitmq")
        api project(":arconia-dev:arconia-dev-services:arconia-dev-services-redis")

        api project(":arconia-integrations:arconia-docling")

        api project(":arconia-kubernetes:arconia-kubernetes-service-binding")

        api project(":arconia-multitenancy:arconia-multitenancy-core")
        api project(":arconia-multitenancy:arconia-multitenancy-web")

        api project(":arconia-observability:arconia-openinference-semantic-conventions")
        api project(":arconia-observability:arconia-opentelemetry")
        api project(":arconia-observability:arconia-opentelemetry-logback-bridge")
        api project(":arconia-observability:arconia-opentelemetry-micrometer-metrics-bridge")

        api project(":arconia-spring-boot")

        api project(":spring-boot-starters:arconia-docling-spring-boot-starter")
        api project(":spring-boot-starters:arconia-multitenancy-web-spring-boot-starter")
        api project(":spring-boot-starters:arconia-opentelemetry-spring-boot-starter")
        api project(":spring-boot-starters:arconia-spring-boot-starter")

        api "org.jspecify:jspecify:${jSpecifyVersion}"
        api "io.opentelemetry.semconv:opentelemetry-semconv:${openTelemetrySemanticConventionsVersion}"
    }

    api platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:${openTelemetryInstrumentationVersion}-alpha")
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            pom {
                name = "Arconia BOM"
                description = "Arconia Bill of Materials."
                packaging = "pom"
            } 
        }
    }
}
