Package io.micronaut.pulsar.intercept
Class PulsarProducerAdvice
java.lang.Object
io.micronaut.pulsar.intercept.PulsarProducerAdvice
- All Implemented Interfaces:
io.micronaut.aop.Interceptor<Object,,Object> io.micronaut.aop.MethodInterceptor<Object,,Object> io.micronaut.core.order.Ordered,PulsarProducerRegistry,AutoCloseable
- Direct Known Subclasses:
PulsarMultitenantProducerAdvice
@InterceptorBean(PulsarProducerClient.class)
public class PulsarProducerAdvice
extends Object
implements io.micronaut.aop.MethodInterceptor<Object,Object>, AutoCloseable, PulsarProducerRegistry
Intercepting pulsar
Producer methods. It can be used for creating implementation of interface methods or
just to add producer behaviour to existing methods.- Since:
- 1.0
- Author:
- Haris Secic
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent>protected final io.micronaut.context.BeanContextprotected final io.micronaut.core.convert.ConversionServiceprotected final org.apache.pulsar.client.api.PulsarClientprotected final DefaultSchemaHandlerFields inherited from interface io.micronaut.aop.Interceptor
ARGUMENT, CACHEABLE_LAZY_TARGET, HOTSWAP, LAZY, PROXY_TARGETFields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionPulsarProducerAdvice(org.apache.pulsar.client.api.PulsarClient pulsarClient, DefaultSchemaHandler simpleSchemaResolver, io.micronaut.context.BeanContext beanContext, io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher, io.micronaut.core.convert.ConversionService conversionService) Constructor for instantiating Pulsar producer advice for intercepting producer methods. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()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(@NonNull String id) Get single managed producer by its name.Get all managed producer identifiers.Get all managed producers.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.aop.MethodInterceptor
interceptMethods inherited from interface io.micronaut.core.order.Ordered
getOrder
-
Field Details
-
producers
-
pulsarClient
protected final org.apache.pulsar.client.api.PulsarClient pulsarClient -
simpleSchemaResolver
-
beanContext
protected final io.micronaut.context.BeanContext beanContext -
applicationEventPublisher
protected final io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher -
conversionService
protected final io.micronaut.core.convert.ConversionService conversionService
-
-
Constructor Details
-
PulsarProducerAdvice
public PulsarProducerAdvice(org.apache.pulsar.client.api.PulsarClient pulsarClient, DefaultSchemaHandler simpleSchemaResolver, io.micronaut.context.BeanContext beanContext, io.micronaut.context.event.ApplicationEventPublisher<ProducerSubscriptionFailedEvent> applicationEventPublisher, io.micronaut.core.convert.ConversionService conversionService) Constructor for instantiating Pulsar producer advice for intercepting producer methods.- Parameters:
pulsarClient- Apache Pulsar client beansimpleSchemaResolver- Schema resolverbeanContext- Micronaut bean contextapplicationEventPublisher- Event publisher for reporting failed subscriptionsconversionService- Micronaut conversion service
-
-
Method Details
-
intercept
-
getOrCreateProducer
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.- Parameters:
method- method annotated withPulsarProducerannotationValue-PulsarProducervalue- Returns:
- existing producer if exists; otherwise create a new one
-
close
@PreDestroy public void close()- Specified by:
closein interfaceAutoCloseable
-
getProducers
Description copied from interface:PulsarProducerRegistryGet all managed producers.- Specified by:
getProducersin interfacePulsarProducerRegistry- Returns:
- List of managed producers.
-
getProducer
Description copied from interface:PulsarProducerRegistryGet single managed producer by its name.- Specified by:
getProducerin interfacePulsarProducerRegistry- Parameters:
id- unique identifier- Returns:
- Pulsar producer by given name
-
getProducerIds
Description copied from interface:PulsarProducerRegistryGet all managed producer identifiers.- Specified by:
getProducerIdsin interfacePulsarProducerRegistry- Returns:
- List of producer names representing their identifiers in registry.
-