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);
}
)
我们有一个来自 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);
}
)