diff --git a/.gitignore b/.gitignore index 690fcb3b0..1b0d83a39 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ springwolf-plugins/springwolf-sqs-plugin/build/ springwolf-bindings/springwolf-sqs-binding/build/ .gradle/ +.kotlin/ .idea/ /gradle.properties node_modules/ diff --git a/build.gradle b/build.gradle index 2332135a1..38e417271 100644 --- a/build.gradle +++ b/build.gradle @@ -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() diff --git a/dependencies.gradle b/dependencies.gradle deleted file mode 100644 index 5043596d3..000000000 --- a/dependencies.gradle +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Explicit dependencies file to share artifact versions between subprojects. - * This approach is compatible with dependabot. - * (see: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates#gradle) - * - * Naming strategy. - * There is no fixed rule for variable naming but there is a recommendation (which is not always appropriate). - * For most cases the following naming rule applies: - * - use the artifactId - * - split the artifactId by hyphens - * - keep the first part of the splitted artifactId lowerCase - * - add the remaining parts upperCase - * - add a 'Version' suffix - * - * e.g.: com.asyncapi:asyncapi-core' will be 'asyncapiCoreVersion' - * e.g.: 'io.swagger.core.v3:swagger-core-jakarta' will be 'swaggerCoreJakartaVersion' - * - * - * For multiple dependencies that are released together, we reduce the artifactId to the common prefix. - * The above rules still apply. - * - * e.g.: 'jackson-core', 'jackson-annotations' is combined to 'jacksonVersion' - * - * - * The dependencies are sorted alphabetically. - */ -ext { - annotationApiVersion = '3.0.0' - - assertjCoreVersion = '3.26.3' - - asyncapiCoreVersion = '1.0.0-EAP-2' - - avroVersion = '1.12.0' - - awaitilityVersion = '4.2.2' - - commonsLang3Version = '3.17.0' - - kafkaAvroSerializerVersion = '7.7.1' - - kafkaClientsVersion = '3.7.1' - kafkaStreamsVersion = '3.8.0' - - kafkaProtobufSerializerVersion = '7.7.1' - - jacksonVersion = '2.17.2' - jacksonDatatypeProtobufVersion = '0.9.15' - - jakartaAnnotationApiVersion = '3.0.0' - jakartaValidationApiVersion = '3.1.0' - - jakartaXmlBindApiVersion = '4.0.2' - - jsonSchemaValidator = '1.5.2' - - mockitoCoreVersion = '5.14.1' - mockitoJunitJupiterVersion = '5.14.1' - - monetaVersion = '1.4.4' - moneyApiVersion = '1.1' - - protobufJavaVersion = '4.28.2' - - junitJupiterVersion = '5.11.0' - jsonUnitAssertJVersion = '3.4.1' - - lombokVersion = '1.18.34' - - slf4jApiVersion = '2.0.16' - slf4jSimpleVersion = '2.0.16' - - swaggerVersion = '2.2.24' - - testcontainersVersion = '1.20.2' -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..3d8031134 --- /dev/null +++ b/gradle/libs.versions.toml @@ -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" } diff --git a/springwolf-add-ons/springwolf-common-model-converters/build.gradle b/springwolf-add-ons/springwolf-common-model-converters/build.gradle index 866068e6d..604fd5ce6 100644 --- a/springwolf-add-ons/springwolf-common-model-converters/build.gradle +++ b/springwolf-add-ons/springwolf-common-model-converters/build.gradle @@ -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 { diff --git a/springwolf-add-ons/springwolf-generic-binding/build.gradle b/springwolf-add-ons/springwolf-generic-binding/build.gradle index 2861be91c..894a6b738 100644 --- a/springwolf-add-ons/springwolf-generic-binding/build.gradle +++ b/springwolf-add-ons/springwolf-generic-binding/build.gradle @@ -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 { diff --git a/springwolf-add-ons/springwolf-json-schema/build.gradle b/springwolf-add-ons/springwolf-json-schema/build.gradle index ad0db0a9d..1519f3170 100644 --- a/springwolf-add-ons/springwolf-json-schema/build.gradle +++ b/springwolf-add-ons/springwolf-json-schema/build.gradle @@ -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 { diff --git a/springwolf-add-ons/springwolf-kotlinx-serialization-model-converter/build.gradle b/springwolf-add-ons/springwolf-kotlinx-serialization-model-converter/build.gradle index 1281fc9b1..55abff37c 100644 --- a/springwolf-add-ons/springwolf-kotlinx-serialization-model-converter/build.gradle +++ b/springwolf-add-ons/springwolf-kotlinx-serialization-model-converter/build.gradle @@ -1,44 +1,35 @@ -buildscript { - ext { - kotlinVersion = '2.0.20' - kotlinxSerializationVersion = '1.7.2' - } -} +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 - id "org.jetbrains.kotlin.jvm" version "${kotlinVersion}" - id 'org.jetbrains.kotlin.plugin.serialization' version "${kotlinVersion}" + alias libs.plugins.kotlin.jvm + alias libs.plugins.kotlin.serialization } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework.boot:spring-boot-autoconfigure" - - implementation "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}" - implementation "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}" - - implementation "org.jetbrains:annotations" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.boot.autoconfigure - implementation "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:${kotlinxSerializationVersion}" - implementation "org.jetbrains.kotlin:kotlin-reflect" + implementation libs.swagger.core.jakarta + implementation libs.swagger.models.jakarta - testImplementation "org.junit.jupiter:junit-jupiter-api" - testRuntimeOnly "org.junit.jupiter:junit-jupiter" - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + implementation libs.jetbrains.annotations + implementation libs.kotlinx.serialization.core.jvm + implementation libs.kotlin.reflect - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "net.javacrumbs.json-unit:json-unit-assertj:${jsonUnitAssertJVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple + testImplementation libs.assertj.core + testImplementation libs.json.unit.assertj } jar { diff --git a/springwolf-asyncapi/build.gradle b/springwolf-asyncapi/build.gradle index 939a918ef..82e5f7b5f 100644 --- a/springwolf-asyncapi/build.gradle +++ b/springwolf-asyncapi/build.gradle @@ -1,38 +1,32 @@ 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 "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}" - implementation "jakarta.validation:jakarta.validation-api" - - implementation "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}" - implementation "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" - implementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" - implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${jacksonVersion}" - - compileOnly "org.projectlombok:lombok:${lombokVersion}" - - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - - - testImplementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" - testImplementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${jacksonVersion}" - testImplementation "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}" - testImplementation "net.javacrumbs.json-unit:json-unit-assertj:${jsonUnitAssertJVersion}" - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + implementation libs.swagger.core.jakarta + implementation libs.jakarta.validation.api + + implementation libs.jackson.core + implementation libs.jackson.annotations + implementation libs.jackson.databind + implementation libs.jackson.dataformat.yaml + + compileOnly libs.lombok + annotationProcessor libs.lombok + testAnnotationProcessor libs.lombok + + testImplementation libs.jackson.databind + testImplementation libs.jackson.dataformat.yaml + testImplementation libs.swagger.core.jakarta + testImplementation libs.json.unit.assertj + testImplementation libs.assertj.core + + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-bindings/springwolf-amqp-binding/build.gradle b/springwolf-bindings/springwolf-amqp-binding/build.gradle index 280e0520a..e12cabf1f 100644 --- a/springwolf-bindings/springwolf-amqp-binding/build.gradle +++ b/springwolf-bindings/springwolf-amqp-binding/build.gradle @@ -1,30 +1,30 @@ +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor 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" - testRuntimeOnly "org.junit.jupiter:junit-jupiter" - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-bindings/springwolf-googlepubsub-binding/build.gradle b/springwolf-bindings/springwolf-googlepubsub-binding/build.gradle index 6c06a4e00..713107ef9 100644 --- a/springwolf-bindings/springwolf-googlepubsub-binding/build.gradle +++ b/springwolf-bindings/springwolf-googlepubsub-binding/build.gradle @@ -1,31 +1,31 @@ +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - implementation "org.apache.commons:commons-lang3:${commonsLang3Version}" + implementation libs.commons.lang3 - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" + testImplementation libs.assertj.core - 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.simple } jar { diff --git a/springwolf-bindings/springwolf-jms-binding/build.gradle b/springwolf-bindings/springwolf-jms-binding/build.gradle index ee9f15a04..75ada9d29 100644 --- a/springwolf-bindings/springwolf-jms-binding/build.gradle +++ b/springwolf-bindings/springwolf-jms-binding/build.gradle @@ -1,30 +1,30 @@ +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor 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" - testRuntimeOnly "org.junit.jupiter:junit-jupiter" - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-bindings/springwolf-kafka-binding/build.gradle b/springwolf-bindings/springwolf-kafka-binding/build.gradle index 89d2ebd46..9d15ceed2 100644 --- a/springwolf-bindings/springwolf-kafka-binding/build.gradle +++ b/springwolf-bindings/springwolf-kafka-binding/build.gradle @@ -1,32 +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" + implementation libs.jakarta.annotation.api - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor 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" - testRuntimeOnly "org.junit.jupiter:junit-jupiter" - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-bindings/springwolf-sns-binding/build.gradle b/springwolf-bindings/springwolf-sns-binding/build.gradle index d5dba67a0..533b510f2 100644 --- a/springwolf-bindings/springwolf-sns-binding/build.gradle +++ b/springwolf-bindings/springwolf-sns-binding/build.gradle @@ -1,30 +1,30 @@ +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor 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" - testRuntimeOnly "org.junit.jupiter:junit-jupiter" - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-bindings/springwolf-sqs-binding/build.gradle b/springwolf-bindings/springwolf-sqs-binding/build.gradle index 536521e71..75bb87cb6 100644 --- a/springwolf-bindings/springwolf-sqs-binding/build.gradle +++ b/springwolf-bindings/springwolf-sqs-binding/build.gradle @@ -1,30 +1,30 @@ +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor 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" - testRuntimeOnly "org.junit.jupiter:junit-jupiter" - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-bindings/springwolf-stomp-binding/build.gradle b/springwolf-bindings/springwolf-stomp-binding/build.gradle index c67054754..ef6b3a6d1 100644 --- a/springwolf-bindings/springwolf-stomp-binding/build.gradle +++ b/springwolf-bindings/springwolf-stomp-binding/build.gradle @@ -1,30 +1,30 @@ +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-asyncapi") api project(":springwolf-core") - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor 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' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly "org.slf4j:slf4j-simple:${slf4jSimpleVersion}" + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter + testRuntimeOnly libs.slf4j.simple } jar { diff --git a/springwolf-core/build.gradle b/springwolf-core/build.gradle index bf84dc3a2..be2887d0e 100644 --- a/springwolf-core/build.gradle +++ b/springwolf-core/build.gradle @@ -1,63 +1,63 @@ +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-asyncapi") + testRuntimeOnly project(":springwolf-add-ons:springwolf-common-model-converters") - implementation "io.swagger.core.v3:swagger-annotations-jakarta:${swaggerVersion}@jar" - implementation "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}" - - implementation "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}" - implementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" + implementation libs.swagger.annotations.jakarta + implementation libs.swagger.core.jakarta - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.jackson.core + implementation libs.jackson.databind - implementation "org.springframework.boot:spring-boot" + implementation libs.slf4j.api - implementation "org.springframework:spring-web" - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-messaging" - implementation "org.springframework:spring-beans" - implementation "org.springframework:spring-core" - implementation "org.springframework.boot:spring-boot-autoconfigure" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + compileOnly platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.boot - implementation "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}" - implementation "jakarta.annotation:jakarta.annotation-api:${jakartaAnnotationApiVersion}" - implementation "jakarta.validation:jakarta.validation-api:${jakartaValidationApiVersion}" + implementation libs.spring.web + implementation libs.spring.context + implementation libs.spring.messaging + implementation libs.spring.beans + implementation libs.spring.core + implementation libs.spring.boot.autoconfigure - implementation "org.apache.commons:commons-lang3:${commonsLang3Version}" + implementation libs.swagger.models.jakarta + implementation libs.jakarta.annotation.api + implementation libs.jakarta.validation.api - compileOnly "org.springframework.boot:spring-boot-actuator" - compileOnly "org.springframework:spring-webmvc" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + implementation libs.commons.lang3 - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + compileOnly libs.spring.boot.actuator + compileOnly libs.spring.webmvc + compileOnly libs.lombok - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + annotationProcessor libs.spring.boot.configuration.processor - testImplementation project(":springwolf-add-ons:springwolf-common-model-converters") - permitTestUnusedDeclared project(":springwolf-add-ons:springwolf-common-model-converters") + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.awaitility:awaitility:${awaitilityVersion}" - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" - testImplementation "org.mockito:mockito-junit-jupiter:${mockitoJunitJupiterVersion}" - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-test" + testImplementation libs.assertj.core + testImplementation libs.awaitility + testImplementation libs.mockito.core + testImplementation libs.mockito.junit.jupiter + testImplementation libs.spring.boot.test + testImplementation libs.spring.test - 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 { diff --git a/springwolf-examples/e2e/build.gradle b/springwolf-examples/e2e/build.gradle index 6fa25714a..2cdc798f2 100644 --- a/springwolf-examples/e2e/build.gradle +++ b/springwolf-examples/e2e/build.gradle @@ -1,11 +1,11 @@ plugins { id 'java' - id 'com.github.node-gradle.node' version '7.1.0' + alias libs.plugins.node } node { - version = '18.16.1' - npmVersion = '9.5.1' + version = libs.versions.nodeVersion + npmVersion = libs.versions.npm download = true } diff --git a/springwolf-examples/springwolf-amqp-example/build.gradle b/springwolf-examples/springwolf-amqp-example/build.gradle index 837afbb43..b18eee7b1 100644 --- a/springwolf-examples/springwolf-amqp-example/build.gradle +++ b/springwolf-examples/springwolf-amqp-example/build.gradle @@ -1,15 +1,14 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze - id 'com.bmuschko.docker-spring-boot-application' + alias libs.plugins.docker.spring.boot } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { implementation project(":springwolf-core") implementation project(":springwolf-plugins:springwolf-amqp") @@ -19,39 +18,41 @@ dependencies { annotationProcessor project(":springwolf-plugins:springwolf-amqp") runtimeOnly project(":springwolf-ui") - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok + + runtimeOnly libs.spring.boot.starter.web - runtimeOnly "org.springframework.boot:spring-boot-starter-web" + implementation libs.spring.rabbit + implementation libs.amqp.client - implementation "org.springframework.amqp:spring-rabbit" - permitUsedUndeclared 'com.rabbitmq:amqp-client' - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" - implementation "io.swagger.core.v3:swagger-annotations-jakarta:${swaggerVersion}" + implementation libs.slf4j.api + implementation libs.swagger.annotations.jakarta - implementation "org.springframework.amqp:spring-amqp" - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-messaging" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.amqp + implementation libs.spring.boot.autoconfigure + implementation libs.spring.boot + implementation libs.spring.context + implementation libs.spring.messaging - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.awaitility:awaitility:${awaitilityVersion}" - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.assertj.core + testImplementation libs.awaitility + testImplementation libs.mockito.core - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-web" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.web + testImplementation libs.spring.test - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { diff --git a/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/AmqpProducerSystemTest.java b/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/AmqpProducerSystemTest.java index 7ba3a6372..38414b58a 100644 --- a/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/AmqpProducerSystemTest.java +++ b/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/AmqpProducerSystemTest.java @@ -25,6 +25,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; +import java.util.Arrays; import static io.github.springwolf.examples.amqp.dtos.ExamplePayloadDto.ExampleEnum.FOO1; import static java.util.concurrent.TimeUnit.SECONDS; @@ -61,7 +62,9 @@ public class AmqpProducerSystemTest { .withServices(AMQP_NAME) .withExposedService(AMQP_NAME, 5672) .waitingFor(AMQP_NAME, Wait.forLogMessage(".*Server startup complete.*", 1)) - .withLogConsumer(AMQP_NAME, l -> log.debug("amqp: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(AMQP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("AMQP: {}", m))); @DynamicPropertySource static void registerActiveMqBroker(DynamicPropertyRegistry registry) { diff --git a/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/ApiSystemTest.java b/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/ApiSystemTest.java index e5c7d4e69..7adb0485c 100644 --- a/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/ApiSystemTest.java +++ b/springwolf-examples/springwolf-amqp-example/src/test/java/io/github/springwolf/examples/amqp/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,25 +30,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-examples/springwolf-cloud-stream-example/build.gradle b/springwolf-examples/springwolf-cloud-stream-example/build.gradle index 949e592eb..8cffe4df3 100644 --- a/springwolf-examples/springwolf-cloud-stream-example/build.gradle +++ b/springwolf-examples/springwolf-cloud-stream-example/build.gradle @@ -1,26 +1,15 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' - id 'com.bmuschko.docker-spring-boot-application' -} - -ext { - set('springCloudVersion', "2022.0.1") + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze + alias libs.plugins.docker.spring.boot } -dependencyManagement { - imports { - mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" - } -} - -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { - permitUnusedDeclared(implementation project(":springwolf-core")) + runtimeOnly project(":springwolf-core") runtimeOnly project(":springwolf-plugins:springwolf-cloud-stream") implementation project(":springwolf-bindings:springwolf-googlepubsub-binding") @@ -28,36 +17,38 @@ dependencies { annotationProcessor project(":springwolf-plugins:springwolf-cloud-stream") runtimeOnly project(":springwolf-ui") - runtimeOnly "org.springframework.boot:spring-boot-starter-web" - runtimeOnly "org.springframework.boot:spring-boot-starter-actuator" - runtimeOnly "org.springframework.cloud:spring-cloud-starter-stream-kafka" - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" - implementation "io.swagger.core.v3:swagger-annotations-jakarta:${swaggerVersion}" + implementation libs.slf4j.api + implementation libs.swagger.annotations.jakarta - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework:spring-context" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.cloud.dependencies + implementation libs.spring.boot.autoconfigure + implementation libs.spring.boot + implementation libs.spring.context + runtimeOnly libs.spring.boot.starter.web + runtimeOnly libs.spring.boot.starter.actuator + runtimeOnly libs.spring.cloud.starter.stream.kafka - compileOnly "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-test" + testImplementation libs.assertj.core + testImplementation libs.spring.boot.test + testImplementation libs.spring.test - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-web" - testImplementation "org.springframework.kafka:spring-kafka-test" - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" + testImplementation libs.spring.beans + testImplementation libs.spring.web + testImplementation libs.spring.kafka.test + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { diff --git a/springwolf-examples/springwolf-cloud-stream-example/src/test/java/io/github/springwolf/examples/cloudstream/ApiSystemTest.java b/springwolf-examples/springwolf-cloud-stream-example/src/test/java/io/github/springwolf/examples/cloudstream/ApiSystemTest.java index 8e1763d4f..2ea3a5847 100644 --- a/springwolf-examples/springwolf-cloud-stream-example/src/test/java/io/github/springwolf/examples/cloudstream/ApiSystemTest.java +++ b/springwolf-examples/springwolf-cloud-stream-example/src/test/java/io/github/springwolf/examples/cloudstream/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,25 +30,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-examples/springwolf-jms-example/build.gradle b/springwolf-examples/springwolf-jms-example/build.gradle index 499fad783..745502025 100644 --- a/springwolf-examples/springwolf-jms-example/build.gradle +++ b/springwolf-examples/springwolf-jms-example/build.gradle @@ -1,15 +1,14 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze - id 'com.bmuschko.docker-spring-boot-application' + alias libs.plugins.docker.spring.boot } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { implementation project(":springwolf-core") implementation project(":springwolf-add-ons:springwolf-generic-binding") @@ -20,38 +19,40 @@ dependencies { annotationProcessor project(":springwolf-plugins:springwolf-jms") runtimeOnly project(":springwolf-ui") - compileOnly "jakarta.jms:jakarta.jms-api" + compileOnly libs.jakarta.jms.api - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.slf4j.api - implementation "io.swagger.core.v3:swagger-annotations-jakarta:${swaggerVersion}" + implementation libs.swagger.annotations.jakarta - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-jms" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" + compileOnly platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.jms + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure - runtimeOnly "org.springframework.boot:spring-boot-starter-web" - runtimeOnly "org.springframework.boot:spring-boot-starter-artemis" + runtimeOnly libs.spring.boot.starter.web + runtimeOnly libs.spring.boot.starter.artemis - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.mockito.core - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-web" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.web + testImplementation libs.spring.test - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { diff --git a/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/ApiSystemTest.java b/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/ApiSystemTest.java index 2b7963d5d..04bb379ef 100644 --- a/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/ApiSystemTest.java +++ b/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,25 +30,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/JmsProducerSystemTest.java b/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/JmsProducerSystemTest.java index 8041cd9e9..353ddf310 100644 --- a/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/JmsProducerSystemTest.java +++ b/springwolf-examples/springwolf-jms-example/src/test/java/io/github/springwolf/examples/jms/JmsProducerSystemTest.java @@ -19,6 +19,7 @@ import org.testcontainers.shaded.org.awaitility.Awaitility; import java.io.File; +import java.util.Arrays; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -53,7 +54,9 @@ public class JmsProducerSystemTest { .withCopyFilesInContainer(".env") // do not copy all files in the directory .withServices(APP_JMS) .withExposedService(APP_JMS, 61616) - .withLogConsumer(APP_JMS, l -> log.debug("jms: {}", l.getUtf8StringWithoutLineEnding())) + .withLogConsumer(APP_JMS, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("JMS: {}", m))) .waitingFor(APP_JMS, Wait.forLogMessage(".*Artemis Console available.*", 1)); @DynamicPropertySource diff --git a/springwolf-examples/springwolf-kafka-example/build.gradle b/springwolf-examples/springwolf-kafka-example/build.gradle index d023f1d74..887c06533 100644 --- a/springwolf-examples/springwolf-kafka-example/build.gradle +++ b/springwolf-examples/springwolf-kafka-example/build.gradle @@ -1,19 +1,18 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze - id 'com.bmuschko.docker-spring-boot-application' - id 'org.springdoc.openapi-gradle-plugin' version '1.9.0' + alias libs.plugins.docker.spring.boot + alias libs.plugins.openapi.gradle - id 'com.github.davidmc24.gradle.plugin.avro' version '1.9.1' - id 'com.google.protobuf' version '0.9.4' + alias libs.plugins.avro + alias libs.plugins.protobuf } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { implementation project(":springwolf-core") implementation project(":springwolf-plugins:springwolf-kafka") @@ -26,69 +25,66 @@ dependencies { annotationProcessor project(":springwolf-plugins:springwolf-kafka") - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" - - runtimeOnly "org.springframework.boot:spring-boot-starter-web" - - implementation "org.springframework:spring-beans" - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-messaging" - implementation "org.springframework:spring-web" + annotationProcessor libs.lombok + compileOnly libs.lombok - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" + runtimeOnly libs.spring.boot.starter.web - implementation "org.springframework.kafka:spring-kafka" + runtimeOnly platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.beans + implementation libs.spring.context + implementation libs.spring.messaging + implementation libs.spring.web - implementation "org.springframework.security:spring-security-config" - implementation "org.springframework.security:spring-security-web" + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure - implementation "org.apache.avro:avro:${avroVersion}@jar" - implementation "io.confluent:kafka-avro-serializer:${kafkaAvroSerializerVersion}" - permitUnusedDeclared "io.confluent:kafka-avro-serializer:${kafkaAvroSerializerVersion}@jar" + implementation libs.spring.kafka - runtimeOnly "io.confluent:kafka-protobuf-serializer:${kafkaProtobufSerializerVersion}" - implementation "com.google.protobuf:protobuf-java:${protobufJavaVersion}" - implementation "com.hubspot.jackson:jackson-datatype-protobuf:${jacksonDatatypeProtobufVersion}" + implementation libs.spring.security.config + implementation libs.spring.security.web - implementation "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" - implementation "com.fasterxml.jackson.core:jackson-core:${jacksonVersion}" - implementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" + implementation libs.avro + implementation libs.kafka.avro.serializer + permitUnusedDeclared libs.kafka.avro.serializer - implementation "jakarta.xml.bind:jakarta.xml.bind-api:${jakartaXmlBindApiVersion}" + runtimeOnly libs.kafka.protobuf.serializer + implementation libs.protobuf.java + implementation libs.jackson.datatype.protobuf + implementation libs.jackson.annotations + implementation libs.jackson.core + implementation libs.jackson.databind - implementation "io.swagger.core.v3:swagger-annotations:${swaggerVersion}" - implementation "io.swagger.core.v3:swagger-core-jakarta:${swaggerVersion}" + implementation libs.jakarta.xml.bind.api - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.swagger.annotations.outdated + implementation libs.swagger.core.jakarta - implementation "org.apache.kafka:kafka-clients:${kafkaClientsVersion}@jar" + implementation libs.slf4j.api - implementation "javax.money:money-api:${moneyApiVersion}" - implementation "org.javamoney:moneta:${monetaVersion}" + implementation libs.kafka.clients - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.awaitility:awaitility:${awaitilityVersion}" - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + implementation libs.money.api + implementation libs.moneta - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework.kafka:spring-kafka-test" - testImplementation "org.springframework:spring-test" + testImplementation libs.assertj.core + testImplementation libs.awaitility - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" + testImplementation libs.spring.boot.test + testImplementation libs.spring.core + testImplementation libs.spring.test - permitTestUnusedDeclared "org.apache.kafka:kafka-clients:${kafkaClientsVersion}:test@jar" + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter - testImplementation("org.springframework.boot:spring-boot-starter-actuator") - permitTestUnusedDeclared("org.springframework.boot:spring-boot-starter-actuator") + runtimeOnly libs.spring.boot.starter.actuator - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { @@ -120,7 +116,7 @@ openApi { protobuf { protoc { - artifact = "com.google.protobuf:protoc:${protobufJavaVersion}" + artifact = libs.protoc.get() } } diff --git a/springwolf-examples/springwolf-kafka-example/docker-compose.yml b/springwolf-examples/springwolf-kafka-example/docker-compose.yml index ab82b6066..3369ee955 100644 --- a/springwolf-examples/springwolf-kafka-example/docker-compose.yml +++ b/springwolf-examples/springwolf-kafka-example/docker-compose.yml @@ -6,6 +6,7 @@ services: environment: BOOTSTRAP_SERVER: kafka:29092 BOOTSTRAP_SERVER_SASL: kafka:29093 + SPRING_KAFKA_CONSUMER_GROUP_ID: example-group-id-docker KAFKA_SCHEMA_REGISTRY_URL: http://kafka-schema-registry:8081 ports: - "8080:8080" diff --git a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiIntegrationWithActuatorIntegrationTest.java b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiIntegrationWithActuatorIntegrationTest.java index d3b651a30..c0c0d87aa 100644 --- a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiIntegrationWithActuatorIntegrationTest.java +++ b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiIntegrationWithActuatorIntegrationTest.java @@ -7,7 +7,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.kafka.test.context.EmbeddedKafka; import java.io.IOException; import java.io.InputStream; @@ -19,11 +18,9 @@ classes = {SpringwolfKafkaExampleApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = { - "spring.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}", "springwolf.endpoint.actuator.enabled=true", "management.endpoints.web.exposure.include=springwolf" }) -@EmbeddedKafka public class ApiIntegrationWithActuatorIntegrationTest { @Autowired diff --git a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiSystemTest.java b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiSystemTest.java index d932ce849..37c3b6bcb 100644 --- a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiSystemTest.java +++ b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,25 +30,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/KafkaProducerSystemTest.java b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/KafkaProducerSystemTest.java index a4b8b8ea5..47ea4d743 100644 --- a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/KafkaProducerSystemTest.java +++ b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/KafkaProducerSystemTest.java @@ -1,143 +1,134 @@ // SPDX-License-Identifier: Apache-2.0 package io.github.springwolf.examples.kafka; -import io.github.springwolf.examples.kafka.consumers.AvroConsumer; -import io.github.springwolf.examples.kafka.consumers.ExampleConsumer; -import io.github.springwolf.examples.kafka.consumers.ProtobufConsumer; -import io.github.springwolf.examples.kafka.dto.avro.AnotherPayloadAvroDto; -import io.github.springwolf.examples.kafka.dto.avro.ExampleEnum; -import io.github.springwolf.examples.kafka.dto.avro.ExamplePayloadAvroDto; -import io.github.springwolf.examples.kafka.dto.proto.ExamplePayloadProtobufDto; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import io.github.springwolf.examples.kafka.dtos.ExamplePayloadDto; -import io.github.springwolf.plugins.kafka.configuration.properties.SpringwolfKafkaConfigProperties; -import io.github.springwolf.plugins.kafka.producer.SpringwolfKafkaProducer; import lombok.extern.slf4j.Slf4j; -import org.apache.kafka.clients.admin.AdminClient; -import org.apache.kafka.clients.admin.KafkaAdminClient; -import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; -import org.junit.jupiter.api.Order; +import org.awaitility.Awaitility; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.condition.DisabledIf; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.ssl.DefaultSslBundleRegistry; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.TestPropertySource; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; import org.testcontainers.containers.DockerComposeContainer; +import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.util.HashMap; -import java.util.Map; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.TimeUnit; import static io.github.springwolf.examples.kafka.dtos.ExamplePayloadDto.ExampleEnum.FOO1; -import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; -import static org.awaitility.Awaitility.await; -import static org.mockito.Mockito.timeout; -import static org.mockito.Mockito.verify; /** * While the assertion of this test is identical to ApiIntegrationTests, * the setup uses a full docker-compose context with a real kafka instance. */ -@SpringBootTest( - classes = {SpringwolfKafkaExampleApplication.class}, - webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Testcontainers -@TestPropertySource(properties = {"spring.kafka.bootstrap-servers=localhost:9092"}) -@TestMethodOrder(OrderAnnotation.class) @Slf4j // @Ignore("Uncomment this line if you have issues running this test on your local machine.") public class KafkaProducerSystemTest { + private static final RestTemplate restTemplate = new RestTemplate(); + private static final String APP_NAME = "app"; + private static final int APP_PORT = 8080; private static final String KAFKA_NAME = "kafka"; + private static final String topic = "example-topic"; private static final boolean USE_SCHEMA_REGISTRY = false; - @Autowired - SpringwolfKafkaProducer springwolfKafkaProducer; - - @SpyBean - ExampleConsumer exampleConsumer; - - @SpyBean - AvroConsumer avroConsumer; - - @SpyBean - ProtobufConsumer protobufConsumer; - - @Autowired - SpringwolfKafkaConfigProperties properties; - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory - .withServices(KAFKA_NAME, USE_SCHEMA_REGISTRY ? "kafka-schema-registry" : "") - .withLogConsumer(KAFKA_NAME, l -> log.debug("kafka: {}", l.getUtf8StringWithoutLineEnding())); - - @Test - @Order(1) - void verifyKafkaIsAvailable() { - Map consumerProperties = - properties.getPublishing().getProducer().buildProperties(new DefaultSslBundleRegistry()); - AdminClient adminClient = KafkaAdminClient.create(consumerProperties); - await().atMost(60, SECONDS) - .untilAsserted( - () -> assertThat(adminClient.listTopics().names().get()).contains("example-topic")); + .withServices(APP_NAME, KAFKA_NAME, USE_SCHEMA_REGISTRY ? "kafka-schema-registry" : "") + .withExposedService(APP_NAME, APP_PORT) + .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) + .waitingFor(APP_NAME, Wait.forLogMessage(".*partitions assigned.*" + topic + ".*", 1)) + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))) + .waitingFor(KAFKA_NAME, Wait.forLogMessage(".*Kafka Server started.*", 1)) + .withLogConsumer(KAFKA_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("KAFKA: {}", m))); + + private String baseUrl() { + String host = environment.getServiceHost(APP_NAME, APP_PORT); + int port = environment.getServicePort(APP_NAME, APP_PORT); + return String.format("http://%s:%d", host, port); } @Test - @Order(2) - void producerCanUseSpringwolfConfigurationToSendMessage() { + void producerCanUseSpringwolfConfigurationToSendMessage() throws JsonProcessingException { // given - Map headers = new HashMap<>(); - headers.put("header-key", "header-value"); - ExamplePayloadDto payload = new ExamplePayloadDto("foo", 5, FOO1); - - // when - springwolfKafkaProducer.send("example-topic", "key", headers, payload); - - // then - verify(exampleConsumer, timeout(10000)).receiveExamplePayload("key", 0, payload); - } + HttpHeaders headers = new HttpHeaders(); + headers.put("Content-Type", List.of("application/json")); + headers.put("kafka_offset", List.of("0")); + headers.put("kafka_receivedMessageKey", List.of("string")); - @Test - @Order(3) - @DisabledIf( - value = "withoutSchemaRegistry", - disabledReason = "because it requires a running kafka-schema-registry instance (docker image= ~1GB).") - void producerCanUseSpringwolfConfigurationToSendAvroMessage() { - // given - ExamplePayloadAvroDto payload = new ExamplePayloadAvroDto("foo", 5L); - AnotherPayloadAvroDto anotherPayload = new AnotherPayloadAvroDto(ExampleEnum.FOO1, payload); - - // when - springwolfKafkaProducer.send("avro-topic", "key", Map.of(), anotherPayload); - - // then - verify(avroConsumer, timeout(10000)).receiveExampleAvroPayload(anotherPayload); + ExamplePayloadDto payload = new ExamplePayloadDto("foo", 5, FOO1); + String payloadAsString = new ObjectMapper().writeValueAsString(payload).replaceAll("\"", "\\\\\""); + String message = "{\n" // + + " \"bindings\": {},\n" + + " \"headers\": {" // + + " \"kafka_offset\": 0,\n" // + + " \"kafka_receivedMessageKey\": \"string\"\n" // + + " },\n" + + " \"payloadType\": \"io.github.springwolf.examples.kafka.dtos.ExamplePayloadDto\",\n" + + " \"payload\": \"" + payloadAsString + "\"\n" + + "}"; + + String url = baseUrl() + "/springwolf/kafka/publish?topic=" + topic; + HttpEntity request = new HttpEntity<>(message, headers); + + Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> { + // when + ResponseEntity response = restTemplate.postForEntity(url, request, String.class); + + // then + assertThat(response.getStatusCode().value()).isEqualTo(200); + assertThat(environment.getContainerByServiceName(APP_NAME).get().getLogs()) + .contains("Received new message in " + topic + ": " + payload); + }); } @Test - @Order(4) + @Disabled("Publishing AVRO is not supported") @DisabledIf( value = "withoutSchemaRegistry", disabledReason = "because it requires a running kafka-schema-registry instance (docker image= ~1GB).") - void producerCanUseSpringwolfConfigurationToSendProtobufMessage() { + void producerCanUseSpringwolfConfigurationToSendAvroMessage() throws JsonProcessingException { // given - ExamplePayloadProtobufDto.Message payload = ExamplePayloadProtobufDto.Message.newBuilder() - .setSomeString("foo") - .setSomeLong(5) - .setSomeEnum(ExamplePayloadProtobufDto.ExampleEnum.FOO1) - .build(); - - // when - springwolfKafkaProducer.send("protobuf-topic", "key", Map.of(), payload); - - // then - verify(protobufConsumer, timeout(10000)).receiveExampleProtobufPayload(payload); + HttpHeaders headers = new HttpHeaders(); + headers.put("Content-Type", List.of("application/json")); + + String payloadAsString = + "{\"someEnum\": \"FOO1\", \"ExamplePayloadAvroDto\": {\"someString\": \"string\", \"someLong\": 0}}"; + String message = "{\n" // + + " \"bindings\": {},\n" + + " \"headers\": {},\n" + + " \"payloadType\": \"io.github.springwolf.examples.kafka.dto.avro.AnotherPayloadAvroDto\",\n" + + " \"payload\": \"" + payloadAsString.replaceAll("\"", "\\\\\"") + "\"\n" + + "}"; + + String topic = "avro-topic"; + String url = baseUrl() + "/springwolf/kafka/publish?topic=" + topic; + HttpEntity request = new HttpEntity<>(message, headers); + + Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> { + // when + ResponseEntity response = restTemplate.postForEntity(url, request, String.class); + + // then + assertThat(response.getStatusCode().value()).isEqualTo(200); + assertThat(environment.getContainerByServiceName(APP_NAME).get().getLogs()) + .contains("Received new message in " + topic + ": " + payloadAsString); + }); } boolean withoutSchemaRegistry() { diff --git a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringContextIntegrationTest.java b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringContextIntegrationTest.java index acacaf2f7..19282f1c2 100644 --- a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringContextIntegrationTest.java +++ b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringContextIntegrationTest.java @@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationContext; -import org.springframework.kafka.test.context.EmbeddedKafka; import org.springframework.test.context.TestPropertySource; import static org.assertj.core.api.Assertions.assertThat; @@ -16,11 +15,9 @@ public class SpringContextIntegrationTest { @SpringBootTest(classes = SpringwolfKafkaExampleApplication.class) - @EmbeddedKafka @Nested @TestPropertySource( properties = { - "spring.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}", "springwolf.enabled=true", "springwolf.docket.info.title=Info title was loaded from spring properties", "springwolf.docket.info.version=1.0.0", @@ -63,11 +60,9 @@ void testAllChannelsAreFound() { } @SpringBootTest(classes = SpringwolfKafkaExampleApplication.class) - @EmbeddedKafka @Nested @TestPropertySource( properties = { - "spring.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}", "springwolf.scanner.async-listener.enabled=false", "springwolf.scanner.async-publisher.enabled=false", "springwolf.scanner.consumer-data.enabled=false", diff --git a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringwolfKafkaExampleApplicationIntegrationTest.java b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringwolfKafkaExampleApplicationIntegrationTest.java index f04ce4387..0fb4d26d3 100644 --- a/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringwolfKafkaExampleApplicationIntegrationTest.java +++ b/springwolf-examples/springwolf-kafka-example/src/test/java/io/github/springwolf/examples/kafka/SpringwolfKafkaExampleApplicationIntegrationTest.java @@ -5,16 +5,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationContext; -import org.springframework.kafka.test.context.EmbeddedKafka; -import org.springframework.test.context.TestPropertySource; import static org.junit.jupiter.api.Assertions.assertNotNull; @SpringBootTest( classes = {SpringwolfKafkaExampleApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@EmbeddedKafka -@TestPropertySource(properties = {"spring.kafka.bootstrap-servers=${spring.embedded.kafka.brokers}"}) class SpringwolfKafkaExampleApplicationIntegrationTest { @Autowired diff --git a/springwolf-examples/springwolf-sns-example/build.gradle b/springwolf-examples/springwolf-sns-example/build.gradle index 7034443fa..8abe57e6b 100644 --- a/springwolf-examples/springwolf-sns-example/build.gradle +++ b/springwolf-examples/springwolf-sns-example/build.gradle @@ -1,21 +1,14 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' - - id 'com.bmuschko.docker-spring-boot-application' -} + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze -dependencyManagement { - imports { - mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:3.2.0" - } + alias libs.plugins.docker.spring.boot } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { implementation project(":springwolf-core") implementation project(":springwolf-plugins:springwolf-sns") @@ -26,36 +19,39 @@ dependencies { runtimeOnly project(":springwolf-add-ons:springwolf-json-schema") runtimeOnly project(":springwolf-ui") - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok + + runtimeOnly libs.spring.boot.starter.web - runtimeOnly "org.springframework.boot:spring-boot-starter-web" + implementation libs.slf4j.api + implementation libs.swagger.annotations.jakarta - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" - implementation "io.swagger.core.v3:swagger-annotations-jakarta:${swaggerVersion}" + runtimeOnly platform(libs.spring.cloud.aws.dependencies) + implementation platform(libs.spring.cloud.aws.dependencies) + implementation libs.spring.cloud.aws.sns + runtimeOnly libs.spring.cloud.aws.starter.sns - implementation 'io.awspring.cloud:spring-cloud-aws-sns' - implementation 'io.awspring.cloud:spring-cloud-aws-starter-sns' - permitUnusedDeclared 'io.awspring.cloud:spring-cloud-aws-starter-sns' - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-messaging" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.boot.autoconfigure + implementation libs.spring.boot + implementation libs.spring.context + implementation libs.spring.messaging - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-web" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.web + testImplementation libs.spring.test - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" - testImplementation "org.testcontainers:localstack:${testcontainersVersion}" + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter + testImplementation libs.testcontainers.localstack - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { diff --git a/springwolf-examples/springwolf-sns-example/src/test/java/io/github/springwolf/examples/sns/ApiSystemTest.java b/springwolf-examples/springwolf-sns-example/src/test/java/io/github/springwolf/examples/sns/ApiSystemTest.java index 14ba9cdf3..9d0f6d22e 100644 --- a/springwolf-examples/springwolf-sns-example/src/test/java/io/github/springwolf/examples/sns/ApiSystemTest.java +++ b/springwolf-examples/springwolf-sns-example/src/test/java/io/github/springwolf/examples/sns/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,25 +30,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-examples/springwolf-sqs-example/build.gradle b/springwolf-examples/springwolf-sqs-example/build.gradle index 241d19a57..db60a5925 100644 --- a/springwolf-examples/springwolf-sqs-example/build.gradle +++ b/springwolf-examples/springwolf-sqs-example/build.gradle @@ -1,21 +1,14 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze - id 'com.bmuschko.docker-spring-boot-application' + alias libs.plugins.docker.spring.boot } -dependencyManagement { - imports { - mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:3.2.0" - } -} - -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { implementation project(":springwolf-core") implementation project(":springwolf-plugins:springwolf-sqs") @@ -25,38 +18,40 @@ dependencies { annotationProcessor project(":springwolf-plugins:springwolf-sqs") runtimeOnly project(":springwolf-ui") - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - runtimeOnly "org.springframework.boot:spring-boot-starter-web" + runtimeOnly libs.spring.boot.starter.web - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" - implementation "io.swagger.core.v3:swagger-annotations:${swaggerVersion}" + implementation libs.slf4j.api + implementation libs.swagger.annotations.jakarta - implementation 'io.awspring.cloud:spring-cloud-aws-sqs' - implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs' - permitUnusedDeclared 'io.awspring.cloud:spring-cloud-aws-starter-sqs' - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework:spring-context" + runtimeOnly platform(libs.spring.cloud.aws.dependencies) + implementation platform(libs.spring.cloud.aws.dependencies) + implementation libs.spring.cloud.aws.sqs + runtimeOnly libs.spring.cloud.aws.starter.sqs - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.boot.autoconfigure + implementation libs.spring.boot + implementation libs.spring.context - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-web" - testImplementation "org.springframework:spring-test" + testImplementation libs.mockito.core - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" - testImplementation "org.testcontainers:localstack:${testcontainersVersion}" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.web + testImplementation libs.spring.test - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter + testImplementation libs.testcontainers.localstack - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { diff --git a/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/ApiSystemTest.java b/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/ApiSystemTest.java index 0bab1d06b..5adb15f96 100644 --- a/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/ApiSystemTest.java +++ b/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,25 +30,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/SqsProducerSystemTest.java b/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/SqsProducerSystemTest.java index 994db8fbb..79d624bc3 100644 --- a/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/SqsProducerSystemTest.java +++ b/springwolf-examples/springwolf-sqs-example/src/test/java/io/github/springwolf/examples/sqs/SqsProducerSystemTest.java @@ -15,12 +15,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static io.github.springwolf.examples.sqs.dtos.ExamplePayloadDto.ExampleEnum.FOO1; import static org.mockito.Mockito.timeout; @@ -45,24 +40,13 @@ public class SqsProducerSystemTest { @SpyBean ExampleConsumer exampleConsumer; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory - .withEnv(ENV) .withServices(LOCALSTACK_NAME) - .withLogConsumer(LOCALSTACK_NAME, l -> log.debug("localstack: {}", l.getUtf8StringWithoutLineEnding())) + .withLogConsumer(LOCALSTACK_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("LOCALSTACK: {}", m))) .waitingFor(LOCALSTACK_NAME, Wait.forLogMessage(".*Ready.*", 1)); @Test diff --git a/springwolf-examples/springwolf-stomp-example/build.gradle b/springwolf-examples/springwolf-stomp-example/build.gradle index 5c4fe62f5..ed97a0b75 100644 --- a/springwolf-examples/springwolf-stomp-example/build.gradle +++ b/springwolf-examples/springwolf-stomp-example/build.gradle @@ -1,15 +1,14 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze - id 'com.bmuschko.docker-spring-boot-application' + alias libs.plugins.docker.spring.boot } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { implementation project(":springwolf-core") implementation project(":springwolf-plugins:springwolf-stomp") @@ -18,41 +17,39 @@ dependencies { runtimeOnly project(":springwolf-ui") - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" - - implementation "org.springframework:spring-jcl" - implementation "org.springframework:spring-web" - implementation "org.springframework:spring-websocket" + annotationProcessor libs.lombok + testAnnotationProcessor libs.lombok + compileOnly libs.lombok - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-messaging" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.jcl + implementation libs.spring.web + implementation libs.spring.websocket - implementation "io.swagger.core.v3:swagger-annotations:${swaggerVersion}" + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure + implementation libs.spring.context + implementation libs.spring.messaging - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.swagger.annotations.jakarta - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-core" - testImplementation "org.springframework:spring-web" + implementation libs.slf4j.api - permitTestUnusedDeclared "org.mockito:mockito-core:${mockitoCoreVersion}" - permitTestUnusedDeclared "org.mockito:mockito-junit-jupiter:${mockitoJunitJupiterVersion}" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.core + testImplementation libs.spring.web - testImplementation "org.testcontainers:testcontainers:${testcontainersVersion}" - testImplementation "org.testcontainers:junit-jupiter:${testcontainersVersion}" + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter - testImplementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" + testImplementation libs.jakarta.annotation.api - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } docker { diff --git a/springwolf-examples/springwolf-stomp-example/src/test/java/io/github/springwolf/examples/stomp/ApiSystemTest.java b/springwolf-examples/springwolf-stomp-example/src/test/java/io/github/springwolf/examples/stomp/ApiSystemTest.java index de7f88d0b..c5c01551d 100644 --- a/springwolf-examples/springwolf-stomp-example/src/test/java/io/github/springwolf/examples/stomp/ApiSystemTest.java +++ b/springwolf-examples/springwolf-stomp-example/src/test/java/io/github/springwolf/examples/stomp/ApiSystemTest.java @@ -10,13 +10,10 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; +import java.util.Arrays; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -31,25 +28,14 @@ public class ApiSystemTest { private static final String APP_NAME = "app_1"; private static final int APP_PORT = 8080; - private static final Map ENV = new HashMap<>(); - - static { - try (InputStream input = new FileInputStream(".env")) { - var properties = new Properties(); - properties.load(input); - properties.forEach((key, value) -> ENV.put(String.valueOf(key), String.valueOf(value))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - @Container public static DockerComposeContainer environment = new DockerComposeContainer<>(new File("docker-compose.yml")) .withCopyFilesInContainer(".env") // do not copy all files in the directory .withExposedService(APP_NAME, APP_PORT) .waitingFor(APP_NAME, Wait.forLogMessage(".*AsyncAPI document was built.*", 1)) - .withEnv(ENV) - .withLogConsumer(APP_NAME, l -> log.debug("APP: {}", l.getUtf8StringWithoutLineEnding())); + .withLogConsumer(APP_NAME, l -> Arrays.stream( + l.getUtf8StringWithoutLineEnding().split("(\n|\r\n)")) + .forEach(m -> log.debug("APP: {}", m))); private String baseUrl() { String host = environment.getServiceHost(APP_NAME, APP_PORT); diff --git a/springwolf-plugins/springwolf-amqp-plugin/build.gradle b/springwolf-plugins/springwolf-amqp-plugin/build.gradle index 7db4a3bcb..f3f5ebadf 100644 --- a/springwolf-plugins/springwolf-amqp-plugin/build.gradle +++ b/springwolf-plugins/springwolf-amqp-plugin/build.gradle @@ -1,51 +1,52 @@ +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") api project(":springwolf-bindings:springwolf-amqp-binding") permitUnusedDeclared project(":springwolf-bindings:springwolf-amqp-binding") - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.slf4j.api - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework:spring-web" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework.amqp:spring-amqp" - implementation "org.springframework.amqp:spring-rabbit" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.web + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure + implementation libs.spring.amqp + implementation libs.spring.rabbit - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" + implementation libs.jakarta.annotation.api - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + annotationProcessor libs.spring.boot.configuration.processor - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" + testImplementation libs.assertj.core - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" - testImplementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" + testImplementation libs.mockito.core + testImplementation libs.jackson.databind - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.test - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-plugins/springwolf-cloud-stream-plugin/build.gradle b/springwolf-plugins/springwolf-cloud-stream-plugin/build.gradle index dce7fd588..c7dcf9f52 100644 --- a/springwolf-plugins/springwolf-cloud-stream-plugin/build.gradle +++ b/springwolf-plugins/springwolf-cloud-stream-plugin/build.gradle @@ -1,50 +1,44 @@ +import org.springframework.boot.gradle.plugin.SpringBootPlugin + plugins { id 'java-library' - id 'org.springframework.boot' - id 'io.spring.dependency-management' - id 'ca.cutterslade.analyze' -} - -ext { - set('springCloudVersion', "2022.0.1") -} - -dependencyManagement { - imports { - mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" - } + alias libs.plugins.spring.boot + alias libs.plugins.cutterslade.analyze } -ext['junit-jupiter.version'] = "${junitJupiterVersion}" +ext['springCloudVersion'] = "2022.0.1" dependencies { api project(":springwolf-asyncapi") api project(":springwolf-core") - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.slf4j.api - implementation "org.springframework:spring-context" - implementation "org.springframework.cloud:spring-cloud-stream" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(libs.spring.cloud.dependencies) + implementation platform(libs.spring.cloud.aws.dependencies) + implementation libs.spring.context + implementation libs.spring.cloud.stream + implementation libs.spring.boot.autoconfigure - compileOnly "org.projectlombok:lombok:${lombokVersion}" - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + compileOnly libs.lombok + annotationProcessor libs.lombok - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.apache.kafka:kafka-streams:${kafkaStreamsVersion}" - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.assertj.core + testImplementation libs.kafka.streams + testImplementation libs.mockito.core - testImplementation "org.springframework.boot:spring-boot" - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-test" - testImplementation "org.springframework:spring-messaging" + testImplementation libs.spring.boot + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.test + testImplementation libs.spring.messaging - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-plugins/springwolf-jms-plugin/build.gradle b/springwolf-plugins/springwolf-jms-plugin/build.gradle index b58753e5a..df740f552 100644 --- a/springwolf-plugins/springwolf-jms-plugin/build.gradle +++ b/springwolf-plugins/springwolf-jms-plugin/build.gradle @@ -1,59 +1,60 @@ +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-asyncapi") api project(":springwolf-core") api project(":springwolf-bindings:springwolf-jms-binding") permitUnusedDeclared project(":springwolf-bindings:springwolf-jms-binding") - implementation "jakarta.jms:jakarta.jms-api" + implementation libs.jakarta.jms.api - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.jakarta.annotation.api + implementation libs.slf4j.api - runtimeOnly "org.apache.activemq:activemq-broker" + runtimeOnly libs.activemq.broker - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework:spring-jms" - implementation "org.springframework:spring-web" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.jms + implementation libs.spring.web - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + annotationProcessor libs.spring.boot.configuration.processor - testRuntimeOnly "org.springframework.boot:spring-boot-starter-web" + testRuntimeOnly libs.spring.boot.starter.web - testImplementation "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" + testImplementation libs.jackson.annotations - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" + testImplementation libs.assertj.core - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.mockito.core - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.beans + testImplementation libs.spring.test - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework.boot:spring-boot-test-autoconfigure" + testImplementation libs.spring.boot.test + testImplementation libs.spring.boot.test.autoconfigure - testImplementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testImplementation libs.jackson.databind + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-plugins/springwolf-kafka-plugin/build.gradle b/springwolf-plugins/springwolf-kafka-plugin/build.gradle index 008af29e9..3b88e09e9 100644 --- a/springwolf-plugins/springwolf-kafka-plugin/build.gradle +++ b/springwolf-plugins/springwolf-kafka-plugin/build.gradle @@ -1,61 +1,62 @@ +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-asyncapi") api project(":springwolf-core") api project(":springwolf-bindings:springwolf-kafka-binding") permitUnusedDeclared project(":springwolf-bindings:springwolf-kafka-binding") - implementation "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}" - permitUnusedDeclared "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}" - implementation "org.apache.kafka:kafka-clients:${kafkaClientsVersion}" + implementation libs.swagger.models.jakarta + permitUnusedDeclared libs.swagger.models.jakarta + implementation libs.kafka.clients - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.jakarta.annotation.api + implementation libs.slf4j.api - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework:spring-web" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.web - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure - implementation "org.springframework.kafka:spring-kafka" + implementation libs.spring.kafka - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + annotationProcessor libs.spring.boot.configuration.processor - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" - testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok + testCompileOnly libs.lombok - testRuntimeOnly "org.springframework.boot:spring-boot-starter-web" + testRuntimeOnly libs.spring.boot.starter.web - testImplementation "com.fasterxml.jackson.core:jackson-annotations:${jacksonVersion}" - testImplementation "com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}" + testImplementation libs.jackson.annotations + testImplementation libs.jackson.databind - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" - testImplementation "org.mockito:mockito-junit-jupiter:${mockitoJunitJupiterVersion}" + testImplementation libs.mockito.core + testImplementation libs.mockito.junit.jupiter - testImplementation "org.springframework.boot:spring-boot-test-autoconfigure" - testImplementation "org.springframework.boot:spring-boot-test" + testImplementation libs.spring.boot.test.autoconfigure + testImplementation libs.spring.boot.test - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.beans + testImplementation libs.spring.test - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" + testImplementation libs.assertj.core - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-plugins/springwolf-sns-plugin/build.gradle b/springwolf-plugins/springwolf-sns-plugin/build.gradle index 020424ac1..d6c3a6ea7 100644 --- a/springwolf-plugins/springwolf-sns-plugin/build.gradle +++ b/springwolf-plugins/springwolf-sns-plugin/build.gradle @@ -1,55 +1,51 @@ +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 } -dependencyManagement { - imports { - mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:3.2.0" - } -} - -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { api project(":springwolf-core") api project(":springwolf-bindings:springwolf-sns-binding") permitUnusedDeclared project(":springwolf-bindings:springwolf-sns-binding") - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.jakarta.annotation.api + implementation libs.slf4j.api - implementation 'io.awspring.cloud:spring-cloud-aws-sns' - implementation 'io.awspring.cloud:spring-cloud-aws-starter-sns' - permitUnusedDeclared 'io.awspring.cloud:spring-cloud-aws-starter-sns' + runtimeOnly platform(libs.spring.cloud.aws.dependencies) + implementation platform(libs.spring.cloud.aws.dependencies) + implementation libs.spring.cloud.aws.sns + runtimeOnly libs.spring.cloud.aws.starter.sns - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-messaging" - implementation "org.springframework:spring-web" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.messaging + implementation libs.spring.web + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + annotationProcessor libs.spring.boot.configuration.processor - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.assertj.core + testImplementation libs.mockito.core - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.test - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-plugins/springwolf-sqs-plugin/build.gradle b/springwolf-plugins/springwolf-sqs-plugin/build.gradle index 26554b6c6..499f7a4b2 100644 --- a/springwolf-plugins/springwolf-sqs-plugin/build.gradle +++ b/springwolf-plugins/springwolf-sqs-plugin/build.gradle @@ -1,56 +1,52 @@ +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 } -dependencyManagement { - imports { - mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:3.2.0" - } -} - -ext['junit-jupiter.version'] = "${junitJupiterVersion}" - dependencies { api project(":springwolf-asyncapi") api project(":springwolf-core") api project(":springwolf-bindings:springwolf-sqs-binding") permitUnusedDeclared project(":springwolf-bindings:springwolf-sqs-binding") - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.jakarta.annotation.api + implementation libs.slf4j.api - implementation 'io.awspring.cloud:spring-cloud-aws-sqs' - implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs' - permitUnusedDeclared 'io.awspring.cloud:spring-cloud-aws-starter-sqs' + runtimeOnly platform(libs.spring.cloud.aws.dependencies) + implementation platform(libs.spring.cloud.aws.dependencies) + implementation libs.spring.cloud.aws.sqs + runtimeOnly libs.spring.cloud.aws.starter.sqs - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework:spring-web" - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.web + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + annotationProcessor libs.spring.boot.configuration.processor - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.assertj.core + testImplementation libs.mockito.core - testImplementation "org.springframework.boot:spring-boot-test" - testImplementation "org.springframework:spring-beans" - testImplementation "org.springframework:spring-test" + testImplementation libs.spring.boot.test + testImplementation libs.spring.beans + testImplementation libs.spring.test - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor libs.lombok - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-plugins/springwolf-stomp-plugin/build.gradle b/springwolf-plugins/springwolf-stomp-plugin/build.gradle index 63dfd654f..bc1767c9c 100644 --- a/springwolf-plugins/springwolf-stomp-plugin/build.gradle +++ b/springwolf-plugins/springwolf-stomp-plugin/build.gradle @@ -1,47 +1,47 @@ +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-asyncapi") api project(":springwolf-core") api project(":springwolf-bindings:springwolf-stomp-binding") permitUnusedDeclared project(":springwolf-bindings:springwolf-stomp-binding") - implementation "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}" - permitUnusedDeclared "io.swagger.core.v3:swagger-models-jakarta:${swaggerVersion}" + runtimeOnly libs.swagger.models.jakarta - implementation "jakarta.annotation:jakarta.annotation-api:${annotationApiVersion}" - implementation "org.slf4j:slf4j-api:${slf4jApiVersion}" + implementation libs.jakarta.annotation.api + implementation libs.slf4j.api - implementation "org.springframework:spring-context" - implementation "org.springframework:spring-core" - implementation "org.springframework:spring-messaging" + annotationProcessor platform(SpringBootPlugin.BOM_COORDINATES) + runtimeOnly platform(SpringBootPlugin.BOM_COORDINATES) + implementation platform(SpringBootPlugin.BOM_COORDINATES) + implementation libs.spring.context + implementation libs.spring.core + implementation libs.spring.messaging - implementation "org.springframework.boot:spring-boot" - implementation "org.springframework.boot:spring-boot-autoconfigure" - implementation "org.springframework.boot:spring-boot-starter-websocket" - permitUnusedDeclared("org.springframework.boot:spring-boot-starter-websocket") - annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" + implementation libs.spring.boot + implementation libs.spring.boot.autoconfigure + runtimeOnly libs.spring.boot.starter.websocket + annotationProcessor libs.spring.boot.configuration.processor - annotationProcessor "org.projectlombok:lombok:${lombokVersion}" - compileOnly "org.projectlombok:lombok:${lombokVersion}" - testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor libs.lombok + compileOnly libs.lombok + testAnnotationProcessor libs.lombok - testRuntimeOnly "org.springframework.boot:spring-boot-starter-web" + testRuntimeOnly libs.spring.boot.starter.web - testImplementation "org.mockito:mockito-core:${mockitoCoreVersion}" + testImplementation libs.mockito.core - testImplementation "org.assertj:assertj-core:${assertjCoreVersion}" + testImplementation libs.assertj.core - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter' + testImplementation libs.junit.jupiter.api + testRuntimeOnly libs.junit.jupiter } jar { diff --git a/springwolf-ui/build.gradle b/springwolf-ui/build.gradle index 83023304a..da761c663 100644 --- a/springwolf-ui/build.gradle +++ b/springwolf-ui/build.gradle @@ -1,11 +1,11 @@ plugins { id 'java' - id 'com.github.node-gradle.node' version '7.1.0' + alias libs.plugins.node } node { - version = '18.20.3' - npmVersion = '10.7.0' + version = libs.versions.nodeVersion + npmVersion = libs.versions.npm download = true }