Skip to content

Commit

Permalink
Migrate to gradle version catalog (#1002)
Browse files Browse the repository at this point in the history
* chore: switch to spring boot bom dependency management

replaces io.spring.dependency-management plugin

* chore: update build.gradle to gradle version catalog

* chore(add-ons): convert to gradle version.toml

* chore: use gradle versions toml for all projects

* chore: use gradle versions toml for all plugins

* chore: clean up permitUnused deps

* test(kafka): ProducerSystemTest stability

* test(kafka): remove unnecessary EmbeddedKafka instances

* test(kafka): convert KafkaProducerSystemTest to full Testcontainers test

* test: better docker container logging

* test: remove unused env mapping
  • Loading branch information
timonback authored Oct 19, 2024
1 parent 83d030e commit 15535d5
Show file tree
Hide file tree
Showing 48 changed files with 943 additions and 1,075 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ springwolf-plugins/springwolf-sqs-plugin/build/
springwolf-bindings/springwolf-sqs-binding/build/

.gradle/
.kotlin/
.idea/
/gradle.properties
node_modules/
Expand Down
18 changes: 6 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import org.owasp.dependencycheck.reporting.ReportGenerator

buildscript {
// include dependency versions from explicit dependencies.gradle file
apply from: 'dependencies.gradle'
}

plugins {
id 'io.github.gradle-nexus.publish-plugin' version '2.0.0'
id 'ca.cutterslade.analyze' version '1.10.0'
id 'io.spring.dependency-management' version '1.1.6' apply false
id 'org.springframework.boot' version '3.3.4' apply false
id 'org.owasp.dependencycheck' version '10.0.4'
id 'com.diffplug.spotless' version '6.25.0'
id 'com.bmuschko.docker-spring-boot-application' version '9.4.0' apply false
alias libs.plugins.nexus.publish
alias libs.plugins.cutterslade.analyze
alias libs.plugins.spring.boot apply false
alias libs.plugins.owasp.dependencycheck
alias libs.plugins.spotless
alias libs.plugins.docker.spring.boot apply false
}

applyDotEnvFileAsGradleProperties()
Expand Down
76 changes: 0 additions & 76 deletions dependencies.gradle

This file was deleted.

127 changes: 127 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
[versions]
cutterslade-analyze = "1.10.0"
docker-spring-boot = "9.4.0"
gradle-nexus-publish-plugin = "2.0.0"
io-awspring-cloud = "3.2.0"
io-confluent = "7.7.1"
io-swagger-core-v3 = "2.2.24"
jackson-core = "2.17.2"
kotlin = "2.0.20"
node-plugin = "7.1.0"
nodeVersion = "22.9.0"
npm = "10.8.3"
openapi-gradle = "1.9.0"
org-jetbrains-kotlin = "2.0.20"
org-junit-jupiter = "5.11.0"
org-mockito = "5.14.1"
org-slf4j = "2.0.16"
org-testcontainers = "1.20.2"
owasp-dependencycheck = "10.0.4"
protobuf = "4.28.2"
protobuf-plugin = "0.9.4"
spotless = "6.25.0"
spring = "3.3.4"
spring-cloud = "2022.0.1"
spring-managed = "."

[libraries]
activemq-broker = { module = "org.apache.activemq:activemq-broker", version.ref = "spring-managed" }
amqp-client = "com.rabbitmq:amqp-client:5.21.0"
assertj-core = "org.assertj:assertj-core:3.26.3"
avro = "org.apache.avro:avro:1.12.0"
awaitility = "org.awaitility:awaitility:4.2.2"
commons-lang3 = "org.apache.commons:commons-lang3:3.17.0"
google-java-format = "com.google.googlejavaformat:google-java-format:1.19.2"
jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson-core" }
jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version.ref = "jackson-core" }
jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson-core" }
jackson-dataformat-yaml = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.17.2"
jackson-datatype-protobuf = "com.hubspot.jackson:jackson-datatype-protobuf:0.9.15"
jakarta-annotation-api = "jakarta.annotation:jakarta.annotation-api:3.0.0"
jakarta-jms-api = "jakarta.jms:jakarta.jms-api:3.1.0"
jakarta-validation-api = "jakarta.validation:jakarta.validation-api:3.1.0"
jakarta-xml-bind-api = "jakarta.xml.bind:jakarta.xml.bind-api:4.0.2"
jetbrains-annotations = "org.jetbrains:annotations:13.0"
json-schema-validator = "com.networknt:json-schema-validator:1.5.2"
json-unit-assertj = "net.javacrumbs.json-unit:json-unit-assertj:3.4.1"
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "org-junit-jupiter" }
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "org-junit-jupiter" }
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "org-junit-jupiter" }
kafka-avro-serializer = { module = "io.confluent:kafka-avro-serializer", version.ref = "io-confluent" }
kafka-clients = "org.apache.kafka:kafka-clients:3.7.1"
kafka-streams = "org.apache.kafka:kafka-streams:3.8.0"
kafka-protobuf-serializer = { module = "io.confluent:kafka-protobuf-serializer", version.ref = "io-confluent" }
kotlin-build-tools-impl = { module = "org.jetbrains.kotlin:kotlin-build-tools-impl", version.ref = "org-jetbrains-kotlin" }
kotlin-reflect = "org.jetbrains.kotlin:kotlin-reflect:1.9.25"
kotlin-scripting-compiler-embeddable = { module = "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable", version.ref = "org-jetbrains-kotlin" }
kotlin-serialization-compiler-plugin-embeddable = { module = "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable", version.ref = "org-jetbrains-kotlin" }
kotlinx-serialization-core-jvm = "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.2"
ktfmt = "com.facebook:ktfmt:0.46"
ktlint-cli = "com.pinterest.ktlint:ktlint-cli:1.1.1"
log4j-core = "org.apache.logging.log4j:log4j-core:2.17.1"
lombok = "org.projectlombok:lombok:1.18.34"
mockito-core = { module = "org.mockito:mockito-core", version.ref = "org-mockito" }
mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "org-mockito" }
moneta = "org.javamoney:moneta:1.4.4"
money-api = "javax.money:money-api:1.1"
palantir-java-format = "com.palantir.javaformat:palantir-java-format:2.28.0"
protobuf-java = { module = "com.google.protobuf:protobuf-java", version.ref = "protobuf" }
protoc = { module = "com.google.protobuf:protoc", version.ref = "protobuf" }
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" }
slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "org-slf4j" }
spring-cloud-aws-dependencies = { module = "io.awspring.cloud:spring-cloud-aws-dependencies", version.ref = "io-awspring-cloud" }
spring-cloud-aws-sns = { module = "io.awspring.cloud:spring-cloud-aws-sns", version.ref = "io-awspring-cloud" }
spring-cloud-aws-sqs = { module = "io.awspring.cloud:spring-cloud-aws-sqs", version.ref = "io-awspring-cloud" }
spring-cloud-aws-starter-sns = { module = "io.awspring.cloud:spring-cloud-aws-starter-sns", version.ref = "io-awspring-cloud" }
spring-cloud-aws-starter-sqs = { module = "io.awspring.cloud:spring-cloud-aws-starter-sqs", version.ref = "io-awspring-cloud" }
spring-amqp = { module = "org.springframework.amqp:spring-amqp", version.ref = "spring-managed" }
spring-rabbit = { module = "org.springframework.amqp:spring-rabbit", version.ref = "spring-managed" }
spring-boot = { module = "org.springframework.boot:spring-boot", version.ref = "spring-managed" }
spring-boot-actuator = { module = "org.springframework.boot:spring-boot-actuator", version.ref = "spring-managed" }
spring-boot-autoconfigure = { module = "org.springframework.boot:spring-boot-autoconfigure", version.ref = "spring-managed" }
spring-boot-configuration-processor = { module = "org.springframework.boot:spring-boot-configuration-processor", version.ref = "spring-managed" }
spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "spring-managed" }
spring-boot-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "spring-managed" }
spring-boot-starter-artemis = { module = "org.springframework.boot:spring-boot-starter-artemis", version.ref = "spring-managed" }
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web", version.ref = "spring-managed" }
spring-boot-starter-websocket = { module = "org.springframework.boot:spring-boot-starter-websocket", version.ref = "spring-managed" }
spring-boot-test = { module = "org.springframework.boot:spring-boot-test", version.ref = "spring-managed" }
spring-boot-test-autoconfigure = { module = "org.springframework.boot:spring-boot-test-autoconfigure", version.ref = "spring-managed" }
spring-cloud-dependencies = { module = "org.springframework.cloud:spring-cloud-dependencies", version.ref = "spring-cloud" }
spring-cloud-starter-stream-kafka = { module = "org.springframework.cloud:spring-cloud-starter-stream-kafka", version.ref = "spring-managed" }
spring-cloud-stream = { module = "org.springframework.cloud:spring-cloud-stream", version.ref = "spring-managed" }
spring-kafka = { module = "org.springframework.kafka:spring-kafka", version.ref = "spring-managed" }
spring-kafka-test = { module = "org.springframework.kafka:spring-kafka-test", version.ref = "spring-managed" }
spring-security-config = { module = "org.springframework.security:spring-security-config", version.ref = "spring-managed" }
spring-security-web = { module = "org.springframework.security:spring-security-web", version.ref = "spring-managed" }
spring-beans = { module = "org.springframework:spring-beans", version.ref = "spring-managed" }
spring-context = { module = "org.springframework:spring-context", version.ref = "spring-managed" }
spring-core = { module = "org.springframework:spring-core", version.ref = "spring-managed" }
spring-jcl = { module = "org.springframework:spring-jcl", version.ref = "spring-managed" }
spring-jms = { module = "org.springframework:spring-jms", version.ref = "spring-managed" }
spring-messaging = { module = "org.springframework:spring-messaging", version.ref = "spring-managed" }
spring-test = { module = "org.springframework:spring-test", version.ref = "spring-managed" }
spring-web = { module = "org.springframework:spring-web", version.ref = "spring-managed" }
spring-webmvc = { module = "org.springframework:spring-webmvc", version.ref = "spring-managed" }
spring-websocket = { module = "org.springframework:spring-websocket", version.ref = "spring-managed" }
swagger-annotations-outdated = { module = "io.swagger.core.v3:swagger-annotations", version.ref = "io-swagger-core-v3" }
swagger-annotations-jakarta = { module = "io.swagger.core.v3:swagger-annotations-jakarta", version.ref = "io-swagger-core-v3" }
swagger-core-jakarta = { module = "io.swagger.core.v3:swagger-core-jakarta", version.ref = "io-swagger-core-v3" }
swagger-models-jakarta = { module = "io.swagger.core.v3:swagger-models-jakarta", version.ref = "io-swagger-core-v3" }
testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "org-testcontainers" }
testcontainers-junit-jupiter = { module = "org.testcontainers:junit-jupiter", version.ref = "org-testcontainers" }
testcontainers-localstack = { module = "org.testcontainers:localstack", version.ref = "org-testcontainers" }

