This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch 3.40.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/3.40.x by this push:
new 5f19ab7a554 Make Debezium build steps compatible with Debezium 3.6.x
and 3.7.x
5f19ab7a554 is described below
commit 5f19ab7a554a04cae40f034c4f50f4fcf12beb45
Author: James Netherton <[email protected]>
AuthorDate: Mon Nov 9 15:27:27 2026 +0000
Make Debezium build steps compatible with Debezium 3.6.x and 3.7.x
Backport the DebeziumSupportProcessor improvements from main without
upgrading to Debezium 3.7.x, so that the extensions keep working if the
Quarkus Platform upgrades Debezium.
* Register NotificationChannel implementations via service provider
discovery instead of hard coding the channel classes
* Register OffsetStoreProvider service providers (new in Debezium 3.7).
The SPI name is referenced as a string so that the code still compiles
against Debezium 3.6.x, where no providers exist
Co-authored-by: Claude Opus 5.5 <[email protected]>
---
.../deployment/DebeziumSupportProcessor.java | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git
a/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
index 33fccdf8a1b..248e0256449 100644
---
a/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
+++
b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/deployment/DebeziumSupportProcessor.java
@@ -20,9 +20,7 @@ import io.debezium.connector.base.DefaultQueueProvider;
import io.debezium.connector.common.BaseSourceTask;
import io.debezium.embedded.async.ConvertingAsyncEngineBuilderFactory;
import io.debezium.engine.DebeziumEngine;
-import io.debezium.pipeline.notification.channels.LogNotificationChannel;
-import io.debezium.pipeline.notification.channels.SinkNotificationChannel;
-import io.debezium.pipeline.notification.channels.jmx.JmxNotificationChannel;
+import io.debezium.pipeline.notification.channels.NotificationChannel;
import io.debezium.pipeline.signal.actions.SignalActionProvider;
import io.debezium.pipeline.signal.actions.StandardActionProvider;
import io.debezium.pipeline.signal.channels.FileSignalChannel;
@@ -106,9 +104,6 @@ public class DebeziumSupportProcessor {
DefaultTransactionMetadataFactory.class,
SchemaTopicNamingStrategy.class,
BaseSourceTask.class,
- SinkNotificationChannel.class,
- LogNotificationChannel.class,
- JmxNotificationChannel.class,
SnapshotLock.class,
NoLockingSupport.class,
AlwaysSnapshotter.class,
@@ -142,6 +137,17 @@ public class DebeziumSupportProcessor {
return
ServiceProviderBuildItem.allProvidersFromClassPath(SignalActionProvider.class.getName());
}
+ @BuildStep
+ ServiceProviderBuildItem registerNotificationChannelProviders() {
+ return
ServiceProviderBuildItem.allProvidersFromClassPath(NotificationChannel.class.getName());
+ }
+
+ @BuildStep
+ ServiceProviderBuildItem registerOffsetStoreProviders() {
+ // Debezium 3.7+ SPI. Referenced by name so that this compiles against
Debezium 3.6.x
+ return
ServiceProviderBuildItem.allProvidersFromClassPath("io.debezium.spi.storage.OffsetStoreProvider");
+ }
+
@BuildStep
void
registerNativeImageResources(BuildProducer<NativeImageResourceBuildItem>
resources) {
resources.produce(new NativeImageResourceBuildItem(
@@ -151,8 +157,6 @@ public class DebeziumSupportProcessor {
resources.produce(new
NativeImageResourceBuildItem("META-INF/services/io.debezium.spi.snapshot.Snapshotter"));
resources.produce(
new
NativeImageResourceBuildItem("META-INF/services/io.debezium.pipeline.signal.channels.SignalChannelReader"));
- resources.produce(new NativeImageResourceBuildItem(
-
"META-INF/services/io.debezium.pipeline.notification.channels.NotificationChannel"));
resources.produce(new
NativeImageResourceBuildItem("META-INF/services/io.debezium.processors.PostProcessorProducer"));
resources.produce(new
NativeImageResourceBuildItem("META-INF/services/io.debezium.snapshot.spi.SnapshotLock"));