GH-268: Update Boot 2.6.7 / Spring Cloud 2021.0.2 (#269)

Also updates other dependencies accordingly. 

Fixes #268
This commit is contained in:
Chris Bono
2022-05-20 13:22:42 -05:00
committed by GitHub
parent db6403f4e3
commit b10976aa4f
13 changed files with 79 additions and 49 deletions

View File

@@ -36,6 +36,43 @@ $$directory$$:: $$The directory to poll for new files.$$ *($$File$$, default: `$
$$filename-pattern$$:: $$A simple ant pattern to match files.$$ *($$String$$, default: `$$<none>$$`)*
$$filename-regex$$:: $$A regex pattern to match files.$$ *($$Pattern$$, default: `$$<none>$$`)*
$$prevent-duplicates$$:: $$Set to true to include an AcceptOnceFileListFilter which prevents duplicates.$$ *($$Boolean$$, default: `$$true$$`)*
=== metadata.store.dynamo-db
$$create-delay$$:: $$Delay between create table retries.$$ *($$Integer$$, default: `$$1$$`)*
$$create-retries$$:: $$Retry number for create table request.$$ *($$Integer$$, default: `$$25$$`)*
$$read-capacity$$:: $$Read capacity on the table.$$ *($$Long$$, default: `$$1$$`)*
$$table$$:: $$Table name for metadata.$$ *($$String$$, default: `$$<none>$$`)*
$$time-to-live$$:: $$TTL for table entries.$$ *($$Integer$$, default: `$$<none>$$`)*
$$write-capacity$$:: $$Write capacity on the table.$$ *($$Long$$, default: `$$1$$`)*
=== metadata.store.gemfire
$$region$$:: $$Gemfire region name for metadata.$$ *($$String$$, default: `$$<none>$$`)*
=== metadata.store.jdbc
$$region$$:: $$Unique grouping identifier for messages persisted with this store.$$ *($$String$$, default: `$$DEFAULT$$`)*
$$table-prefix$$:: $$Prefix for the custom table name.$$ *($$String$$, default: `$$<none>$$`)*
=== metadata.store.mongo-db
$$collection$$:: $$MongoDB collection name for metadata.$$ *($$String$$, default: `$$metadataStore$$`)*
=== metadata.store.redis
$$key$$:: $$Redis key for metadata.$$ *($$String$$, default: `$$<none>$$`)*
=== metadata.store
$$type$$:: $$Indicates the type of metadata store to configure (default is 'memory'). You must include the corresponding Spring Integration dependency to use a persistent store.$$ *($$StoreType$$, default: `$$<none>$$`, possible values: `mongodb`,`gemfire`,`redis`,`dynamodb`,`jdbc`,`zookeeper`,`hazelcast`,`memory`)*
=== metadata.store.zookeeper
$$connect-string$$:: $$Zookeeper connect string in form HOST:PORT.$$ *($$String$$, default: `$$127.0.0.1:2181$$`)*
$$encoding$$:: $$Encoding to use when storing data in Zookeeper.$$ *($$Charset$$, default: `$$UTF-8$$`)*
$$retry-interval$$:: $$Retry interval for Zookeeper operations in milliseconds.$$ *($$Integer$$, default: `$$1000$$`)*
$$root$$:: $$Root node - store entries are children of this node.$$ *($$String$$, default: `$$/SpringIntegration-MetadataStore$$`)*
//end::configuration-properties[]
//end::ref-doc[]

View File

@@ -12,6 +12,7 @@
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>stream-applications-core</artifactId>
<version>3.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
<dependencies>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2020-2021 the original author or authors.
* Copyright 2020-2022 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.
@@ -20,24 +20,37 @@ import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.boot.WebApplicationType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.fn.supplier.mail.MailSupplierConfiguration;
import org.springframework.cloud.stream.binder.test.OutputDestination;
import org.springframework.cloud.stream.binder.test.TestChannelBinderConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Import;
import org.springframework.integration.test.mail.TestMailServer;
import org.springframework.messaging.Message;
import org.springframework.test.annotation.DirtiesContext;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Lightweight integration test to verify using {@link MailSupplierConfiguration} in a {@code @SpringBootApplication}.
*
* @author Soby Chacko
* @author Chris Bono
*/
public class MailSourceTests {
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = {
"spring.cloud.function.definition=mailSupplier",
"mail.supplier.url=imap://user:pw@localhost:${test.mail.server.port}/INBOX",
"mail.supplier.mark-as-read=true",
"mail.supplier.delete=false",
"mail.supplier.user-flag=testSIUserFlag",
"mail.supplier.java-mail-properties=mail.imap.socketFactory.fallback=true\\n mail.store.protocol=imap\\n mail.debug=true"
})
@DirtiesContext
class MailSourceTests {
private static TestMailServer.MailServer MAIL_SERVER;
@@ -64,27 +77,14 @@ public class MailSourceTests {
}
@Test
public void testMailSource() throws Exception {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(
TestChannelBinderConfiguration
.getCompleteConfiguration(MailSourceTestApplication.class))
.web(WebApplicationType.NONE)
.run("--spring.cloud.function.definition=mailSupplier",
"--mail.supplier.url=imap://user:pw@localhost:${test.mail.server.port}/INBOX",
"--mail.supplier.mark-as-read=true",
"--mail.supplier.delete=false",
"--mail.supplier.user-flag=testSIUserFlag",
"--mail.supplier.java-mail-properties=mail.imap.socketFactory.fallback=true\\n mail.store.protocol=imap\\n mail.debug=true")) {
OutputDestination target = context.getBean(OutputDestination.class);
Message<byte[]> sourceMessage = target.receive(10000, "mailSupplier-out-0");
final String actual = new String(sourceMessage.getPayload());
assertThat(actual.endsWith("\r\n\r\nfoo\r\n\r\n"));
}
void mailMessagesAreSuppliedToOutputDestination(@Autowired OutputDestination target) {
Message<byte[]> sourceMessage = target.receive(10000, "mailSupplier-out-0");
final String actual = new String(sourceMessage.getPayload());
assertThat(actual.endsWith("\r\n\r\nfoo\r\n\r\n")).isTrue();
}
@SpringBootApplication
@Import(MailSupplierConfiguration.class)
@Import({TestChannelBinderConfiguration.class, MailSupplierConfiguration.class})
public static class MailSourceTestApplication {
}
}

View File

@@ -18,20 +18,19 @@
<properties>
<revision>3.2.1-SNAPSHOT</revision>
<stream-apps-core.version>${revision}</stream-apps-core.version>
<java-functions.version>1.2.0</java-functions.version>
<java-functions.version>1.2.1-SNAPSHOT</java-functions.version>
<apps.base-image>springcloud/baseimage:1.0.1</apps.base-image>
<mockserver.version>5.10</mockserver.version>
<spring-cloud-stream-dependencies.version>3.2.2</spring-cloud-stream-dependencies.version>
<spring-cloud-stream.version>3.2.2</spring-cloud-stream.version>
<mockserver.version>5.13.2</mockserver.version>
<spring-cloud-stream-dependencies.version>3.2.3</spring-cloud-stream-dependencies.version>
<spring-cloud-stream.version>3.2.3</spring-cloud-stream.version>
<spring-cloud-dataflow-apps-generator-plugin.version>1.0.7-SNAPSHOT</spring-cloud-dataflow-apps-generator-plugin.version>
<spring-cloud-dataflow-apps-docs-plugin.version>1.0.7-SNAPSHOT</spring-cloud-dataflow-apps-docs-plugin.version>
<spring-cloud-dataflow-apps-metadata-plugin.version>1.0.7-SNAPSHOT</spring-cloud-dataflow-apps-metadata-plugin.version>
<java-cfenv-boot.version>2.1.2.RELEASE</java-cfenv-boot.version>
<prometheus-rsocket.version>1.3.0</prometheus-rsocket.version>
<!-- Boot 2.4.x needs wavefront-spring-boot version 2.1.0-RC1+ -->
<wavefront-spring-boot.version>2.2.0</wavefront-spring-boot.version>
<spring-cloud.version>2021.0.1</spring-cloud.version>
<spring-cloud-starters.version>3.1.1</spring-cloud-starters.version>
<java-cfenv-boot.version>2.4.0</java-cfenv-boot.version>
<prometheus-rsocket.version>1.4.0</prometheus-rsocket.version>
<wavefront-spring-boot.version>2.2.2</wavefront-spring-boot.version>
<spring-cloud.version>2021.0.2</spring-cloud.version>
<spring-cloud-starters.version>3.1.2</spring-cloud-starters.version>
</properties>
<modules>

View File

@@ -22,7 +22,6 @@
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>stream-applications-core</artifactId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -6,7 +6,6 @@
<artifactId>stream-applications-core</artifactId>
<groupId>org.springframework.cloud.stream.app</groupId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<properties>
<jmockit.version>1.49</jmockit.version>

View File

@@ -5,7 +5,6 @@
<artifactId>stream-applications-core</artifactId>
<groupId>org.springframework.cloud.stream.app</groupId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -6,7 +6,6 @@
<artifactId>stream-applications-core</artifactId>
<groupId>org.springframework.cloud.stream.app</groupId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -5,7 +5,6 @@
<artifactId>stream-applications-core</artifactId>
<groupId>org.springframework.cloud.stream.app</groupId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -934,7 +934,7 @@ public final class EmbeddedEngine implements DebeziumEngine<SourceRecord> {
public synchronized void markProcessed(SourceRecord record) throws InterruptedException {
task.commitRecord(record);
recordsSinceLastCommit += 1;
offsetWriter.offset(record.sourcePartition(), record.sourceOffset());
offsetWriter.offset((Map<String, Object>) record.sourcePartition(), (Map<String, Object>) record.sourceOffset());
}
@Override

View File

@@ -8,7 +8,6 @@
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>java-functions-parent</artifactId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<artifactId>function-dependencies</artifactId>

View File

@@ -8,14 +8,13 @@
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>java-functions-parent</artifactId>
<version>${revision}</version>
<relativePath>..</relativePath>
</parent>
<artifactId>spring-functions-parent</artifactId>
<packaging>pom</packaging>
<properties>
<spring-cloud-function.version>3.2.2</spring-cloud-function.version>
<spring-cloud-function.version>3.2.3</spring-cloud-function.version>
<spring-cloud-fn.version>${project.version}</spring-cloud-fn.version>
</properties>

View File

@@ -40,12 +40,12 @@
<nohttp-checkstyle.version>0.0.2.RELEASE</nohttp-checkstyle.version>
<disable.nohttp.checks>true</disable.nohttp.checks>
<spring-javaformat-checkstyle.version>0.0.7</spring-javaformat-checkstyle.version>
<spring-boot.version>2.6.3</spring-boot.version>
<spring-kafka.version>2.8.2</spring-kafka.version>
<spring-rabbit.version>2.4.2</spring-rabbit.version>
<spring-cloud-function.version>3.2.2</spring-cloud-function.version>
<spring-cloud-starters.version>3.1.1</spring-cloud-starters.version>
<spring-geode.version>1.6.4</spring-geode.version>
<spring-boot.version>2.6.7</spring-boot.version>
<spring-kafka.version>2.8.6</spring-kafka.version>
<spring-rabbit.version>2.4.5</spring-rabbit.version>
<spring-cloud-function.version>3.2.3</spring-cloud-function.version>
<spring-cloud-starters.version>3.1.2</spring-cloud-starters.version>
<spring-geode.version>1.6.7</spring-geode.version>
<test-containers.version>1.16.3</test-containers.version>
<maven-flatten-plugin.version>1.2.5</maven-flatten-plugin.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>