You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/01/14 16:35:19 UTC
[camel] branch main updated: CAMEL-17490: Upgrade to debezium 1.8
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 63366e9 CAMEL-17490: Upgrade to debezium 1.8
63366e9 is described below
commit 63366e9bc2272b5915d64da64deddee2e9660303
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Jan 14 17:33:51 2022 +0100
CAMEL-17490: Upgrade to debezium 1.8
---
.../camel-debezium-common-component/pom.xml | 8 ++
.../camel/component/debezium/DebeziumConsumer.java | 4 +-
.../DebeziumMongodbComponentConfigurer.java | 12 +++
.../DebeziumMongodbEndpointConfigurer.java | 12 +++
.../DebeziumMongodbEndpointUriFactory.java | 4 +-
...goDbConnectorEmbeddedDebeziumConfiguration.java | 34 +++++++
.../camel/component/debezium/debezium-mongodb.json | 8 +-
.../debezium/DebeziumMySqlComponentConfigurer.java | 24 +++++
.../debezium/DebeziumMySqlEndpointConfigurer.java | 24 +++++
.../debezium/DebeziumMySqlEndpointUriFactory.java | 92 ++++++++++---------
...ySqlConnectorEmbeddedDebeziumConfiguration.java | 71 ++++++++++++++
.../camel/component/debezium/debezium-mysql.json | 12 ++-
.../DebeziumPostgresComponentConfigurer.java | 36 ++++++--
.../DebeziumPostgresEndpointConfigurer.java | 36 ++++++--
.../DebeziumPostgresEndpointUriFactory.java | 8 +-
...gresConnectorEmbeddedDebeziumConfiguration.java | 101 ++++++++++++++++----
.../component/debezium/debezium-postgres.json | 12 ++-
.../DebeziumSqlserverComponentConfigurer.java | 36 ++++++++
.../DebeziumSqlserverEndpointConfigurer.java | 36 ++++++++
.../DebeziumSqlserverEndpointUriFactory.java | 8 +-
...rverConnectorEmbeddedDebeziumConfiguration.java | 102 +++++++++++++++++++++
.../component/debezium/debezium-sqlserver.json | 16 +++-
.../ROOT/pages/camel-3x-upgrade-guide-3_15.adoc | 4 +
parent/pom.xml | 2 +-
24 files changed, 615 insertions(+), 87 deletions(-)
diff --git a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml
index 2f3e482..0e07754 100644
--- a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml
+++ b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/pom.xml
@@ -36,6 +36,14 @@
</properties>
<dependencies>
+
+ <!-- kafka 3.x is required -->
+ <dependency>
+ <groupId>org.apache.kafka</groupId>
+ <artifactId>kafka-clients</artifactId>
+ <version>3.0.0</version>
+ </dependency>
+
<!-- test -->
<dependency>
<groupId>org.apache.camel</groupId>
diff --git a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java
index 2ed84a8..71f06b7 100644
--- a/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java
+++ b/components/camel-debezium/camel-debezium-common/camel-debezium-common-component/src/main/java/org/apache/camel/component/debezium/DebeziumConsumer.java
@@ -57,7 +57,9 @@ public class DebeziumConsumer extends DefaultConsumer {
@Override
protected void doStop() throws Exception {
- dbzEngine.close();
+ if (dbzEngine != null) {
+ dbzEngine.close();
+ }
// shutdown the thread pool gracefully
getEndpoint().getCamelContext().getExecutorServiceManager().shutdownGraceful(executorService);
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
index 5103b28..cce722b 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
@@ -34,6 +34,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
case "bridgeerrorhandler":
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+ case "capturemode":
+ case "captureMode": getOrCreateConfiguration(target).setCaptureMode(property(camelContext, java.lang.String.class, value)); return true;
case "collectionexcludelist":
case "collectionExcludeList": getOrCreateConfiguration(target).setCollectionExcludeList(property(camelContext, java.lang.String.class, value)); return true;
case "collectionincludelist":
@@ -144,6 +146,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
default: return false;
}
}
@@ -157,6 +161,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "autowiredEnabled": return boolean.class;
case "bridgeerrorhandler":
case "bridgeErrorHandler": return boolean.class;
+ case "capturemode":
+ case "captureMode": return java.lang.String.class;
case "collectionexcludelist":
case "collectionExcludeList": return java.lang.String.class;
case "collectionincludelist":
@@ -267,6 +273,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "sourceStructVersion": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
default: return null;
}
}
@@ -281,6 +289,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "autowiredEnabled": return target.isAutowiredEnabled();
case "bridgeerrorhandler":
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+ case "capturemode":
+ case "captureMode": return getOrCreateConfiguration(target).getCaptureMode();
case "collectionexcludelist":
case "collectionExcludeList": return getOrCreateConfiguration(target).getCollectionExcludeList();
case "collectionincludelist":
@@ -391,6 +401,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "sourceStructVersion": return getOrCreateConfiguration(target).getSourceStructVersion();
case "tombstonesondelete":
case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
default: return null;
}
}
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
index ad1af2b..72fd4ac 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
@@ -25,6 +25,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "additionalProperties": target.getConfiguration().setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
case "bridgeerrorhandler":
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+ case "capturemode":
+ case "captureMode": target.getConfiguration().setCaptureMode(property(camelContext, java.lang.String.class, value)); return true;
case "collectionexcludelist":
case "collectionExcludeList": target.getConfiguration().setCollectionExcludeList(property(camelContext, java.lang.String.class, value)); return true;
case "collectionincludelist":
@@ -138,6 +140,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "sourceStructVersion": target.getConfiguration().setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
default: return false;
}
}
@@ -149,6 +153,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "additionalProperties": return java.util.Map.class;
case "bridgeerrorhandler":
case "bridgeErrorHandler": return boolean.class;
+ case "capturemode":
+ case "captureMode": return java.lang.String.class;
case "collectionexcludelist":
case "collectionExcludeList": return java.lang.String.class;
case "collectionincludelist":
@@ -262,6 +268,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "sourceStructVersion": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
default: return null;
}
}
@@ -274,6 +282,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "additionalProperties": return target.getConfiguration().getAdditionalProperties();
case "bridgeerrorhandler":
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+ case "capturemode":
+ case "captureMode": return target.getConfiguration().getCaptureMode();
case "collectionexcludelist":
case "collectionExcludeList": return target.getConfiguration().getCollectionExcludeList();
case "collectionincludelist":
@@ -387,6 +397,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "sourceStructVersion": return target.getConfiguration().getSourceStructVersion();
case "tombstonesondelete":
case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return target.getConfiguration().getTransactionTopic();
default: return null;
}
}
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java
index 1ff05e2..a064a24 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class DebeziumMongodbEndpointUriFactory extends org.apache.camel.support.
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(60);
+ Set<String> props = new HashSet<>(62);
props.add("mongodbServerSelectionTimeoutMs");
props.add("maxBatchSize");
props.add("internalKeyConverter");
@@ -54,6 +54,7 @@ public class DebeziumMongodbEndpointUriFactory extends org.apache.camel.support.
props.add("snapshotFetchSize");
props.add("offsetStoragePartitions");
props.add("databaseExcludeList");
+ props.add("captureMode");
props.add("additionalProperties");
props.add("offsetStorageReplicationFactor");
props.add("exceptionHandler");
@@ -61,6 +62,7 @@ public class DebeziumMongodbEndpointUriFactory extends org.apache.camel.support.
props.add("snapshotIncludeCollectionList");
props.add("databaseHistoryFileFilename");
props.add("cursorMaxAwaitTimeMs");
+ props.add("transactionTopic");
props.add("offsetStorage");
props.add("internalValueConverter");
props.add("snapshotMaxThreads");
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
index 0e1c5db..4839bcf 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
@@ -69,6 +69,8 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
private String collectionIncludeList;
@UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
private long retriableRestartConnectorWaitMs = 10000;
+ @UriParam(label = LABEL_NAME, defaultValue = "change_streams_update_full")
+ private String captureMode = "change_streams_update_full";
@UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
private long snapshotDelayMs = 0;
@UriParam(label = LABEL_NAME, defaultValue = "false")
@@ -89,6 +91,8 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
private int connectMaxAttempts = 16;
@UriParam(label = LABEL_NAME, defaultValue = "0")
private long maxQueueSizeInBytes = 0;
+ @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+ private String transactionTopic = "${database.server.name}.transaction";
@UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
private int mongodbSocketTimeoutMs = 0;
@UriParam(label = LABEL_NAME, defaultValue = "fail")
@@ -456,6 +460,21 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The method used to capture changes from MongoDB server. Options include:
+ * 'oplog' to capture changes from the oplog; 'change_streams' to capture
+ * changes via MongoDB Change Streams, update events do not contain full
+ * documents; 'change_streams_update_full' (the default) to capture changes
+ * via MongoDB Change Streams, update events contain full documents
+ */
+ public void setCaptureMode(String captureMode) {
+ this.captureMode = captureMode;
+ }
+
+ public String getCaptureMode() {
+ return captureMode;
+ }
+
+ /**
* A delay period before a snapshot will begin, given in milliseconds.
* Defaults to 0 ms.
*/
@@ -584,6 +603,19 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The name of the transaction metadata topic. The placeholder
+ * ${database.server.name} can be used for referring to the connector's
+ * logical name; defaults to ${database.server.name}.transaction.
+ */
+ public void setTransactionTopic(String transactionTopic) {
+ this.transactionTopic = transactionTopic;
+ }
+
+ public String getTransactionTopic() {
+ return transactionTopic;
+ }
+
+ /**
* The socket timeout, given in milliseconds. Defaults to 0 ms.
*/
public void setMongodbSocketTimeoutMs(int mongodbSocketTimeoutMs) {
@@ -707,6 +739,7 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
addPropertyIfNotNull(configBuilder, "collection.include.list", collectionIncludeList);
addPropertyIfNotNull(configBuilder, "retriable.restart.connector.wait.ms", retriableRestartConnectorWaitMs);
+ addPropertyIfNotNull(configBuilder, "capture.mode", captureMode);
addPropertyIfNotNull(configBuilder, "snapshot.delay.ms", snapshotDelayMs);
addPropertyIfNotNull(configBuilder, "provide.transaction.metadata", provideTransactionMetadata);
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
@@ -717,6 +750,7 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
addPropertyIfNotNull(configBuilder, "connect.max.attempts", connectMaxAttempts);
addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+ addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
addPropertyIfNotNull(configBuilder, "mongodb.socket.timeout.ms", mongodbSocketTimeoutMs);
addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
addPropertyIfNotNull(configBuilder, "mongodb.name", mongodbName);
diff --git a/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json b/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
index 47aa6ea..dbe8461 100644
--- a/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
+++ b/components/camel-debezium/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
@@ -36,6 +36,7 @@
"offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offse [...]
"offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. [...]
"autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+ "captureMode": { "kind": "property", "displayName": "Capture Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "change_streams_update_full", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The method used to cap [...]
"collectionExcludeList": { "kind": "property", "displayName": "Collection Exclude List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions t [...]
"collectionIncludeList": { "kind": "property", "displayName": "Collection Include List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions t [...]
"connectBackoffInitialDelayMs": { "kind": "property", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1s", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay w [...]
@@ -80,7 +81,8 @@
"snapshotMaxThreads": { "kind": "property", "displayName": "Snapshot Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of threads used to perform [...]
"snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upo [...]
"sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of th [...]
- "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be re [...]
+ "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be re [...]
+ "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
},
"properties": {
"name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the sam [...]
@@ -98,6 +100,7 @@
"offsetStorageTopic": { "kind": "parameter", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. [...]
"exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
"exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+ "captureMode": { "kind": "parameter", "displayName": "Capture Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "change_streams_update_full", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The method used to ca [...]
"collectionExcludeList": { "kind": "parameter", "displayName": "Collection Exclude List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions [...]
"collectionIncludeList": { "kind": "parameter", "displayName": "Collection Include List", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular expressions [...]
"connectBackoffInitialDelayMs": { "kind": "parameter", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1s", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay [...]
@@ -142,6 +145,7 @@
"snapshotMaxThreads": { "kind": "parameter", "displayName": "Snapshot Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of threads used to perform [...]
"snapshotMode": { "kind": "parameter", "displayName": "Snapshot Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot up [...]
"sourceStructVersion": { "kind": "parameter", "displayName": "Source Struct Version", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of t [...]
- "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be r [...]
+ "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be r [...]
+ "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Th [...]
}
}
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
index bec0871..6e79d8d 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
@@ -124,6 +124,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "gtidSourceFilterDmlEvents": getOrCreateConfiguration(target).setGtidSourceFilterDmlEvents(property(camelContext, boolean.class, value)); return true;
case "gtidsourceincludes":
case "gtidSourceIncludes": getOrCreateConfiguration(target).setGtidSourceIncludes(property(camelContext, java.lang.String.class, value)); return true;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": getOrCreateConfiguration(target).setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
case "heartbeatintervalms":
case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
case "heartbeattopicsprefix":
@@ -132,8 +134,12 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "includeQuery": getOrCreateConfiguration(target).setIncludeQuery(property(camelContext, boolean.class, value)); return true;
case "includeschemachanges":
case "includeSchemaChanges": getOrCreateConfiguration(target).setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+ case "includeschemacomments":
+ case "includeSchemaComments": getOrCreateConfiguration(target).setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
case "inconsistentschemahandlingmode":
case "inconsistentSchemaHandlingMode": getOrCreateConfiguration(target).setInconsistentSchemaHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": getOrCreateConfiguration(target).setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
case "incrementalsnapshotchunksize":
case "incrementalSnapshotChunkSize": getOrCreateConfiguration(target).setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
case "internalkeyconverter":
@@ -214,6 +220,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
default: return false;
}
}
@@ -317,6 +325,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "gtidSourceFilterDmlEvents": return boolean.class;
case "gtidsourceincludes":
case "gtidSourceIncludes": return java.lang.String.class;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return java.lang.String.class;
case "heartbeatintervalms":
case "heartbeatIntervalMs": return int.class;
case "heartbeattopicsprefix":
@@ -325,8 +335,12 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "includeQuery": return boolean.class;
case "includeschemachanges":
case "includeSchemaChanges": return boolean.class;
+ case "includeschemacomments":
+ case "includeSchemaComments": return boolean.class;
case "inconsistentschemahandlingmode":
case "inconsistentSchemaHandlingMode": return java.lang.String.class;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
case "incrementalsnapshotchunksize":
case "incrementalSnapshotChunkSize": return int.class;
case "internalkeyconverter":
@@ -407,6 +421,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "timePrecisionMode": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
default: return null;
}
}
@@ -511,6 +527,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "gtidSourceFilterDmlEvents": return getOrCreateConfiguration(target).isGtidSourceFilterDmlEvents();
case "gtidsourceincludes":
case "gtidSourceIncludes": return getOrCreateConfiguration(target).getGtidSourceIncludes();
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return getOrCreateConfiguration(target).getHeartbeatActionQuery();
case "heartbeatintervalms":
case "heartbeatIntervalMs": return getOrCreateConfiguration(target).getHeartbeatIntervalMs();
case "heartbeattopicsprefix":
@@ -519,8 +537,12 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "includeQuery": return getOrCreateConfiguration(target).isIncludeQuery();
case "includeschemachanges":
case "includeSchemaChanges": return getOrCreateConfiguration(target).isIncludeSchemaChanges();
+ case "includeschemacomments":
+ case "includeSchemaComments": return getOrCreateConfiguration(target).isIncludeSchemaComments();
case "inconsistentschemahandlingmode":
case "inconsistentSchemaHandlingMode": return getOrCreateConfiguration(target).getInconsistentSchemaHandlingMode();
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return getOrCreateConfiguration(target).isIncrementalSnapshotAllowSchemaChanges();
case "incrementalsnapshotchunksize":
case "incrementalSnapshotChunkSize": return getOrCreateConfiguration(target).getIncrementalSnapshotChunkSize();
case "internalkeyconverter":
@@ -601,6 +623,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "timePrecisionMode": return getOrCreateConfiguration(target).getTimePrecisionMode();
case "tombstonesondelete":
case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
default: return null;
}
}
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
index a4fb85f..d305ae6 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
@@ -118,6 +118,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "gtidSourceFilterDmlEvents": target.getConfiguration().setGtidSourceFilterDmlEvents(property(camelContext, boolean.class, value)); return true;
case "gtidsourceincludes":
case "gtidSourceIncludes": target.getConfiguration().setGtidSourceIncludes(property(camelContext, java.lang.String.class, value)); return true;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": target.getConfiguration().setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
case "heartbeatintervalms":
case "heartbeatIntervalMs": target.getConfiguration().setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
case "heartbeattopicsprefix":
@@ -126,8 +128,12 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "includeQuery": target.getConfiguration().setIncludeQuery(property(camelContext, boolean.class, value)); return true;
case "includeschemachanges":
case "includeSchemaChanges": target.getConfiguration().setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+ case "includeschemacomments":
+ case "includeSchemaComments": target.getConfiguration().setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
case "inconsistentschemahandlingmode":
case "inconsistentSchemaHandlingMode": target.getConfiguration().setInconsistentSchemaHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": target.getConfiguration().setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
case "incrementalsnapshotchunksize":
case "incrementalSnapshotChunkSize": target.getConfiguration().setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
case "internalkeyconverter":
@@ -208,6 +214,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "timePrecisionMode": target.getConfiguration().setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
default: return false;
}
}
@@ -312,6 +320,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "gtidSourceFilterDmlEvents": return boolean.class;
case "gtidsourceincludes":
case "gtidSourceIncludes": return java.lang.String.class;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return java.lang.String.class;
case "heartbeatintervalms":
case "heartbeatIntervalMs": return int.class;
case "heartbeattopicsprefix":
@@ -320,8 +330,12 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "includeQuery": return boolean.class;
case "includeschemachanges":
case "includeSchemaChanges": return boolean.class;
+ case "includeschemacomments":
+ case "includeSchemaComments": return boolean.class;
case "inconsistentschemahandlingmode":
case "inconsistentSchemaHandlingMode": return java.lang.String.class;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
case "incrementalsnapshotchunksize":
case "incrementalSnapshotChunkSize": return int.class;
case "internalkeyconverter":
@@ -402,6 +416,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "timePrecisionMode": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
default: return null;
}
}
@@ -507,6 +523,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "gtidSourceFilterDmlEvents": return target.getConfiguration().isGtidSourceFilterDmlEvents();
case "gtidsourceincludes":
case "gtidSourceIncludes": return target.getConfiguration().getGtidSourceIncludes();
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return target.getConfiguration().getHeartbeatActionQuery();
case "heartbeatintervalms":
case "heartbeatIntervalMs": return target.getConfiguration().getHeartbeatIntervalMs();
case "heartbeattopicsprefix":
@@ -515,8 +533,12 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "includeQuery": return target.getConfiguration().isIncludeQuery();
case "includeschemachanges":
case "includeSchemaChanges": return target.getConfiguration().isIncludeSchemaChanges();
+ case "includeschemacomments":
+ case "includeSchemaComments": return target.getConfiguration().isIncludeSchemaComments();
case "inconsistentschemahandlingmode":
case "inconsistentSchemaHandlingMode": return target.getConfiguration().getInconsistentSchemaHandlingMode();
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return target.getConfiguration().isIncrementalSnapshotAllowSchemaChanges();
case "incrementalsnapshotchunksize":
case "incrementalSnapshotChunkSize": return target.getConfiguration().getIncrementalSnapshotChunkSize();
case "internalkeyconverter":
@@ -597,6 +619,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "timePrecisionMode": return target.getConfiguration().getTimePrecisionMode();
case "tombstonesondelete":
case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return target.getConfiguration().getTransactionTopic();
default: return null;
}
}
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java
index e8aea73..ae591ba 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointUriFactory.java
@@ -20,100 +20,104 @@ public class DebeziumMySqlEndpointUriFactory extends org.apache.camel.support.co
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(95);
+ Set<String> props = new HashSet<>(99);
props.add("databaseJdbcDriver");
+ props.add("snapshotDelayMs");
+ props.add("snapshotLockingMode");
+ props.add("databaseSslTruststorePassword");
+ props.add("converters");
+ props.add("heartbeatIntervalMs");
+ props.add("decimalHandlingMode");
+ props.add("skippedOperations");
+ props.add("sourceStructVersion");
+ props.add("binaryHandlingMode");
+ props.add("bigintUnsignedHandlingMode");
+ props.add("databaseHostname");
+ props.add("snapshotSelectStatementOverrides");
+ props.add("databaseIncludeList");
+ props.add("gtidSourceFilterDmlEvents");
+ props.add("columnBlacklist");
+ props.add("snapshotFetchSize");
+ props.add("offsetStoragePartitions");
+ props.add("databaseExcludeList");
+ props.add("additionalProperties");
+ props.add("heartbeatActionQuery");
+ props.add("databasePort");
+ props.add("databaseUser");
+ props.add("snapshotIncludeCollectionList");
+ props.add("databaseHistory");
+ props.add("includeQuery");
+ props.add("databaseHistoryStoreOnlyCapturedTablesDdl");
+ props.add("transactionTopic");
+ props.add("includeSchemaChanges");
+ props.add("internalValueConverter");
+ props.add("retriableRestartConnectorWaitMs");
+ props.add("sanitizeFieldNames");
+ props.add("tableWhitelist");
+ props.add("tableIgnoreBuiltin");
+ props.add("signalDataCollection");
+ props.add("connectTimeoutMs");
+ props.add("databaseServerName");
+ props.add("tableBlacklist");
+ props.add("databaseSslKeystore");
+ props.add("tableExcludeList");
+ props.add("offsetCommitPolicy");
+ props.add("incrementalSnapshotChunkSize");
+ props.add("columnExcludeList");
+ props.add("gtidSourceIncludes");
+ props.add("connectKeepAliveIntervalMs");
+ props.add("databasePassword");
+ props.add("includeSchemaComments");
props.add("maxBatchSize");
props.add("internalKeyConverter");
- props.add("snapshotDelayMs");
props.add("offsetStorageTopic");
props.add("databaseSslMode");
props.add("bridgeErrorHandler");
- props.add("snapshotLockingMode");
props.add("datatypePropagateSourceType");
- props.add("databaseSslTruststorePassword");
props.add("provideTransactionMetadata");
- props.add("converters");
props.add("tombstonesOnDelete");
props.add("databaseHistoryKafkaBootstrapServers");
props.add("enableTimeAdjuster");
- props.add("heartbeatIntervalMs");
props.add("heartbeatTopicsPrefix");
props.add("databaseHistoryKafkaRecoveryPollIntervalMs");
- props.add("decimalHandlingMode");
- props.add("skippedOperations");
- props.add("sourceStructVersion");
- props.add("binaryHandlingMode");
- props.add("bigintUnsignedHandlingMode");
- props.add("databaseHostname");
props.add("databaseHistorySkipUnparseableDdl");
props.add("databaseSslKeystorePassword");
props.add("eventProcessingFailureHandlingMode");
props.add("offsetCommitTimeoutMs");
props.add("databaseServerId");
- props.add("snapshotSelectStatementOverrides");
- props.add("databaseIncludeList");
- props.add("gtidSourceFilterDmlEvents");
props.add("minRowCountToStreamResults");
props.add("offsetFlushIntervalMs");
props.add("offsetStorageFileName");
- props.add("columnBlacklist");
props.add("name");
- props.add("snapshotFetchSize");
- props.add("offsetStoragePartitions");
- props.add("databaseExcludeList");
props.add("eventDeserializationFailureHandlingMode");
- props.add("additionalProperties");
props.add("offsetStorageReplicationFactor");
props.add("databaseInitialStatements");
props.add("exceptionHandler");
- props.add("databasePort");
- props.add("databaseUser");
- props.add("snapshotIncludeCollectionList");
props.add("databaseHistoryFileFilename");
- props.add("databaseHistory");
- props.add("includeQuery");
props.add("columnPropagateSourceType");
- props.add("databaseHistoryStoreOnlyCapturedTablesDdl");
props.add("offsetStorage");
- props.add("includeSchemaChanges");
- props.add("internalValueConverter");
props.add("inconsistentSchemaHandlingMode");
props.add("snapshotMaxThreads");
- props.add("retriableRestartConnectorWaitMs");
props.add("maxQueueSize");
props.add("messageKeyColumns");
props.add("timePrecisionMode");
props.add("columnWhitelist");
props.add("pollIntervalMs");
- props.add("sanitizeFieldNames");
props.add("databaseHistoryKafkaTopic");
- props.add("tableWhitelist");
props.add("databaseHistoryStoreOnlyMonitoredTablesDdl");
- props.add("tableIgnoreBuiltin");
- props.add("signalDataCollection");
props.add("exchangePattern");
- props.add("connectTimeoutMs");
- props.add("databaseServerName");
+ props.add("incrementalSnapshotAllowSchemaChanges");
props.add("gtidSourceExcludes");
props.add("databaseSslTruststore");
- props.add("tableBlacklist");
props.add("connectKeepAlive");
props.add("queryFetchSize");
props.add("snapshotMode");
props.add("snapshotNewTables");
- props.add("databaseSslKeystore");
props.add("maxQueueSizeInBytes");
props.add("snapshotLockTimeoutMs");
- props.add("tableExcludeList");
- props.add("offsetCommitPolicy");
props.add("tableIncludeList");
- props.add("incrementalSnapshotChunkSize");
- props.add("columnExcludeList");
- props.add("gtidSourceIncludes");
props.add("columnIncludeList");
props.add("binlogBufferSize");
- props.add("connectKeepAliveIntervalMs");
- props.add("databasePassword");
props.add("databaseServerIdOffset");
props.add("databaseHistoryKafkaRecoveryAttempts");
PROPERTY_NAMES = Collections.unmodifiableSet(props);
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
index bdee5c9..aee336d 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
@@ -28,6 +28,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
private String gtidSourceIncludes;
@UriParam(label = LABEL_NAME, defaultValue = "class com.mysql.cj.jdbc.Driver")
private String databaseJdbcDriver = "com.mysql.cj.jdbc.Driver";
+ @UriParam(label = LABEL_NAME)
+ private String heartbeatActionQuery;
@UriParam(label = LABEL_NAME, defaultValue = "500ms", javaType = "java.time.Duration")
private long pollIntervalMs = 500;
@UriParam(label = LABEL_NAME, defaultValue = "100ms", javaType = "java.time.Duration")
@@ -70,6 +72,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
private String columnWhitelist;
@UriParam(label = LABEL_NAME)
private String databaseSslTruststorePassword;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean incrementalSnapshotAllowSchemaChanges = false;
@UriParam(label = LABEL_NAME)
private String columnIncludeList;
@UriParam(label = LABEL_NAME, defaultValue = "true")
@@ -125,6 +129,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
private String decimalHandlingMode = "precise";
@UriParam(label = LABEL_NAME, defaultValue = "bytes")
private String binaryHandlingMode = "bytes";
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean includeSchemaComments = false;
@UriParam(label = LABEL_NAME, defaultValue = "off")
private String snapshotNewTables = "off";
@UriParam(label = LABEL_NAME, defaultValue = "false")
@@ -141,6 +147,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
private long databaseServerId;
@UriParam(label = LABEL_NAME, defaultValue = "0")
private long maxQueueSizeInBytes = 0;
+ @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+ private String transactionTopic = "${database.server.name}.transaction";
@UriParam(label = LABEL_NAME, defaultValue = "adaptive_time_microseconds")
private String timePrecisionMode = "adaptive_time_microseconds";
@UriParam(label = LABEL_NAME, defaultValue = "fail")
@@ -296,6 +304,17 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The query executed with every heartbeat.
+ */
+ public void setHeartbeatActionQuery(String heartbeatActionQuery) {
+ this.heartbeatActionQuery = heartbeatActionQuery;
+ }
+
+ public String getHeartbeatActionQuery() {
+ return heartbeatActionQuery;
+ }
+
+ /**
* Time to wait for new change events to appear after receiving no events,
* given in milliseconds. Defaults to 500 ms.
*/
@@ -578,6 +597,25 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Detect schema change during an incremental snapshot and re-select a
+ * current chunk to avoid locking DDLs. Note that changes to a primary key
+ * are not supported and can cause incorrect results if performed during an
+ * incremental snapshot. Another limitation is that if a schema change
+ * affects only columns' default values, then the change won't be detected
+ * until the DDL is processed from the binlog stream. This doesn't affect
+ * the snapshot events' values, but the schema of snapshot events may have
+ * outdated defaults.
+ */
+ public void setIncrementalSnapshotAllowSchemaChanges(
+ boolean incrementalSnapshotAllowSchemaChanges) {
+ this.incrementalSnapshotAllowSchemaChanges = incrementalSnapshotAllowSchemaChanges;
+ }
+
+ public boolean isIncrementalSnapshotAllowSchemaChanges() {
+ return incrementalSnapshotAllowSchemaChanges;
+ }
+
+ /**
* Regular expressions matching columns to include in change events
*/
public void setColumnIncludeList(String columnIncludeList) {
@@ -939,6 +977,22 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether the connector parse table and column's comment to metadata
+ * object.Note: Enable this option will bring the implications on memory
+ * usage. The number and size of ColumnImpl objects is what largely impacts
+ * how much memory is consumed by the Debezium connectors, and adding a
+ * String to each of them can potentially be quite heavy. The default is
+ * 'false'.
+ */
+ public void setIncludeSchemaComments(boolean includeSchemaComments) {
+ this.includeSchemaComments = includeSchemaComments;
+ }
+
+ public boolean isIncludeSchemaComments() {
+ return includeSchemaComments;
+ }
+
+ /**
* BETA FEATURE: On connector restart, the connector will check if there
* have been any new tables added to the configuration, and snapshot them.
* There is presently only two options:'off': Default behavior. Do not
@@ -1056,6 +1110,19 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The name of the transaction metadata topic. The placeholder
+ * ${database.server.name} can be used for referring to the connector's
+ * logical name; defaults to ${database.server.name}.transaction.
+ */
+ public void setTransactionTopic(String transactionTopic) {
+ this.transactionTopic = transactionTopic;
+ }
+
+ public String getTransactionTopic() {
+ return transactionTopic;
+ }
+
+ /**
* Time, date and timestamps can be represented with different kinds of
* precisions, including:'adaptive_time_microseconds': the precision of date
* and timestamp values is based the database column's precision; but time
@@ -1291,6 +1358,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "include.schema.changes", includeSchemaChanges);
addPropertyIfNotNull(configBuilder, "gtid.source.includes", gtidSourceIncludes);
addPropertyIfNotNull(configBuilder, "database.jdbc.driver", databaseJdbcDriver);
+ addPropertyIfNotNull(configBuilder, "heartbeat.action.query", heartbeatActionQuery);
addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.poll.interval.ms", databaseHistoryKafkaRecoveryPollIntervalMs);
addPropertyIfNotNull(configBuilder, "signal.data.collection", signalDataCollection);
@@ -1312,6 +1380,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
addPropertyIfNotNull(configBuilder, "column.whitelist", columnWhitelist);
addPropertyIfNotNull(configBuilder, "database.ssl.truststore.password", databaseSslTruststorePassword);
+ addPropertyIfNotNull(configBuilder, "incremental.snapshot.allow.schema.changes", incrementalSnapshotAllowSchemaChanges);
addPropertyIfNotNull(configBuilder, "column.include.list", columnIncludeList);
addPropertyIfNotNull(configBuilder, "enable.time.adjuster", enableTimeAdjuster);
addPropertyIfNotNull(configBuilder, "column.propagate.source.type", columnPropagateSourceType);
@@ -1339,6 +1408,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+ addPropertyIfNotNull(configBuilder, "include.schema.comments", includeSchemaComments);
addPropertyIfNotNull(configBuilder, "snapshot.new.tables", snapshotNewTables);
addPropertyIfNotNull(configBuilder, "database.history.skip.unparseable.ddl", databaseHistorySkipUnparseableDdl);
addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
@@ -1347,6 +1417,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "bigint.unsigned.handling.mode", bigintUnsignedHandlingMode);
addPropertyIfNotNull(configBuilder, "database.server.id", databaseServerId);
addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+ addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
addPropertyIfNotNull(configBuilder, "event.deserialization.failure.handling.mode", eventDeserializationFailureHandlingMode);
addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
diff --git a/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json b/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
index 7244328..dad0a93 100644
--- a/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
+++ b/components/camel-debezium/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
@@ -81,11 +81,14 @@
"gtidSourceExcludes": { "kind": "property", "displayName": "Gtid Source Excludes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to exclude GTID ranges when determine [...]
"gtidSourceFilterDmlEvents": { "kind": "property", "displayName": "Gtid Source Filter Dml Events", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "If set to true, we will only [...]
"gtidSourceIncludes": { "kind": "property", "displayName": "Gtid Source Includes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to include GTID ranges when determine [...]
+ "heartbeatActionQuery": { "kind": "property", "displayName": "Heartbeat Action Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
"heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in [...]
"heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix th [...]
"includeQuery": { "kind": "property", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL que [...]
"includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish chan [...]
+ "includeSchemaComments": { "kind": "property", "displayName": "Include Schema Comments", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse table and [...]
"inconsistentSchemaHandlingMode": { "kind": "property", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify ho [...]
+ "incrementalSnapshotAllowSchemaChanges": { "kind": "property", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Dete [...]
"incrementalSnapshotChunkSize": { "kind": "property", "displayName": "Incremental Snapshot Chunk Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size of chunk fo [...]
"maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
"maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the dat [...]
@@ -115,7 +118,8 @@
"tableIncludeList": { "kind": "property", "displayName": "Table Include List", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecated, use tab [...]
"timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive_time_microseconds", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date and [...]
- "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represen [...]
+ "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represen [...]
+ "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name [...]
},
"properties": {
"name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the same [...]
@@ -178,11 +182,14 @@
"gtidSourceExcludes": { "kind": "parameter", "displayName": "Gtid Source Excludes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to exclude GTID ranges when determin [...]
"gtidSourceFilterDmlEvents": { "kind": "parameter", "displayName": "Gtid Source Filter Dml Events", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "If set to true, we will only [...]
"gtidSourceIncludes": { "kind": "parameter", "displayName": "Gtid Source Includes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to include GTID ranges when determin [...]
+ "heartbeatActionQuery": { "kind": "parameter", "displayName": "Heartbeat Action Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
"heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in [...]
"heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix t [...]
"includeQuery": { "kind": "parameter", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL qu [...]
"includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish cha [...]
+ "includeSchemaComments": { "kind": "parameter", "displayName": "Include Schema Comments", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse table and [...]
"inconsistentSchemaHandlingMode": { "kind": "parameter", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify h [...]
+ "incrementalSnapshotAllowSchemaChanges": { "kind": "parameter", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Det [...]
"incrementalSnapshotChunkSize": { "kind": "parameter", "displayName": "Incremental Snapshot Chunk Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size of chunk f [...]
"maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
"maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the da [...]
@@ -212,6 +219,7 @@
"tableIncludeList": { "kind": "parameter", "displayName": "Table Include List", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecated, use ta [...]
"timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive_time_microseconds", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date and [...]
- "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represe [...]
+ "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represe [...]
+ "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name [...]
}
}
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
index deebfe0..26da5f0 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
@@ -92,6 +92,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
case "hstorehandlingmode":
case "hstoreHandlingMode": getOrCreateConfiguration(target).setHstoreHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "includeschemacomments":
+ case "includeSchemaComments": getOrCreateConfiguration(target).setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
case "includeunknowndatatypes":
case "includeUnknownDatatypes": getOrCreateConfiguration(target).setIncludeUnknownDatatypes(property(camelContext, boolean.class, value)); return true;
case "incrementalsnapshotchunksize":
@@ -110,6 +112,10 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "maxQueueSizeInBytes": getOrCreateConfiguration(target).setMaxQueueSizeInBytes(property(camelContext, long.class, value)); return true;
case "messagekeycolumns":
case "messageKeyColumns": getOrCreateConfiguration(target).setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+ case "messageprefixexcludelist":
+ case "messagePrefixExcludeList": getOrCreateConfiguration(target).setMessagePrefixExcludeList(property(camelContext, java.lang.String.class, value)); return true;
+ case "messageprefixincludelist":
+ case "messagePrefixIncludeList": getOrCreateConfiguration(target).setMessagePrefixIncludeList(property(camelContext, java.lang.String.class, value)); return true;
case "offsetcommitpolicy":
case "offsetCommitPolicy": getOrCreateConfiguration(target).setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
case "offsetcommittimeoutms":
@@ -198,12 +204,14 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "tableWhitelist": getOrCreateConfiguration(target).setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
case "timeprecisionmode":
case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
- case "toastedvalueplaceholder":
- case "toastedValuePlaceholder": getOrCreateConfiguration(target).setToastedValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
case "truncatehandlingmode":
case "truncateHandlingMode": getOrCreateConfiguration(target).setTruncateHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "unavailablevalueplaceholder":
+ case "unavailableValuePlaceholder": getOrCreateConfiguration(target).setUnavailableValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
case "xminfetchintervalms":
case "xminFetchIntervalMs": getOrCreateConfiguration(target).setXminFetchIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
default: return false;
@@ -277,6 +285,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "heartbeatTopicsPrefix": return java.lang.String.class;
case "hstorehandlingmode":
case "hstoreHandlingMode": return java.lang.String.class;
+ case "includeschemacomments":
+ case "includeSchemaComments": return boolean.class;
case "includeunknowndatatypes":
case "includeUnknownDatatypes": return boolean.class;
case "incrementalsnapshotchunksize":
@@ -295,6 +305,10 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "maxQueueSizeInBytes": return long.class;
case "messagekeycolumns":
case "messageKeyColumns": return java.lang.String.class;
+ case "messageprefixexcludelist":
+ case "messagePrefixExcludeList": return java.lang.String.class;
+ case "messageprefixincludelist":
+ case "messagePrefixIncludeList": return java.lang.String.class;
case "offsetcommitpolicy":
case "offsetCommitPolicy": return java.lang.String.class;
case "offsetcommittimeoutms":
@@ -383,12 +397,14 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "tableWhitelist": return java.lang.String.class;
case "timeprecisionmode":
case "timePrecisionMode": return java.lang.String.class;
- case "toastedvalueplaceholder":
- case "toastedValuePlaceholder": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
case "truncatehandlingmode":
case "truncateHandlingMode": return java.lang.String.class;
+ case "unavailablevalueplaceholder":
+ case "unavailableValuePlaceholder": return java.lang.String.class;
case "xminfetchintervalms":
case "xminFetchIntervalMs": return long.class;
default: return null;
@@ -463,6 +479,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "heartbeatTopicsPrefix": return getOrCreateConfiguration(target).getHeartbeatTopicsPrefix();
case "hstorehandlingmode":
case "hstoreHandlingMode": return getOrCreateConfiguration(target).getHstoreHandlingMode();
+ case "includeschemacomments":
+ case "includeSchemaComments": return getOrCreateConfiguration(target).isIncludeSchemaComments();
case "includeunknowndatatypes":
case "includeUnknownDatatypes": return getOrCreateConfiguration(target).isIncludeUnknownDatatypes();
case "incrementalsnapshotchunksize":
@@ -481,6 +499,10 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "maxQueueSizeInBytes": return getOrCreateConfiguration(target).getMaxQueueSizeInBytes();
case "messagekeycolumns":
case "messageKeyColumns": return getOrCreateConfiguration(target).getMessageKeyColumns();
+ case "messageprefixexcludelist":
+ case "messagePrefixExcludeList": return getOrCreateConfiguration(target).getMessagePrefixExcludeList();
+ case "messageprefixincludelist":
+ case "messagePrefixIncludeList": return getOrCreateConfiguration(target).getMessagePrefixIncludeList();
case "offsetcommitpolicy":
case "offsetCommitPolicy": return getOrCreateConfiguration(target).getOffsetCommitPolicy();
case "offsetcommittimeoutms":
@@ -569,12 +591,14 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "tableWhitelist": return getOrCreateConfiguration(target).getTableWhitelist();
case "timeprecisionmode":
case "timePrecisionMode": return getOrCreateConfiguration(target).getTimePrecisionMode();
- case "toastedvalueplaceholder":
- case "toastedValuePlaceholder": return getOrCreateConfiguration(target).getToastedValuePlaceholder();
case "tombstonesondelete":
case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
case "truncatehandlingmode":
case "truncateHandlingMode": return getOrCreateConfiguration(target).getTruncateHandlingMode();
+ case "unavailablevalueplaceholder":
+ case "unavailableValuePlaceholder": return getOrCreateConfiguration(target).getUnavailableValuePlaceholder();
case "xminfetchintervalms":
case "xminFetchIntervalMs": return getOrCreateConfiguration(target).getXminFetchIntervalMs();
default: return null;
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
index 27ad563..2ab4c0e 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
@@ -86,6 +86,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "heartbeatTopicsPrefix": target.getConfiguration().setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
case "hstorehandlingmode":
case "hstoreHandlingMode": target.getConfiguration().setHstoreHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "includeschemacomments":
+ case "includeSchemaComments": target.getConfiguration().setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
case "includeunknowndatatypes":
case "includeUnknownDatatypes": target.getConfiguration().setIncludeUnknownDatatypes(property(camelContext, boolean.class, value)); return true;
case "incrementalsnapshotchunksize":
@@ -104,6 +106,10 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "maxQueueSizeInBytes": target.getConfiguration().setMaxQueueSizeInBytes(property(camelContext, long.class, value)); return true;
case "messagekeycolumns":
case "messageKeyColumns": target.getConfiguration().setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+ case "messageprefixexcludelist":
+ case "messagePrefixExcludeList": target.getConfiguration().setMessagePrefixExcludeList(property(camelContext, java.lang.String.class, value)); return true;
+ case "messageprefixincludelist":
+ case "messagePrefixIncludeList": target.getConfiguration().setMessagePrefixIncludeList(property(camelContext, java.lang.String.class, value)); return true;
case "offsetcommitpolicy":
case "offsetCommitPolicy": target.getConfiguration().setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
case "offsetcommittimeoutms":
@@ -192,12 +198,14 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "tableWhitelist": target.getConfiguration().setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
case "timeprecisionmode":
case "timePrecisionMode": target.getConfiguration().setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
- case "toastedvalueplaceholder":
- case "toastedValuePlaceholder": target.getConfiguration().setToastedValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
case "truncatehandlingmode":
case "truncateHandlingMode": target.getConfiguration().setTruncateHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "unavailablevalueplaceholder":
+ case "unavailableValuePlaceholder": target.getConfiguration().setUnavailableValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
case "xminfetchintervalms":
case "xminFetchIntervalMs": target.getConfiguration().setXminFetchIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
default: return false;
@@ -272,6 +280,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "heartbeatTopicsPrefix": return java.lang.String.class;
case "hstorehandlingmode":
case "hstoreHandlingMode": return java.lang.String.class;
+ case "includeschemacomments":
+ case "includeSchemaComments": return boolean.class;
case "includeunknowndatatypes":
case "includeUnknownDatatypes": return boolean.class;
case "incrementalsnapshotchunksize":
@@ -290,6 +300,10 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "maxQueueSizeInBytes": return long.class;
case "messagekeycolumns":
case "messageKeyColumns": return java.lang.String.class;
+ case "messageprefixexcludelist":
+ case "messagePrefixExcludeList": return java.lang.String.class;
+ case "messageprefixincludelist":
+ case "messagePrefixIncludeList": return java.lang.String.class;
case "offsetcommitpolicy":
case "offsetCommitPolicy": return java.lang.String.class;
case "offsetcommittimeoutms":
@@ -378,12 +392,14 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "tableWhitelist": return java.lang.String.class;
case "timeprecisionmode":
case "timePrecisionMode": return java.lang.String.class;
- case "toastedvalueplaceholder":
- case "toastedValuePlaceholder": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
case "truncatehandlingmode":
case "truncateHandlingMode": return java.lang.String.class;
+ case "unavailablevalueplaceholder":
+ case "unavailableValuePlaceholder": return java.lang.String.class;
case "xminfetchintervalms":
case "xminFetchIntervalMs": return long.class;
default: return null;
@@ -459,6 +475,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "heartbeatTopicsPrefix": return target.getConfiguration().getHeartbeatTopicsPrefix();
case "hstorehandlingmode":
case "hstoreHandlingMode": return target.getConfiguration().getHstoreHandlingMode();
+ case "includeschemacomments":
+ case "includeSchemaComments": return target.getConfiguration().isIncludeSchemaComments();
case "includeunknowndatatypes":
case "includeUnknownDatatypes": return target.getConfiguration().isIncludeUnknownDatatypes();
case "incrementalsnapshotchunksize":
@@ -477,6 +495,10 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "maxQueueSizeInBytes": return target.getConfiguration().getMaxQueueSizeInBytes();
case "messagekeycolumns":
case "messageKeyColumns": return target.getConfiguration().getMessageKeyColumns();
+ case "messageprefixexcludelist":
+ case "messagePrefixExcludeList": return target.getConfiguration().getMessagePrefixExcludeList();
+ case "messageprefixincludelist":
+ case "messagePrefixIncludeList": return target.getConfiguration().getMessagePrefixIncludeList();
case "offsetcommitpolicy":
case "offsetCommitPolicy": return target.getConfiguration().getOffsetCommitPolicy();
case "offsetcommittimeoutms":
@@ -565,12 +587,14 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "tableWhitelist": return target.getConfiguration().getTableWhitelist();
case "timeprecisionmode":
case "timePrecisionMode": return target.getConfiguration().getTimePrecisionMode();
- case "toastedvalueplaceholder":
- case "toastedValuePlaceholder": return target.getConfiguration().getToastedValuePlaceholder();
case "tombstonesondelete":
case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return target.getConfiguration().getTransactionTopic();
case "truncatehandlingmode":
case "truncateHandlingMode": return target.getConfiguration().getTruncateHandlingMode();
+ case "unavailablevalueplaceholder":
+ case "unavailableValuePlaceholder": return target.getConfiguration().getUnavailableValuePlaceholder();
case "xminfetchintervalms":
case "xminFetchIntervalMs": return target.getConfiguration().getXminFetchIntervalMs();
default: return null;
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java
index 073c932..3a43b4a 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(91);
+ Set<String> props = new HashSet<>(95);
props.add("slotDropOnStop");
props.add("includeUnknownDatatypes");
props.add("maxBatchSize");
@@ -29,10 +29,10 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
props.add("offsetStorageTopic");
props.add("databaseSslkey");
props.add("slotName");
- props.add("toastedValuePlaceholder");
props.add("bridgeErrorHandler");
props.add("databaseTcpkeepalive");
props.add("datatypePropagateSourceType");
+ props.add("messagePrefixIncludeList");
props.add("schemaRefreshMode");
props.add("publicationAutocreateMode");
props.add("provideTransactionMetadata");
@@ -74,6 +74,8 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
props.add("databaseHistoryFileFilename");
props.add("schemaIncludeList");
props.add("columnPropagateSourceType");
+ props.add("unavailableValuePlaceholder");
+ props.add("transactionTopic");
props.add("offsetStorage");
props.add("slotRetryDelayMs");
props.add("internalValueConverter");
@@ -86,6 +88,7 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
props.add("timePrecisionMode");
props.add("truncateHandlingMode");
props.add("columnWhitelist");
+ props.add("messagePrefixExcludeList");
props.add("pollIntervalMs");
props.add("sanitizeFieldNames");
props.add("databaseSslmode");
@@ -112,6 +115,7 @@ public class DebeziumPostgresEndpointUriFactory extends org.apache.camel.support
props.add("databasePassword");
props.add("databaseDbname");
props.add("publicationName");
+ props.add("includeSchemaComments");
PROPERTY_NAMES = Collections.unmodifiableSet(props);
SECRET_PROPERTY_NAMES = Collections.emptySet();
}
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
index d43ff91..5ceacbe 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
@@ -32,6 +32,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private String schemaRefreshMode = "columns_diff";
@UriParam(label = LABEL_NAME, defaultValue = "disable")
private String databaseSslmode = "disable";
+ @UriParam(label = LABEL_NAME, defaultValue = "__debezium_unavailable_value")
+ private String unavailableValuePlaceholder = "__debezium_unavailable_value";
@UriParam(label = LABEL_NAME)
private String heartbeatActionQuery;
@UriParam(label = LABEL_NAME)
@@ -80,8 +82,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private String pluginName = "decoderbufs";
@UriParam(label = LABEL_NAME)
private String databaseSslpassword;
- @UriParam(label = LABEL_NAME, defaultValue = "__debezium_unavailable_value")
- private String toastedValuePlaceholder = "__debezium_unavailable_value";
@UriParam(label = LABEL_NAME)
private String schemaWhitelist;
@UriParam(label = LABEL_NAME)
@@ -99,6 +99,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private String skippedOperations;
@UriParam(label = LABEL_NAME, defaultValue = "initial")
private String snapshotMode = "initial";
+ @UriParam(label = LABEL_NAME)
+ private String messagePrefixIncludeList;
@UriParam(label = LABEL_NAME, defaultValue = "8192")
private int maxQueueSize = 8192;
@UriParam(label = LABEL_NAME)
@@ -125,6 +127,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private String decimalHandlingMode = "precise";
@UriParam(label = LABEL_NAME, defaultValue = "bytes")
private String binaryHandlingMode = "bytes";
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean includeSchemaComments = false;
@UriParam(label = LABEL_NAME, defaultValue = "skip")
private String truncateHandlingMode = "skip";
@UriParam(label = LABEL_NAME, defaultValue = "true")
@@ -143,11 +147,15 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private boolean slotDropOnStop = false;
@UriParam(label = LABEL_NAME, defaultValue = "0")
private long maxQueueSizeInBytes = 0;
+ @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+ private String transactionTopic = "${database.server.name}.transaction";
@UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
private long xminFetchIntervalMs = 0;
@UriParam(label = LABEL_NAME, defaultValue = "adaptive")
private String timePrecisionMode = "adaptive";
@UriParam(label = LABEL_NAME)
+ private String messagePrefixExcludeList;
+ @UriParam(label = LABEL_NAME)
@Metadata(required = true)
private String databaseServerName;
@UriParam(label = LABEL_NAME, defaultValue = "fail")
@@ -310,6 +318,21 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Specify the constant that will be provided by Debezium to indicate that
+ * the original value is a toasted value not provided by the database. If
+ * starts with 'hex:' prefix it is expected that the rest of the string
+ * represents hexadecimal encoded octets.
+ */
+ public void setUnavailableValuePlaceholder(
+ String unavailableValuePlaceholder) {
+ this.unavailableValuePlaceholder = unavailableValuePlaceholder;
+ }
+
+ public String getUnavailableValuePlaceholder() {
+ return unavailableValuePlaceholder;
+ }
+
+ /**
* The query executed with every heartbeat.
*/
public void setHeartbeatActionQuery(String heartbeatActionQuery) {
@@ -619,20 +642,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
- * Specify the constant that will be provided by Debezium to indicate that
- * the original value is a toasted value not provided by the database. If
- * starts with 'hex:' prefix it is expected that the rest of the string
- * repesents hexadecimally encoded octets.
- */
- public void setToastedValuePlaceholder(String toastedValuePlaceholder) {
- this.toastedValuePlaceholder = toastedValuePlaceholder;
- }
-
- public String getToastedValuePlaceholder() {
- return toastedValuePlaceholder;
- }
-
- /**
* The schemas for which events should be captured (deprecated, use
* "schema.include.list" instead)
*/
@@ -740,6 +749,19 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * A comma-separated list of regular expressions that match the logical
+ * decoding message prefixes to be monitored. All prefixes are monitored by
+ * default.
+ */
+ public void setMessagePrefixIncludeList(String messagePrefixIncludeList) {
+ this.messagePrefixIncludeList = messagePrefixIncludeList;
+ }
+
+ public String getMessagePrefixIncludeList() {
+ return messagePrefixIncludeList;
+ }
+
+ /**
* Maximum size of the queue for change events read from the database log
* but not yet recorded or forwarded. Defaults to 8192, and should always be
* larger than the maximum batch size.
@@ -911,6 +933,22 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether the connector parse table and column's comment to metadata
+ * object.Note: Enable this option will bring the implications on memory
+ * usage. The number and size of ColumnImpl objects is what largely impacts
+ * how much memory is consumed by the Debezium connectors, and adding a
+ * String to each of them can potentially be quite heavy. The default is
+ * 'false'.
+ */
+ public void setIncludeSchemaComments(boolean includeSchemaComments) {
+ this.includeSchemaComments = includeSchemaComments;
+ }
+
+ public boolean isIncludeSchemaComments() {
+ return includeSchemaComments;
+ }
+
+ /**
* Specify how TRUNCATE operations are handled for change events (supported
* only on pg11+ pgoutput plugin), including: 'skip' to skip / ignore
* TRUNCATE events (default), 'include' to handle and include TRUNCATE
@@ -1033,6 +1071,19 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The name of the transaction metadata topic. The placeholder
+ * ${database.server.name} can be used for referring to the connector's
+ * logical name; defaults to ${database.server.name}.transaction.
+ */
+ public void setTransactionTopic(String transactionTopic) {
+ this.transactionTopic = transactionTopic;
+ }
+
+ public String getTransactionTopic() {
+ return transactionTopic;
+ }
+
+ /**
* Specify how often (in ms) the xmin will be fetched from the replication
* slot. This xmin value is exposed by the slot which gives a lower bound of
* where a new replication slot could start from. The lower the value, the
@@ -1068,6 +1119,18 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * A comma-separated list of regular expressions that match the logical
+ * decoding message prefixes to be excluded from monitoring.
+ */
+ public void setMessagePrefixExcludeList(String messagePrefixExcludeList) {
+ this.messagePrefixExcludeList = messagePrefixExcludeList;
+ }
+
+ public String getMessagePrefixExcludeList() {
+ return messagePrefixExcludeList;
+ }
+
+ /**
* Unique name that identifies the database server and all recorded offsets,
* and that is used as a prefix for all schemas and topics. Each distinct
* installation should have a separate namespace and be monitored by at most
@@ -1193,6 +1256,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "slot.max.retries", slotMaxRetries);
addPropertyIfNotNull(configBuilder, "schema.refresh.mode", schemaRefreshMode);
addPropertyIfNotNull(configBuilder, "database.sslmode", databaseSslmode);
+ addPropertyIfNotNull(configBuilder, "unavailable.value.placeholder", unavailableValuePlaceholder);
addPropertyIfNotNull(configBuilder, "heartbeat.action.query", heartbeatActionQuery);
addPropertyIfNotNull(configBuilder, "database.sslcert", databaseSslcert);
addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
@@ -1217,7 +1281,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "column.include.list", columnIncludeList);
addPropertyIfNotNull(configBuilder, "plugin.name", pluginName);
addPropertyIfNotNull(configBuilder, "database.sslpassword", databaseSslpassword);
- addPropertyIfNotNull(configBuilder, "toasted.value.placeholder", toastedValuePlaceholder);
addPropertyIfNotNull(configBuilder, "schema.whitelist", schemaWhitelist);
addPropertyIfNotNull(configBuilder, "column.propagate.source.type", columnPropagateSourceType);
addPropertyIfNotNull(configBuilder, "table.exclude.list", tableExcludeList);
@@ -1226,6 +1289,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "max.batch.size", maxBatchSize);
addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
+ addPropertyIfNotNull(configBuilder, "message.prefix.include.list", messagePrefixIncludeList);
addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
addPropertyIfNotNull(configBuilder, "snapshot.custom.class", snapshotCustomClass);
addPropertyIfNotNull(configBuilder, "slot.name", slotName);
@@ -1239,6 +1303,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "slot.retry.delay.ms", slotRetryDelayMs);
addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+ addPropertyIfNotNull(configBuilder, "include.schema.comments", includeSchemaComments);
addPropertyIfNotNull(configBuilder, "truncate.handling.mode", truncateHandlingMode);
addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
addPropertyIfNotNull(configBuilder, "database.tcpKeepAlive", databaseTcpkeepalive);
@@ -1248,8 +1313,10 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
addPropertyIfNotNull(configBuilder, "slot.drop.on.stop", slotDropOnStop);
addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+ addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
addPropertyIfNotNull(configBuilder, "xmin.fetch.interval.ms", xminFetchIntervalMs);
addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
+ addPropertyIfNotNull(configBuilder, "message.prefix.exclude.list", messagePrefixExcludeList);
addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
addPropertyIfNotNull(configBuilder, "snapshot.max.threads", snapshotMaxThreads);
diff --git a/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json b/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
index 0ae0939..8e4a5c8 100644
--- a/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
+++ b/components/camel-debezium/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
@@ -65,6 +65,7 @@
"heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-secon [...]
"heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
"hstoreHandlingMode": { "kind": "property", "displayName": "Hstore Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "json", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how HSTORE columns [...]
+ "includeSchemaComments": { "kind": "property", "displayName": "Include Schema Comments", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse t [...]
"includeUnknownDatatypes": { "kind": "property", "displayName": "Include Unknown Datatypes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify whether the field [...]
"incrementalSnapshotChunkSize": { "kind": "property", "displayName": "Incremental Snapshot Chunk Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size of [...]
"intervalHandlingMode": { "kind": "property", "displayName": "Interval Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "numeric", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how INTERVA [...]
@@ -72,6 +73,8 @@
"maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read fro [...]
"maxQueueSizeInBytes": { "kind": "property", "displayName": "Max Queue Size In Bytes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue in bytes for [...]
"messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match [...]
+ "messagePrefixExcludeList": { "kind": "property", "displayName": "Message Prefix Exclude List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular exp [...]
+ "messagePrefixIncludeList": { "kind": "property", "displayName": "Message Prefix Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular exp [...]
"pluginName": { "kind": "property", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical dec [...]
"pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time to wait for new change events to appea [...]
"provideTransactionMetadata": { "kind": "property", "displayName": "Provide Transaction Metadata", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction [...]
@@ -108,9 +111,10 @@
"tableIncludeList": { "kind": "property", "displayName": "Table Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecated [...]
"timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timestam [...]
- "toastedValuePlaceholder": { "kind": "property", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descrip [...]
"tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be [...]
+ "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": " [...]
"truncateHandlingMode": { "kind": "property", "displayName": "Truncate Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "skip", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how TRUNCATE o [...]
+ "unavailableValuePlaceholder": { "kind": "property", "displayName": "Unavailable Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", [...]
"xminFetchIntervalMs": { "kind": "property", "displayName": "Xmin Fetch Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how often (in ms) the xmin [...]
},
"properties": {
@@ -158,6 +162,7 @@
"heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seco [...]
"heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
"hstoreHandlingMode": { "kind": "parameter", "displayName": "Hstore Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "json", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how HSTORE column [...]
+ "includeSchemaComments": { "kind": "parameter", "displayName": "Include Schema Comments", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector parse [...]
"includeUnknownDatatypes": { "kind": "parameter", "displayName": "Include Unknown Datatypes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify whether the fiel [...]
"incrementalSnapshotChunkSize": { "kind": "parameter", "displayName": "Incremental Snapshot Chunk Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size o [...]
"intervalHandlingMode": { "kind": "parameter", "displayName": "Interval Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "numeric", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how INTERV [...]
@@ -165,6 +170,8 @@
"maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read fr [...]
"maxQueueSizeInBytes": { "kind": "parameter", "displayName": "Max Queue Size In Bytes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue in bytes fo [...]
"messageKeyColumns": { "kind": "parameter", "displayName": "Message Key Columns", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that matc [...]
+ "messagePrefixExcludeList": { "kind": "parameter", "displayName": "Message Prefix Exclude List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular ex [...]
+ "messagePrefixIncludeList": { "kind": "parameter", "displayName": "Message Prefix Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of regular ex [...]
"pluginName": { "kind": "parameter", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical de [...]
"pollIntervalMs": { "kind": "parameter", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time to wait for new change events to appe [...]
"provideTransactionMetadata": { "kind": "parameter", "displayName": "Provide Transaction Metadata", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transactio [...]
@@ -201,9 +208,10 @@
"tableIncludeList": { "kind": "parameter", "displayName": "Table Include List", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprecate [...]
"timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timesta [...]
- "toastedValuePlaceholder": { "kind": "parameter", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descri [...]
"tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should b [...]
+ "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": [...]
"truncateHandlingMode": { "kind": "parameter", "displayName": "Truncate Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "skip", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how TRUNCATE [...]
+ "unavailableValuePlaceholder": { "kind": "parameter", "displayName": "Unavailable Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", [...]
"xminFetchIntervalMs": { "kind": "parameter", "displayName": "Xmin Fetch Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how often (in ms) the xmi [...]
}
}
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
index 941c90d..eae2122 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
@@ -88,12 +88,22 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "decimalHandlingMode": getOrCreateConfiguration(target).setDecimalHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
case "eventprocessingfailurehandlingmode":
case "eventProcessingFailureHandlingMode": getOrCreateConfiguration(target).setEventProcessingFailureHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": getOrCreateConfiguration(target).setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
case "heartbeatintervalms":
case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
case "includeschemachanges":
case "includeSchemaChanges": getOrCreateConfiguration(target).setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+ case "includeschemacomments":
+ case "includeSchemaComments": getOrCreateConfiguration(target).setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": getOrCreateConfiguration(target).setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
+ case "incrementalsnapshotchunksize":
+ case "incrementalSnapshotChunkSize": getOrCreateConfiguration(target).setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
+ case "incrementalsnapshotoptionrecompile":
+ case "incrementalSnapshotOptionRecompile": getOrCreateConfiguration(target).setIncrementalSnapshotOptionRecompile(property(camelContext, boolean.class, value)); return true;
case "internalkeyconverter":
case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
case "internalvalueconverter":
@@ -172,6 +182,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": getOrCreateConfiguration(target).setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
default: return false;
}
}
@@ -239,12 +251,22 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "decimalHandlingMode": return java.lang.String.class;
case "eventprocessingfailurehandlingmode":
case "eventProcessingFailureHandlingMode": return java.lang.String.class;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return java.lang.String.class;
case "heartbeatintervalms":
case "heartbeatIntervalMs": return int.class;
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": return java.lang.String.class;
case "includeschemachanges":
case "includeSchemaChanges": return boolean.class;
+ case "includeschemacomments":
+ case "includeSchemaComments": return boolean.class;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
+ case "incrementalsnapshotchunksize":
+ case "incrementalSnapshotChunkSize": return int.class;
+ case "incrementalsnapshotoptionrecompile":
+ case "incrementalSnapshotOptionRecompile": return boolean.class;
case "internalkeyconverter":
case "internalKeyConverter": return java.lang.String.class;
case "internalvalueconverter":
@@ -323,6 +345,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "timePrecisionMode": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
default: return null;
}
}
@@ -391,12 +415,22 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "decimalHandlingMode": return getOrCreateConfiguration(target).getDecimalHandlingMode();
case "eventprocessingfailurehandlingmode":
case "eventProcessingFailureHandlingMode": return getOrCreateConfiguration(target).getEventProcessingFailureHandlingMode();
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return getOrCreateConfiguration(target).getHeartbeatActionQuery();
case "heartbeatintervalms":
case "heartbeatIntervalMs": return getOrCreateConfiguration(target).getHeartbeatIntervalMs();
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": return getOrCreateConfiguration(target).getHeartbeatTopicsPrefix();
case "includeschemachanges":
case "includeSchemaChanges": return getOrCreateConfiguration(target).isIncludeSchemaChanges();
+ case "includeschemacomments":
+ case "includeSchemaComments": return getOrCreateConfiguration(target).isIncludeSchemaComments();
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return getOrCreateConfiguration(target).isIncrementalSnapshotAllowSchemaChanges();
+ case "incrementalsnapshotchunksize":
+ case "incrementalSnapshotChunkSize": return getOrCreateConfiguration(target).getIncrementalSnapshotChunkSize();
+ case "incrementalsnapshotoptionrecompile":
+ case "incrementalSnapshotOptionRecompile": return getOrCreateConfiguration(target).isIncrementalSnapshotOptionRecompile();
case "internalkeyconverter":
case "internalKeyConverter": return getOrCreateConfiguration(target).getInternalKeyConverter();
case "internalvalueconverter":
@@ -475,6 +509,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "timePrecisionMode": return getOrCreateConfiguration(target).getTimePrecisionMode();
case "tombstonesondelete":
case "tombstonesOnDelete": return getOrCreateConfiguration(target).isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return getOrCreateConfiguration(target).getTransactionTopic();
default: return null;
}
}
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
index 9fb8ec8..03e7719 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
@@ -82,12 +82,22 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
case "exchangepattern":
case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": target.getConfiguration().setHeartbeatActionQuery(property(camelContext, java.lang.String.class, value)); return true;
case "heartbeatintervalms":
case "heartbeatIntervalMs": target.getConfiguration().setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": target.getConfiguration().setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
case "includeschemachanges":
case "includeSchemaChanges": target.getConfiguration().setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+ case "includeschemacomments":
+ case "includeSchemaComments": target.getConfiguration().setIncludeSchemaComments(property(camelContext, boolean.class, value)); return true;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": target.getConfiguration().setIncrementalSnapshotAllowSchemaChanges(property(camelContext, boolean.class, value)); return true;
+ case "incrementalsnapshotchunksize":
+ case "incrementalSnapshotChunkSize": target.getConfiguration().setIncrementalSnapshotChunkSize(property(camelContext, int.class, value)); return true;
+ case "incrementalsnapshotoptionrecompile":
+ case "incrementalSnapshotOptionRecompile": target.getConfiguration().setIncrementalSnapshotOptionRecompile(property(camelContext, boolean.class, value)); return true;
case "internalkeyconverter":
case "internalKeyConverter": target.getConfiguration().setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
case "internalvalueconverter":
@@ -166,6 +176,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "timePrecisionMode": target.getConfiguration().setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
case "tombstonesondelete":
case "tombstonesOnDelete": target.getConfiguration().setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+ case "transactiontopic":
+ case "transactionTopic": target.getConfiguration().setTransactionTopic(property(camelContext, java.lang.String.class, value)); return true;
default: return false;
}
}
@@ -234,12 +246,22 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
case "exchangepattern":
case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return java.lang.String.class;
case "heartbeatintervalms":
case "heartbeatIntervalMs": return int.class;
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": return java.lang.String.class;
case "includeschemachanges":
case "includeSchemaChanges": return boolean.class;
+ case "includeschemacomments":
+ case "includeSchemaComments": return boolean.class;
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return boolean.class;
+ case "incrementalsnapshotchunksize":
+ case "incrementalSnapshotChunkSize": return int.class;
+ case "incrementalsnapshotoptionrecompile":
+ case "incrementalSnapshotOptionRecompile": return boolean.class;
case "internalkeyconverter":
case "internalKeyConverter": return java.lang.String.class;
case "internalvalueconverter":
@@ -318,6 +340,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "timePrecisionMode": return java.lang.String.class;
case "tombstonesondelete":
case "tombstonesOnDelete": return boolean.class;
+ case "transactiontopic":
+ case "transactionTopic": return java.lang.String.class;
default: return null;
}
}
@@ -387,12 +411,22 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "exceptionHandler": return target.getExceptionHandler();
case "exchangepattern":
case "exchangePattern": return target.getExchangePattern();
+ case "heartbeatactionquery":
+ case "heartbeatActionQuery": return target.getConfiguration().getHeartbeatActionQuery();
case "heartbeatintervalms":
case "heartbeatIntervalMs": return target.getConfiguration().getHeartbeatIntervalMs();
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": return target.getConfiguration().getHeartbeatTopicsPrefix();
case "includeschemachanges":
case "includeSchemaChanges": return target.getConfiguration().isIncludeSchemaChanges();
+ case "includeschemacomments":
+ case "includeSchemaComments": return target.getConfiguration().isIncludeSchemaComments();
+ case "incrementalsnapshotallowschemachanges":
+ case "incrementalSnapshotAllowSchemaChanges": return target.getConfiguration().isIncrementalSnapshotAllowSchemaChanges();
+ case "incrementalsnapshotchunksize":
+ case "incrementalSnapshotChunkSize": return target.getConfiguration().getIncrementalSnapshotChunkSize();
+ case "incrementalsnapshotoptionrecompile":
+ case "incrementalSnapshotOptionRecompile": return target.getConfiguration().isIncrementalSnapshotOptionRecompile();
case "internalkeyconverter":
case "internalKeyConverter": return target.getConfiguration().getInternalKeyConverter();
case "internalvalueconverter":
@@ -471,6 +505,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "timePrecisionMode": return target.getConfiguration().getTimePrecisionMode();
case "tombstonesondelete":
case "tombstonesOnDelete": return target.getConfiguration().isTombstonesOnDelete();
+ case "transactiontopic":
+ case "transactionTopic": return target.getConfiguration().getTransactionTopic();
default: return null;
}
}
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java
index a707df2..94805f5 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointUriFactory.java
@@ -20,7 +20,7 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(74);
+ Set<String> props = new HashSet<>(80);
props.add("maxBatchSize");
props.add("internalKeyConverter");
props.add("snapshotDelayMs");
@@ -54,6 +54,7 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
props.add("additionalProperties");
props.add("offsetStorageReplicationFactor");
props.add("databaseNames");
+ props.add("heartbeatActionQuery");
props.add("exceptionHandler");
props.add("sourceTimestampMode");
props.add("databasePort");
@@ -63,6 +64,7 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
props.add("databaseHistory");
props.add("columnPropagateSourceType");
props.add("databaseHistoryStoreOnlyCapturedTablesDdl");
+ props.add("transactionTopic");
props.add("offsetStorage");
props.add("includeSchemaChanges");
props.add("internalValueConverter");
@@ -80,8 +82,10 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
props.add("tableIgnoreBuiltin");
props.add("signalDataCollection");
props.add("exchangePattern");
+ props.add("incrementalSnapshotAllowSchemaChanges");
props.add("databaseInstance");
props.add("databaseServerName");
+ props.add("incrementalSnapshotOptionRecompile");
props.add("tableBlacklist");
props.add("queryFetchSize");
props.add("snapshotMode");
@@ -90,11 +94,13 @@ public class DebeziumSqlserverEndpointUriFactory extends org.apache.camel.suppor
props.add("tableExcludeList");
props.add("offsetCommitPolicy");
props.add("tableIncludeList");
+ props.add("incrementalSnapshotChunkSize");
props.add("columnExcludeList");
props.add("columnIncludeList");
props.add("databasePassword");
props.add("databaseDbname");
props.add("databaseHistoryKafkaRecoveryAttempts");
+ props.add("includeSchemaComments");
PROPERTY_NAMES = Collections.unmodifiableSet(props);
SECRET_PROPERTY_NAMES = Collections.emptySet();
}
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
index 5499861..18b81df 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
@@ -24,6 +24,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private String tableBlacklist;
@UriParam(label = LABEL_NAME, defaultValue = "true")
private boolean includeSchemaChanges = true;
+ @UriParam(label = LABEL_NAME)
+ private String heartbeatActionQuery;
@UriParam(label = LABEL_NAME, defaultValue = "500ms", javaType = "java.time.Duration")
private long pollIntervalMs = 500;
@UriParam(label = LABEL_NAME, defaultValue = "100ms", javaType = "java.time.Duration")
@@ -62,6 +64,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private int heartbeatIntervalMs = 0;
@UriParam(label = LABEL_NAME)
private String columnWhitelist;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean incrementalSnapshotAllowSchemaChanges = false;
@UriParam(label = LABEL_NAME)
private String columnIncludeList;
@UriParam(label = LABEL_NAME)
@@ -83,6 +87,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private String databaseHistory = "io.debezium.relational.history.FileDatabaseHistory";
@UriParam(label = LABEL_NAME, defaultValue = "8192")
private int maxQueueSize = 8192;
+ @UriParam(label = LABEL_NAME, defaultValue = "1024")
+ private int incrementalSnapshotChunkSize = 1024;
@UriParam(label = LABEL_NAME)
private String databaseHistoryKafkaTopic;
@UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
@@ -102,15 +108,21 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
@UriParam(label = LABEL_NAME, defaultValue = "bytes")
private String binaryHandlingMode = "bytes";
@UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean includeSchemaComments = false;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
private boolean databaseHistorySkipUnparseableDdl = false;
@UriParam(label = LABEL_NAME, defaultValue = "true")
private boolean tableIgnoreBuiltin = true;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean incrementalSnapshotOptionRecompile = false;
@UriParam(label = LABEL_NAME)
private String snapshotIncludeCollectionList;
@UriParam(label = LABEL_NAME)
private String databaseHistoryFileFilename;
@UriParam(label = LABEL_NAME, defaultValue = "0")
private long maxQueueSizeInBytes = 0;
+ @UriParam(label = LABEL_NAME, defaultValue = "${database.server.name}.transaction")
+ private String transactionTopic = "${database.server.name}.transaction";
@UriParam(label = LABEL_NAME, defaultValue = "adaptive")
private String timePrecisionMode = "adaptive";
@UriParam(label = LABEL_NAME)
@@ -217,6 +229,17 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The query executed with every heartbeat.
+ */
+ public void setHeartbeatActionQuery(String heartbeatActionQuery) {
+ this.heartbeatActionQuery = heartbeatActionQuery;
+ }
+
+ public String getHeartbeatActionQuery() {
+ return heartbeatActionQuery;
+ }
+
+ /**
* Time to wait for new change events to appear after receiving no events,
* given in milliseconds. Defaults to 500 ms.
*/
@@ -468,6 +491,25 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Detect schema change during an incremental snapshot and re-select a
+ * current chunk to avoid locking DDLs. Note that changes to a primary key
+ * are not supported and can cause incorrect results if performed during an
+ * incremental snapshot. Another limitation is that if a schema change
+ * affects only columns' default values, then the change won't be detected
+ * until the DDL is processed from the binlog stream. This doesn't affect
+ * the snapshot events' values, but the schema of snapshot events may have
+ * outdated defaults.
+ */
+ public void setIncrementalSnapshotAllowSchemaChanges(
+ boolean incrementalSnapshotAllowSchemaChanges) {
+ this.incrementalSnapshotAllowSchemaChanges = incrementalSnapshotAllowSchemaChanges;
+ }
+
+ public boolean isIncrementalSnapshotAllowSchemaChanges() {
+ return incrementalSnapshotAllowSchemaChanges;
+ }
+
+ /**
* Regular expressions matching columns to include in change events
*/
public void setColumnIncludeList(String columnIncludeList) {
@@ -597,6 +639,17 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The maximum size of chunk for incremental snapshotting
+ */
+ public void setIncrementalSnapshotChunkSize(int incrementalSnapshotChunkSize) {
+ this.incrementalSnapshotChunkSize = incrementalSnapshotChunkSize;
+ }
+
+ public int getIncrementalSnapshotChunkSize() {
+ return incrementalSnapshotChunkSize;
+ }
+
+ /**
* The name of the topic for the database schema history
*/
public void setDatabaseHistoryKafkaTopic(String databaseHistoryKafkaTopic) {
@@ -716,6 +769,22 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether the connector parse table and column's comment to metadata
+ * object.Note: Enable this option will bring the implications on memory
+ * usage. The number and size of ColumnImpl objects is what largely impacts
+ * how much memory is consumed by the Debezium connectors, and adding a
+ * String to each of them can potentially be quite heavy. The default is
+ * 'false'.
+ */
+ public void setIncludeSchemaComments(boolean includeSchemaComments) {
+ this.includeSchemaComments = includeSchemaComments;
+ }
+
+ public boolean isIncludeSchemaComments() {
+ return includeSchemaComments;
+ }
+
+ /**
* Controls the action Debezium will take when it meets a DDL statement in
* binlog, that it cannot parse.By default the connector will stop operating
* but by changing the setting it can ignore the statements which it cannot
@@ -742,6 +811,20 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Add OPTION(RECOMPILE) on each SELECT statement during the incremental
+ * snapshot process. This prevents parameter sniffing but can cause CPU
+ * pressure on the source database.
+ */
+ public void setIncrementalSnapshotOptionRecompile(
+ boolean incrementalSnapshotOptionRecompile) {
+ this.incrementalSnapshotOptionRecompile = incrementalSnapshotOptionRecompile;
+ }
+
+ public boolean isIncrementalSnapshotOptionRecompile() {
+ return incrementalSnapshotOptionRecompile;
+ }
+
+ /**
* this setting must be set to specify a list of tables/collections whose
* snapshot must be taken on creating or restarting the connector.
*/
@@ -780,6 +863,19 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The name of the transaction metadata topic. The placeholder
+ * ${database.server.name} can be used for referring to the connector's
+ * logical name; defaults to ${database.server.name}.transaction.
+ */
+ public void setTransactionTopic(String transactionTopic) {
+ this.transactionTopic = transactionTopic;
+ }
+
+ public String getTransactionTopic() {
+ return transactionTopic;
+ }
+
+ /**
* Time, date, and timestamps can be represented with different kinds of
* precisions, including:'adaptive' (the default) bases the precision of
* time, date, and timestamp values on the database column's precision;
@@ -931,6 +1027,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.instance", databaseInstance);
addPropertyIfNotNull(configBuilder, "table.blacklist", tableBlacklist);
addPropertyIfNotNull(configBuilder, "include.schema.changes", includeSchemaChanges);
+ addPropertyIfNotNull(configBuilder, "heartbeat.action.query", heartbeatActionQuery);
addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.poll.interval.ms", databaseHistoryKafkaRecoveryPollIntervalMs);
addPropertyIfNotNull(configBuilder, "signal.data.collection", signalDataCollection);
@@ -950,6 +1047,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "source.struct.version", sourceStructVersion);
addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
addPropertyIfNotNull(configBuilder, "column.whitelist", columnWhitelist);
+ addPropertyIfNotNull(configBuilder, "incremental.snapshot.allow.schema.changes", incrementalSnapshotAllowSchemaChanges);
addPropertyIfNotNull(configBuilder, "column.include.list", columnIncludeList);
addPropertyIfNotNull(configBuilder, "column.propagate.source.type", columnPropagateSourceType);
addPropertyIfNotNull(configBuilder, "table.exclude.list", tableExcludeList);
@@ -960,6 +1058,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
addPropertyIfNotNull(configBuilder, "database.history", databaseHistory);
addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
+ addPropertyIfNotNull(configBuilder, "incremental.snapshot.chunk.size", incrementalSnapshotChunkSize);
addPropertyIfNotNull(configBuilder, "database.history.kafka.topic", databaseHistoryKafkaTopic);
addPropertyIfNotNull(configBuilder, "retriable.restart.connector.wait.ms", retriableRestartConnectorWaitMs);
addPropertyIfNotNull(configBuilder, "snapshot.delay.ms", snapshotDelayMs);
@@ -969,11 +1068,14 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+ addPropertyIfNotNull(configBuilder, "include.schema.comments", includeSchemaComments);
addPropertyIfNotNull(configBuilder, "database.history.skip.unparseable.ddl", databaseHistorySkipUnparseableDdl);
addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
+ addPropertyIfNotNull(configBuilder, "incremental.snapshot.option.recompile", incrementalSnapshotOptionRecompile);
addPropertyIfNotNull(configBuilder, "snapshot.include.collection.list", snapshotIncludeCollectionList);
addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
addPropertyIfNotNull(configBuilder, "max.queue.size.in.bytes", maxQueueSizeInBytes);
+ addPropertyIfNotNull(configBuilder, "transaction.topic", transactionTopic);
addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
diff --git a/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json b/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
index 52a47d2..b41d07b 100644
--- a/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
+++ b/components/camel-debezium/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
@@ -63,9 +63,14 @@
"datatypePropagateSourceType": { "kind": "property", "displayName": "Datatype Propagate Source Type", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of re [...]
"decimalHandlingMode": { "kind": "property", "displayName": "Decimal Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIMA [...]
"eventProcessingFailureHandlingMode": { "kind": "property", "displayName": "Event Processing Failure Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "desc [...]
+ "heartbeatActionQuery": { "kind": "property", "displayName": "Heartbeat Action Query", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
"heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-se [...]
"heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "T [...]
"includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should [...]
+ "includeSchemaComments": { "kind": "property", "displayName": "Include Schema Comments", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector pars [...]
+ "incrementalSnapshotAllowSchemaChanges": { "kind": "property", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descrip [...]
+ "incrementalSnapshotChunkSize": { "kind": "property", "displayName": "Incremental Snapshot Chunk Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum size [...]
+ "incrementalSnapshotOptionRecompile": { "kind": "property", "displayName": "Incremental Snapshot Option Recompile", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": [...]
"maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Def [...]
"maxIterationTransactions": { "kind": "property", "displayName": "Max Iteration Transactions", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property can be used to [...]
"maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read [...]
@@ -94,7 +99,8 @@
"tableIncludeList": { "kind": "property", "displayName": "Table Include List", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (depreca [...]
"timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and times [...]
- "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should [...]
+ "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should [...]
+ "transactionTopic": { "kind": "property", "displayName": "Transaction Topic", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description" [...]
},
"properties": {
"name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the s [...]
@@ -139,9 +145,14 @@
"datatypePropagateSourceType": { "kind": "parameter", "displayName": "Datatype Propagate Source Type", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A comma-separated list of r [...]
"decimalHandlingMode": { "kind": "parameter", "displayName": "Decimal Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIM [...]
"eventProcessingFailureHandlingMode": { "kind": "parameter", "displayName": "Event Processing Failure Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "des [...]
+ "heartbeatActionQuery": { "kind": "parameter", "displayName": "Heartbeat Action Query", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The query executed with every heartbeat." },
"heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-s [...]
"heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": " [...]
"includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should [...]
+ "includeSchemaComments": { "kind": "parameter", "displayName": "Include Schema Comments", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector par [...]
+ "incrementalSnapshotAllowSchemaChanges": { "kind": "parameter", "displayName": "Incremental Snapshot Allow Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descri [...]
+ "incrementalSnapshotChunkSize": { "kind": "parameter", "displayName": "Incremental Snapshot Chunk Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum siz [...]
+ "incrementalSnapshotOptionRecompile": { "kind": "parameter", "displayName": "Incremental Snapshot Option Recompile", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": [...]
"maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2048, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. De [...]
"maxIterationTransactions": { "kind": "parameter", "displayName": "Max Iteration Transactions", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property can be used t [...]
"maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read [...]
@@ -170,6 +181,7 @@
"tableIncludeList": { "kind": "parameter", "displayName": "Table Include List", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured (deprec [...]
"timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and time [...]
- "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations shoul [...]
+ "tombstonesOnDelete": { "kind": "parameter", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations shoul [...]
+ "transactionTopic": { "kind": "parameter", "displayName": "Transaction Topic", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "${database.server.name}.transaction", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description [...]
}
}
diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc
index b06accc..c18f302 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_15.adoc
@@ -106,6 +106,10 @@ This should correctly be done with `steps` as child of `from`:
The JBang app that was previously named `CamelJBang` is now named `camel`. It is still possible to use the older name by installing it using `CamelJBang@apache/camel` but this approach is deprecated and should not be used in the future.
+=== camel-debezium
+
+Upgraded to Debezium 1.8 which requires Java 11 and Kafka Client 3.0 JARs.
+
=== camel-cdi
The legacy XML in `camel-cdi` with `<camelContext>` is deprecated, instead the XML DSL route loader should be used.
diff --git a/parent/pom.xml b/parent/pom.xml
index 12f7d69..9d483b9 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -162,7 +162,7 @@
<docker-java-version>3.2.12</docker-java-version>
<dozer-version>6.5.2</dozer-version>
<dropbox-version>3.2.0</dropbox-version>
- <debezium-version>1.7.1.Final</debezium-version>
+ <debezium-version>1.8.0.Final</debezium-version>
<debezium-mysql-connector-version>8.0.27</debezium-mysql-connector-version>
<eddsa-version>0.3.0</eddsa-version>
<egit-github-core-version>2.1.5</egit-github-core-version>