Skip to content

Commit

Permalink
feat: Kestra Platform BOM
Browse files Browse the repository at this point in the history
  • Loading branch information
loicmathieu committed Jun 20, 2024
1 parent a862f9b commit 76f7038
Show file tree
Hide file tree
Showing 12 changed files with 317 additions and 216 deletions.
337 changes: 157 additions & 180 deletions build.gradle

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions cli/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ dependencies {
implementation "io.micronaut:micronaut-http-server-netty"

// logs
implementation 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
implementation 'ch.qos.logback.contrib:logback-jackson:0.1.5'
implementation 'ch.qos.logback.contrib:logback-json-classic'
implementation 'ch.qos.logback.contrib:logback-jackson'

// plugins
implementation 'org.eclipse.aether:aether-api:1.1.0'
implementation 'org.eclipse.aether:aether-spi:1.1.0'
implementation 'org.eclipse.aether:aether-util:1.1.0'
implementation 'org.eclipse.aether:aether-impl:1.1.0'
implementation 'org.eclipse.aether:aether-connector-basic:1.1.0'
implementation 'org.eclipse.aether:aether-transport-file:1.1.0'
implementation 'org.eclipse.aether:aether-transport-http:1.1.0'
implementation('org.apache.maven:maven-aether-provider:3.3.9') {
implementation 'org.eclipse.aether:aether-api'
implementation 'org.eclipse.aether:aether-spi'
implementation 'org.eclipse.aether:aether-util'
implementation 'org.eclipse.aether:aether-impl'
implementation 'org.eclipse.aether:aether-connector-basic'
implementation 'org.eclipse.aether:aether-transport-file'
implementation 'org.eclipse.aether:aether-transport-http'
implementation('org.apache.maven:maven-aether-provider') {
// sisu dependency injector is not used
exclude group: 'org.eclipse.sisu'
}
Expand Down
27 changes: 14 additions & 13 deletions core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,32 @@ dependencies {
annotationProcessor project(':processor')

// serializers
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-ion', version: jacksonVersion
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-ion'

// reactor
api "io.projectreactor:reactor-core"

// micronaut
api "io.micronaut.data:micronaut-data-model"
implementation "io.micronaut:micronaut-http-server-netty"

// utils
implementation 'com.github.oshi:oshi-core:6.6.1'
implementation 'io.pebbletemplates:pebble:3.2.2'
implementation group: 'co.elastic.logging', name: 'logback-ecs-encoder', version: '1.6.0'
implementation group: 'de.focus-shift', name: 'jollyday-core', version: '0.29.0'
implementation group: 'de.focus-shift', name: 'jollyday-jaxb', version: '0.29.0'
implementation 'nl.basjes.gitignore:gitignore-reader:1.6.0'
implementation group: 'dev.failsafe', name: 'failsafe', version: '3.3.2'
implementation 'com.github.oshi:oshi-core'
implementation 'io.pebbletemplates:pebble'
implementation group: 'co.elastic.logging', name: 'logback-ecs-encoder'
implementation group: 'de.focus-shift', name: 'jollyday-core'
implementation group: 'de.focus-shift', name: 'jollyday-jaxb'
implementation 'nl.basjes.gitignore:gitignore-reader'
implementation group: 'dev.failsafe', name: 'failsafe'

// scheduler
implementation group: 'com.cronutils', name: 'cron-utils', version: '9.2.1'
implementation group: 'com.cronutils', name: 'cron-utils'

// schema
implementation group: 'com.github.victools', name: 'jsonschema-generator', version: '4.35.0'
implementation group: 'com.github.victools', name: 'jsonschema-module-jakarta-validation', version: '4.35.0'
implementation group: 'com.github.victools', name: 'jsonschema-module-jackson', version: '4.35.0'
implementation group: 'com.github.victools', name: 'jsonschema-module-swagger-2', version: '4.35.0'
implementation group: 'com.github.victools', name: 'jsonschema-generator'
implementation group: 'com.github.victools', name: 'jsonschema-module-jakarta-validation'
implementation group: 'com.github.victools', name: 'jsonschema-module-jackson'
implementation group: 'com.github.victools', name: 'jsonschema-module-swagger-2'

// test
testAnnotationProcessor project(':processor')
Expand Down
5 changes: 0 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
version=0.18.0-SNAPSHOT

jacksonVersion=2.16.2
micronautVersion=4.4.3
lombokVersion=1.18.32
slf4jVersion=2.0.13

org.gradle.parallel=true
org.gradle.caching=true
org.gradle.priority=low
2 changes: 1 addition & 1 deletion jdbc-h2/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies {
implementation project(":jdbc")

implementation("io.micronaut.sql:micronaut-jooq")
runtimeOnly("com.h2database:h2:2.2.224")
runtimeOnly("com.h2database:h2")

testImplementation project(':core').sourceSets.test.output
testImplementation project(':jdbc').sourceSets.test.output
Expand Down
2 changes: 1 addition & 1 deletion jdbc-mysql/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies {
implementation project(":jdbc")

implementation("io.micronaut.sql:micronaut-jooq")
runtimeOnly("mysql:mysql-connector-java:8.0.33")
runtimeOnly("mysql:mysql-connector-java")
runtimeOnly('org.flywaydb:flyway-mysql')

testImplementation project(':core').sourceSets.test.output
Expand Down
2 changes: 1 addition & 1 deletion jdbc-postgres/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies {
implementation project(":jdbc")

implementation("io.micronaut.sql:micronaut-jooq")
runtimeOnly("org.postgresql:postgresql:42.7.3")
runtimeOnly("org.postgresql:postgresql")
runtimeOnly('org.flywaydb:flyway-database-postgresql')

testImplementation project(':core').sourceSets.test.output
Expand Down
2 changes: 0 additions & 2 deletions model/build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
dependencies {
api platform("io.micronaut.platform:micronaut-platform:$micronautVersion")
api 'jakarta.annotation:jakarta.annotation-api'
api 'jakarta.validation:jakarta.validation-api'
api 'io.swagger.core.v3:swagger-annotations'

// Jackson
api platform(group: 'com.fasterxml.jackson', name:'jackson-bom', version: jacksonVersion)
api 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
api 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
api 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
Expand Down
129 changes: 129 additions & 0 deletions platform/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
plugins {
id 'java-platform'
id 'maven-publish'
}

group = 'io.kestra'
description = 'Kestra - Platform BOM'

javaPlatform {
allowDependencies()
}

dependencies {
// versions for libraries with multiple module but no BOM
def slf4jVersion = "2.0.13"
def protobufVersion = "3.25.3"
def bouncycastleVersion = "1.78.1"
def aetherVersion = "1.1.0"
def jollydayVersion = "0.29.0"
def jsonschemaVersion = "4.35.0"
def kafkaVersion = "3.7.0"
def opensearchVersion = "2.10.3"
def opensearchRestVersion = "2.14.0"
def flyingSaucerVersion = "9.7.2"

// as Jackson is in the Micronaut BOM, to force it's version we need to use enforcedPlatform
api enforcedPlatform("com.fasterxml.jackson:jackson-bom:2.16.2")
api platform("io.micronaut.platform:micronaut-platform:4.4.3")
api platform("io.qameta.allure:allure-bom:2.27.0")

constraints {
// Forced dependencies
api("org.slf4j:slf4j-api:$slf4jVersion")
// ugly bug on google cloud plugins
api("com.google.protobuf:protobuf-java:$protobufVersion")
api("com.google.protobuf:protobuf-java-util:$protobufVersion")
// ugly bug for elastic plugins
api("org.apache.httpcomponents:httpclient:4.5.14")
// ugly bug on crypto plugin
api("org.bouncycastle:bcprov-jdk18on:$bouncycastleVersion")
api("org.bouncycastle:bcpg-jdk18on:$bouncycastleVersion")
// ugly bug for jackson
api("com.fasterxml.jackson.core:jackson-core")
api("com.fasterxml.jackson.core:jackson-databind")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
api("com.fasterxml.jackson.module:jackson-module-parameter-names")
api("com.fasterxml.jackson.datatype:jackson-datatype-guava")
api("com.fasterxml.jackson.core:jackson-annotations")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-smile")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor")
api("com.fasterxml.jackson.dataformat:jackson-dataformat-ion")
api("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
api("com.fasterxml.jackson.datatype:jackson-datatype-jdk8")
// issue with the Docker lib having a too old version for the k8s extension
api("org.apache.commons:commons-compress:1.26.2")
// Kafka
api "org.apache.kafka:kafka-clients:$kafkaVersion"
api "org.apache.kafka:kafka-streams:$kafkaVersion"

// Other libs
api("org.projectlombok:lombok:1.18.32")
api("org.codehaus.janino:janino:3.1.12")
api group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: '2.23.1'
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.1'
api group: 'com.devskiller.friendly-id', name: 'friendly-id', version: '1.1.0'
api group: 'net.thisptr', name: 'jackson-jq', version: '1.0.0-preview.20240207'
api group: 'com.google.guava', name: 'guava', version: '33.2.1-jre'
api group: 'commons-io', name: 'commons-io', version: '2.16.1'
api group: 'org.apache.commons', name: 'commons-lang3', version: '3.14.0'
api 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
api 'ch.qos.logback.contrib:logback-jackson:0.1.5'
api "org.eclipse.aether:aether-api:$aetherVersion"
api "org.eclipse.aether:aether-spi:$aetherVersion"
api "org.eclipse.aether:aether-util:$aetherVersion"
api "org.eclipse.aether:aether-impl:$aetherVersion"
api "org.eclipse.aether:aether-connector-basic:$aetherVersion"
api "org.eclipse.aether:aether-transport-file:$aetherVersion"
api "org.eclipse.aether:aether-transport-http:$aetherVersion"
api 'org.apache.maven:maven-aether-provider:3.3.9'
api 'com.github.oshi:oshi-core:6.6.1'
api 'io.pebbletemplates:pebble:3.2.2'
api group: 'co.elastic.logging', name: 'logback-ecs-encoder', version: '1.6.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.6.0'
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.2.224'
api 'mysql:mysql-connector-java:8.0.33'
api 'org.postgresql:postgresql:42.7.3'
api 'com.github.docker-java:docker-java:3.3.6'
api 'com.github.docker-java:docker-java-transport-httpclient5:3.3.6'
api (group: 'org.opensearch.client', name: 'opensearch-java', version: "$opensearchVersion")
api (group: 'org.opensearch.client', name: 'opensearch-rest-client', version: "$opensearchRestVersion")
api 'org.jsoup:jsoup:1.17.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.3'
api group: 'org.eclipse.angus', name: 'jakarta.mail', version: '2.0.3'

// Tests
api "org.junit-pioneer:junit-pioneer:2.2.0"
api 'org.hamcrest:hamcrest:2.2'
api 'org.hamcrest:hamcrest-library:2.2'
api group: 'org.exparity', name: 'hamcrest-date', version: '2.0.8'
api 'com.github.tomakehurst:wiremock-jre8:3.0.1'
api "org.apache.kafka:kafka-streams-test-utils:$kafkaVersion"

// Kestra components
api "io.kestra:core:$version"
api "io.kestra:model:$version"
api "io.kestra:script:$version"
api "io.kestra:processor:$version"
}
}

publishing {
publications {
sonatypePublication(MavenPublication) {
from components.javaPlatform
}
}
}
3 changes: 1 addition & 2 deletions script/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ dependencies {
implementation project(':core')
annotationProcessor project(':processor')

implementation platform("io.micronaut.platform:micronaut-platform:$micronautVersion")
implementation 'io.micronaut:micronaut-context'

implementation ('com.github.docker-java:docker-java:3.3.6') {
implementation ('com.github.docker-java:docker-java') {
exclude group: 'com.github.docker-java', module: 'docker-java-transport-netty'
exclude group: 'com.github.docker-java', module: 'docker-java-transport-jersey'
}
Expand Down
2 changes: 2 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
rootProject.name="kestra"

include 'platform'

include 'cli'
include 'core'

Expand Down
2 changes: 1 addition & 1 deletion webserver/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dependencies {
testAnnotationProcessor project(':processor')
testImplementation project(':core').sourceSets.test.output
testImplementation project(':storage-local')
testImplementation("com.github.tomakehurst:wiremock-jre8:3.0.1")
testImplementation("com.github.tomakehurst:wiremock-jre8")

testImplementation project(':jdbc')
testImplementation project(':jdbc').sourceSets.test.output
Expand Down

0 comments on commit 76f7038

Please sign in to comment.