[plugins]
avro = { id = "com.github.davidmc24.gradle.plugin.avro", version = "1.9.1" }
cutterslade-analyze = { id = "ca.cutterslade.analyze", version.ref = "cutterslade-analyze" }
docker-spring-boot = { id = "com.bmuschko.docker-spring-boot-application", version.ref = "docker-spring-boot" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "gradle-nexus-publish-plugin" }
node = { id = "com.github.node-gradle.node", version.ref = "node-plugin" }
openapi-gradle = { id = "org.springdoc.openapi-gradle-plugin", version.ref = "openapi-gradle" }
owasp-dependencycheck = { id = "org.owasp.dependencycheck", version.ref = "owasp-dependencycheck" }
protobuf = { id = "com.google.protobuf", version.ref = "protobuf-plugin" }
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
spring-boot = { id = "org.springframework.boot", version.ref = "spring" }
30 changes: 15 additions & 15 deletions springwolf-add-ons/springwolf-common-model-converters/build.gradle
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
id 'java-library'

id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'ca.cutterslade.analyze'
alias libs.plugins.spring.boot
alias libs.plugins.cutterslade.analyze
}

ext['junit-jupiter.version'] = "${junitJupiterVersion}"

dependencies {
implementation "org.springframework:spring-context"
implementation platform(SpringBootPlugin.BOM_COORDINATES)
implementation libs.spring.context

implementation "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}"
implementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}"
implementation libs.jackson.annotations
implementation libs.jackson.databind

