From 2b724c8a5d6fdae7cec7c25602a3f684882a21ff Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Mon, 26 Jun 2023 14:59:55 -0400 Subject: [PATCH] GH-8654: Fix bean deps for messaging annotations (#8657) Fixes https://github.com/spring-projects/spring-integration/issues/8654 Spring Framework has an ability to start dependant beans automatically when we start the current one. The `AbstractMethodAnnotationPostProcessor` is missing a bean dependency registration causing errors in target applications when Messaging Annotations configuration is used. * Add `registerDependentBean()` into an `AbstractMethodAnnotationPostProcessor` when we generate and register a `ConsumerEndpointFactoryBean` * Change one of the `ClientManagerBackToBackTests` configuration to rely on a `@ServiceActivator` for `Mqttv5PahoMessageHandler` bean to ensure that change in the `AbstractMethodAnnotationPostProcessor` has a proper effect **Cherry-pick to `6.1.x` & `6.0.x`** --- .../config/AbstractMethodAnnotationPostProcessor.java | 1 + .../integration/mqtt/ClientManagerBackToBackTests.java | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/AbstractMethodAnnotationPostProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/config/AbstractMethodAnnotationPostProcessor.java index abd651d10c..31ceb36771 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/AbstractMethodAnnotationPostProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/AbstractMethodAnnotationPostProcessor.java @@ -271,6 +271,7 @@ public abstract class AbstractMethodAnnotationPostProcessor f.handle(new Mqttv5PahoMessageHandler(mqttv5ClientManager)); + @ServiceActivator(inputChannel = "mqttOutFlow.input") + public Mqttv5PahoMessageHandler mqttv5PahoMessageHandler(Mqttv5ClientManager mqttv5ClientManager) { + return new Mqttv5PahoMessageHandler(mqttv5ClientManager); } @Bean