Package org.springframework.pulsar.core
Class DefaultPulsarConsumerFactory<T>
java.lang.Object
org.springframework.pulsar.core.DefaultPulsarConsumerFactory<T>
- Type Parameters:
T- underlying payload type for the consumer.
- All Implemented Interfaces:
PulsarConsumerFactory<T>
Default implementation for
PulsarConsumerFactory.-
Constructor Summary
ConstructorsConstructorDescriptionDefaultPulsarConsumerFactory(org.apache.pulsar.client.api.PulsarClient pulsarClient, List<ConsumerBuilderCustomizer<T>> defaultConfigCustomizers) Construct a consumer factory instance. -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.pulsar.client.api.Consumer<T>createConsumer(org.apache.pulsar.client.api.Schema<T> schema, Collection<String> topics, String subscriptionName, Map<String, String> metadataProperties, List<ConsumerBuilderCustomizer<T>> customizers) Create a consumer.org.apache.pulsar.client.api.Consumer<T>createConsumer(org.apache.pulsar.client.api.Schema<T> schema, Collection<String> topics, String subscriptionName, ConsumerBuilderCustomizer<T> customizer) Create a consumer.protected voidensureTopicNamesFullyQualified(org.apache.pulsar.client.api.ConsumerBuilder<T> builder) voidsetTopicBuilder(PulsarTopicBuilder topicBuilder) Non-fully-qualified topic names specified on the created consumers will be automatically fully-qualified with a default prefix (domain://tenant/namespace) according to the specified topic builder.
-
Constructor Details
-
DefaultPulsarConsumerFactory
public DefaultPulsarConsumerFactory(org.apache.pulsar.client.api.PulsarClient pulsarClient, List<ConsumerBuilderCustomizer<T>> defaultConfigCustomizers) Construct a consumer factory instance.- Parameters:
pulsarClient- the client used to consumedefaultConfigCustomizers- the optional list of customizers to apply to the created consumers or null to use no default configuration
-
-
Method Details
-
setTopicBuilder
Non-fully-qualified topic names specified on the created consumers will be automatically fully-qualified with a default prefix (domain://tenant/namespace) according to the specified topic builder.- Parameters:
topicBuilder- the topic builder used to fully qualify topic names or null to not fully qualify topic names- Since:
- 1.2.0
-
createConsumer
public org.apache.pulsar.client.api.Consumer<T> createConsumer(org.apache.pulsar.client.api.Schema<T> schema, @Nullable Collection<String> topics, @Nullable String subscriptionName, ConsumerBuilderCustomizer<T> customizer) Description copied from interface:PulsarConsumerFactoryCreate a consumer.- Specified by:
createConsumerin interfacePulsarConsumerFactory<T>- Parameters:
schema- the schema of the messages to be senttopics- the topics the consumer will subscribe to, replacing the default topics, ornullto use the default topics. Beware that usingConsumerBuilder.topic(java.lang.String...)orConsumerBuilder.topics(java.util.List<java.lang.String>)will add to the default topics, not override them. Also beware that specifyingnullwhen no default topic is configured will result in an exception.subscriptionName- the name to use for the subscription to the consumed topic(s) ornullto use the default configured subscription name. Beware that specifyingnullwhen no default subscription name is configured will result in an exceptioncustomizer- an optional customizer to apply to the consumer builder. Note that the customizer is applied last and has the potential for overriding any specified parameters or default properties.- Returns:
- the consumer
-
createConsumer
public org.apache.pulsar.client.api.Consumer<T> createConsumer(org.apache.pulsar.client.api.Schema<T> schema, @Nullable Collection<String> topics, @Nullable String subscriptionName, @Nullable Map<String, String> metadataProperties, @Nullable List<ConsumerBuilderCustomizer<T>> customizers) Description copied from interface:PulsarConsumerFactoryCreate a consumer.- Specified by:
createConsumerin interfacePulsarConsumerFactory<T>- Parameters:
schema- the schema of the messages to be senttopics- the topics the consumer will subscribe to, replacing the default topics, ornullto use the default topics. Beware that usingConsumerBuilder.topic(java.lang.String...)orConsumerBuilder.topics(java.util.List<java.lang.String>)will add to the default topics, not override them. Also beware that specifyingnullwhen no default topic is configured will result in an exception.subscriptionName- the name to use for the subscription to the consumed topic(s) ornullto use the default configured subscription name. Beware that specifyingnullwhen no default subscription name is configured will result in an exceptionmetadataProperties- the metadata properties to attach to the consumer, replacing the default metadata properties, ornullto use the default metadata properties. Beware that usingConsumerBuilder.property(java.lang.String, java.lang.String)orConsumerBuilder.properties(java.util.Map<java.lang.String, java.lang.String>)will add to the default metadata properties, not replace them.customizers- the optional list of customizers to apply to the consumer builder. Note that the customizers are applied last and have the potential for overriding any specified parameters or default properties.- Returns:
- the consumer
-
ensureTopicNamesFullyQualified
protected void ensureTopicNamesFullyQualified(org.apache.pulsar.client.api.ConsumerBuilder<T> builder)
-