Skip to content

Releases: smallrye/smallrye-reactive-messaging

4.0.0

06 Oct 21:39
807ac7b

Choose a tag to compare

First Jakarta release. Main development is still on 3.x.

4.0.0.RC5

06 Oct 21:35
0cfd1ff

Choose a tag to compare

4.0.0.RC5 Pre-release
Pre-release

Jakarta release on top of 3.21.0

3.21.0

06 Oct 19:34
a2eb0c8

Choose a tag to compare

Changelog

  • #1937 - Use package private field injection
  • #1928 - Add cause exception type to DLQ headers
  • #1927 - Jakarta script: remove java 8 and ignore changes in all revapi.json
  • #1926 - Support tracing metadata with cloud events

4.0.0.RC4

30 Sep 13:52
e26e2d8

Choose a tag to compare

4.0.0.RC4 Pre-release
Pre-release

Jakarta release on top of 3.20.0

3.21.0.RC1

30 Sep 15:40
504f9b8

Choose a tag to compare

3.21.0.RC1 Pre-release
Pre-release
[RELEASE] - Bump version to 3.21.0.RC1

3.20.0

26 Sep 11:44
c4b4788

Choose a tag to compare

Changelog

  • #1912 - Restore PublisherDecorator to the providers package.
  • #1909 - Kafka client.id prefix attribute
  • #1890 - Drop Java 8 support

Breaking Changes

  • class io.smallrye.reactive.messaging.kafka.KafkaConnector updated to class io.smallrye.reactive.messaging.kafka.KafkaConnector: Added client-id-prefix to connector attributes

4.0.0.RC3

20 Sep 10:25
9b394c7

Choose a tag to compare

4.0.0.RC3 Pre-release
Pre-release
[RELEASE] - Bump version to 4.0.0.RC3

4.0.0.RC2

19 Sep 09:13
feb8477

Choose a tag to compare

4.0.0.RC2 Pre-release
Pre-release
[RELEASE] - Bump version to 4.0.0.RC2

3.19.1

19 Sep 09:32
6732f4e

Choose a tag to compare

Changelog

  • #1895 - Fix for possible request starvation for multiple partitions consumer
  • #1894 - Cancel the subscriber subscription when the application terminates
  • #1893 - Bump jackson-databind from 2.8.8 to 2.12.6.1 in /examples/rabbitmq-quickstart
  • #1889 - Add method as string to message processing exception

3.19.0

12 Sep 20:54
ae460a0

Choose a tag to compare

Changelog

  • #1880 - Emit message (n)acks on message context
  • #1876 - Fix for context propagation issue
  • #1875 - Minor improvements kafka tests
  • #1874 - Improve the handling of AMQP Client Options customizers
  • #1869 - MQTT support shared subscription feature
  • #1868 - MQTT should support shared subscription feature
  • #1859 - Fix #1858 - NPE from incoming null header
  • #1858 - NPE when incoming (kafka) Header.value() is null
  • #1856 - Decorator API for Publisher & Subscribers, Outgoing Message Interceptors
  • #1853 - Update the Vert.x Mutiny bindings to version 2.26.0
  • #1849 - Ignore null-values in headers
  • #1844 - Kafka Companion: always pass the failure to the AssertionError
  • #1838 - Kafka commit and failure SPI
  • #1837 - Mutiny 1.7.0 with no prefetch concatmap
  • #1822 - Kafka companion Improvements
  • #1808 - Kafka consumer client per partition
  • #1807 - MutinyEmitter Message methods
  • #1806 - Convert IncomingRabbitMQMessage payload eagerly
  • #1783 - Remove the dependency on the Vert.x Kafka Client

