Package org.springframework.pulsar.core
Class PulsarTemplate<T>
java.lang.Object
org.springframework.pulsar.core.PulsarTemplate<T>
- Type Parameters:
- T- the message payload type
- All Implemented Interfaces:
- Aware,- BeanNameAware,- SmartInitializingSingleton,- ApplicationContextAware,- PulsarOperations<T>
public class PulsarTemplate<T>
extends Object
implements PulsarOperations<T>, ApplicationContextAware, BeanNameAware, SmartInitializingSingleton
A template for executing high-level Pulsar operations.
- Author:
- Soby Chacko, Chris Bono, Alexander Preuß, Christophe Bornet, Jonas Geiregat
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classstatic interfaceA callback for executing arbitrary operations on aPulsarTemplate.Nested classes/interfaces inherited from interface org.springframework.pulsar.core.PulsarOperationsPulsarOperations.SendMessageBuilder<T>
- 
Constructor SummaryConstructorsConstructorDescriptionPulsarTemplate(PulsarProducerFactory<T> producerFactory) Construct a template instance without interceptors that uses the default schema resolver.PulsarTemplate(PulsarProducerFactory<T> producerFactory, List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors) Construct a template instance with interceptors that uses the default schema resolver and default topic resolver and enables observation recording.PulsarTemplate(PulsarProducerFactory<T> producerFactory, List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors, SchemaResolver schemaResolver, TopicResolver topicResolver, boolean observationEnabled) Construct a template instance with optional observation configuration.
- 
Method SummaryModifier and TypeMethodDescriptionvoidIf observations are enabled, attempt to obtain the Observation registry and convention.<R> RexecuteInTransaction(PulsarTemplate.TemplateCallback<T, R> callback) Execute some arbitrary operation(s) on the template and return the result.newMessage(T message) Create abuilderfor configuring and sending a message.org.apache.pulsar.client.api.MessageIdSends a message to the specified topic in a blocking manner.org.apache.pulsar.client.api.MessageIdSends a message to the specified topic in a blocking manner.org.apache.pulsar.client.api.MessageIdSends a message to the default topic in a blocking manner.org.apache.pulsar.client.api.MessageIdSends a message to the default topic in a blocking manner.CompletableFuture<org.apache.pulsar.client.api.MessageId>Sends a message to the specified topic in a non-blocking manner.CompletableFuture<org.apache.pulsar.client.api.MessageId>Sends a message to the specified topic in a non-blocking manner.CompletableFuture<org.apache.pulsar.client.api.MessageId>Sends a message to the default topic in a non-blocking manner.CompletableFuture<org.apache.pulsar.client.api.MessageId>Sends a message to the default topic in a non-blocking manner.voidsetApplicationContext(ApplicationContext applicationContext) voidsetBeanName(String beanName) Gets the transaction properties.
- 
Constructor Details- 
PulsarTemplateConstruct a template instance without interceptors that uses the default schema resolver.- Parameters:
- producerFactory- the factory used to create the backing Pulsar producers.
 
- 
PulsarTemplatepublic PulsarTemplate(PulsarProducerFactory<T> producerFactory, List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors) Construct a template instance with interceptors that uses the default schema resolver and default topic resolver and enables observation recording.- Parameters:
- producerFactory- the factory used to create the backing Pulsar producers.
- interceptors- the interceptors to add to the producer.
 
- 
PulsarTemplatepublic PulsarTemplate(PulsarProducerFactory<T> producerFactory, List<org.apache.pulsar.client.api.interceptor.ProducerInterceptor> interceptors, SchemaResolver schemaResolver, TopicResolver topicResolver, boolean observationEnabled) Construct a template instance with optional observation configuration.- Parameters:
- producerFactory- the factory used to create the backing Pulsar producers
- interceptors- the list of interceptors to add to the producer
- schemaResolver- the schema resolver to use
- topicResolver- the topic resolver to use
- observationEnabled- whether to record observations
 
 
- 
- 
Method Details- 
setApplicationContext- Specified by:
- setApplicationContextin interface- ApplicationContextAware
 
