GH-2626 Ensure explicit binding names are not modified

See issue for more details
Resolves #2626
This commit is contained in:
Oleg Zhurakousky
2023-01-19 10:29:05 +01:00
parent e8a2018b08
commit df289bc65d
6 changed files with 45 additions and 39 deletions

View File

@@ -366,7 +366,7 @@ public class BindingServiceTests {
assertThat(bindings.get("input2").getConsumer().getConcurrency()).isEqualTo(1);
assertThat(bindings.get("input1").getConsumer().isPartitioned()).isEqualTo(true);
assertThat(bindings.get("input2").getConsumer().isPartitioned()).isEqualTo(false);
assertThat(bindings.get("output1-out-0").getProducer().getPartitionCount())
assertThat(bindings.get("output1").getProducer().getPartitionCount())
.isEqualTo(10);
assertThat(bindings.get("output2").getProducer().getPartitionCount())
.isEqualTo(1);
@@ -375,7 +375,7 @@ public class BindingServiceTests {
.isEqualTo("application/json");
assertThat(bindings.get("inputFooBar").getContentType())
.isEqualTo("application/avro");
assertThat(bindings.get("inputFooBarBuzz-in-0").getContentType())
assertThat(bindings.get("inputFooBarBuzz").getContentType())
.isEqualTo("text/plain");
assertThat(bindings.get("input_snake_case").getContentType())
.isEqualTo("application/avro");

View File

@@ -49,10 +49,10 @@ public class ExplicitBindingTests {
"--spring.cloud.stream.input-bindings=fooin;barin",
"--spring.cloud.stream.output-bindings=fooout;barout")) {
assertThat(context.getBean("fooin-in-0", MessageChannel.class)).isNotNull();
assertThat(context.getBean("barin-in-0", MessageChannel.class)).isNotNull();
assertThat(context.getBean("fooout-out-0", MessageChannel.class)).isNotNull();
assertThat(context.getBean("barout-out-0", MessageChannel.class)).isNotNull();
assertThat(context.getBean("fooin", MessageChannel.class)).isNotNull();
assertThat(context.getBean("barin", MessageChannel.class)).isNotNull();
assertThat(context.getBean("fooout", MessageChannel.class)).isNotNull();
assertThat(context.getBean("barout", MessageChannel.class)).isNotNull();
}
}

View File

@@ -319,18 +319,16 @@ public class StreamBridgeTests {
.web(WebApplicationType.NONE).run(
"--spring.jmx.enabled=false",
"--spring.cloud.stream.dynamic-destination-cache-size=1",
"--spring.cloud.stream.output-bindings=outputA;outputB",
"--spring.cloud.stream.bindings.outputA-out-0.destination=outputA",
"--spring.cloud.stream.bindings.outputB-out-0.destination=outputB"
"--spring.cloud.stream.output-bindings=outputA;outputB"
)) {
StreamBridge bridge = context.getBean(StreamBridge.class);
bridge.send("outputA-out-0", "hello foo");
bridge.send("outputA-out-0", "hello foo");
bridge.send("outputA-out-0", "hello foo");
bridge.send("outputA-out-0", "hello foo");
bridge.send("outputA", "hello foo");
bridge.send("outputA", "hello foo");
bridge.send("outputA", "hello foo");
bridge.send("outputA", "hello foo");
AbstractMessageChannel messageChannel = context.getBean("outputA-out-0", AbstractMessageChannel.class);
AbstractMessageChannel messageChannel = context.getBean("outputA", AbstractMessageChannel.class);
assertThat(messageChannel.getInterceptors()).hasSize(1);
}
@@ -479,49 +477,49 @@ public class StreamBridgeTests {
try (ConfigurableApplicationContext context = new SpringApplicationBuilder(TestChannelBinderConfiguration
.getCompleteConfiguration(EmptyConfiguration.class))
.web(WebApplicationType.NONE).run("--spring.cloud.stream.source=foo;bar",
"--spring.cloud.stream.bindings.foo-out-0.producer.partitionKeyExpression=payload",
"--spring.cloud.stream.bindings.foo-out-0.producer.partitionCount=5",
"--spring.cloud.stream.bindings.bar-out-0.producer.partitionKeyExpression=payload",
"--spring.cloud.stream.bindings.bar-out-0.producer.partitionCount=1",
"--spring.cloud.stream.bindings.foo.producer.partitionKeyExpression=payload",
"--spring.cloud.stream.bindings.foo.producer.partitionCount=5",
"--spring.cloud.stream.bindings.bar.producer.partitionKeyExpression=payload",
"--spring.cloud.stream.bindings.bar.producer.partitionCount=1",
"--spring.jmx.enabled=false")) {
StreamBridge bridge = context.getBean(StreamBridge.class);
bridge.send("foo-out-0", "a");
bridge.send("bar-out-0", "b");
bridge.send("foo-out-0", "c");
bridge.send("foo-out-0", "d");
bridge.send("bar-out-0", "e");
bridge.send("foo-out-0", "f");
bridge.send("bar-out-0", "g");
bridge.send("foo", "a");
bridge.send("bar", "b");
bridge.send("foo", "c");
bridge.send("foo", "d");
bridge.send("bar", "e");
bridge.send("foo", "f");
bridge.send("bar", "g");
OutputDestination outputDestination = context.getBean(OutputDestination.class);
Message<byte[]> message = outputDestination.receive(100, "foo-out-0");
Message<byte[]> message = outputDestination.receive(100, "foo");
assertThat(new String(message.getPayload())).isEqualTo("a");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(2);
message = outputDestination.receive(100, "foo-out-0");
message = outputDestination.receive(100, "foo");
assertThat(new String(message.getPayload())).isEqualTo("c");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(4);
message = outputDestination.receive(100, "foo-out-0");
message = outputDestination.receive(100, "foo");
assertThat(new String(message.getPayload())).isEqualTo("d");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(0);
message = outputDestination.receive(100, "bar-out-0");
message = outputDestination.receive(100, "bar");
assertThat(new String(message.getPayload())).isEqualTo("b");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(0);
message = outputDestination.receive(100, "bar-out-0");
message = outputDestination.receive(100, "bar");
assertThat(new String(message.getPayload())).isEqualTo("e");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(0);
message = outputDestination.receive(100, "bar-out-0");
message = outputDestination.receive(100, "bar");
assertThat(new String(message.getPayload())).isEqualTo("g");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(0);
message = outputDestination.receive(100, "foo-out-0");
message = outputDestination.receive(100, "foo");
assertThat(new String(message.getPayload())).isEqualTo("f");
assertThat(message.getHeaders().get("scst_partition")).isEqualTo(2);