Breaking Changes

  • parameter void io.smallrye.reactive.messaging.providers.wiring.Wiring::prepare(boolean, io.smallrye.reactive.messaging.ChannelRegistry, ===java.util.List<io.smallrye.reactive.messaging.providers.extension.EmitterConfiguration>===, java.util.List<io.smallrye.reactive.messaging.providers.extension.ChannelConfiguration>, java.util.List<io.smallrye.reactive.messaging.MediatorConfiguration>) updated to parameter void io.smallrye.reactive.messaging.providers.wiring.Wiring::prepare(boolean, io.smallrye.reactive.messaging.ChannelRegistry, ===java.util.List<io.smallrye.reactive.messaging.EmitterConfiguration>===, java.util.List<io.smallrye.reactive.messaging.providers.extension.ChannelConfiguration>, java.util.List<io.smallrye.reactive.messaging.MediatorConfiguration>): EmitterConfiguration moved to api module
  • method io.smallrye.mutiny.Multi<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.providers.locals.ContextDecorator::decorate(io.smallrye.mutiny.Multi<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>, java.lang.String) updated to method io.smallrye.mutiny.Multi<? extends org.eclipse.microprofile.reactive.messaging.Message<?>> io.smallrye.reactive.messaging.providers.locals.ContextDecorator::decorate(io.smallrye.mutiny.Multi<? extends org.eclipse.microprofile.reactive.messaging.Message<?>>, java.lang.String, boolean): PublisherDecorator adds 3rd parameter boolean isConnector
  • class io.smallrye.reactive.messaging.providers.locals.ContextDecorator updated to class io.smallrye.reactive.messaging.providers.locals.ContextDecorator: PublisherDecorator moved to api module
  • method void io.smallrye.reactive.messaging.kafka.IncomingKafkaRecord<K, T>::<init>(org.apache.kafka.clients.consumer.ConsumerRecord<K, T>, java.lang.String, io.smallrye.reactive.messaging.kafka.commit.KafkaCommitHandler, io.smallrye.reactive.messaging.kafka.fault.KafkaFailureHandler, boolean, boolean) updated to method void io.smallrye.reactive.messaging.kafka.IncomingKafkaRecord<K, T>::<init>(org.apache.kafka.clients.consumer.ConsumerRecord<K, T>, java.lang.String, int, io.smallrye.reactive.messaging.kafka.commit.KafkaCommitHandler, io.smallrye.reactive.messaging.kafka.fault.KafkaFailureHandler, boolean, boolean): Consumer index added to IncomingKafkaRecord constructor
  • method void io.smallrye.reactive.messaging.kafka.IncomingKafkaRecordBatch<K, T>::<init>(org.apache.kafka.clients.consumer.ConsumerRecords<K, T>, java.lang.String, io.smallrye.reactive.messaging.kafka.commit.KafkaCommitHandler, io.smallrye.reactive.messaging.kafka.fault.KafkaFailureHandler, boolean, boolean) updated to method void io.smallrye.reactive.messaging.kafka.IncomingKafkaRecordBatch<K, T>::<init>(org.apache.kafka.clients.consumer.ConsumerRecords<K, T>, java.lang.String, int, io.smallrye.reactive.messaging.kafka.commit.KafkaCommitHandler, io.smallrye.reactive.messaging.kafka.fault.KafkaFailureHandler, boolean, boolean): Consumer index added to IncomingKafkaRecordBatch constructor
  • method <K, V> java.util.List<io.smallrye.reactive.messaging.kafka.KafkaConsumer<K, V>> io.smallrye.reactive.messaging.kafka.KafkaClientService::getConsumers(java.lang.String) has been introduced: Added getConsumers method which returns the list of consumers for a given channel
  • method io.smallrye.mutiny.Uni<java.lang.Void> io.smallrye.reactive.messaging.kafka.KafkaConsumer<K, V>::commitAsync(java.util.Map<org.apache.kafka.common.TopicPartition, org.apache.kafka.clients.consumer.OffsetAndMetadata>) has been introduced: Added to KafkaConsumer interface
  • method java.util.Map<java.lang.String, ?> io.smallrye.reactive.messaging.kafka.KafkaConsumer<K, V>::configuration() has been introduced: Added to KafkaConsumer interface
  • method void io.smallrye.reactive.messaging.kafka.KafkaProducer<K, V>::close() has been introduced: Added to KafkaProducer interface
  • method java.util.Map<java.lang.String, ?> io.smallrye.reactive.messaging.kafka.KafkaProducer<K, V>::configuration() has been introduced: Added to KafkaProducer interface
  • method void io.smallrye.reactive.messaging.kafka.IncomingKafkaRecord<K, T>::injectTracingMetadata(io.smallrye.reactive.messaging.TracingMetadata) has been removed: Method replaced by injectMetadata on IncomingKafkaRecord
  • method <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 interface
  • method <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 interface
  • method <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 interface
  • method java.util.Map<org.apache.kafka.common.TopicPartition, java.lang.Long> io.smallrye.reactive.messaging.kafka.companion.ConsumerBuilder<K, V>::position() updated to method java.util.Map<org.apache.kafka.common.TopicPartition, org.apache.kafka.clients.consumer.OffsetAndMetadata> io.smallrye.reactive.messaging.kafka.companion.ConsumerBuilder<K, V>::position(): Returns OffsetMetadata instead of offset
  • parameter void io.smallrye.reactive.messaging.kafka.companion.ProducerBuilder<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, ===java.lang.Class<? extends org.apache.kafka.common.serialization.Serializer<?>>===, java.lang.Class<? extends org.apache.kafka.common.serialization.Serializer<?>>) updated to parameter void io.smallrye.reactive.messaging.kafka.companion.ProducerBuilder<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, ===java.lang.String===, java.lang.String): Serializer Class based constructor replaced with class name
  • parameter void io.smallrye.reactive.messaging.kafka.companion.ProducerBuilder<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, java.lang.Class<? extends org.apache.kafka.common.serialization.Serializer<?>>, ===java.lang.Class<? extends org.apache.kafka.common.serialization.Serializer<?>>===) updated to parameter void io.smallrye.reactive.messaging.kafka.companion.ProducerBuilder<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, java.lang.String, ===java.lang.String===): Serializer Class based constructor replaced with class name
  • parameter void io.smallrye.reactive.messaging.kafka.companion.ConsumerBuilder<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, ===java.lang.Class<? extends org.apache.kafka.common.serialization.Deserializer<?>>===, java.lang.Class<? extends org.apache.kafka.common.serialization.Deserializer<?>>) updated to parameter void io.smallrye.reactive.messaging.kafka.companion.ConsumerBuilder<K, V>::<init>(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, ===java.lang.String===, java.lang.String): Deserializer Class based constructor replaced with class name
  • `parameter void io.smallrye.reactive.messaging.kafka.companion.ConsumerBuilder<K, V>::(java.util.Map<java.lang.String, java.lang.Object>, java.time.Duration, java.lang.Class<?...
Read more