@InterceptorBean(value=PulsarProducerClient.class) public class PulsarProducerAdvice extends Object implements io.micronaut.aop.MethodInterceptor<Object,Object>, AutoCloseable, PulsarProducerRegistry
Producer
methods. It can be used for creating implementation of interface methods or
just to add producer behaviour to existing methods.Modifier and Type | Field and Description |
---|---|
protected io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> |
applicationEventPublisher |
protected io.micronaut.context.BeanContext |
beanContext |
protected Map<String,org.apache.pulsar.client.api.Producer<?>> |
producers |
protected org.apache.pulsar.client.api.PulsarClient |
pulsarClient |
protected DefaultSchemaHandler |
simpleSchemaResolver |
Constructor and Description |
---|
PulsarProducerAdvice(org.apache.pulsar.client.api.PulsarClient pulsarClient,
DefaultSchemaHandler simpleSchemaResolver,
io.micronaut.context.BeanContext beanContext,
io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher)
Constructor for instantiating Pulsar producer advice for intercepting producer methods.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
protected org.apache.pulsar.client.api.Producer<?> |
getOrCreateProducer(io.micronaut.inject.ExecutableMethod<?,?> method,
io.micronaut.core.annotation.AnnotationValue<PulsarProducer> annotationValue)
Fetch existing producer or generate a new one via factory if missing.
|
org.apache.pulsar.client.api.Producer<?> |
getProducer(String id)
Get single managed producer by its name.
|
Set<String> |
getProducerIds()
Get all managed producer identifiers.
|
Map<String,org.apache.pulsar.client.api.Producer<?>> |
getProducers()
Get all managed producers.
|
Object |
intercept(io.micronaut.aop.MethodInvocationContext<Object,Object> context) |
protected final org.apache.pulsar.client.api.PulsarClient pulsarClient
protected final DefaultSchemaHandler simpleSchemaResolver
protected final io.micronaut.context.BeanContext beanContext
protected final io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher
public PulsarProducerAdvice(org.apache.pulsar.client.api.PulsarClient pulsarClient, DefaultSchemaHandler simpleSchemaResolver, io.micronaut.context.BeanContext beanContext, io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher)
pulsarClient
- Apache Pulsar client beansimpleSchemaResolver
- Schema resolverbeanContext
- Micronaut bean contextapplicationEventPublisher
- Event publisher for reporting failed subscriptionsprotected org.apache.pulsar.client.api.Producer<?> getOrCreateProducer(io.micronaut.inject.ExecutableMethod<?,?> method, io.micronaut.core.annotation.AnnotationValue<PulsarProducer> annotationValue)
method
- method annotated with PulsarProducer
annotationValue
- PulsarProducer
value@PreDestroy public void close()
close
in interface AutoCloseable
public Map<String,org.apache.pulsar.client.api.Producer<?>> getProducers()
PulsarProducerRegistry
getProducers
in interface PulsarProducerRegistry
public org.apache.pulsar.client.api.Producer<?> getProducer(@NonNull String id)
PulsarProducerRegistry
getProducer
in interface PulsarProducerRegistry
id
- unique identifierpublic Set<String> getProducerIds()
PulsarProducerRegistry
getProducerIds
in interface PulsarProducerRegistry