implementation "io.swagger.core.v3:swagger-annotations-jakarta:${swaggerVersion}"
implementation "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}"
implementation "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}"
implementation libs.swagger.annotations.jakarta
implementation libs.swagger.core.jakarta
implementation libs.swagger.models.jakarta

implementation "javax.money:money-api:${moneyApiVersion}"
implementation libs.money.api

testImplementation 'org.junit.jupiter:junit-jupiter-api'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}"
testImplementation libs.junit.jupiter.api
testRuntimeOnly libs.junit.jupiter
testRuntimeOnly libs.slf4j.api
}

jar {
Expand Down
33 changes: 16 additions & 17 deletions springwolf-add-ons/springwolf-generic-binding/build.gradle
Original file line number Diff line number Diff line change
@@ -1,33 +1,32 @@
import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
id 'java-library'

id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'ca.cutterslade.analyze'
alias libs.plugins.spring.boot
alias libs.plugins.cutterslade.analyze
}

ext['junit-jupiter.version'] = "${junitJupiterVersion}"

dependencies {
api project(":springwolf-core")
api project(":springwolf-asyncapi")

implementation "org.slf4j:slf4j-api:${slf4jApiVersion}"

implementation "org.springframework:spring-context"
implementation "org.springframework:spring-core"
implementation libs.slf4j.api

annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
implementation platform(SpringBootPlugin.BOM_COORDINATES)
implementation libs.spring.context
implementation libs.spring.core

compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor libs.lombok
compileOnly libs.lombok

testImplementation "org.assertj:assertj-core:${assertjCoreVersion}"
testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}"
testImplementation libs.assertj.core
testImplementation libs.mockito.core

testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.jupiter:junit-jupiter-params'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}"
testImplementation libs.junit.jupiter.api
testImplementation libs.junit.jupiter.params
testRuntimeOnly libs.junit.jupiter
testRuntimeOnly libs.slf4j.simple
}

jar {
Expand Down
42 changes: 21 additions & 21 deletions springwolf-add-ons/springwolf-json-schema/build.gradle
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
id 'java-library'

id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'ca.cutterslade.analyze'
alias libs.plugins.spring.boot
alias libs.plugins.cutterslade.analyze
}

ext['junit-jupiter.version'] = "${junitJupiterVersion}"

dependencies {
api project(":springwolf-core")
api project(":springwolf-asyncapi")

implementation "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}"
implementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}"
implementation libs.jackson.core
implementation libs.jackson.databind

testImplementation "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}"
testImplementation "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}"
testImplementation libs.swagger.core.jakarta
testImplementation libs.swagger.models.jakarta

implementation "org.apache.commons:commons-lang3:${commonsLang3Version}"
implementation libs.commons.lang3

implementation "org.slf4j:slf4j-api:${slf4jApiVersion}"
implementation libs.slf4j.api

implementation "org.springframework:spring-context"
implementation platform(SpringBootPlugin.BOM_COORDINATES)
implementation libs.spring.context

annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
compileOnly "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor libs.lombok
compileOnly libs.lombok

testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}"
testImplementation "org.assertj:assertj-core:${assertjCoreVersion}"
testImplementation libs.mockito.core
testImplementation libs.assertj.core

testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.jupiter:junit-jupiter-params'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}"
testImplementation libs.junit.jupiter.api
testImplementation libs.junit.jupiter.params
testRuntimeOnly libs.junit.jupiter
testRuntimeOnly libs.slf4j.simple

testImplementation "com.networknt:json-schema-validator:${jsonSchemaValidator}"
testImplementation libs.json.schema.validator
}

jar {
Expand Down
Loading

0 comments on commit 15535d5

Please sign in to comment.