Newest Quarkus version (2.6.3) reactive messaging error
I recently upgraded to the newest Quarkus version and seem to be having some issues with the configuration of Smallrye's reactive messaging. Prior to 2.6.3, the connector has always been smallrye-kafka, but it seems I am having a strange error now when I run my application in that it cannot identify that as a known Kafka connector?
Error:
[error]: Build step io.quarkus.arc.deployment.ArcProcessor#generateResources threw an exception: javax.enterprise.inject.spi.DeploymentException: Found 2 deployment problems:
[1] The channel 'kafka-data' is configured with an unknown connector (smallrye-kafka)
[2] The channel 'dlq-data' is configured with an unknown connector (smallrye-kafka)
This is my configuration (real values omitted for demonstration purposes):
mp:
messaging:
incoming:
dlq-data:
health-topic-verification-enabled: true
connector: smallrye-kafka
topic: ${kafka.topic.dlq}
failure-strategy: ignore
broadcast: true
value:
deserializer: myOwnCustomDeserializer
auto:
offset:
reset: earliest
enable:
auto:
commit: false
group:
id: someGroupID
kafka-data:
health-topic-verification-enabled: true
connector: smallrye-kafka
topic: ${kafka.topic.fulfillment}
failure-strategy: dead-letter-queue
dead-letter-queue:
topic: ${kafka.topic.dlq}
value:
serializer: io.quarkus.kafka.client.serialization.ObjectMapperSerializer
broadcast: true
value:
deserializer: myOwnCustomDeserializer
auto:
offset:
reset: earliest
enable:
auto:
commit: false
group:
id: someGroupId
The only thing I can gather from the official documentation is that some reactive messaging packages were split but there is no mention about this connector changing (seeing that I'm sure it did not change).
As mentioned in the comment, make sure you have the connector you want to use in the classpath. If you are using Quarkus, there are "extensions" for the connectors.
For Kafka, use:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-reactive-messaging-kafka</artifactId>
</dependency>