-
Notifications
You must be signed in to change notification settings - Fork 74
Description
Pulsar Listener section of reference manual provides snippets that suggest it's possible to configure subscription name only using spring.pulsar.consumer.subscription.name configuration property and without having subscriptionName specified on @PulsarListener.
However, in practice, I don't see this being possible due to subscription name being generated in PulsarListenerAnnotationBeanPostProcessor if omitted on annotation:
Lines 364 to 369 in 728a74b
| private String getEndpointSubscriptionName(PulsarListener pulsarListener) { | |
| if (StringUtils.hasText(pulsarListener.subscriptionName())) { | |
| return resolveExpressionAsString(pulsarListener.subscriptionName(), "subscriptionName"); | |
| } | |
| return GENERATED_ID_PREFIX + this.counter.getAndIncrement(); | |
| } |
Which combined with DefaultPulsarConsumerFactory applying the generated subscription name to ConsumerBuilder results in the value specified by spring.pulsar.consumer.subscription.name configuration property being overwritten by generated one:
Lines 86 to 88 in 728a74b
| if (subscriptionName != null) { | |
| consumerBuilder.subscriptionName(subscriptionName); | |
| } |