- 
transactionsGets the transaction properties.- Returns:
- the transaction properties
- Since:
- 1.1.0
 
- 
afterSingletonsInstantiatedpublic void afterSingletonsInstantiated()If observations are enabled, attempt to obtain the Observation registry and convention.- Specified by:
- afterSingletonsInstantiatedin interface- SmartInitializingSingleton
 
- 
sendDescription copied from interface:PulsarOperationsSends a message to the default topic in a blocking manner.- Specified by:
- sendin interface- PulsarOperations<T>
- Parameters:
- message- the message to send
- Returns:
- the id assigned by the broker to the published message
 
- 
sendpublic org.apache.pulsar.client.api.MessageId send(@Nullable T message, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:PulsarOperationsSends a message to the default topic in a blocking manner.- Specified by:
- sendin interface- PulsarOperations<T>
- Parameters:
- message- the message to send
- schema- the schema to use or- nullto send using the default schema resolution
- Returns:
- the id assigned by the broker to the published message
 
- 
sendDescription copied from interface:PulsarOperationsSends a message to the specified topic in a blocking manner.- Specified by:
- sendin interface- PulsarOperations<T>
- Parameters:
- topic- the topic to send the message to or- nullto send to the default topic
- message- the message to send
- Returns:
- the id assigned by the broker to the published message
 
- 
sendpublic org.apache.pulsar.client.api.MessageId send(@Nullable String topic, @Nullable T message, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:PulsarOperationsSends a message to the specified topic in a blocking manner.- Specified by:
- sendin interface- PulsarOperations<T>
- Parameters:
- topic- the topic to send the message to or- nullto send to the default topic
- message- the message to send
- schema- the schema to use or- nullto send using the default schema resolution
- Returns:
- the id assigned by the broker to the published message
 
- 
sendAsyncDescription copied from interface:PulsarOperationsSends a message to the default topic in a non-blocking manner.- Specified by:
- sendAsyncin interface- PulsarOperations<T>
- Parameters:
- message- the message to send
- Returns:
- a future that holds the id assigned by the broker to the published message
 
- 
sendAsyncpublic CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync(@Nullable T message, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:PulsarOperationsSends a message to the default topic in a non-blocking manner.- Specified by:
- sendAsyncin interface- PulsarOperations<T>
- Parameters:
- message- the message to send
- schema- the schema to use or- nullto send using the default schema resolution
- Returns:
- a future that holds the id assigned by the broker to the published message
 
- 
sendAsyncpublic CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync(@Nullable String topic, @Nullable T message) Description copied from interface:PulsarOperationsSends a message to the specified topic in a non-blocking manner.- Specified by:
- sendAsyncin interface- PulsarOperations<T>
- Parameters:
- topic- the topic to send the message to or- nullto send to the default topic
- message- the message to send
- Returns:
- a future that holds the id assigned by the broker to the published message
 
- 
sendAsyncpublic CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync(@Nullable String topic, @Nullable T message, @Nullable org.apache.pulsar.client.api.Schema<T> schema) Description copied from interface:PulsarOperationsSends a message to the specified topic in a non-blocking manner.- Specified by:
- sendAsyncin interface- PulsarOperations<T>
- Parameters:
- topic- the topic to send the message to or- nullto send to the default topic
- message- the message to send
- schema- the schema to use or- nullto send using the default schema resolution
- Returns:
- a future that holds the id assigned by the broker to the published message
 
- 
newMessageDescription copied from interface:PulsarOperationsCreate abuilderfor configuring and sending a message.- Specified by:
- newMessagein interface- PulsarOperations<T>
- Parameters:
- message- the payload of the message
- Returns:
- the builder to configure and send the message
 
- 
setBeanName- Specified by:
- setBeanNamein interface- BeanNameAware
 
- 
executeInTransactionExecute some arbitrary operation(s) on the template and return the result. The template is invoked within a local transaction and do not participate in a global transaction (if present).- Type Parameters:
- R- the callback return type
- Parameters:
- callback- the callback
- Returns:
- the result
- Since:
- 1.1.0
 
 
-