From 8f880a1c1e7f82527a2f70cc4c9160c06fcb554b Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Thu, 6 Jan 2022 16:58:50 -0500 Subject: [PATCH] Remove EnableBinding from tests. --- .../integration/RabbitBinderModuleTests.java | 61 +++++++++---------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/spring-cloud-stream-binder-rabbit/src/test/java/org/springframework/cloud/stream/binder/rabbit/integration/RabbitBinderModuleTests.java b/spring-cloud-stream-binder-rabbit/src/test/java/org/springframework/cloud/stream/binder/rabbit/integration/RabbitBinderModuleTests.java index 14d9930e7..56e78fdb1 100644 --- a/spring-cloud-stream-binder-rabbit/src/test/java/org/springframework/cloud/stream/binder/rabbit/integration/RabbitBinderModuleTests.java +++ b/spring-cloud-stream-binder-rabbit/src/test/java/org/springframework/cloud/stream/binder/rabbit/integration/RabbitBinderModuleTests.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; +import java.util.function.Function; import com.rabbitmq.http.client.Client; import com.rabbitmq.http.client.domain.BindingInfo; @@ -50,15 +51,12 @@ import org.springframework.boot.actuate.health.Status; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.Cloud; -import org.springframework.cloud.stream.annotation.EnableBinding; -import org.springframework.cloud.stream.annotation.Input; import org.springframework.cloud.stream.binder.Binder; import org.springframework.cloud.stream.binder.BinderFactory; import org.springframework.cloud.stream.binder.Binding; import org.springframework.cloud.stream.binder.ExtendedConsumerProperties; import org.springframework.cloud.stream.binder.ExtendedProducerProperties; import org.springframework.cloud.stream.binder.ExtendedPropertiesBinder; -import org.springframework.cloud.stream.binder.PollableMessageSource; import org.springframework.cloud.stream.binder.rabbit.RabbitMessageChannelBinder; import org.springframework.cloud.stream.binder.rabbit.properties.RabbitConsumerProperties; import org.springframework.cloud.stream.binder.rabbit.properties.RabbitProducerProperties; @@ -68,7 +66,6 @@ import org.springframework.cloud.stream.config.ConsumerEndpointCustomizer; import org.springframework.cloud.stream.config.ListenerContainerCustomizer; import org.springframework.cloud.stream.config.MessageSourceCustomizer; import org.springframework.cloud.stream.config.ProducerMessageHandlerCustomizer; -import org.springframework.cloud.stream.messaging.Processor; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter; @@ -110,16 +107,17 @@ public class RabbitBinderModuleTests { context = null; } RabbitAdmin admin = new RabbitAdmin(rabbitTestSupport.getResource()); - admin.deleteExchange("input"); - admin.deleteExchange("output"); + admin.deleteExchange("process-in-0"); + admin.deleteExchange("process-out-0"); } @Test public void testParentConnectionFactoryInheritedByDefault() throws Exception { context = new SpringApplicationBuilder(SimpleProcessor.class) .web(WebApplicationType.NONE).run("--server.port=0", + "--spring.cloud.function.definition=process", "--spring.cloud.stream.rabbit.binder.connection-name-prefix=foo", - "--spring.cloud.stream.rabbit.bindings.input.consumer.single-active-consumer=true"); + "--spring.cloud.stream.rabbit.bindings.process-in-0.consumer.single-active-consumer=true"); BinderFactory binderFactory = context.getBean(BinderFactory.class); Binder binder = binderFactory.getBinder(null, MessageChannel.class); assertThat(binder).isInstanceOf(RabbitMessageChannelBinder.class); @@ -167,15 +165,15 @@ public class RabbitBinderModuleTests { private void checkCustomizedArgs() throws MalformedURLException, URISyntaxException, InterruptedException { Client client = new Client("http://guest:guest@localhost:15672/api"); - List bindings = client.getBindingsBySource("/", "input"); + List bindings = client.getBindingsBySource("/", "process-in-0"); int n = 0; while (n++ < 100 && bindings == null || bindings.size() < 1) { Thread.sleep(100); - bindings = client.getBindingsBySource("/", "input"); + bindings = client.getBindingsBySource("/", "process-in-0"); } assertThat(bindings).isNotNull(); assertThat(bindings.get(0).getArguments()).contains(entry("added.by", "customizer")); - ExchangeInfo exchange = client.getExchange("/", "input"); + ExchangeInfo exchange = client.getExchange("/", "process-in-0"); assertThat(exchange.getArguments()).contains(entry("added.by", "customizer")); QueueInfo queue = client.getQueue("/", bindings.get(0).getDestination()); assertThat(queue.getArguments()).contains(entry("added.by", "customizer")); @@ -187,10 +185,11 @@ public class RabbitBinderModuleTests { public void testParentConnectionFactoryInheritedByDefaultAndRabbitSettingsPropagated() { context = new SpringApplicationBuilder(SimpleProcessor.class) .web(WebApplicationType.NONE).run("--server.port=0", + "--spring.cloud.function.definition=process", "--spring.cloud.stream.bindings.source.group=someGroup", - "--spring.cloud.stream.bindings.input.group=someGroup", - "--spring.cloud.stream.rabbit.bindings.input.consumer.transacted=true", - "--spring.cloud.stream.rabbit.bindings.output.producer.transacted=true"); + "--spring.cloud.stream.bindings.process-in-0.group=someGroup", + "--spring.cloud.stream.rabbit.bindings.process-in-0.consumer.transacted=true", + "--spring.cloud.stream.rabbit.bindings.process-out-0.producer.transacted=true"); BinderFactory binderFactory = context.getBean(BinderFactory.class); Binder binder = binderFactory.getBinder(null, MessageChannel.class); assertThat(binder).isInstanceOf(RabbitMessageChannelBinder.class); @@ -201,23 +200,23 @@ public class RabbitBinderModuleTests { Map>> consumerBindings = (Map>>) channelBindingServiceAccessor .getPropertyValue("consumerBindings"); // @checkstyle:on - Binding inputBinding = consumerBindings.get("input").get(0); + Binding inputBinding = consumerBindings.get("process-in-0").get(0); assertThat(TestUtils.getPropertyValue(inputBinding, "lifecycle.beanName")) .isEqualTo("setByCustomizer:someGroup"); SimpleMessageListenerContainer container = TestUtils.getPropertyValue( inputBinding, "lifecycle.messageListenerContainer", SimpleMessageListenerContainer.class); assertThat(TestUtils.getPropertyValue(container, "beanName")) - .isEqualTo("setByCustomizerForQueue:input.someGroup,andGroup:someGroup"); + .isEqualTo("setByCustomizerForQueue:process-in-0.someGroup,andGroup:someGroup"); assertThat(TestUtils.getPropertyValue(container, "transactional", Boolean.class)) .isTrue(); Map> producerBindings = (Map>) TestUtils .getPropertyValue(bindingService, "producerBindings"); - Binding outputBinding = producerBindings.get("output"); + Binding outputBinding = producerBindings.get("process-out-0"); assertThat(TestUtils.getPropertyValue(outputBinding, "lifecycle.amqpTemplate.transactional", Boolean.class)).isTrue(); assertThat(TestUtils.getPropertyValue(outputBinding, "lifecycle.beanName")) - .isEqualTo("setByCustomizer:output"); + .isEqualTo("setByCustomizer:process-out-0"); DirectFieldAccessor binderFieldAccessor = new DirectFieldAccessor(binder); ConnectionFactory binderConnectionFactory = (ConnectionFactory) binderFieldAccessor .getPropertyValue("connectionFactory"); @@ -271,8 +270,9 @@ public class RabbitBinderModuleTests { @Test public void testParentConnectionFactoryNotInheritedByCustomizedBindersAndProducerRetryBootProperties() { List params = new ArrayList<>(); - params.add("--spring.cloud.stream.input.binder=custom"); - params.add("--spring.cloud.stream.output.binder=custom"); + params.add("--spring.cloud.function.definition=process"); + params.add("--spring.cloud.stream.process-in-0.binder=custom"); + params.add("--spring.cloud.stream.process-out-0.binder=custom"); params.add("--spring.cloud.stream.binders.custom.type=rabbit"); params.add("--spring.cloud.stream.binders.custom.environment.foo=bar"); params.add("--server.port=0"); @@ -352,17 +352,18 @@ public class RabbitBinderModuleTests { public void testExtendedProperties() { context = new SpringApplicationBuilder(SimpleProcessor.class) .web(WebApplicationType.NONE).run("--server.port=0", + "--spring.cloud.function.definition=process", "--spring.cloud.stream.rabbit.default.producer.routing-key-expression=fooRoutingKey", "--spring.cloud.stream.rabbit.default.consumer.exchange-type=direct", - "--spring.cloud.stream.rabbit.bindings.output.producer.batch-size=512", + "--spring.cloud.stream.rabbit.bindings.process-out-0.producer.batch-size=512", "--spring.cloud.stream.rabbit.default.consumer.max-concurrency=4", - "--spring.cloud.stream.rabbit.bindings.input.consumer.exchange-type=fanout"); + "--spring.cloud.stream.rabbit.bindings.process-in-0.consumer.exchange-type=fanout"); BinderFactory binderFactory = context.getBean(BinderFactory.class); Binder rabbitBinder = binderFactory.getBinder(null, MessageChannel.class); RabbitProducerProperties rabbitProducerProperties = (RabbitProducerProperties) ((ExtendedPropertiesBinder) rabbitBinder) - .getExtendedProducerProperties("output"); + .getExtendedProducerProperties("process-out-0"); assertThat( rabbitProducerProperties.getRoutingKeyExpression().getExpressionString()) @@ -370,14 +371,13 @@ public class RabbitBinderModuleTests { assertThat(rabbitProducerProperties.getBatchSize()).isEqualTo(512); RabbitConsumerProperties rabbitConsumerProperties = (RabbitConsumerProperties) ((ExtendedPropertiesBinder) rabbitBinder) - .getExtendedConsumerProperties("input"); + .getExtendedConsumerProperties("process-in-0"); assertThat(rabbitConsumerProperties.getExchangeType()) .isEqualTo(ExchangeTypes.FANOUT); assertThat(rabbitConsumerProperties.getMaxConcurrency()).isEqualTo(4); } - @EnableBinding({ Processor.class, PMS.class }) @SpringBootApplication public static class SimpleProcessor { @@ -409,6 +409,11 @@ public class RabbitBinderModuleTests { return dec; }; } + + @Bean + public Function process() { + return s -> s; + } } public static class ConnectionFactoryConfiguration { @@ -433,12 +438,4 @@ public class RabbitBinderModuleTests { } } - - public interface PMS { - - @Input - PollableMessageSource source(); - - } - }