diff --git a/build.gradle b/build.gradle index 5a05e8ce..11156ae3 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,8 @@ buildscript { plugins { id 'base' id 'io.spring.dependency-management' version '1.1.4' + id 'com.github.spotbugs' version '6.0.4' + id 'com.google.protobuf' version '0.9.4' apply false } description = 'Spring Functions Catlog' @@ -46,9 +48,10 @@ allprojects { } imports { + mavenBom "io.debezium:debezium-bom:$debeziumVersion" + mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:$springCloudAwsVersion" mavenBom "org.springframework.boot:spring-boot-dependencies:$springBootVersion" mavenBom "org.springframework.cloud:spring-cloud-dependencies:$springCloudVersion" - mavenBom "io.awspring.cloud:spring-cloud-aws-dependencies:$springCloudAwsVersion" } } @@ -115,6 +118,10 @@ configure(javaProjects) { subproject -> api 'org.springframework.boot:spring-boot-starter-integration' api 'com.jayway.jsonpath:json-path' + def spotbugsAnnotations = "com.github.spotbugs:spotbugs-annotations:${spotbugs.toolVersion.get()}" + compileOnly spotbugsAnnotations + testCompileOnly spotbugsAnnotations + testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.integration:spring-integration-test' testImplementation 'io.projectreactor:reactor-test' diff --git a/common/aws-s3-common/build.gradle b/common/aws-s3-common/build.gradle index 2713545c..0b45c720 100644 --- a/common/aws-s3-common/build.gradle +++ b/common/aws-s3-common/build.gradle @@ -1,5 +1,5 @@ dependencies { - api "org.springframework.integration:spring-integration-aws:$springIntegrationAwsVersion" + api springIntegrationAws api 'io.awspring.cloud:spring-cloud-aws-starter-s3' api 'software.amazon.awssdk:aws-crt-client' api 'org.springframework.integration:spring-integration-file' diff --git a/common/debezium-autoconfigure/build.gradle b/common/debezium-autoconfigure/build.gradle index f51f707a..efe26a5d 100644 --- a/common/debezium-autoconfigure/build.gradle +++ b/common/debezium-autoconfigure/build.gradle @@ -1,17 +1,13 @@ -ext { - apicurioVersion = '2.5.1.Final' -} - repositories { maven { url 'https://maven.scijava.org/content/repositories/public/' } } dependencies { api 'org.springframework.integration:spring-integration-debezium' - api "io.apicurio:apicurio-registry-utils-converter:$apicurioVersion" - api "io.apicurio:apicurio-registry-client:$apicurioVersion" + api 'io.apicurio:apicurio-registry-utils-converter' + api 'io.apicurio:apicurio-registry-client' - testImplementation "io.debezium:debezium-connector-mysql:$debeziumVersion" + testImplementation 'io.debezium:debezium-connector-mysql' testImplementation 'org.springframework:spring-jdbc' testImplementation 'com.zaxxer:HikariCP' } diff --git a/common/function-test-support/build.gradle b/common/function-test-support/build.gradle index ddd84b85..ad06abb3 100644 --- a/common/function-test-support/build.gradle +++ b/common/function-test-support/build.gradle @@ -2,7 +2,7 @@ dependencies { api 'org.junit.jupiter:junit-jupiter-api' api 'org.testcontainers:junit-jupiter' - optionalApi "org.apache.ftpserver:ftpserver-core:$ftpServerVersion" + optionalApi ftpserverCore optionalApi 'org.springframework.integration:spring-integration-sftp' optionalApi 'org.springframework:spring-websocket' } diff --git a/common/metadata-store-common/build.gradle b/common/metadata-store-common/build.gradle index 8a31b083..56329a5b 100644 --- a/common/metadata-store-common/build.gradle +++ b/common/metadata-store-common/build.gradle @@ -8,7 +8,7 @@ dependencies { optionalApi 'io.awspring.cloud:spring-cloud-aws-starter' optionalApi 'org.springframework.integration:spring-integration-zookeeper' optionalApi 'org.springframework.integration:spring-integration-hazelcast' - optionalApi "org.springframework.integration:spring-integration-aws:$springIntegrationAwsVersion" + optionalApi springIntegrationAws api 'software.amazon.awssdk:dynamodb' testImplementation 'org.hsqldb:hsqldb' diff --git a/common/twitter-common/build.gradle b/common/twitter-common/build.gradle index a3bea0aa..9f7d5424 100644 --- a/common/twitter-common/build.gradle +++ b/common/twitter-common/build.gradle @@ -1,4 +1,4 @@ dependencies { - api 'org.twitter4j:twitter4j-stream:4.0.7' + api twitter4jStream api 'org.springframework.integration:spring-integration-ip' } diff --git a/consumer/cassandra-consumer/build.gradle b/consumer/cassandra-consumer/build.gradle index ae50f32c..4458e1bd 100644 --- a/consumer/cassandra-consumer/build.gradle +++ b/consumer/cassandra-consumer/build.gradle @@ -2,5 +2,7 @@ dependencies { api 'org.springframework.integration:spring-integration-cassandra' api 'org.springframework.boot:spring-boot-starter-data-cassandra-reactive' - testImplementation 'org.testcontainers:cassandra' + testImplementation ('org.testcontainers:cassandra') { + exclude group: 'com.datastax.cassandra' + } } diff --git a/consumer/ftp-consumer/build.gradle b/consumer/ftp-consumer/build.gradle index 35fd8915..fbfc323d 100644 --- a/consumer/ftp-consumer/build.gradle +++ b/consumer/ftp-consumer/build.gradle @@ -2,5 +2,5 @@ dependencies { api project(':ftp-common') testImplementation project(':function-test-support') - testImplementation "org.apache.ftpserver:ftpserver-core:$ftpServerVersion" + testImplementation ftpserverCore } diff --git a/dependencies.gradle b/dependencies.gradle index 110ec20b..652e83f4 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -2,9 +2,14 @@ ext { springBootVersion = '3.2.1' springCloudVersion = '2023.0.0' springCloudAwsVersion = '3.0.4' - springIntegrationAwsVersion = '3.0.4' debeziumVersion = '2.4.1.Final' - ftpServerVersion = '1.2.0' - mockserverVersion = '5.13.2' + protobufVersion='3.25.1' + + springIntegrationAws = 'org.springframework.integration:spring-integration-aws:3.0.4' + ftpserverCore = 'org.apache.ftpserver:ftpserver-core:1.2.0' + mockserverNetty = 'org.mock-server:mockserver-netty:5.15.0' + twitter4jStream = 'org.twitter4j:twitter4j-stream:4.0.7' + greenmail = 'com.icegreen:greenmail:2.1.0-alpha-3' + protobufJava = "com.google.protobuf:protobuf-java:$protobufVersion" } \ No newline at end of file diff --git a/function/object-detection-function/build.gradle b/function/object-detection-function/build.gradle index f83a59c8..59ab3a93 100644 --- a/function/object-detection-function/build.gradle +++ b/function/object-detection-function/build.gradle @@ -1,14 +1,8 @@ -plugins { - id 'com.google.protobuf' version '0.9.4' -} - -ext { - protobufVersion='3.25.1' -} +apply plugin: 'com.google.protobuf' dependencies { api project(':tensorflow-common') - api "com.google.protobuf:protobuf-java:$protobufVersion" + api protobufJava } protobuf { diff --git a/function/twitter-function/build.gradle b/function/twitter-function/build.gradle index 92b49943..d1c92347 100644 --- a/function/twitter-function/build.gradle +++ b/function/twitter-function/build.gradle @@ -1,6 +1,5 @@ dependencies { api project(':twitter-common') - testImplementation "org.mock-server:mockserver-netty:$mockserverVersion" - testImplementation "org.mock-server:mockserver-client-java:$mockserverVersion" + testImplementation mockserverNetty } diff --git a/supplier/debezium-supplier/build.gradle b/supplier/debezium-supplier/build.gradle index f197e5b2..536cfe28 100644 --- a/supplier/debezium-supplier/build.gradle +++ b/supplier/debezium-supplier/build.gradle @@ -4,15 +4,15 @@ repositories { dependencies { api project(':debezium-autoconfigure') - api "io.debezium:debezium-connector-mysql:$debeziumVersion" - api "io.debezium:debezium-connector-mongodb:$debeziumVersion" - api "io.debezium:debezium-connector-postgres:$debeziumVersion" - api "io.debezium:debezium-connector-oracle:$debeziumVersion" - api "io.debezium:debezium-connector-sqlserver:$debeziumVersion" - api "io.debezium:debezium-connector-db2:$debeziumVersion" - api "io.debezium:debezium-connector-vitess:$debeziumVersion" - api "io.debezium:debezium-connector-spanner:$debeziumVersion" - api "io.debezium:debezium-connector-spanner:$debeziumVersion" + api 'io.debezium:debezium-connector-mysql' + api 'io.debezium:debezium-connector-mongodb' + api 'io.debezium:debezium-connector-postgres' + api 'io.debezium:debezium-connector-oracle' + api 'io.debezium:debezium-connector-sqlserver' + api 'io.debezium:debezium-connector-db2' + api 'io.debezium:debezium-connector-vitess' + api 'io.debezium:debezium-connector-spanner' + api 'io.debezium:debezium-connector-spanner' testImplementation 'com.zaxxer:HikariCP' testImplementation 'org.springframework:spring-jdbc' diff --git a/supplier/ftp-supplier/build.gradle b/supplier/ftp-supplier/build.gradle index 3d6f082f..d280a87e 100644 --- a/supplier/ftp-supplier/build.gradle +++ b/supplier/ftp-supplier/build.gradle @@ -4,5 +4,5 @@ dependencies { api project(':metadata-store-common') testImplementation project(':function-test-support') - testImplementation "org.apache.ftpserver:ftpserver-core:$ftpServerVersion" + testImplementation ftpserverCore } diff --git a/supplier/mail-supplier/build.gradle b/supplier/mail-supplier/build.gradle index 3086c68b..7982ab00 100644 --- a/supplier/mail-supplier/build.gradle +++ b/supplier/mail-supplier/build.gradle @@ -1,7 +1,6 @@ dependencies { api 'org.springframework.integration:spring-integration-mail' api 'org.springframework.boot:spring-boot-starter-mail' - api 'org.eclipse.angus:jakarta.mail:2.0.2' - testImplementation 'com.icegreen:greenmail:2.1.0-alpha-3' + testImplementation greenmail } diff --git a/supplier/time-supplier/build.gradle b/supplier/time-supplier/build.gradle deleted file mode 100644 index b80a5be0..00000000 --- a/supplier/time-supplier/build.gradle +++ /dev/null @@ -1,3 +0,0 @@ -dependencies { - api 'org.apache.commons:commons-lang3' -} diff --git a/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java b/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java index b58b8f1b..08de4b24 100644 --- a/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java +++ b/supplier/time-supplier/src/main/java/org/springframework/cloud/fn/supplier/time/TimeSupplierConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2020 the original author or authors. + * Copyright 2020-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,26 +16,26 @@ package org.springframework.cloud.fn.supplier.time; -import java.util.Date; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.function.Supplier; -import org.apache.commons.lang3.time.FastDateFormat; - +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * @author Soby Chacko + * @author Artem Bilan */ -@Configuration +@AutoConfiguration @EnableConfigurationProperties(TimeSupplierProperties.class) public class TimeSupplierConfiguration { @Bean public Supplier timeSupplier(TimeSupplierProperties timeSupplierProperties) { - FastDateFormat fastDateFormat = FastDateFormat.getInstance(timeSupplierProperties.getDateFormat()); - return () -> fastDateFormat.format(new Date()); + DateTimeFormatter fastDateFormat = DateTimeFormatter.ofPattern(timeSupplierProperties.getDateFormat()); + return () -> fastDateFormat.format(LocalDateTime.now()); } } diff --git a/supplier/time-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/supplier/time-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000..137c1e53 --- /dev/null +++ b/supplier/time-supplier/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.springframework.cloud.fn.supplier.time.TimeSupplierConfiguration diff --git a/supplier/twitter-supplier/build.gradle b/supplier/twitter-supplier/build.gradle index b26aa6dd..71d4b647 100644 --- a/supplier/twitter-supplier/build.gradle +++ b/supplier/twitter-supplier/build.gradle @@ -3,6 +3,5 @@ dependencies { api 'org.springframework.integration:spring-integration-jms' api 'jakarta.jms:jakarta.jms-api' - testImplementation "org.mock-server:mockserver-netty:$mockserverVersion" - testImplementation "org.mock-server:mockserver-client-java:$mockserverVersion" + testImplementation mockserverNetty }