Spring 'int-jms:message-driven-channel-adapter' 与 'subscription-shared' 选项等效的集成 DSL

Spring Integration DSL equivalent for 'int-jms:message-driven-channel-adapter' with 'subscription-shared' option

我们有一个来自 MessageDrivenChannelAdapter 的配置,如下所示

<int-jms:message-driven-channel-adapter channel="..."
                                        connection-factory="..."
                                        destination-name="..."
                                        pub-sub-domain="true"
                                        subscription-name="..."
                                        subscription-shared="true"
                                        subscription-durable="true"
                                        auto-startup="..."
                                        error-channel="errorChannel"/>

我已经能够复制大部分配置:

 JmsMessageDrivenChannelAdapterListenerContainerSpec<JmsDefaultListenerContainerSpec, DefaultMessageListenerContainer> destination = Jms
        .messageDrivenChannelAdapter([connection-factory])
        .destination([destination-name])
        .autoStartup([auto-startup])
        .configureListenerContainer(c -> c
           .pubSubDomain(true)
           .subscriptionDurable(true)
           .durableSubscriptionName([subscription-name])
        )
        .errorChannel(errorChannel);

但我在 DSL 中找不到如何将订阅标记为共享

这应该如何实现?

感谢您的帮助

咦!我认为我们刚刚错过了公开 public void setSubscriptionShared(boolean subscriptionShared) {.

的选项

请尽快提出一个 JIRA,我们将在今天的发布中修复它。

作为解决方法,我建议使用回退到 AbstractMessageListenerContainer:

.configureListenerContainer(c -> { c
       .pubSubDomain(true)
       .subscriptionDurable(true)
       .durableSubscriptionName([subscription-name]);
        DefaultMessageListenerContainer messageListenerContainer = c.get();
        messageListenerContainer.setSubscriptionShared(true);
        }
     )