Files
kestra/platform/build.gradle
2025-12-19 15:26:15 +01:00

162 lines
9.2 KiB
Groovy

plugins {
id 'java-platform'
}
group = 'io.kestra'
description = 'Kestra - Platform BOM'
javaPlatform {
allowDependencies()
}
dependencies {
// versions for libraries with multiple module but no BOM
def slf4jVersion = "2.0.17"
def protobufVersion = "3.25.8" // Orc still uses 3 see https://github.com/apache/orc/blob/main/java/pom.xml
def bouncycastleVersion = "1.83"
def mavenResolverVersion = "2.0.10"
def jollydayVersion = "1.5.6"
def jsonschemaVersion = "4.38.0"
def kafkaVersion = "4.1.1"
def opensearchVersion = "3.2.0"
def opensearchRestVersion = "3.3.2"
def flyingSaucerVersion = "10.0.6"
def jacksonVersion = "2.20.1"
def jacksonAnnotationsVersion = "2.20"
def jugVersion = "5.2.0"
def langchain4jVersion = "1.9.1"
def langchain4jCommunityVersion = "1.9.1-beta17"
// as Jackson is in the Micronaut BOM, to force its version we need to use enforcedPlatform but it didn't really work, see later :(
api enforcedPlatform("com.fasterxml.jackson:jackson-bom:$jacksonVersion")
api enforcedPlatform("org.slf4j:slf4j-api:$slf4jVersion")
api platform("io.micronaut.platform:micronaut-platform:4.9.4")
api platform("io.qameta.allure:allure-bom:2.32.0")
// we define cloud bom here for GCP, Azure and AWS so they are aligned for all plugins that use them (secret, storage, oss and ee plugins)
api platform('com.google.cloud:libraries-bom:26.73.0')
api platform("com.azure:azure-sdk-bom:1.3.3")
api platform('software.amazon.awssdk:bom:2.40.10')
api platform("dev.langchain4j:langchain4j-bom:$langchain4jVersion")
api platform("dev.langchain4j:langchain4j-community-bom:$langchain4jCommunityVersion")
constraints {
// downgrade to proto 1.3.2-alpha as 1.5.0 needs protobuf 4
api("io.opentelemetry.proto:opentelemetry-proto:1.3.2-alpha")
// need to force this dep as mysql-connector brings a version incompatible with the Google Cloud libs
api("com.google.protobuf:protobuf-java:$protobufVersion")
api("com.google.protobuf:protobuf-java-util:$protobufVersion")
// ugly hack for elastic plugins
api("org.apache.httpcomponents:httpclient:4.5.14")
// ugly hack on crypto plugin
api("org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion")
api("org.bouncycastle:bcpg-jdk18on:$bouncycastleVersion")
api("org.bouncycastle:bcpkix-jdk18on:$bouncycastleVersion")
// ugly hack for jackson: as enforcing platform didn't work (it didn't enforce everywhere, not in plugins), we had to force all jackson libs individually.
api("com.fasterxml.jackson.core:jackson-core:$jacksonVersion")
api("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion")
api("com.fasterxml.jackson.core:jackson-annotations:$jacksonAnnotationsVersion")
api("com.fasterxml.jackson.module:jackson-module-parameter-names:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-ion:$jacksonVersion")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:$jacksonVersion")
api("com.fasterxml.jackson.datatype:jackson-datatype-guava:$jacksonVersion")
api("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jacksonVersion")
api("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion")
// http5 client
api("org.apache.httpcomponents.client5:httpclient5:5.5.1")
api("org.apache.httpcomponents.core5:httpcore5:5.3.6")
api("org.apache.httpcomponents.core5:httpcore5-h2:5.3.6")
api("com.fasterxml.uuid:java-uuid-generator:$jugVersion")
// issue with the Docker lib having a too old version for the k8s extension
api("org.apache.commons:commons-compress:1.28.0")
// Kafka
api "org.apache.kafka:kafka-clients:$kafkaVersion"
api "org.apache.kafka:kafka-streams:$kafkaVersion"
// AWS CRT is not included in the AWS BOM but needed for the S3 Transfer manager
api 'software.amazon.awssdk.crt:aws-crt:0.41.0'
// Other libs
api("org.projectlombok:lombok:1.18.42")
api("org.codehaus.janino:janino:3.1.12")
api group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.25.3'
api group: 'org.slf4j', name: 'jul-to-slf4j', version: slf4jVersion
api group: 'org.slf4j', name: 'jcl-over-slf4j', version: slf4jVersion
api group: 'org.fusesource.jansi', name: 'jansi', version: '2.4.2'
api group: 'com.devskiller.friendly-id', name: 'friendly-id', version: '1.1.0'
api group: 'net.thisptr', name: 'jackson-jq', version: '1.6.0'
api group: 'com.google.guava', name: 'guava', version: '33.4.8-jre'
api group: 'commons-io', name: 'commons-io', version: '2.21.0'
api group: 'org.apache.commons', name: 'commons-lang3', version: '3.20.0'
api 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
api 'ch.qos.logback.contrib:logback-jackson:0.1.5'
api group: 'org.apache.maven.resolver', name: 'maven-resolver-impl', version: mavenResolverVersion
api group: 'org.apache.maven.resolver', name: 'maven-resolver-supplier-mvn3', version: mavenResolverVersion
api group: 'org.apache.maven.resolver', name: 'maven-resolver-connector-basic', version: mavenResolverVersion
api group: 'org.apache.maven.resolver', name: 'maven-resolver-transport-file', version: mavenResolverVersion
api group: 'org.apache.maven.resolver', name: 'maven-resolver-transport-apache', version: mavenResolverVersion
api 'com.github.oshi:oshi-core:6.9.1'
api 'io.pebbletemplates:pebble:4.1.0'
api group: 'co.elastic.logging', name: 'logback-ecs-encoder', version: '1.7.0'
api group: 'de.focus-shift', name: 'jollyday-core', version: jollydayVersion
api group: 'de.focus-shift', name: 'jollyday-jaxb', version: jollydayVersion
api 'nl.basjes.gitignore:gitignore-reader:1.14.1'
api group: 'dev.failsafe', name: 'failsafe', version: '3.3.2'
api group: 'com.cronutils', name: 'cron-utils', version: '9.2.1'
api group: 'com.github.victools', name: 'jsonschema-generator', version: jsonschemaVersion
api group: 'com.github.victools', name: 'jsonschema-module-jakarta-validation', version: jsonschemaVersion
api group: 'com.github.victools', name: 'jsonschema-module-jackson', version: jsonschemaVersion
api group: 'com.github.victools', name: 'jsonschema-module-swagger-2', version: jsonschemaVersion
api 'com.h2database:h2:2.4.240'
api 'com.mysql:mysql-connector-j:9.5.0'
api 'org.postgresql:postgresql:42.7.8'
api 'com.github.docker-java:docker-java:3.6.0'
api 'com.github.docker-java:docker-java-transport-httpclient5:3.6.0'
api (group: 'org.opensearch.client', name: 'opensearch-java', version: "$opensearchVersion")
api (group: 'org.opensearch.client', name: 'opensearch-rest-client', version: "$opensearchRestVersion")
api (group: 'org.opensearch.client', name: 'opensearch-rest-high-level-client', version: "$opensearchRestVersion") // used by the elasticsearch plugin
api 'org.jsoup:jsoup:1.21.2'
api "org.xhtmlrenderer:flying-saucer-core:$flyingSaucerVersion"
api "org.xhtmlrenderer:flying-saucer-pdf:$flyingSaucerVersion"
api group: 'jakarta.mail', name: 'jakarta.mail-api', version: '2.1.5'
api group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: '3.0.0'
api group: 'org.eclipse.angus', name: 'jakarta.mail', version: '2.0.5'
api group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '3.2.3'
api group: 'de.siegmar', name: 'fastcsv', version: '4.1.0'
// Json Diff
api group: 'com.github.java-json-tools', name: 'json-patch', version: '1.13'
// force transitive version to fix CVE
api 'org.codehaus.plexus:plexus-utils:3.0.24' // https://nvd.nist.gov/vuln/detail/CVE-2022-4244
// for jOOQ to the same version as we use in EE
api ("org.jooq:jooq:3.20.10")
// Tests
api "org.junit-pioneer:junit-pioneer:2.3.0"
api 'org.hamcrest:hamcrest:3.0'
api 'org.hamcrest:hamcrest-library:3.0'
api group: 'org.exparity', name: 'hamcrest-date', version: '2.0.8'
api "org.wiremock:wiremock-jetty12:3.13.2"
api "org.apache.kafka:kafka-streams-test-utils:$kafkaVersion"
api "com.microsoft.playwright:playwright:1.57.0"
api "org.awaitility:awaitility:4.3.0"
// Kestra components
api "io.kestra:core:$version"
api "io.kestra:model:$version"
api "io.kestra:script:$version"
api "io.kestra:processor:$version"
api "io.kestra:tests:$version"
// the following are used in plugin tests so they are in the platform even if normally not used out there
api "io.kestra:repository-memory:$version"
api "io.kestra:runner-memory:$version"
api "io.kestra:storage-local:$version"
api "io.kestra:scheduler:$version"
api "io.kestra:worker:$version"
}
}