From dc6f5aa0047ef2938b2679da2cf8d5d5097b3d4d Mon Sep 17 00:00:00 2001 From: abilan Date: Mon, 28 Nov 2022 14:12:12 -0500 Subject: [PATCH] GH-3953: Use lazy-load for output channels Fixes https://github.com/spring-projects/spring-integration/issues/3953 The replying `MessageHandler` can resolve the target output channel in on-demand manner. A new messaging annotations on `@Bean` parsing algorithm is missing the lazy-load opportunity and uses a `RuntimeBeanReference` for output channel options loading its bean eagerly. * Fix `AbstractMethodAnnotationPostProcessor` to use a `outputChannelName` and `defaultOutputChannelName` target properties for channel names to set. --- ...AbstractMethodAnnotationPostProcessor.java | 4 +-- ...ingAnnotationsWithBeanAnnotationTests.java | 35 +++++++++++++++++++ 2 files changed, 37 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 4645a58431..abd651d10c 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 @@ -211,8 +211,8 @@ public abstract class AbstractMethodAnnotationPostProcessor