@InterceptorBean(value=PulsarProducerClient.class) @Replaces(value=PulsarProducerAdvice.class) public final class PulsarMultitenantProducerAdvice extends PulsarProducerAdvice implements io.micronaut.aop.MethodInterceptor<Object,Object>, AutoCloseable
Producer
methods. It can be used for creating implementation of interface methods or
just to add producer behaviour to existing methods.applicationEventPublisher, beanContext, producers, pulsarClient, simpleSchemaResolver
Constructor and Description |
---|
PulsarMultitenantProducerAdvice(org.apache.pulsar.client.api.PulsarClient pulsarClient,
DefaultSchemaHandler simpleSchemaResolver,
io.micronaut.context.BeanContext beanContext,
io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher,
TenantNameResolver tenantNameResolver,
TopicResolver topicResolver) |
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.
|
intercept
public PulsarMultitenantProducerAdvice(org.apache.pulsar.client.api.PulsarClient pulsarClient, DefaultSchemaHandler simpleSchemaResolver, io.micronaut.context.BeanContext beanContext, io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher, TenantNameResolver tenantNameResolver, TopicResolver topicResolver)
protected org.apache.pulsar.client.api.Producer<?> getOrCreateProducer(io.micronaut.inject.ExecutableMethod<?,?> method, io.micronaut.core.annotation.AnnotationValue<PulsarProducer> annotationValue)
PulsarProducerAdvice
getOrCreateProducer
in class PulsarProducerAdvice
method
- method annotated with PulsarProducer
annotationValue
- PulsarProducer
value@PreDestroy public void close()
close
in interface AutoCloseable
close
in class PulsarProducerAdvice
public Map<String,org.apache.pulsar.client.api.Producer<?>> getProducers()
PulsarProducerRegistry
getProducers
in interface PulsarProducerRegistry
getProducers
in class PulsarProducerAdvice
public org.apache.pulsar.client.api.Producer<?> getProducer(@NonNull String id)
PulsarProducerRegistry
getProducer
in interface PulsarProducerRegistry
getProducer
in class PulsarProducerAdvice
id
- unique identifierpublic Set<String> getProducerIds()
PulsarProducerRegistry
getProducerIds
in interface PulsarProducerRegistry
getProducerIds
in class PulsarProducerAdvice