diff --git a/common/spring-debezium-autoconfigure/build.gradle b/common/spring-debezium-autoconfigure/build.gradle index efe26a5d..7e632726 100644 --- a/common/spring-debezium-autoconfigure/build.gradle +++ b/common/spring-debezium-autoconfigure/build.gradle @@ -1,11 +1,5 @@ -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' - api 'io.apicurio:apicurio-registry-client' testImplementation 'io.debezium:debezium-connector-mysql' testImplementation 'org.springframework:spring-jdbc' diff --git a/common/spring-metadata-store-common/build.gradle b/common/spring-metadata-store-common/build.gradle index aa2a556f..a168b07d 100644 --- a/common/spring-metadata-store-common/build.gradle +++ b/common/spring-metadata-store-common/build.gradle @@ -1,3 +1,8 @@ +ext{ + // Starting with Hazelcast 5.5 CP subsystem is a commercial feature + set('hazelcast.version', '5.4.0') +} + dependencies { optionalApi 'org.springframework.integration:spring-integration-redis' optionalApi 'org.springframework.boot:spring-boot-starter-data-redis' @@ -12,5 +17,5 @@ dependencies { optionalApi 'software.amazon.awssdk:dynamodb' testImplementation 'org.hsqldb:hsqldb' - testImplementation 'org.apache.curator:curator-test:5.5.0' + testImplementation 'org.apache.curator:curator-test:5.7.1' } diff --git a/consumer/spring-cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraTestContainer.java b/consumer/spring-cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraTestContainer.java index ca4841d3..962d5136 100644 --- a/consumer/spring-cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraTestContainer.java +++ b/consumer/spring-cassandra-consumer/src/test/java/org/springframework/cloud/fn/consumer/cassandra/CassandraTestContainer.java @@ -17,7 +17,7 @@ package org.springframework.cloud.fn.consumer.cassandra; import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.junit.jupiter.Testcontainers; /** @@ -33,7 +33,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; @Testcontainers(disabledWithoutDocker = true) public interface CassandraTestContainer { - CassandraContainer CASSANDRA_CONTAINER = new CassandraContainer<>("cassandra:4.1"); + CassandraContainer CASSANDRA_CONTAINER = new CassandraContainer("cassandra"); @BeforeAll static void startContainer() { diff --git a/consumer/spring-s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java b/consumer/spring-s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java index 504c1f3f..0f82971d 100644 --- a/consumer/spring-s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java +++ b/consumer/spring-s3-consumer/src/test/java/org/springframework/cloud/fn/consumer/s3/AbstractAwsS3ConsumerMockTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2023 the original author or authors. + * Copyright 2016-2024 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. @@ -36,11 +36,11 @@ import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Bean; import org.springframework.http.MediaType; import org.springframework.messaging.Message; import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willReturn; @@ -65,7 +65,7 @@ public abstract class AbstractAwsS3ConsumerMockTests { @TempDir protected static Path temporaryRemoteFolder; - @MockBean + @MockitoBean private S3AsyncClient amazonS3; @Autowired diff --git a/consumer/spring-zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java b/consumer/spring-zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java index 248c5fb9..4eeedc11 100644 --- a/consumer/spring-zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java +++ b/consumer/spring-zeromq-consumer/src/main/java/org/springframework/cloud/fn/consumer/zeromq/ZeroMqConsumerConfiguration.java @@ -36,7 +36,7 @@ import org.springframework.messaging.Message; * The auto-configuration for ZeroMQ consumer. * * @author Daniel Frey - * @since 3.1.0 + * @author Artem Bilan */ @AutoConfiguration @EnableConfigurationProperties(ZeroMqConsumerProperties.class) @@ -72,7 +72,9 @@ public class ZeroMqConsumerConfiguration { @Bean public Function>, Mono> zeromqConsumer(ZeroMqMessageHandler zeromqMessageHandler) { - return (input) -> input.flatMap(zeromqMessageHandler::handleMessage).ignoreElements(); + return (input) -> input.doOnSubscribe((sub) -> zeromqMessageHandler.start()) + .flatMap(zeromqMessageHandler::handleMessage) + .ignoreElements(); } } diff --git a/dependencies.gradle b/dependencies.gradle index 55bfcc9c..3c7a0d9a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,9 +1,9 @@ ext { - springBootVersion = '3.2.12' - springCloudVersion = '2023.0.4' - springCloudAwsVersion = '3.0.5' + springBootVersion = '3.4.1' + springCloudVersion = '2024.0.0' + springCloudAwsVersion = '3.2.1' - debeziumVersion = '2.6.2.Final' + debeziumVersion = '3.0.5.Final' djlVersion = '0.26.0' springIntegrationAws = 'org.springframework.integration:spring-integration-aws:3.0.8' diff --git a/function/spring-http-request-function/build.gradle b/function/spring-http-request-function/build.gradle index 36965082..0d18958d 100644 --- a/function/spring-http-request-function/build.gradle +++ b/function/spring-http-request-function/build.gradle @@ -1,5 +1,5 @@ dependencies { api 'org.springframework.boot:spring-boot-starter-webflux' - testImplementation 'com.squareup.okhttp3:mockwebserver' + testImplementation 'com.squareup.okhttp3:mockwebserver:4.12.0' } diff --git a/gradle.properties b/gradle.properties index 3b6a57a0..fa1f32b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=5.0.3-SNAPSHOT +version=5.1.0-SNAPSHOT org.gradle.jvmargs=-Xmx1536M -Dfile.encoding=UTF-8 org.gradle.caching=true org.gradle.parallel=true diff --git a/samples/time-spel-log/build.gradle b/samples/time-spel-log/build.gradle index 7ee37216..cf5cd2da 100644 --- a/samples/time-spel-log/build.gradle +++ b/samples/time-spel-log/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.2.12' + id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' } @@ -12,13 +12,14 @@ java { } repositories { + mavenLocal() mavenCentral() maven { url 'https://repo.spring.io/snapshot' } } ext { - springCloudVersion = '2023.0.4' - springFunctionsCatalogVersion = '5.0.3-SNAPSHOT' + springCloudVersion = '2024.0.0' + springFunctionsCatalogVersion = '5.1.0-SNAPSHOT' } dependencyManagement { diff --git a/samples/zip-split-rabbit-binder/build.gradle b/samples/zip-split-rabbit-binder/build.gradle index 67a931ad..89f8cdcf 100644 --- a/samples/zip-split-rabbit-binder/build.gradle +++ b/samples/zip-split-rabbit-binder/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.2.12' + id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' } @@ -14,13 +14,14 @@ java { } repositories { + mavenLocal() mavenCentral() maven { url 'https://repo.spring.io/snapshot' } } ext { - springCloudVersion = '2023.0.4' - springFunctionsCatalogVersion = '5.0.3-SNAPSHOT' + springCloudVersion = '2024.0.0' + springFunctionsCatalogVersion = '5.1.0-SNAPSHOT' } dependencyManagement { diff --git a/supplier/spring-debezium-supplier/build.gradle b/supplier/spring-debezium-supplier/build.gradle index eef2f5eb..f443a2d7 100644 --- a/supplier/spring-debezium-supplier/build.gradle +++ b/supplier/spring-debezium-supplier/build.gradle @@ -1,16 +1,6 @@ -repositories { - maven { url 'https://maven.scijava.org/content/repositories/public/' } -} - dependencies { api project(':spring-debezium-autoconfigure') - // TODO until Debezium upgrades them to non-vulnerable versions - api 'org.apache.commons:commons-compress:1.26.2' - api 'org.apache.avro:avro:1.11.4' - api 'org.json:json:20240303' - - api 'org.springframework.integration:spring-integration-debezium' api 'io.debezium:debezium-connector-mysql' api 'io.debezium:debezium-connector-mongodb' api 'io.debezium:debezium-connector-postgres' diff --git a/supplier/spring-twitter-supplier/build.gradle b/supplier/spring-twitter-supplier/build.gradle index 56491d71..cf11976d 100644 --- a/supplier/spring-twitter-supplier/build.gradle +++ b/supplier/spring-twitter-supplier/build.gradle @@ -1,7 +1,5 @@ dependencies { api project(':spring-twitter-common') - api 'org.springframework.integration:spring-integration-jms' - api 'jakarta.jms:jakarta.jms-api' testImplementation mockserverNetty }