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"));

Reply via email to