From 3df35b8d503e58a36e9163e4314f4850907876dd Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 15 Jul 2020 10:44:00 +0200 Subject: [PATCH] WIP --- .../binder/test/FunctionBindingTestUtils.java | 6 +- .../test/TestChannelBinderConfiguration.java | 2 +- spring-cloud-stream-integration-tests/pom.xml | 16 ++++- .../BinderFactoryAutoConfigurationTests.java | 5 +- .../HealthIndicatorsConfigurationTests.java | 9 +-- .../stream/binder/stub1/StubBinder1.java | 65 +++++++++++++++++++ .../stub1/StubBinder1Configuration.java | 61 +++++++++++++++++ .../stream/binder/stub2/StubBinder2.java | 50 ++++++++++++++ .../stub2/StubBinder2ConfigurationA.java | 34 ++++++++++ .../stub2/StubBinder2ConfigurationB.java | 33 ++++++++++ .../binder/stub2/StubBinder2Dependency.java | 24 +++++++ .../stream/funciton/edgcases}/GH1801Test.java | 2 +- .../test/resources/META-INF/spring.binders | 2 + .../resources/binder1/META-INF/spring.binders | 1 + .../resources/binder2/META-INF/spring.binders | 3 + .../binder/arbitrary-binding-test.properties | 4 ++ .../binder/cloud-function-test.properties | 2 + ...ustom-partitioned-producer-test.properties | 2 + .../partitioned-consumer-test.properties | 5 ++ .../partitioned-producer-test.properties | 4 ++ .../binder/processor-binding-test.properties | 2 + .../binder/sink-binding-test.properties | 1 + .../binder/source-binding-test.properties | 1 + .../TestSupportBinderAutoConfiguration.java | 2 +- 24 files changed, 323 insertions(+), 13 deletions(-) rename {spring-cloud-stream => spring-cloud-stream-integration-tests}/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java (98%) rename {spring-cloud-stream => spring-cloud-stream-integration-tests}/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java (92%) create mode 100644 spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1.java create mode 100644 spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1Configuration.java create mode 100644 spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2.java create mode 100644 spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationA.java create mode 100644 spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationB.java create mode 100644 spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2Dependency.java rename {spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/edgecases => spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/funciton/edgcases}/GH1801Test.java (96%) create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/META-INF/spring.binders create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/binder1/META-INF/spring.binders create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/binder2/META-INF/spring.binders create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/arbitrary-binding-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/cloud-function-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/custom-partitioned-producer-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-consumer-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-producer-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/processor-binding-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/sink-binding-test.properties create mode 100644 spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/source-binding-test.properties diff --git a/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java index b050c1c3f..1f9374013 100644 --- a/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java +++ b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java @@ -42,7 +42,11 @@ import org.springframework.messaging.MessageChannel; * @since 3.0.2 * */ -public class FunctionBindingTestUtils { +public final class FunctionBindingTestUtils { + + private FunctionBindingTestUtils() { + throw new IllegalStateException("You should not instantiate utility classes"); + } @SuppressWarnings("rawtypes") public static void bind(ConfigurableApplicationContext applicationContext, Object function) { diff --git a/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java index b4feed23f..79cf2429d 100644 --- a/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java +++ b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java @@ -51,7 +51,7 @@ import org.springframework.integration.config.EnableIntegration; @EnableIntegration public class TestChannelBinderConfiguration { - public static final String NAME = "integration"; + // public static final String NAME = "integration"; /** * Utility operation to return an array of configuration classes defined in diff --git a/spring-cloud-stream-integration-tests/pom.xml b/spring-cloud-stream-integration-tests/pom.xml index bd6bf59b9..969c68720 100644 --- a/spring-cloud-stream-integration-tests/pom.xml +++ b/spring-cloud-stream-integration-tests/pom.xml @@ -16,6 +16,11 @@ + + org.springframework.boot + spring-boot-starter-actuator + true + org.springframework.cloud spring-cloud-stream @@ -41,9 +46,14 @@ test - com.fasterxml.jackson.core - jackson-databind - test + com.fasterxml.jackson.core + jackson-databind + test + + + org.springframework.integration + spring-integration-http + test diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java similarity index 98% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java index 3e9f85e64..0a9303f9f 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/BinderFactoryAutoConfigurationTests.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.net.URL; import java.net.URLClassLoader; +import org.assertj.core.api.Assertions; import org.junit.Test; import org.springframework.boot.WebApplicationType; @@ -203,7 +204,7 @@ public class BinderFactoryAutoConfigurationTests { Binder binder1 = binderFactory.getBinder("binder1", MessageChannel.class); assertThat(binder1).hasFieldOrPropertyWithValue("name", "foo"); - assertThat(((StubBinder1) binder1).getOuterContext()).isNull(); + Assertions.assertThat(((StubBinder1) binder1).getOuterContext()).isNull(); } @SuppressWarnings("rawtypes") @@ -260,7 +261,7 @@ public class BinderFactoryAutoConfigurationTests { Binder defaultBinder = binderFactory.getBinder(null, MessageChannel.class); assertThat(defaultBinder).isInstanceOf(StubBinder1.class); - assertThat(((StubBinder1) defaultBinder).getName()).isNullOrEmpty(); + Assertions.assertThat(((StubBinder1) defaultBinder).getName()).isNullOrEmpty(); Binder binder1 = binderFactory.getBinder("binder1", MessageChannel.class); assertThat(binder1).isInstanceOf(StubBinder1.class); diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java similarity index 92% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java index 6b81ae83a..57d3517e3 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/HealthIndicatorsConfigurationTests.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.net.URL; import java.net.URLClassLoader; +import org.assertj.core.api.Assertions; import org.junit.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; @@ -86,7 +87,7 @@ public class HealthIndicatorsConfigurationTests { assertThat(binder2).isInstanceOf(StubBinder2.class); CompositeHealthContributor bindersHealthContributor = context .getBean("bindersHealthContributor", CompositeHealthContributor.class); - assertThat(bindersHealthContributor).isNotNull(); + Assertions.assertThat(bindersHealthContributor).isNotNull(); assertThat( context.getBean("test1HealthIndicator1", HealthContributor.class)) .isNotNull(); @@ -94,10 +95,10 @@ public class HealthIndicatorsConfigurationTests { context.getBean("test2HealthIndicator2", HealthContributor.class)) .isNotNull(); - assertThat(bindersHealthContributor.stream().map(NamedContributor::getName)).contains("binder1", "binder2"); - assertThat(bindersHealthContributor.getContributor("binder1")).extracting("health").extracting("status") + Assertions.assertThat(bindersHealthContributor.stream().map(NamedContributor::getName)).contains("binder1", "binder2"); + Assertions.assertThat(bindersHealthContributor.getContributor("binder1")).extracting("health").extracting("status") .isEqualTo(Status.UP); - assertThat(bindersHealthContributor.getContributor("binder2")).extracting("health").extracting("status") + Assertions.assertThat(bindersHealthContributor.getContributor("binder2")).extracting("health").extracting("status") .isEqualTo(Status.UNKNOWN); context.close(); diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1.java new file mode 100644 index 000000000..ed8dc9cae --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1.java @@ -0,0 +1,65 @@ +/* + * Copyright 2015-2016 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.stub1; + +import org.springframework.cloud.stream.binder.Binder; +import org.springframework.cloud.stream.binder.Binding; +import org.springframework.cloud.stream.binder.ConsumerProperties; +import org.springframework.cloud.stream.binder.ProducerProperties; +import org.springframework.context.ConfigurableApplicationContext; + +/** + * @author Marius Bogoevici + * @author Mark Fisher + * @author Soby Chacko + */ +public class StubBinder1 + implements Binder { + + private String name; + + private ConfigurableApplicationContext outerContext; + + public ConfigurableApplicationContext getOuterContext() { + return this.outerContext; + } + + public void setOuterContext(ConfigurableApplicationContext outerContext) { + this.outerContext = outerContext; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public Binding bindConsumer(String name, String group, + Object inboundBindTarget, ConsumerProperties properties) { + return null; + } + + @Override + public Binding bindProducer(String name, Object outboundBindTarget, + ProducerProperties properties) { + return null; + } + +} diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1Configuration.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1Configuration.java new file mode 100644 index 000000000..bf1c16e24 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub1/StubBinder1Configuration.java @@ -0,0 +1,61 @@ +/* + * Copyright 2015-2016 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.stub1; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.boot.actuate.health.PingHealthIndicator; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.cloud.stream.binder.Binder; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Marius Bogoevici + * @author Soby Chacko + */ +@Configuration +@EnableConfigurationProperties +public class StubBinder1Configuration { + + @Bean + @ConfigurationProperties("binder1") + public Binder binder(BeanFactory beanFactory) { + StubBinder1 stubBinder1 = new StubBinder1(); + ConfigurableApplicationContext outerContext = null; + try { + outerContext = (ConfigurableApplicationContext) beanFactory + .getBean("outerContext"); + } + catch (BeansException be) { + // Pass through + } + if (outerContext != null) { + stubBinder1.setOuterContext(outerContext); + } + return stubBinder1; + } + + @Bean + public HealthIndicator binderHealthIndicator() { + return new PingHealthIndicator(); + } + +} diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2.java new file mode 100644 index 000000000..a2433505a --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2.java @@ -0,0 +1,50 @@ +/* + * Copyright 2015-2016 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.stub2; + +import org.springframework.cloud.stream.binder.Binder; +import org.springframework.cloud.stream.binder.Binding; +import org.springframework.cloud.stream.binder.ConsumerProperties; +import org.springframework.cloud.stream.binder.ProducerProperties; + +/** + * @author Marius Bogoevici + * @author Mark Fisher + */ +public class StubBinder2 + implements Binder { + + @SuppressWarnings("unused") + private final StubBinder2Dependency stubBinder2Dependency; + + public StubBinder2(StubBinder2Dependency stubBinder2Dependency) { + this.stubBinder2Dependency = stubBinder2Dependency; + } + + @Override + public Binding bindConsumer(String name, String group, + Object inboundBindTarget, ConsumerProperties properties) { + return null; + } + + @Override + public Binding bindProducer(String name, Object outboundBindTarget, + ProducerProperties properties) { + return null; + } + +} diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationA.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationA.java new file mode 100644 index 000000000..97e0e9123 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationA.java @@ -0,0 +1,34 @@ +/* + * Copyright 2015-2016 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.stub2; + +import org.springframework.cloud.stream.binder.Binder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Marius Bogoevici + */ +@Configuration +public class StubBinder2ConfigurationA { + + @Bean + public Binder binder(StubBinder2Dependency dependency) { + return new StubBinder2(dependency); + } + +} diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationB.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationB.java new file mode 100644 index 000000000..cf227c5e0 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2ConfigurationB.java @@ -0,0 +1,33 @@ +/* + * Copyright 2015-2019 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.stub2; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Marius Bogoevici + */ +@Configuration +public class StubBinder2ConfigurationB { + + @Bean + public StubBinder2Dependency dependency() { + return new StubBinder2Dependency(); + } + +} diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2Dependency.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2Dependency.java new file mode 100644 index 000000000..3bb1d4dfe --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/stub2/StubBinder2Dependency.java @@ -0,0 +1,24 @@ +/* + * Copyright 2015-2019 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.stream.binder.stub2; + +/** + * @author Marius Bogoevici + */ +public class StubBinder2Dependency { + +} diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/edgecases/GH1801Test.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/funciton/edgcases/GH1801Test.java similarity index 96% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/edgecases/GH1801Test.java rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/funciton/edgcases/GH1801Test.java index 4ec03c009..7e18b8dac 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/edgecases/GH1801Test.java +++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/funciton/edgcases/GH1801Test.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.stream.function.edgecases; +package org.springframework.cloud.stream.funciton.edgcases; import java.util.function.Consumer; diff --git a/spring-cloud-stream-integration-tests/src/test/resources/META-INF/spring.binders b/spring-cloud-stream-integration-tests/src/test/resources/META-INF/spring.binders new file mode 100644 index 000000000..b6e4a6729 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/META-INF/spring.binders @@ -0,0 +1,2 @@ +mock:\ +org.springframework.cloud.stream.utils.MockBinderConfiguration diff --git a/spring-cloud-stream-integration-tests/src/test/resources/binder1/META-INF/spring.binders b/spring-cloud-stream-integration-tests/src/test/resources/binder1/META-INF/spring.binders new file mode 100644 index 000000000..1d4a3007d --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/binder1/META-INF/spring.binders @@ -0,0 +1 @@ +binder1=org.springframework.cloud.stream.binder.stub1.StubBinder1Configuration diff --git a/spring-cloud-stream-integration-tests/src/test/resources/binder2/META-INF/spring.binders b/spring-cloud-stream-integration-tests/src/test/resources/binder2/META-INF/spring.binders new file mode 100644 index 000000000..26dc2bc5e --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/binder2/META-INF/spring.binders @@ -0,0 +1,3 @@ +binder2:\ +org.springframework.cloud.stream.binder.stub2.StubBinder2ConfigurationA,\ +org.springframework.cloud.stream.binder.stub2.StubBinder2ConfigurationB diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/arbitrary-binding-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/arbitrary-binding-test.properties new file mode 100644 index 000000000..3f7db81c5 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/arbitrary-binding-test.properties @@ -0,0 +1,4 @@ +spring.cloud.stream.bindings.foo.destination=someQueue.0 +spring.cloud.stream.bindings.bar.destination=someQueue.1 +spring.cloud.stream.bindings.baz.destination=someQueue.2 +spring.cloud.stream.bindings.qux.destination=someQueue.3 diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/cloud-function-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/cloud-function-test.properties new file mode 100644 index 000000000..9c3e4cf55 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/cloud-function-test.properties @@ -0,0 +1,2 @@ +spring.cloud.stream.function.producerProperties.useNativeEncoding:true +spring.cloud.stream.function.consumerProperties.maxAttempts:5 diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/custom-partitioned-producer-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/custom-partitioned-producer-test.properties new file mode 100644 index 000000000..a96bf5076 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/custom-partitioned-producer-test.properties @@ -0,0 +1,2 @@ +spring.cloud.stream.bindings.output.destination=partOut +spring.cloud.stream.bindings.output.producer.partitionCount=3 diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-consumer-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-consumer-test.properties new file mode 100644 index 000000000..3c200ee1a --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-consumer-test.properties @@ -0,0 +1,5 @@ +spring.cloud.stream.bindings.input.destination=partIn +spring.cloud.stream.bindings.input.consumer.partitioned=true +spring.cloud.stream.instanceCount=2 +spring.cloud.stream.instanceIndex=0 + diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-producer-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-producer-test.properties new file mode 100644 index 000000000..aee346650 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/partitioned-producer-test.properties @@ -0,0 +1,4 @@ +spring.cloud.stream.bindings.output.destination=partOut +spring.cloud.stream.bindings.output.producer.partitionKeyExpression=payload +spring.cloud.stream.bindings.output.producer.partitionCount=3 + diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/processor-binding-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/processor-binding-test.properties new file mode 100644 index 000000000..06b42431a --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/processor-binding-test.properties @@ -0,0 +1,2 @@ +spring.cloud.stream.bindings.input.destination=testtock.0 +spring.cloud.stream.bindings.output.destination=testtock.1 diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/sink-binding-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/sink-binding-test.properties new file mode 100644 index 000000000..9d96ac395 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/sink-binding-test.properties @@ -0,0 +1 @@ +spring.cloud.stream.bindings.input.destination=testtock diff --git a/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/source-binding-test.properties b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/source-binding-test.properties new file mode 100644 index 000000000..a9a6733d0 --- /dev/null +++ b/spring-cloud-stream-integration-tests/src/test/resources/org/springframework/cloud/stream/binder/source-binding-test.properties @@ -0,0 +1 @@ +spring.cloud.stream.bindings.output.destination=testtock diff --git a/spring-cloud-stream-test-support/src/main/java/org/springframework/cloud/stream/test/binder/TestSupportBinderAutoConfiguration.java b/spring-cloud-stream-test-support/src/main/java/org/springframework/cloud/stream/test/binder/TestSupportBinderAutoConfiguration.java index ead7b84c0..7fc8f9264 100644 --- a/spring-cloud-stream-test-support/src/main/java/org/springframework/cloud/stream/test/binder/TestSupportBinderAutoConfiguration.java +++ b/spring-cloud-stream-test-support/src/main/java/org/springframework/cloud/stream/test/binder/TestSupportBinderAutoConfiguration.java @@ -48,7 +48,7 @@ public class TestSupportBinderAutoConfiguration { @Bean @SuppressWarnings("unchecked") - public BinderFactory binderFactory(final Binder binder) { + public BinderFactory testSupportBinderFactory(final Binder binder) { return new BinderFactory() { @Override public Binder getBinder(