Releases: smallrye/smallrye-reactive-messaging
Releases · smallrye/smallrye-reactive-messaging
4.5.0
Changelog
- #2134 - Bump opentelemetry-instrumentation-bom-alpha from 1.24.0-alpha to 1.25.0-alpha
- #2119 - Support stream processors on kafka message converters
- #2118 - Bump opentelemetry-instrumentation-bom-alpha from 1.23.0-alpha to 1.24.0-alpha
- #2113 - Upgrade Camel to 4.0.0-M2
- #2106 - Decouple OpenTelemetry instrumenter
Breaking Changes
class io.smallrye.reactive.messaging.kafka.KafkaConnector
updated toclass io.smallrye.reactive.messaging.kafka.KafkaConnector
: Added delayed-retry-topic to connector attributesmethod io.smallrye.mutiny.Uni<java.util.Collection<org.apache.kafka.common.Node>> io.smallrye.reactive.messaging.kafka.KafkaAdmin::describeCluster()
has been introduced: Options added to admin client methodsmethod io.smallrye.mutiny.Uni<java.util.Collection<org.apache.kafka.common.Node>> io.smallrye.reactive.messaging.kafka.KafkaAdmin::describeCluster(org.apache.kafka.clients.admin.DescribeClusterOptions)
has been introduced: Options added to admin client methodsmethod io.smallrye.mutiny.Uni<java.util.Map<java.lang.String, org.apache.kafka.clients.admin.TopicDescription>> io.smallrye.reactive.messaging.kafka.KafkaAdmin::describeTopics(java.util.Collection<java.lang.String>)
has been introduced: Options added to admin client methodsmethod io.smallrye.mutiny.Uni<java.util.Map<java.lang.String, org.apache.kafka.clients.admin.TopicDescription>> io.smallrye.reactive.messaging.kafka.KafkaAdmin::describeTopics(java.util.Collection<java.lang.String>, org.apache.kafka.clients.admin.DescribeTopicsOptions)
has been introduced: Options added to admin client methodsmethod io.smallrye.mutiny.Uni<java.util.Set<java.lang.String>> io.smallrye.reactive.messaging.kafka.KafkaAdmin::listTopics(org.apache.kafka.clients.admin.ListTopicsOptions)
has been introduced: Options added to admin client methodsmethod void io.smallrye.reactive.messaging.kafka.health.KafkaSourceHealth::<init>(io.smallrye.reactive.messaging.kafka.impl.KafkaSource<?, ?>, io.smallrye.reactive.messaging.kafka.KafkaConnectorIncomingConfiguration, io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaConsumer<?, ?>)
updated tomethod void io.smallrye.reactive.messaging.kafka.health.KafkaSourceHealth::<init>(io.smallrye.reactive.messaging.kafka.impl.KafkaSource<?, ?>, io.smallrye.reactive.messaging.kafka.KafkaConnectorIncomingConfiguration, io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaConsumer<?, ?>, java.util.Set<java.lang.String>, java.util.regex.Pattern)
: Kafka Source Health checks for topic existence on startupclass io.smallrye.reactive.messaging.kafka.KafkaConnector
updated toclass io.smallrye.reactive.messaging.kafka.KafkaConnector
: Added health-topic-verification-startup-disabled and health-topic-verification-readiness-disabled flagsfield io.smallrye.reactive.messaging.kafka.companion.test.KafkaBrokerExtension.KAFKA_VERSION
updated tofield io.smallrye.reactive.messaging.kafka.companion.test.KafkaBrokerExtension.KAFKA_VERSION
: Kafka broker version used for tests from 3.1.0 to 3.3.2
3.24.0
4.4.0
Changelog
- #2099 - Bump smallrye-parent to 39
- #2095 - Kafka delayed retry topic failure strategy
- #2094 - Upgrade to OTel 1.23
- #2093 - Fix format for noSuchElementForAttribute error
- #2086 - RabbitMQ - Prefetch configuration not respected after connection restart #2084
- #2080 - Re-enable camel connector with jakarta namespace
- #2079 - Remove Message payload null check
Breaking Changes
class io.smallrye.reactive.messaging.kafka.KafkaConnector
updated toclass io.smallrye.reactive.messaging.kafka.KafkaConnector
: Added delayed-retry-topic to connector attributes
4.3.0
Changelog
- #2078 - Bump kafka.version from 3.3.2 to 3.4.0
- #2077 - Bump artemis.version from 2.20.0 to 2.28.0
- #2075 - Split package resolution for io.smallrye.reactive.messaging.providers.connectors
- #2073 - Merge Jakarta namespace migration to the main branch
- #1896 - Mutiny 2.0 with Flow support
Breaking Changes
method org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.kafka.KafkaConnector::getPublisher(org.eclipse.microprofile.config.Config)
updated tomethod java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.kafka.KafkaConnector::getPublisher(org.eclipse.microprofile.config.Config)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.kafka.KafkaConnector::getSubscriber(org.eclipse.microprofile.config.Config)
updated tomethod java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.kafka.KafkaConnector::getSubscriber(org.eclipse.microprofile.config.Config)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.kafka.impl.KafkaSink::getSink()
updated tomethod java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.kafka.impl.KafkaSink::getSink()
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowclass io.smallrye.reactive.messaging.providers.connectors.InMemoryConnector
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryinterface io.smallrye.reactive.messaging.providers.connectors.InMemorySink<T>
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryinterface io.smallrye.reactive.messaging.providers.connectors.InMemorySource<T>
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryinterface io.smallrye.reactive.messaging.providers.connectors.i18n.InMemoryExceptions
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryclass io.smallrye.reactive.messaging.providers.connectors.i18n.InMemoryExceptions_$bundle
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryinterface io.smallrye.reactive.messaging.providers.connectors.i18n.InMemoryLogging
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryclass io.smallrye.reactive.messaging.providers.connectors.i18n.InMemoryLogging_$logger
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryinterface io.smallrye.reactive.messaging.providers.connectors.i18n.InMemoryMessages
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memoryclass io.smallrye.reactive.messaging.providers.connectors.i18n.InMemoryMessages_$bundle
has been removed: Split package resolution: moved to package io.smallrye.reactive.messaging.memorymethod <M extends org.eclipse.microprofile.reactive.messaging.Message<? extends T>> io.smallrye.mutiny.Uni<java.lang.Void> io.smallrye.reactive.messaging.MutinyEmitter<T>::sendMessage(M)
has been introduced: Added to the MutinyEmitter interfacemethod <M extends org.eclipse.microprofile.reactive.messaging.Message<? extends T>> void io.smallrye.reactive.messaging.MutinyEmitter<T>::sendMessageAndAwait(M)
has been introduced: Added to the MutinyEmitter interfacemethod <M extends org.eclipse.microprofile.reactive.messaging.Message<? extends T>> io.smallrye.mutiny.subscription.Cancellable io.smallrye.reactive.messaging.MutinyEmitter<T>::sendMessageAndForget(M)
has been introduced: Added to the MutinyEmitter interfacemethod java.util.List<org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>> io.smallrye.reactive.messaging.ChannelRegistry::getPublishers(java.lang.String)
updated tomethod java.util.List<java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>> io.smallrye.reactive.messaging.ChannelRegistry::getPublishers(java.lang.String)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod java.util.List<org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>> io.smallrye.reactive.messaging.ChannelRegistry::getSubscribers(java.lang.String)
updated tomethod java.util.List<java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>> io.smallrye.reactive.messaging.ChannelRegistry::getSubscribers(java.lang.String)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowparameter org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, ===org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>===, boolean)
updated toparameter java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, ===java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>===, boolean)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>, boolean)
updated tomethod java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>, boolean)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowparameter org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, ===org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>===, boolean)
updated toparameter java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, ===java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>===, boolean)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>, boolean)
updated tomethod java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.ChannelRegistry::register(java.lang.String, java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>, boolean)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Publisher<org.eclipse.microprofile.reactive.messaging.Message<? extends T>> io.smallrye.reactive.messaging.MessagePublisherProvider<T>::getPublisher()
updated tomethod java.util.concurrent.Flow.Publisher<org.eclipse.microprofile.reactive.messaging.Message<? extends T>> io.smallrye.reactive.messaging.MessagePublisherProvider<T>::getPublisher()
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.connector.InboundConnector::getPublisher(org.eclipse.microprofile.config.Config)
updated tomethod java.util.concurrent.Flow.Publisher<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.connector.InboundConnector::getPublisher(org.eclipse.microprofile.config.Config)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flowmethod org.reactivestreams.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.connector.OutboundConnector::getSubscriber(org.eclipse.microprofile.config.Config)
updated tomethod java.util.concurrent.Flow.Subscriber<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.connector.OutboundConnector::getSubscriber(org.eclipse.microprofile.config.Config)
: Switch from the legacy Reactive Streams APIs to java.util.concurrent.Flow- `method boolean io.smallrye.reactive.messaging.MediatorConfiguration::usesReactiveStreams...
4.2.0.RC1
4.2.0
Jakarta release on top of 3.23.0
3.23.0.RC1
Flow release on 3.23.0 - #1896
3.23.0
Changelog
- #2060 - Configure missing tracing attributes for kafka, amqp rabbitmq.
- #2059 - Kafka ProducerInterceptor Bean
- #2057 - RabbitMQ graceful shutdown of clients on application termination
- #2052 - HealtCheck on MQTT Connector
- #2040 - Update OpenTelemetry dependencies
- #2034 - Set metrics name for Vertx based clients on mqtt rabbitmq and amqp
- #2012 - Bump artemis.version from 2.27.0 to 2.27.1
- #1678 - Use OpenTelemetry Instrumenter
Breaking Changes
class io.smallrye.reactive.messaging.kafka.commit.KafkaCheckpointCommit.CheckpointState<T>
updated toclass io.smallrye.reactive.messaging.kafka.commit.KafkaCheckpointCommit.CheckpointState<T>
: New checkpointing APImethod void io.smallrye.reactive.messaging.kafka.impl.KafkaRecordHelper::createOutgoingTrace(org.eclipse.microprofile.reactive.messaging.Message<?>, java.lang.String, java.lang.Integer, org.apache.kafka.common.header.Headers)
has been removed: Tracing methods moved to separate otel modulemethod java.util.Set<java.lang.String> io.smallrye.reactive.messaging.kafka.impl.KafkaSource<K, V>::getSubscribedTopics()
has been removed: Removed unused methodclass io.smallrye.reactive.messaging.kafka.tracing.HeaderExtractAdapter
has been removed: Replaced by otel instrumentation apiclass io.smallrye.reactive.messaging.kafka.tracing.HeaderInjectAdapter
has been removed: Replaced by otel instrumentation apiclass io.smallrye.reactive.messaging.kafka.KafkaConnector
updated toclass io.smallrye.reactive.messaging.kafka.KafkaConnector
: Added interceptor-bean to connector attributesmethod void io.smallrye.reactive.messaging.kafka.impl.KafkaSink::<init>(io.smallrye.reactive.messaging.kafka.KafkaConnectorOutgoingConfiguration, io.smallrye.reactive.messaging.kafka.KafkaCDIEvents, javax.enterprise.inject.Instance<io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<?>>)
updated tomethod void io.smallrye.reactive.messaging.kafka.impl.KafkaSink::<init>(io.smallrye.reactive.messaging.kafka.KafkaConnectorOutgoingConfiguration, io.smallrye.reactive.messaging.kafka.KafkaCDIEvents, javax.enterprise.inject.Instance<io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<?>>, javax.enterprise.inject.Instance<org.apache.kafka.clients.producer.ProducerInterceptor<?, ?>>)
: Added ProducerInterceptor instances to constructormethod void io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaProducer<K, V>::<init>(io.smallrye.reactive.messaging.kafka.KafkaConnectorOutgoingConfiguration, javax.enterprise.inject.Instance<io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<?>>, java.util.function.Consumer<java.lang.Throwable>, java.util.function.BiConsumer<org.apache.kafka.clients.producer.Producer<?, ?>, java.util.Map<java.lang.String, java.lang.Object>>)
updated tomethod void io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaProducer<K, V>::<init>(io.smallrye.reactive.messaging.kafka.KafkaConnectorOutgoingConfiguration, javax.enterprise.inject.Instance<io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<?>>, javax.enterprise.inject.Instance<org.apache.kafka.clients.producer.ProducerInterceptor<?, ?>>, java.util.function.Consumer<java.lang.Throwable>, java.util.function.BiConsumer<org.apache.kafka.clients.producer.Producer<?, ?>, java.util.Map<java.lang.String, java.lang.Object>>)
: Added ProducerInterceptor instances to constructormethod void io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaProducer<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.lang.String, int, boolean, io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<K>, io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<V>, java.util.function.BiConsumer<org.apache.kafka.clients.producer.Producer<?, ?>, java.util.Map<java.lang.String, java.lang.Object>>)
updated tomethod void io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaProducer<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.lang.String, int, boolean, org.apache.kafka.clients.producer.ProducerInterceptor<K, V>, io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<K>, io.smallrye.reactive.messaging.kafka.SerializationFailureHandler<V>, java.util.function.BiConsumer<org.apache.kafka.clients.producer.Producer<?, ?>, java.util.Map<java.lang.String, java.lang.Object>>)
: Added ProducerInterceptor instances to constructormethod void io.smallrye.reactive.messaging.kafka.i18n.KafkaLogging::interceptorCloseError(java.lang.String, java.lang.Throwable)
has been introduced: Added ProducerInterceptor error logsmethod void io.smallrye.reactive.messaging.kafka.i18n.KafkaLogging::interceptorOnAcknowledgeError(java.lang.String, java.lang.Throwable)
has been introduced: Added ProducerInterceptor error logsmethod void io.smallrye.reactive.messaging.kafka.i18n.KafkaLogging::interceptorOnSendError(java.lang.String, java.lang.Throwable)
has been introduced: Added ProducerInterceptor error logsmethod void io.smallrye.reactive.messaging.kafka.i18n.KafkaLogging_$logger::interceptorCloseError(java.lang.String, java.lang.Throwable)
has been introduced: Added ProducerInterceptor error logsmethod void io.smallrye.reactive.messaging.kafka.i18n.KafkaLogging_$logger::interceptorOnAcknowledgeError(java.lang.String, java.lang.Throwable)
has been introduced: Added ProducerInterceptor error logsmethod void io.smallrye.reactive.messaging.kafka.i18n.KafkaLogging_$logger::interceptorOnSendError(java.lang.String, java.lang.Throwable)
has been introduced: Added ProducerInterceptor error logs
3.22.1.RC1
Flow release on 3.22.1 - #1896
4.1.1
Jakarta release on top of 3.22.1