You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by oa...@apache.org on 2020/06/30 15:55:25 UTC
[camel] branch master updated: CAMEL-15261: Handle fields with
unwanted chars and upgrade Debezium to 1.2.0.Final (#3961)
This is an automated email from the ASF dual-hosted git repository.
oalsafi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new e7a7522 CAMEL-15261: Handle fields with unwanted chars and upgrade Debezium to 1.2.0.Final (#3961)
e7a7522 is described below
commit e7a752247b9931cc83aba5a0198b9885516e0857
Author: Omar Al-Safi <om...@gmail.com>
AuthorDate: Tue Jun 30 17:55:13 2020 +0200
CAMEL-15261: Handle fields with unwanted chars and upgrade Debezium to 1.2.0.Final (#3961)
---
.../maven/config/ConnectorConfigFieldsFactory.java | 7 +-
.../maven/config/ConnectorConfigGeneratorTest.java | 9 +
.../DebeziumMongodbComponentConfigurer.java | 28 +++
.../DebeziumMongodbEndpointConfigurer.java | 28 +++
...goDbConnectorEmbeddedDebeziumConfiguration.java | 139 ++++++++++---
.../camel/component/debezium/debezium-mongodb.json | 12 ++
.../src/main/docs/debezium-mongodb-component.adoc | 16 +-
.../debezium/DebeziumMySqlComponentConfigurer.java | 10 +
.../debezium/DebeziumMySqlEndpointConfigurer.java | 10 +
...ySqlConnectorEmbeddedDebeziumConfiguration.java | 60 ++++--
.../camel/component/debezium/debezium-mysql.json | 16 +-
.../src/main/docs/debezium-mysql-component.adoc | 20 +-
.../DebeziumPostgresComponentConfigurer.java | 33 +++
.../DebeziumPostgresEndpointConfigurer.java | 33 +++
...gresConnectorEmbeddedDebeziumConfiguration.java | 225 ++++++++++++++++-----
.../component/debezium/debezium-postgres.json | 18 +-
.../src/main/docs/debezium-postgres-component.adoc | 22 +-
.../DebeziumSqlserverComponentConfigurer.java | 33 +++
.../DebeziumSqlserverEndpointConfigurer.java | 33 +++
...rverConnectorEmbeddedDebeziumConfiguration.java | 194 ++++++++++++++----
.../component/debezium/debezium-sqlserver.json | 18 +-
.../main/docs/debezium-sqlserver-component.adoc | 22 +-
.../DebeziumMongodbComponentBuilderFactory.java | 91 +++++++++
.../dsl/DebeziumMysqlComponentBuilderFactory.java | 60 ++++--
.../DebeziumPostgresComponentBuilderFactory.java | 118 ++++++++++-
.../DebeziumSqlserverComponentBuilderFactory.java | 126 +++++++++++-
.../dsl/DebeziumMongodbEndpointBuilderFactory.java | 124 ++++++++++++
.../dsl/DebeziumMySqlEndpointBuilderFactory.java | 64 ++++--
.../DebeziumPostgresEndpointBuilderFactory.java | 136 ++++++++++++-
.../DebeziumSqlserverEndpointBuilderFactory.java | 149 +++++++++++++-
parent/pom.xml | 2 +-
31 files changed, 1662 insertions(+), 194 deletions(-)
diff --git a/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigFieldsFactory.java b/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigFieldsFactory.java
index 5a7165d..65a9ada 100644
--- a/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigFieldsFactory.java
+++ b/components/camel-debezium-common/camel-debezium-maven-plugin/src/main/java/org/apache/camel/maven/config/ConnectorConfigFieldsFactory.java
@@ -24,10 +24,13 @@ import java.util.stream.Stream;
import io.debezium.config.Field;
import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.common.config.ConfigDef;
public final class ConnectorConfigFieldsFactory {
+ private static final String[] ILLEGAL_CHARS = {"%", "+", "[", "]", "*", "(", ")", "ˆ", "@", "%", "~"};
+
private ConnectorConfigFieldsFactory() {
}
@@ -48,7 +51,9 @@ public final class ConnectorConfigFieldsFactory {
// create our map for fields
configDef.configKeys().forEach((name, configKey) -> {
- results.put(name, new ConnectorConfigField(configKey, deprecatedFields.contains(name), requiredFields.contains(name), overridenDefaultValues.getOrDefault(name, null)));
+ // check if name is clean
+ if (!StringUtils.containsAny(name, ILLEGAL_CHARS))
+ results.put(name, new ConnectorConfigField(configKey, deprecatedFields.contains(name), requiredFields.contains(name), overridenDefaultValues.getOrDefault(name, null)));
});
return results;
diff --git a/components/camel-debezium-common/camel-debezium-maven-plugin/src/test/java/org/apache/camel/maven/config/ConnectorConfigGeneratorTest.java b/components/camel-debezium-common/camel-debezium-maven-plugin/src/test/java/org/apache/camel/maven/config/ConnectorConfigGeneratorTest.java
index 0a9e481..6f366e9 100644
--- a/components/camel-debezium-common/camel-debezium-maven-plugin/src/test/java/org/apache/camel/maven/config/ConnectorConfigGeneratorTest.java
+++ b/components/camel-debezium-common/camel-debezium-maven-plugin/src/test/java/org/apache/camel/maven/config/ConnectorConfigGeneratorTest.java
@@ -28,9 +28,11 @@ import io.debezium.connector.mysql.MySqlConnector;
import io.debezium.connector.mysql.MySqlConnectorConfig;
import io.debezium.relational.RelationalDatabaseConnectorConfig;
import io.debezium.relational.history.FileDatabaseHistory;
+import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.connect.source.SourceConnector;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -49,6 +51,13 @@ public class ConnectorConfigGeneratorTest {
}
@Test
+ void testIfIgnoreUnWantedFieldsWithIllegal() {
+ final Map<String, ConnectorConfigField> fields = ConnectorConfigFieldsFactory.createConnectorFieldsAsMap(new MySqlConnector().config(), MySqlConnectorConfig.class, Collections.EMPTY_SET, Collections.EMPTY_MAP);
+
+ fields.forEach((name, connectorConfigField) -> assertFalse(StringUtils.containsAny(name, "%", "+", "[", "]", "*", "(", ")", "ˆ", "@", "%", "~"), "Illegal char found in the field name"));
+ }
+
+ @Test
void testIfItHandlesWrongClassInput() {
assertThrows(IllegalArgumentException.class, () -> {
ConnectorConfigGenerator.create(new MySqlConnector(), getClass(), Collections.emptySet(), Collections.emptyMap());
diff --git a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
index f0530ad..c70ffcb 100644
--- a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
+++ b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
@@ -43,12 +43,15 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "connectBackoffMaxDelayMs": getOrCreateConfiguration(target).setConnectBackoffMaxDelayMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "connectmaxattempts":
case "connectMaxAttempts": getOrCreateConfiguration(target).setConnectMaxAttempts(property(camelContext, int.class, value)); return true;
+ case "converters": getOrCreateConfiguration(target).setConverters(property(camelContext, java.lang.String.class, value)); return true;
case "databaseblacklist":
case "databaseBlacklist": getOrCreateConfiguration(target).setDatabaseBlacklist(property(camelContext, java.lang.String.class, value)); return true;
case "databasehistoryfilefilename":
case "databaseHistoryFileFilename": getOrCreateConfiguration(target).setDatabaseHistoryFileFilename(property(camelContext, java.lang.String.class, value)); return true;
case "databasewhitelist":
case "databaseWhitelist": getOrCreateConfiguration(target).setDatabaseWhitelist(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 "fieldblacklist":
case "fieldBlacklist": getOrCreateConfiguration(target).setFieldBlacklist(property(camelContext, java.lang.String.class, value)); return true;
case "fieldrenames":
@@ -67,6 +70,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "maxBatchSize": getOrCreateConfiguration(target).setMaxBatchSize(property(camelContext, int.class, value)); return true;
case "maxqueuesize":
case "maxQueueSize": getOrCreateConfiguration(target).setMaxQueueSize(property(camelContext, int.class, value)); return true;
+ case "mongodbauthsource":
+ case "mongodbAuthsource": getOrCreateConfiguration(target).setMongodbAuthsource(property(camelContext, java.lang.String.class, value)); return true;
case "mongodbhosts":
case "mongodbHosts": getOrCreateConfiguration(target).setMongodbHosts(property(camelContext, java.lang.String.class, value)); return true;
case "mongodbmembersautodiscover":
@@ -75,6 +80,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "mongodbName": getOrCreateConfiguration(target).setMongodbName(property(camelContext, java.lang.String.class, value)); return true;
case "mongodbpassword":
case "mongodbPassword": getOrCreateConfiguration(target).setMongodbPassword(property(camelContext, java.lang.String.class, value)); return true;
+ case "mongodbpollintervalsec":
+ case "mongodbPollIntervalSec": getOrCreateConfiguration(target).setMongodbPollIntervalSec(property(camelContext, int.class, value)); return true;
case "mongodbsslenabled":
case "mongodbSslEnabled": getOrCreateConfiguration(target).setMongodbSslEnabled(property(camelContext, boolean.class, value)); return true;
case "mongodbsslinvalidhostnameallowed":
@@ -99,6 +106,10 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "offsetStorageTopic": getOrCreateConfiguration(target).setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
case "pollintervalms":
case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
+ case "providetransactionmetadata":
+ case "provideTransactionMetadata": getOrCreateConfiguration(target).setProvideTransactionMetadata(property(camelContext, boolean.class, value)); return true;
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": getOrCreateConfiguration(target).setSanitizeFieldNames(property(camelContext, boolean.class, value)); return true;
case "skippedoperations":
case "skippedOperations": getOrCreateConfiguration(target).setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotdelayms":
@@ -127,9 +138,11 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
answer.put("connectBackoffInitialDelayMs", long.class);
answer.put("connectBackoffMaxDelayMs", long.class);
answer.put("connectMaxAttempts", int.class);
+ answer.put("converters", java.lang.String.class);
answer.put("databaseBlacklist", java.lang.String.class);
answer.put("databaseHistoryFileFilename", java.lang.String.class);
answer.put("databaseWhitelist", java.lang.String.class);
+ answer.put("eventProcessingFailureHandlingMode", java.lang.String.class);
answer.put("fieldBlacklist", java.lang.String.class);
answer.put("fieldRenames", java.lang.String.class);
answer.put("heartbeatIntervalMs", int.class);
@@ -139,10 +152,12 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
answer.put("internalValueConverter", java.lang.String.class);
answer.put("maxBatchSize", int.class);
answer.put("maxQueueSize", int.class);
+ answer.put("mongodbAuthsource", java.lang.String.class);
answer.put("mongodbHosts", java.lang.String.class);
answer.put("mongodbMembersAutoDiscover", boolean.class);
answer.put("mongodbName", java.lang.String.class);
answer.put("mongodbPassword", java.lang.String.class);
+ answer.put("mongodbPollIntervalSec", int.class);
answer.put("mongodbSslEnabled", boolean.class);
answer.put("mongodbSslInvalidHostnameAllowed", boolean.class);
answer.put("mongodbUser", java.lang.String.class);
@@ -155,6 +170,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
answer.put("offsetStorageReplicationFactor", int.class);
answer.put("offsetStorageTopic", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
+ answer.put("provideTransactionMetadata", boolean.class);
+ answer.put("sanitizeFieldNames", boolean.class);
answer.put("skippedOperations", java.lang.String.class);
answer.put("snapshotDelayMs", long.class);
answer.put("snapshotFetchSize", int.class);
@@ -185,12 +202,15 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "connectBackoffMaxDelayMs": return getOrCreateConfiguration(target).getConnectBackoffMaxDelayMs();
case "connectmaxattempts":
case "connectMaxAttempts": return getOrCreateConfiguration(target).getConnectMaxAttempts();
+ case "converters": return getOrCreateConfiguration(target).getConverters();
case "databaseblacklist":
case "databaseBlacklist": return getOrCreateConfiguration(target).getDatabaseBlacklist();
case "databasehistoryfilefilename":
case "databaseHistoryFileFilename": return getOrCreateConfiguration(target).getDatabaseHistoryFileFilename();
case "databasewhitelist":
case "databaseWhitelist": return getOrCreateConfiguration(target).getDatabaseWhitelist();
+ case "eventprocessingfailurehandlingmode":
+ case "eventProcessingFailureHandlingMode": return getOrCreateConfiguration(target).getEventProcessingFailureHandlingMode();
case "fieldblacklist":
case "fieldBlacklist": return getOrCreateConfiguration(target).getFieldBlacklist();
case "fieldrenames":
@@ -209,6 +229,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "maxBatchSize": return getOrCreateConfiguration(target).getMaxBatchSize();
case "maxqueuesize":
case "maxQueueSize": return getOrCreateConfiguration(target).getMaxQueueSize();
+ case "mongodbauthsource":
+ case "mongodbAuthsource": return getOrCreateConfiguration(target).getMongodbAuthsource();
case "mongodbhosts":
case "mongodbHosts": return getOrCreateConfiguration(target).getMongodbHosts();
case "mongodbmembersautodiscover":
@@ -217,6 +239,8 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "mongodbName": return getOrCreateConfiguration(target).getMongodbName();
case "mongodbpassword":
case "mongodbPassword": return getOrCreateConfiguration(target).getMongodbPassword();
+ case "mongodbpollintervalsec":
+ case "mongodbPollIntervalSec": return getOrCreateConfiguration(target).getMongodbPollIntervalSec();
case "mongodbsslenabled":
case "mongodbSslEnabled": return getOrCreateConfiguration(target).isMongodbSslEnabled();
case "mongodbsslinvalidhostnameallowed":
@@ -241,6 +265,10 @@ public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSuppor
case "offsetStorageTopic": return getOrCreateConfiguration(target).getOffsetStorageTopic();
case "pollintervalms":
case "pollIntervalMs": return getOrCreateConfiguration(target).getPollIntervalMs();
+ case "providetransactionmetadata":
+ case "provideTransactionMetadata": return getOrCreateConfiguration(target).isProvideTransactionMetadata();
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": return getOrCreateConfiguration(target).isSanitizeFieldNames();
case "skippedoperations":
case "skippedOperations": return getOrCreateConfiguration(target).getSkippedOperations();
case "snapshotdelayms":
diff --git a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
index 3707774..dd093c7 100644
--- a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
+++ b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbEndpointConfigurer.java
@@ -35,12 +35,15 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "connectBackoffMaxDelayMs": target.getConfiguration().setConnectBackoffMaxDelayMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "connectmaxattempts":
case "connectMaxAttempts": target.getConfiguration().setConnectMaxAttempts(property(camelContext, int.class, value)); return true;
+ case "converters": target.getConfiguration().setConverters(property(camelContext, java.lang.String.class, value)); return true;
case "databaseblacklist":
case "databaseBlacklist": target.getConfiguration().setDatabaseBlacklist(property(camelContext, java.lang.String.class, value)); return true;
case "databasehistoryfilefilename":
case "databaseHistoryFileFilename": target.getConfiguration().setDatabaseHistoryFileFilename(property(camelContext, java.lang.String.class, value)); return true;
case "databasewhitelist":
case "databaseWhitelist": target.getConfiguration().setDatabaseWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+ case "eventprocessingfailurehandlingmode":
+ case "eventProcessingFailureHandlingMode": target.getConfiguration().setEventProcessingFailureHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
case "exceptionhandler":
case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
case "exchangepattern":
@@ -63,6 +66,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "maxBatchSize": target.getConfiguration().setMaxBatchSize(property(camelContext, int.class, value)); return true;
case "maxqueuesize":
case "maxQueueSize": target.getConfiguration().setMaxQueueSize(property(camelContext, int.class, value)); return true;
+ case "mongodbauthsource":
+ case "mongodbAuthsource": target.getConfiguration().setMongodbAuthsource(property(camelContext, java.lang.String.class, value)); return true;
case "mongodbhosts":
case "mongodbHosts": target.getConfiguration().setMongodbHosts(property(camelContext, java.lang.String.class, value)); return true;
case "mongodbmembersautodiscover":
@@ -71,6 +76,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "mongodbName": target.getConfiguration().setMongodbName(property(camelContext, java.lang.String.class, value)); return true;
case "mongodbpassword":
case "mongodbPassword": target.getConfiguration().setMongodbPassword(property(camelContext, java.lang.String.class, value)); return true;
+ case "mongodbpollintervalsec":
+ case "mongodbPollIntervalSec": target.getConfiguration().setMongodbPollIntervalSec(property(camelContext, int.class, value)); return true;
case "mongodbsslenabled":
case "mongodbSslEnabled": target.getConfiguration().setMongodbSslEnabled(property(camelContext, boolean.class, value)); return true;
case "mongodbsslinvalidhostnameallowed":
@@ -95,6 +102,10 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "offsetStorageTopic": target.getConfiguration().setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
case "pollintervalms":
case "pollIntervalMs": target.getConfiguration().setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
+ case "providetransactionmetadata":
+ case "provideTransactionMetadata": target.getConfiguration().setProvideTransactionMetadata(property(camelContext, boolean.class, value)); return true;
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": target.getConfiguration().setSanitizeFieldNames(property(camelContext, boolean.class, value)); return true;
case "skippedoperations":
case "skippedOperations": target.getConfiguration().setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotdelayms":
@@ -123,9 +134,11 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
answer.put("connectBackoffInitialDelayMs", long.class);
answer.put("connectBackoffMaxDelayMs", long.class);
answer.put("connectMaxAttempts", int.class);
+ answer.put("converters", java.lang.String.class);
answer.put("databaseBlacklist", java.lang.String.class);
answer.put("databaseHistoryFileFilename", java.lang.String.class);
answer.put("databaseWhitelist", java.lang.String.class);
+ answer.put("eventProcessingFailureHandlingMode", java.lang.String.class);
answer.put("exceptionHandler", org.apache.camel.spi.ExceptionHandler.class);
answer.put("exchangePattern", org.apache.camel.ExchangePattern.class);
answer.put("fieldBlacklist", java.lang.String.class);
@@ -137,10 +150,12 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
answer.put("internalValueConverter", java.lang.String.class);
answer.put("maxBatchSize", int.class);
answer.put("maxQueueSize", int.class);
+ answer.put("mongodbAuthsource", java.lang.String.class);
answer.put("mongodbHosts", java.lang.String.class);
answer.put("mongodbMembersAutoDiscover", boolean.class);
answer.put("mongodbName", java.lang.String.class);
answer.put("mongodbPassword", java.lang.String.class);
+ answer.put("mongodbPollIntervalSec", int.class);
answer.put("mongodbSslEnabled", boolean.class);
answer.put("mongodbSslInvalidHostnameAllowed", boolean.class);
answer.put("mongodbUser", java.lang.String.class);
@@ -153,6 +168,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
answer.put("offsetStorageReplicationFactor", int.class);
answer.put("offsetStorageTopic", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
+ answer.put("provideTransactionMetadata", boolean.class);
+ answer.put("sanitizeFieldNames", boolean.class);
answer.put("skippedOperations", java.lang.String.class);
answer.put("snapshotDelayMs", long.class);
answer.put("snapshotFetchSize", int.class);
@@ -183,12 +200,15 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "connectBackoffMaxDelayMs": return target.getConfiguration().getConnectBackoffMaxDelayMs();
case "connectmaxattempts":
case "connectMaxAttempts": return target.getConfiguration().getConnectMaxAttempts();
+ case "converters": return target.getConfiguration().getConverters();
case "databaseblacklist":
case "databaseBlacklist": return target.getConfiguration().getDatabaseBlacklist();
case "databasehistoryfilefilename":
case "databaseHistoryFileFilename": return target.getConfiguration().getDatabaseHistoryFileFilename();
case "databasewhitelist":
case "databaseWhitelist": return target.getConfiguration().getDatabaseWhitelist();
+ case "eventprocessingfailurehandlingmode":
+ case "eventProcessingFailureHandlingMode": return target.getConfiguration().getEventProcessingFailureHandlingMode();
case "exceptionhandler":
case "exceptionHandler": return target.getExceptionHandler();
case "exchangepattern":
@@ -211,6 +231,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "maxBatchSize": return target.getConfiguration().getMaxBatchSize();
case "maxqueuesize":
case "maxQueueSize": return target.getConfiguration().getMaxQueueSize();
+ case "mongodbauthsource":
+ case "mongodbAuthsource": return target.getConfiguration().getMongodbAuthsource();
case "mongodbhosts":
case "mongodbHosts": return target.getConfiguration().getMongodbHosts();
case "mongodbmembersautodiscover":
@@ -219,6 +241,8 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "mongodbName": return target.getConfiguration().getMongodbName();
case "mongodbpassword":
case "mongodbPassword": return target.getConfiguration().getMongodbPassword();
+ case "mongodbpollintervalsec":
+ case "mongodbPollIntervalSec": return target.getConfiguration().getMongodbPollIntervalSec();
case "mongodbsslenabled":
case "mongodbSslEnabled": return target.getConfiguration().isMongodbSslEnabled();
case "mongodbsslinvalidhostnameallowed":
@@ -243,6 +267,10 @@ public class DebeziumMongodbEndpointConfigurer extends PropertyConfigurerSupport
case "offsetStorageTopic": return target.getConfiguration().getOffsetStorageTopic();
case "pollintervalms":
case "pollIntervalMs": return target.getConfiguration().getPollIntervalMs();
+ case "providetransactionmetadata":
+ case "provideTransactionMetadata": return target.getConfiguration().isProvideTransactionMetadata();
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": return target.getConfiguration().isSanitizeFieldNames();
case "skippedoperations":
case "skippedOperations": return target.getConfiguration().getSkippedOperations();
case "snapshotdelayms":
diff --git a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
index 8d3ff62..957ee89 100644
--- a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/configuration/MongoDbConnectorEmbeddedDebeziumConfiguration.java
@@ -23,18 +23,26 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
private long snapshotDelayMs = 0;
@UriParam(label = LABEL_NAME)
private String collectionBlacklist;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean provideTransactionMetadata = false;
@UriParam(label = LABEL_NAME)
private String collectionWhitelist;
@UriParam(label = LABEL_NAME, defaultValue = "false")
private boolean mongodbSslEnabled = false;
@UriParam(label = LABEL_NAME, defaultValue = "false")
private boolean tombstonesOnDelete = false;
+ @UriParam(label = LABEL_NAME, defaultValue = "30")
+ private int mongodbPollIntervalSec = 30;
@UriParam(label = LABEL_NAME, defaultValue = "true")
private boolean mongodbMembersAutoDiscover = true;
@UriParam(label = LABEL_NAME)
private String fieldRenames;
@UriParam(label = LABEL_NAME, defaultValue = "500ms", javaType = "java.time.Duration")
private long pollIntervalMs = 500;
+ @UriParam(label = LABEL_NAME, defaultValue = "admin")
+ private String mongodbAuthsource = "admin";
+ @UriParam(label = LABEL_NAME)
+ private String converters;
@UriParam(label = LABEL_NAME, defaultValue = "__debezium-heartbeat")
private String heartbeatTopicsPrefix = "__debezium-heartbeat";
@UriParam(label = LABEL_NAME)
@@ -47,17 +55,21 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
private int snapshotFetchSize;
@UriParam(label = LABEL_NAME)
private String databaseHistoryFileFilename;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean sanitizeFieldNames = false;
@UriParam(label = LABEL_NAME, defaultValue = "16")
private int connectMaxAttempts = 16;
@UriParam(label = LABEL_NAME)
private String mongodbUser;
- @UriParam(label = LABEL_NAME)
- private String fieldBlacklist;
+ @UriParam(label = LABEL_NAME, defaultValue = "fail")
+ private String eventProcessingFailureHandlingMode = "fail";
@UriParam(label = LABEL_NAME, defaultValue = "v2")
private String sourceStructVersion = "v2";
@UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
private int heartbeatIntervalMs = 0;
@UriParam(label = LABEL_NAME)
+ private String fieldBlacklist;
+ @UriParam(label = LABEL_NAME)
@Metadata(required = true)
private String mongodbName;
@UriParam(label = LABEL_NAME, defaultValue = "2m", javaType = "java.time.Duration")
@@ -66,10 +78,10 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
private boolean mongodbSslInvalidHostnameAllowed = false;
@UriParam(label = LABEL_NAME)
private String databaseBlacklist;
- @UriParam(label = LABEL_NAME)
- private String skippedOperations;
@UriParam(label = LABEL_NAME, defaultValue = "2048")
private int maxBatchSize = 2048;
+ @UriParam(label = LABEL_NAME)
+ private String skippedOperations;
@UriParam(label = LABEL_NAME, defaultValue = "initial")
private String snapshotMode = "initial";
@@ -133,6 +145,17 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Enables transaction metadata extraction together with event counting
+ */
+ public void setProvideTransactionMetadata(boolean provideTransactionMetadata) {
+ this.provideTransactionMetadata = provideTransactionMetadata;
+ }
+
+ public boolean isProvideTransactionMetadata() {
+ return provideTransactionMetadata;
+ }
+
+ /**
* The collections for which changes are to be captured
*/
public void setCollectionWhitelist(String collectionWhitelist) {
@@ -170,6 +193,18 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Frequency in seconds to look for new, removed, or changed replica sets.
+ * Defaults to 30 seconds.
+ */
+ public void setMongodbPollIntervalSec(int mongodbPollIntervalSec) {
+ this.mongodbPollIntervalSec = mongodbPollIntervalSec;
+ }
+
+ public int getMongodbPollIntervalSec() {
+ return mongodbPollIntervalSec;
+ }
+
+ /**
* Specifies whether the addresses in 'hosts' are seeds that should be used
* to discover all members of the cluster or replica set ('true'), or
* whether the address(es) in 'hosts' should be used as is ('false'). The
@@ -208,6 +243,30 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Database containing user credentials.
+ */
+ public void setMongodbAuthsource(String mongodbAuthsource) {
+ this.mongodbAuthsource = mongodbAuthsource;
+ }
+
+ public String getMongodbAuthsource() {
+ return mongodbAuthsource;
+ }
+
+ /**
+ * Optional list of custom converters that would be used instead of default
+ * ones. The converters are defined using '<converter.prefix>.type' config
+ * option and configured using options '<converter.prefix>.<option>'
+ */
+ public void setConverters(String converters) {
+ this.converters = converters;
+ }
+
+ public String getConverters() {
+ return converters;
+ }
+
+ /**
* The prefix that is used to name heartbeat topics.Defaults to
* __debezium-heartbeat.
*/
@@ -281,6 +340,17 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether field names will be sanitized to Avro naming conventions
+ */
+ public void setSanitizeFieldNames(boolean sanitizeFieldNames) {
+ this.sanitizeFieldNames = sanitizeFieldNames;
+ }
+
+ public boolean isSanitizeFieldNames() {
+ return sanitizeFieldNames;
+ }
+
+ /**
* Maximum number of failed connection attempts to a replica set primary
* before an exception occurs and task is aborted. Defaults to 16, which
* with the defaults for 'connect.backoff.initial.delay.ms' and
@@ -307,15 +377,20 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'field.blacklist' description.
+ * Specify how failures during processing of events (i.e. when encountering
+ * a corrupted event) should be handled, including:'fail' (the default) an
+ * exception indicating the problematic event and its position is raised,
+ * causing the connector to be stopped; 'warn' the problematic event and its
+ * position will be logged and the event will be skipped;'ignore' the
+ * problematic event will be skipped.
*/
- public void setFieldBlacklist(String fieldBlacklist) {
- this.fieldBlacklist = fieldBlacklist;
+ public void setEventProcessingFailureHandlingMode(
+ String eventProcessingFailureHandlingMode) {
+ this.eventProcessingFailureHandlingMode = eventProcessingFailureHandlingMode;
}
- public String getFieldBlacklist() {
- return fieldBlacklist;
+ public String getEventProcessingFailureHandlingMode() {
+ return eventProcessingFailureHandlingMode;
}
/**
@@ -344,6 +419,18 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Description is not available here, please check Debezium website for
+ * corresponding key 'field.blacklist' description.
+ */
+ public void setFieldBlacklist(String fieldBlacklist) {
+ this.fieldBlacklist = fieldBlacklist;
+ }
+
+ public String getFieldBlacklist() {
+ return fieldBlacklist;
+ }
+
+ /**
* Unique name that identifies the MongoDB replica set or cluster and all
* recorded offsets, andthat is used as a prefix for all schemas and topics.
* Each distinct MongoDB installation should have a separate namespace and
@@ -395,6 +482,17 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Maximum size of each batch of source records. Defaults to 2048.
+ */
+ public void setMaxBatchSize(int maxBatchSize) {
+ this.maxBatchSize = maxBatchSize;
+ }
+
+ public int getMaxBatchSize() {
+ return maxBatchSize;
+ }
+
+ /**
* The comma-separated list of operations to skip during streaming, defined
* as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no
* operations will be skipped.
@@ -408,17 +506,6 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
}
/**
- * Maximum size of each batch of source records. Defaults to 2048.
- */
- public void setMaxBatchSize(int maxBatchSize) {
- this.maxBatchSize = maxBatchSize;
- }
-
- public int getMaxBatchSize() {
- return maxBatchSize;
- }
-
- /**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'initial' (the default) to specify the connector should
* always perform an initial sync when required; 'never' to specify the
@@ -441,29 +528,35 @@ public class MongoDbConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "initial.sync.max.threads", initialSyncMaxThreads);
addPropertyIfNotNull(configBuilder, "snapshot.delay.ms", snapshotDelayMs);
addPropertyIfNotNull(configBuilder, "collection.blacklist", collectionBlacklist);
+ addPropertyIfNotNull(configBuilder, "provide.transaction.metadata", provideTransactionMetadata);
addPropertyIfNotNull(configBuilder, "collection.whitelist", collectionWhitelist);
addPropertyIfNotNull(configBuilder, "mongodb.ssl.enabled", mongodbSslEnabled);
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
+ addPropertyIfNotNull(configBuilder, "mongodb.poll.interval.sec", mongodbPollIntervalSec);
addPropertyIfNotNull(configBuilder, "mongodb.members.auto.discover", mongodbMembersAutoDiscover);
addPropertyIfNotNull(configBuilder, "field.renames", fieldRenames);
addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
+ addPropertyIfNotNull(configBuilder, "mongodb.authsource", mongodbAuthsource);
+ addPropertyIfNotNull(configBuilder, "converters", converters);
addPropertyIfNotNull(configBuilder, "heartbeat.topics.prefix", heartbeatTopicsPrefix);
addPropertyIfNotNull(configBuilder, "database.whitelist", databaseWhitelist);
addPropertyIfNotNull(configBuilder, "mongodb.hosts", mongodbHosts);
addPropertyIfNotNull(configBuilder, "connect.backoff.initial.delay.ms", connectBackoffInitialDelayMs);
addPropertyIfNotNull(configBuilder, "snapshot.fetch.size", snapshotFetchSize);
addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
+ addPropertyIfNotNull(configBuilder, "sanitize.field.names", sanitizeFieldNames);
addPropertyIfNotNull(configBuilder, "connect.max.attempts", connectMaxAttempts);
addPropertyIfNotNull(configBuilder, "mongodb.user", mongodbUser);
- addPropertyIfNotNull(configBuilder, "field.blacklist", fieldBlacklist);
+ addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
addPropertyIfNotNull(configBuilder, "source.struct.version", sourceStructVersion);
addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
+ addPropertyIfNotNull(configBuilder, "field.blacklist", fieldBlacklist);
addPropertyIfNotNull(configBuilder, "mongodb.name", mongodbName);
addPropertyIfNotNull(configBuilder, "connect.backoff.max.delay.ms", connectBackoffMaxDelayMs);
addPropertyIfNotNull(configBuilder, "mongodb.ssl.invalid.hostname.allowed", mongodbSslInvalidHostnameAllowed);
addPropertyIfNotNull(configBuilder, "database.blacklist", databaseBlacklist);
- addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
addPropertyIfNotNull(configBuilder, "max.batch.size", maxBatchSize);
+ addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
return configBuilder.build();
diff --git a/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json b/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
index 7fd0c3b..b6ef34f 100644
--- a/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
+++ b/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
@@ -40,9 +40,11 @@
"connectBackoffInitialDelayMs": { "kind": "property", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1s", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay when trying to reconn [...]
"connectBackoffMaxDelayMs": { "kind": "property", "displayName": "Connect Backoff Max Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "2m", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum delay when trying to reconnect to a [...]
"connectMaxAttempts": { "kind": "property", "displayName": "Connect Max Attempts", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "16", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of failed connection attempts to a replica set p [...]
+ "converters": { "kind": "property", "displayName": "Converters", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Optional list of custom converters that would be used instead of default ones. The converte [...]
"databaseBlacklist": { "kind": "property", "displayName": "Database Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be excluded" },
"databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record the d [...]
"databaseWhitelist": { "kind": "property", "displayName": "Database Whitelist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be captured" },
+ "eventProcessingFailureHandlingMode": { "kind": "property", "displayName": "Event Processing Failure Handling Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how fai [...]
"fieldBlacklist": { "kind": "property", "displayName": "Field Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding [...]
"fieldRenames": { "kind": "property", "displayName": "Field Renames", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding key [...]
"heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which the conn [...]
@@ -50,14 +52,18 @@
"initialSyncMaxThreads": { "kind": "property", "displayName": "Initial Sync Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of threads used to perform an initial sync [...]
"maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
"maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the database log bu [...]
+ "mongodbAuthsource": { "kind": "property", "displayName": "Mongodb Authsource", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "admin", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Database containing user credentials." },
"mongodbHosts": { "kind": "property", "displayName": "Mongodb Hosts", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server( [...]
"mongodbMembersAutoDiscover": { "kind": "property", "displayName": "Mongodb Members Auto Discover", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specifies whether the addresses in 'host [...]
"mongodbName": { "kind": "property", "displayName": "Mongodb Name", "group": "mongodb", "label": "consumer,mongodb", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name that identifies the MongoDB replica set or cluster and [...]
"mongodbPassword": { "kind": "property", "displayName": "Mongodb Password", "group": "mongodb", "label": "consumer,mongodb", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password to be used when connecting to MongoDB, if necessary." },
+ "mongodbPollIntervalSec": { "kind": "property", "displayName": "Mongodb Poll Interval Sec", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "30", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in seconds to look for new, removed, or chan [...]
"mongodbSslEnabled": { "kind": "property", "displayName": "Mongodb Ssl Enabled", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Should connector use SSL to connect to MongoDB instances" },
"mongodbSslInvalidHostnameAllowed": { "kind": "property", "displayName": "Mongodb Ssl Invalid Hostname Allowed", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether invalid host names [...]
"mongodbUser": { "kind": "property", "displayName": "Mongodb User", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Database user for connecting to MongoDB, if necessary." },
"pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear [...]
+ "provideTransactionMetadata": { "kind": "property", "displayName": "Provide Transaction Metadata", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction metadata extraction [...]
+ "sanitizeFieldNames": { "kind": "property", "displayName": "Sanitize Field Names", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether field names will be sanitized to Avro naming con [...]
"skippedOperations": { "kind": "property", "displayName": "Skipped Operations", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defined as: [...]
"snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
"snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a snap [...]
@@ -88,9 +94,11 @@
"connectBackoffInitialDelayMs": { "kind": "parameter", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1s", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay when trying to recon [...]
"connectBackoffMaxDelayMs": { "kind": "parameter", "displayName": "Connect Backoff Max Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "2m", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum delay when trying to reconnect to [...]
"connectMaxAttempts": { "kind": "parameter", "displayName": "Connect Max Attempts", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "16", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of failed connection attempts to a replica set [...]
+ "converters": { "kind": "parameter", "displayName": "Converters", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Optional list of custom converters that would be used instead of default ones. The convert [...]
"databaseBlacklist": { "kind": "parameter", "displayName": "Database Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be excluded" },
"databaseHistoryFileFilename": { "kind": "parameter", "displayName": "Database History File Filename", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record the [...]
"databaseWhitelist": { "kind": "parameter", "displayName": "Database Whitelist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be captured" },
+ "eventProcessingFailureHandlingMode": { "kind": "parameter", "displayName": "Event Processing Failure Handling Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how fa [...]
"fieldBlacklist": { "kind": "parameter", "displayName": "Field Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for correspondin [...]
"fieldRenames": { "kind": "parameter", "displayName": "Field Renames", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding ke [...]
"heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which the con [...]
@@ -98,14 +106,18 @@
"initialSyncMaxThreads": { "kind": "parameter", "displayName": "Initial Sync Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of threads used to perform an initial syn [...]
"maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
"maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the database log b [...]
+ "mongodbAuthsource": { "kind": "parameter", "displayName": "Mongodb Authsource", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "admin", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Database containing user credentials." },
"mongodbHosts": { "kind": "parameter", "displayName": "Mongodb Hosts", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server [...]
"mongodbMembersAutoDiscover": { "kind": "parameter", "displayName": "Mongodb Members Auto Discover", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specifies whether the addresses in 'hos [...]
"mongodbName": { "kind": "parameter", "displayName": "Mongodb Name", "group": "mongodb", "label": "consumer,mongodb", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name that identifies the MongoDB replica set or cluster an [...]
"mongodbPassword": { "kind": "parameter", "displayName": "Mongodb Password", "group": "mongodb", "label": "consumer,mongodb", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password to be used when connecting to MongoDB, if necess [...]
+ "mongodbPollIntervalSec": { "kind": "parameter", "displayName": "Mongodb Poll Interval Sec", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "30", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in seconds to look for new, removed, or cha [...]
"mongodbSslEnabled": { "kind": "parameter", "displayName": "Mongodb Ssl Enabled", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Should connector use SSL to connect to MongoDB instances" },
"mongodbSslInvalidHostnameAllowed": { "kind": "parameter", "displayName": "Mongodb Ssl Invalid Hostname Allowed", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether invalid host name [...]
"mongodbUser": { "kind": "parameter", "displayName": "Mongodb User", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Database user for connecting to MongoDB, if necessary." },
"pollIntervalMs": { "kind": "parameter", "displayName": "Poll Interval Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear [...]
+ "provideTransactionMetadata": { "kind": "parameter", "displayName": "Provide Transaction Metadata", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction metadata extraction [...]
+ "sanitizeFieldNames": { "kind": "parameter", "displayName": "Sanitize Field Names", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether field names will be sanitized to Avro naming co [...]
"skippedOperations": { "kind": "parameter", "displayName": "Skipped Operations", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defined as [...]
"snapshotDelayMs": { "kind": "parameter", "displayName": "Snapshot Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
"snapshotFetchSize": { "kind": "parameter", "displayName": "Snapshot Fetch Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a sna [...]
diff --git a/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc b/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc
index aedfe4e..2e3b04c 100644
--- a/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc
+++ b/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc
@@ -46,7 +46,7 @@ debezium-mongodb:name[?options]
// component options: START
-The Debezium MongoDB Connector component supports 43 options, which are listed below.
+The Debezium MongoDB Connector component supports 49 options, which are listed below.
@@ -72,9 +72,11 @@ The Debezium MongoDB Connector component supports 43 options, which are listed b
| *connectBackoffInitialDelayMs* (mongodb) | The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 1 second (1000 ms). | 1s | long
| *connectBackoffMaxDelayMs* (mongodb) | The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 120 second (120,000 ms). | 2m | long
| *connectMaxAttempts* (mongodb) | Maximum number of failed connection attempts to a replica set primary before an exception occurs and task is aborted. Defaults to 16, which with the defaults for 'connect.backoff.initial.delay.ms' and 'connect.backoff.max.delay.ms' results in just over 20 minutes of attempts before failing. | 16 | int
+| *converters* (mongodb) | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' | | String
| *databaseBlacklist* (mongodb) | The databases for which changes are to be excluded | | String
| *databaseHistoryFileFilename* (mongodb) | The path to the file that will be used to record the database history | | String
| *databaseWhitelist* (mongodb) | The databases for which changes are to be captured | | String
+| *eventProcessingFailureHandling Mode* (mongodb) | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
| *fieldBlacklist* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'field.blacklist' description. | | String
| *fieldRenames* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'field.renames' description. | | String
| *heartbeatIntervalMs* (mongodb) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0ms | int
@@ -82,14 +84,18 @@ The Debezium MongoDB Connector component supports 43 options, which are listed b
| *initialSyncMaxThreads* (mongodb) | Maximum number of threads used to perform an initial sync of the collections in a replica set. Defaults to 1. | 1 | int
| *maxBatchSize* (mongodb) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
| *maxQueueSize* (mongodb) | 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. | 8192 | int
+| *mongodbAuthsource* (mongodb) | Database containing user credentials. | admin | String
| *mongodbHosts* (mongodb) | The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server(s) in the replica set. | | String
| *mongodbMembersAutoDiscover* (mongodb) | Specifies whether the addresses in 'hosts' are seeds that should be used to discover all members of the cluster or replica set ('true'), or whether the address(es) in 'hosts' should be used as is ('false'). The default is 'true'. | true | boolean
| *mongodbName* (mongodb) | *Required* Unique name that identifies the MongoDB replica set or cluster and all recorded offsets, andthat is used as a prefix for all schemas and topics. Each distinct MongoDB installation should have a separate namespace and monitored by at most one Debezium connector. | | String
| *mongodbPassword* (mongodb) | *Required* Password to be used when connecting to MongoDB, if necessary. | | String
+| *mongodbPollIntervalSec* (mongodb) | Frequency in seconds to look for new, removed, or changed replica sets. Defaults to 30 seconds. | 30 | int
| *mongodbSslEnabled* (mongodb) | Should connector use SSL to connect to MongoDB instances | false | boolean
| *mongodbSslInvalidHostname Allowed* (mongodb) | Whether invalid host names are allowed when using SSL. If true the connection will not prevent man-in-the-middle attacks | false | boolean
| *mongodbUser* (mongodb) | Database user for connecting to MongoDB, if necessary. | | String
| *pollIntervalMs* (mongodb) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
+| *provideTransactionMetadata* (mongodb) | Enables transaction metadata extraction together with event counting | false | boolean
+| *sanitizeFieldNames* (mongodb) | Whether field names will be sanitized to Avro naming conventions | false | boolean
| *skippedOperations* (mongodb) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *snapshotDelayMs* (mongodb) | The number of milliseconds to delay before a snapshot will begin. | 0ms | long
| *snapshotFetchSize* (mongodb) | The maximum number of records that should be loaded into memory while performing a snapshot | | int
@@ -119,7 +125,7 @@ with the following path and query parameters:
|===
-=== Query Parameters (45 parameters):
+=== Query Parameters (51 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
@@ -146,9 +152,11 @@ with the following path and query parameters:
| *connectBackoffInitialDelayMs* (mongodb) | The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 1 second (1000 ms). | 1s | long
| *connectBackoffMaxDelayMs* (mongodb) | The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 120 second (120,000 ms). | 2m | long
| *connectMaxAttempts* (mongodb) | Maximum number of failed connection attempts to a replica set primary before an exception occurs and task is aborted. Defaults to 16, which with the defaults for 'connect.backoff.initial.delay.ms' and 'connect.backoff.max.delay.ms' results in just over 20 minutes of attempts before failing. | 16 | int
+| *converters* (mongodb) | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' | | String
| *databaseBlacklist* (mongodb) | The databases for which changes are to be excluded | | String
| *databaseHistoryFileFilename* (mongodb) | The path to the file that will be used to record the database history | | String
| *databaseWhitelist* (mongodb) | The databases for which changes are to be captured | | String
+| *eventProcessingFailureHandling Mode* (mongodb) | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
| *fieldBlacklist* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'field.blacklist' description. | | String
| *fieldRenames* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'field.renames' description. | | String
| *heartbeatIntervalMs* (mongodb) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0ms | int
@@ -156,14 +164,18 @@ with the following path and query parameters:
| *initialSyncMaxThreads* (mongodb) | Maximum number of threads used to perform an initial sync of the collections in a replica set. Defaults to 1. | 1 | int
| *maxBatchSize* (mongodb) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
| *maxQueueSize* (mongodb) | 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. | 8192 | int
+| *mongodbAuthsource* (mongodb) | Database containing user credentials. | admin | String
| *mongodbHosts* (mongodb) | The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server(s) in the replica set. | | String
| *mongodbMembersAutoDiscover* (mongodb) | Specifies whether the addresses in 'hosts' are seeds that should be used to discover all members of the cluster or replica set ('true'), or whether the address(es) in 'hosts' should be used as is ('false'). The default is 'true'. | true | boolean
| *mongodbName* (mongodb) | *Required* Unique name that identifies the MongoDB replica set or cluster and all recorded offsets, andthat is used as a prefix for all schemas and topics. Each distinct MongoDB installation should have a separate namespace and monitored by at most one Debezium connector. | | String
| *mongodbPassword* (mongodb) | *Required* Password to be used when connecting to MongoDB, if necessary. | | String
+| *mongodbPollIntervalSec* (mongodb) | Frequency in seconds to look for new, removed, or changed replica sets. Defaults to 30 seconds. | 30 | int
| *mongodbSslEnabled* (mongodb) | Should connector use SSL to connect to MongoDB instances | false | boolean
| *mongodbSslInvalidHostname Allowed* (mongodb) | Whether invalid host names are allowed when using SSL. If true the connection will not prevent man-in-the-middle attacks | false | boolean
| *mongodbUser* (mongodb) | Database user for connecting to MongoDB, if necessary. | | String
| *pollIntervalMs* (mongodb) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
+| *provideTransactionMetadata* (mongodb) | Enables transaction metadata extraction together with event counting | false | boolean
+| *sanitizeFieldNames* (mongodb) | Whether field names will be sanitized to Avro naming conventions | false | boolean
| *skippedOperations* (mongodb) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *snapshotDelayMs* (mongodb) | The number of milliseconds to delay before a snapshot will begin. | 0ms | long
| *snapshotFetchSize* (mongodb) | The maximum number of records that should be loaded into memory while performing a snapshot | | int
diff --git a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
index 734df28..33a8752 100644
--- a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
+++ b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
@@ -32,6 +32,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
case "bigintunsignedhandlingmode":
case "bigintUnsignedHandlingMode": getOrCreateConfiguration(target).setBigintUnsignedHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": getOrCreateConfiguration(target).setBinaryHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
case "binlogbuffersize":
case "binlogBufferSize": getOrCreateConfiguration(target).setBinlogBufferSize(property(camelContext, int.class, value)); return true;
case "bridgeerrorhandler":
@@ -147,6 +149,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "offsetStorageTopic": getOrCreateConfiguration(target).setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
case "pollintervalms":
case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
+ case "skippedoperations":
+ case "skippedOperations": getOrCreateConfiguration(target).setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotdelayms":
case "snapshotDelayMs": getOrCreateConfiguration(target).setSnapshotDelayMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "snapshotfetchsize":
@@ -181,6 +185,7 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
answer.put("additionalProperties", java.util.Map.class);
answer.put("basicPropertyBinding", boolean.class);
answer.put("bigintUnsignedHandlingMode", java.lang.String.class);
+ answer.put("binaryHandlingMode", java.lang.String.class);
answer.put("binlogBufferSize", int.class);
answer.put("bridgeErrorHandler", boolean.class);
answer.put("columnBlacklist", java.lang.String.class);
@@ -239,6 +244,7 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
answer.put("offsetStorageReplicationFactor", int.class);
answer.put("offsetStorageTopic", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
+ answer.put("skippedOperations", java.lang.String.class);
answer.put("snapshotDelayMs", long.class);
answer.put("snapshotFetchSize", int.class);
answer.put("snapshotLockingMode", java.lang.String.class);
@@ -264,6 +270,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "basicPropertyBinding": return target.isBasicPropertyBinding();
case "bigintunsignedhandlingmode":
case "bigintUnsignedHandlingMode": return getOrCreateConfiguration(target).getBigintUnsignedHandlingMode();
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": return getOrCreateConfiguration(target).getBinaryHandlingMode();
case "binlogbuffersize":
case "binlogBufferSize": return getOrCreateConfiguration(target).getBinlogBufferSize();
case "bridgeerrorhandler":
@@ -379,6 +387,8 @@ public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport
case "offsetStorageTopic": return getOrCreateConfiguration(target).getOffsetStorageTopic();
case "pollintervalms":
case "pollIntervalMs": return getOrCreateConfiguration(target).getPollIntervalMs();
+ case "skippedoperations":
+ case "skippedOperations": return getOrCreateConfiguration(target).getSkippedOperations();
case "snapshotdelayms":
case "snapshotDelayMs": return getOrCreateConfiguration(target).getSnapshotDelayMs();
case "snapshotfetchsize":
diff --git a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
index b4b7449..a6013ca 100644
--- a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
+++ b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlEndpointConfigurer.java
@@ -25,6 +25,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
case "bigintunsignedhandlingmode":
case "bigintUnsignedHandlingMode": target.getConfiguration().setBigintUnsignedHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": target.getConfiguration().setBinaryHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
case "binlogbuffersize":
case "binlogBufferSize": target.getConfiguration().setBinlogBufferSize(property(camelContext, int.class, value)); return true;
case "bridgeerrorhandler":
@@ -143,6 +145,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "offsetStorageTopic": target.getConfiguration().setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
case "pollintervalms":
case "pollIntervalMs": target.getConfiguration().setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
+ case "skippedoperations":
+ case "skippedOperations": target.getConfiguration().setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotdelayms":
case "snapshotDelayMs": target.getConfiguration().setSnapshotDelayMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "snapshotfetchsize":
@@ -178,6 +182,7 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
answer.put("additionalProperties", java.util.Map.class);
answer.put("basicPropertyBinding", boolean.class);
answer.put("bigintUnsignedHandlingMode", java.lang.String.class);
+ answer.put("binaryHandlingMode", java.lang.String.class);
answer.put("binlogBufferSize", int.class);
answer.put("bridgeErrorHandler", boolean.class);
answer.put("columnBlacklist", java.lang.String.class);
@@ -237,6 +242,7 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
answer.put("offsetStorageReplicationFactor", int.class);
answer.put("offsetStorageTopic", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
+ answer.put("skippedOperations", java.lang.String.class);
answer.put("snapshotDelayMs", long.class);
answer.put("snapshotFetchSize", int.class);
answer.put("snapshotLockingMode", java.lang.String.class);
@@ -263,6 +269,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "basicPropertyBinding": return target.isBasicPropertyBinding();
case "bigintunsignedhandlingmode":
case "bigintUnsignedHandlingMode": return target.getConfiguration().getBigintUnsignedHandlingMode();
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": return target.getConfiguration().getBinaryHandlingMode();
case "binlogbuffersize":
case "binlogBufferSize": return target.getConfiguration().getBinlogBufferSize();
case "bridgeerrorhandler":
@@ -381,6 +389,8 @@ public class DebeziumMySqlEndpointConfigurer extends PropertyConfigurerSupport i
case "offsetStorageTopic": return target.getConfiguration().getOffsetStorageTopic();
case "pollintervalms":
case "pollIntervalMs": return target.getConfiguration().getPollIntervalMs();
+ case "skippedoperations":
+ case "skippedOperations": return target.getConfiguration().getSkippedOperations();
case "snapshotdelayms":
case "snapshotDelayMs": return target.getConfiguration().getSnapshotDelayMs();
case "snapshotfetchsize":
diff --git a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
index b4299c9..1b1cd24 100644
--- a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/configuration/MySqlConnectorEmbeddedDebeziumConfiguration.java
@@ -69,6 +69,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
private boolean gtidSourceFilterDmlEvents = true;
@UriParam(label = LABEL_NAME)
private String databaseBlacklist;
+ @UriParam(label = LABEL_NAME)
+ private String skippedOperations;
@UriParam(label = LABEL_NAME, defaultValue = "2048")
private int maxBatchSize = 2048;
@UriParam(label = LABEL_NAME, defaultValue = "true")
@@ -93,6 +95,8 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
private boolean tombstonesOnDelete = false;
@UriParam(label = LABEL_NAME, defaultValue = "precise")
private String decimalHandlingMode = "precise";
+ @UriParam(label = LABEL_NAME, defaultValue = "bytes")
+ private String binaryHandlingMode = "bytes";
@UriParam(label = LABEL_NAME, defaultValue = "off")
private String snapshotNewTables = "off";
@UriParam(label = LABEL_NAME, defaultValue = "false")
@@ -178,8 +182,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events
*/
public void setColumnBlacklist(String columnBlacklist) {
this.columnBlacklist = columnBlacklist;
@@ -205,8 +208,9 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
* Whether the connector should publish changes in the database schema to a
* Kafka topic with the same name as the database server ID. Each schema
* change will be recorded using a key that contains the database name and
- * whose value includes the DDL statement(s).The default is 'true'. This is
- * independent of how the connector internally records database history.
+ * whose value include logical description of the new schema and optionally
+ * the DDL statement(s).The default is 'true'. This is independent of how
+ * the connector internally records database history.
*/
public void setIncludeSchemaChanges(boolean includeSchemaChanges) {
this.includeSchemaChanges = includeSchemaChanges;
@@ -531,6 +535,19 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The comma-separated list of operations to skip during streaming, defined
+ * as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no
+ * operations will be skipped.
+ */
+ public void setSkippedOperations(String skippedOperations) {
+ this.skippedOperations = skippedOperations;
+ }
+
+ public String getSkippedOperations() {
+ return skippedOperations;
+ }
+
+ /**
* Maximum size of each batch of source records. Defaults to 2048.
*/
public void setMaxBatchSize(int maxBatchSize) {
@@ -569,15 +586,16 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
/**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'when_needed' to specify that the connector run a
- * snapshot upon startup whenever it deems it necessary; 'initial' (the
- * default) to specify the connector can run a snapshot only when no offsets
- * are available for the logical server name; 'initial_only' same as
- * 'initial' except the connector should stop after completing the snapshot
- * and before it would normally read the binlog; and'never' to specify the
- * connector should never run a snapshot and that upon first startup the
- * connector should read from the beginning of the binlog. The 'never' mode
- * should be used with care, and only when the binlog is known to contain
- * all history.
+ * snapshot upon startup whenever it deems it necessary; 'schema_only' to
+ * only take a snapshot of the schema (table structures) but no actual data;
+ * 'initial' (the default) to specify the connector can run a snapshot only
+ * when no offsets are available for the logical server name; 'initial_only'
+ * same as 'initial' except the connector should stop after completing the
+ * snapshot and before it would normally read the binlog; and'never' to
+ * specify the connector should never run a snapshot and that upon first
+ * startup the connector should read from the beginning of the binlog. The
+ * 'never' mode should be used with care, and only when the binlog is known
+ * to contain all history.
*/
public void setSnapshotMode(String snapshotMode) {
this.snapshotMode = snapshotMode;
@@ -692,6 +710,20 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Specify how binary (blob, binary, etc.) columns should be represented in
+ * change events, including:'bytes' represents binary data as byte array
+ * (default)'base64' represents binary data as base64-encoded string'hex'
+ * represents binary data as hex-encoded (base16) string
+ */
+ public void setBinaryHandlingMode(String binaryHandlingMode) {
+ this.binaryHandlingMode = binaryHandlingMode;
+ }
+
+ public String getBinaryHandlingMode() {
+ return binaryHandlingMode;
+ }
+
+ /**
* 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
@@ -1004,6 +1036,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.history.store.only.monitored.tables.ddl", databaseHistoryStoreOnlyMonitoredTablesDdl);
addPropertyIfNotNull(configBuilder, "gtid.source.filter.dml.events", gtidSourceFilterDmlEvents);
addPropertyIfNotNull(configBuilder, "database.blacklist", databaseBlacklist);
+ addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
addPropertyIfNotNull(configBuilder, "max.batch.size", maxBatchSize);
addPropertyIfNotNull(configBuilder, "connect.keep.alive", connectKeepAlive);
addPropertyIfNotNull(configBuilder, "database.history", databaseHistory);
@@ -1016,6 +1049,7 @@ public class MySqlConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "table.whitelist", tableWhitelist);
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
+ addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
addPropertyIfNotNull(configBuilder, "snapshot.new.tables", snapshotNewTables);
addPropertyIfNotNull(configBuilder, "database.history.skip.unparseable.ddl", databaseHistorySkipUnparseableDdl);
addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
diff --git a/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json b/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
index bd9a3de..b3ee5f6 100644
--- a/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
+++ b/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
@@ -36,8 +36,9 @@
"offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.s [...]
"basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
"bigintUnsignedHandlingMode": { "kind": "property", "displayName": "Bigint Unsigned Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "long", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how BIGINT UNSIGNED columns sh [...]
+ "binaryHandlingMode": { "kind": "property", "displayName": "Binary Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "bytes", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binary (blob, binary, etc.) columns should [...]
"binlogBufferSize": { "kind": "property", "displayName": "Binlog Buffer Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The size of a look-ahead buffer used by the binlog reader to decide whethe [...]
- "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding key [...]
+ "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to exclude from change events" },
"connectKeepAlive": { "kind": "property", "displayName": "Connect Keep Alive", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether a separate thread should be used to ensure the connection i [...]
"connectKeepAliveIntervalMs": { "kind": "property", "displayName": "Connect Keep Alive Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval in milliseconds to wait for connection c [...]
"connectTimeoutMs": { "kind": "property", "displayName": "Connect Timeout Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum time in milliseconds to wait after trying to connect to the dat [...]
@@ -76,16 +77,17 @@
"heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": 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 which the connector [...]
"heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is used to name h [...]
"includeQuery": { "kind": "property", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL query that generated [...]
- "includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes in the databas [...]
+ "includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes in the databas [...]
"inconsistentSchemaHandlingMode": { "kind": "property", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binlog events that [...]
"maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": 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, "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 database log but not [...]
"messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified tables and c [...]
"pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear after [...]
+ "skippedOperations": { "kind": "property", "displayName": "Skipped Operations", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defined as: 'i' f [...]
"snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
"snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a snapshot" },
"snapshotLockingMode": { "kind": "property", "displayName": "Snapshot Locking Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "minimal", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls how long the connector holds onto the glo [...]
- "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the connector [...]
+ "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the connector [...]
"snapshotNewTables": { "kind": "property", "displayName": "Snapshot New Tables", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "off", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "BETA FEATURE: On connector restart, the connector will che [...]
"snapshotSelectStatementOverrides": { "kind": "property", "displayName": "Snapshot Select Statement Overrides", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separated list of f [...]
"sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visible source [...]
@@ -114,8 +116,9 @@
"basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
"synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
"bigintUnsignedHandlingMode": { "kind": "parameter", "displayName": "Bigint Unsigned Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "long", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how BIGINT UNSIGNED columns s [...]
+ "binaryHandlingMode": { "kind": "parameter", "displayName": "Binary Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "bytes", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binary (blob, binary, etc.) columns shoul [...]
"binlogBufferSize": { "kind": "parameter", "displayName": "Binlog Buffer Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The size of a look-ahead buffer used by the binlog reader to decide wheth [...]
- "columnBlacklist": { "kind": "parameter", "displayName": "Column Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding ke [...]
+ "columnBlacklist": { "kind": "parameter", "displayName": "Column Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to exclude from change events" },
"connectKeepAlive": { "kind": "parameter", "displayName": "Connect Keep Alive", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether a separate thread should be used to ensure the connection [...]
"connectKeepAliveIntervalMs": { "kind": "parameter", "displayName": "Connect Keep Alive Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval in milliseconds to wait for connection [...]
"connectTimeoutMs": { "kind": "parameter", "displayName": "Connect Timeout Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum time in milliseconds to wait after trying to connect to the da [...]
@@ -154,16 +157,17 @@
"heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "int", "deprecated": 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 which the connector [...]
"heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is used to name [...]
"includeQuery": { "kind": "parameter", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL query that generated [...]
- "includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes in the databa [...]
+ "includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes in the databa [...]
"inconsistentSchemaHandlingMode": { "kind": "parameter", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binlog events tha [...]
"maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": 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, "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 database log but not [...]
"messageKeyColumns": { "kind": "parameter", "displayName": "Message Key Columns", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified tables and [...]
"pollIntervalMs": { "kind": "parameter", "displayName": "Poll Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear after [...]
+ "skippedOperations": { "kind": "parameter", "displayName": "Skipped Operations", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defined as: 'i' [...]
"snapshotDelayMs": { "kind": "parameter", "displayName": "Snapshot Delay Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
"snapshotFetchSize": { "kind": "parameter", "displayName": "Snapshot Fetch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a snapshot" },
"snapshotLockingMode": { "kind": "parameter", "displayName": "Snapshot Locking Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "minimal", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls how long the connector holds onto the gl [...]
- "snapshotMode": { "kind": "parameter", "displayName": "Snapshot Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the connecto [...]
+ "snapshotMode": { "kind": "parameter", "displayName": "Snapshot Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the connecto [...]
"snapshotNewTables": { "kind": "parameter", "displayName": "Snapshot New Tables", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "off", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "BETA FEATURE: On connector restart, the connector will ch [...]
"snapshotSelectStatementOverrides": { "kind": "parameter", "displayName": "Snapshot Select Statement Overrides", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separated list of [...]
"sourceStructVersion": { "kind": "parameter", "displayName": "Source Struct Version", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visible source [...]
diff --git a/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc b/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
index e348b2b..b602bac 100644
--- a/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
+++ b/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
@@ -53,7 +53,7 @@ debezium-mysql:name[?options]
// component options: START
-The Debezium MySQL Connector component supports 73 options, which are listed below.
+The Debezium MySQL Connector component supports 75 options, which are listed below.
@@ -75,8 +75,9 @@ The Debezium MySQL Connector component supports 73 options, which are listed bel
| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. | | String
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *bigintUnsignedHandlingMode* (mysql) | Specify how BIGINT UNSIGNED columns should be represented in change events, including:'precise' uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'long' (the default) represents values using Java's 'long', which may not offer the precision but will be far easier to use in consumers. | long | String
+| *binaryHandlingMode* (mysql) | Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string | bytes | String
| *binlogBufferSize* (mysql) | The size of a look-ahead buffer used by the binlog reader to decide whether the transaction in progress is going to be committed or rolled back. Use 0 to disable look-ahead buffering. Defaults to 0 (i.e. buffering is disabled). | 0 | int
-| *columnBlacklist* (mysql) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. | | String
+| *columnBlacklist* (mysql) | Regular expressions matching columns to exclude from change events | | String
| *connectKeepAlive* (mysql) | Whether a separate thread should be used to ensure the connection is kept alive. | true | boolean
| *connectKeepAliveIntervalMs* (mysql) | Interval in milliseconds to wait for connection checking if keep alive thread is used. | 1m | long
| *connectTimeoutMs* (mysql) | Maximum time in milliseconds to wait after trying to connect to the database before timing out. | 30s | int
@@ -115,16 +116,17 @@ The Debezium MySQL Connector component supports 73 options, which are listed bel
| *heartbeatIntervalMs* (mysql) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0ms | int
| *heartbeatTopicsPrefix* (mysql) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
| *includeQuery* (mysql) | Whether the connector should include the original SQL query that generated the change event. Note: This option requires MySQL be configured with the binlog_rows_query_log_events option set to ON. Query will not be present for events generated from snapshot. WARNING: Enabling this option may expose tables or fields explicitly blacklisted or masked by including the original SQL statement in the change event. For this reason the default value is 'false'. | false | [...]
-| *includeSchemaChanges* (mysql) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value includes the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
+| *includeSchemaChanges* (mysql) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
| *inconsistentSchemaHandlingMode* (mysql) | Specify how binlog events that belong to a table missing from internal schema representation (i.e. internal representation is not consistent with database) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'skip' the problematic ev [...]
| *maxBatchSize* (mysql) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
| *maxQueueSize* (mysql) | 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. | 8192 | int
| *messageKeyColumns* (mysql) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) [...]
| *pollIntervalMs* (mysql) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
+| *skippedOperations* (mysql) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *snapshotDelayMs* (mysql) | The number of milliseconds to delay before a snapshot will begin. | 0ms | long
| *snapshotFetchSize* (mysql) | The maximum number of records that should be loaded into memory while performing a snapshot | | int
| *snapshotLockingMode* (mysql) | Controls how long the connector holds onto the global read lock while it is performing a snapshot. The default is 'minimal', which means the connector holds the global read lock (and thus prevents any updates) for just the initial portion of the snapshot while the database schemas and other metadata are being read. The remaining work in a snapshot involves selecting all rows from each table, and this can be done using the snapshot process' REPEATABLE REA [...]
-| *snapshotMode* (mysql) | The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally read the binlog; and [...]
+| *snapshotMode* (mysql) | The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'schema_only' to only take a snapshot of the schema (table structures) but no actual data; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector [...]
| *snapshotNewTables* (mysql) | 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 snapshot new tables.'parallel': The snapshot of the new tables will occur in parallel to the continued binlog reading of the old tables. When the snapshot completes, an independent binlog reader will begin reading the events for the new tables until [...]
| *snapshotSelectStatement Overrides* (mysql) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of [...]
| *sourceStructVersion* (mysql) | A version of the format of the publicly visible source part in the message | v2 | String
@@ -156,7 +158,7 @@ with the following path and query parameters:
|===
-=== Query Parameters (75 parameters):
+=== Query Parameters (77 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
@@ -179,8 +181,9 @@ with the following path and query parameters:
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
| *bigintUnsignedHandlingMode* (mysql) | Specify how BIGINT UNSIGNED columns should be represented in change events, including:'precise' uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'long' (the default) represents values using Java's 'long', which may not offer the precision but will be far easier to use in consumers. | long | String
+| *binaryHandlingMode* (mysql) | Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string | bytes | String
| *binlogBufferSize* (mysql) | The size of a look-ahead buffer used by the binlog reader to decide whether the transaction in progress is going to be committed or rolled back. Use 0 to disable look-ahead buffering. Defaults to 0 (i.e. buffering is disabled). | 0 | int
-| *columnBlacklist* (mysql) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. | | String
+| *columnBlacklist* (mysql) | Regular expressions matching columns to exclude from change events | | String
| *connectKeepAlive* (mysql) | Whether a separate thread should be used to ensure the connection is kept alive. | true | boolean
| *connectKeepAliveIntervalMs* (mysql) | Interval in milliseconds to wait for connection checking if keep alive thread is used. | 1m | long
| *connectTimeoutMs* (mysql) | Maximum time in milliseconds to wait after trying to connect to the database before timing out. | 30s | int
@@ -219,16 +222,17 @@ with the following path and query parameters:
| *heartbeatIntervalMs* (mysql) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0ms | int
| *heartbeatTopicsPrefix* (mysql) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
| *includeQuery* (mysql) | Whether the connector should include the original SQL query that generated the change event. Note: This option requires MySQL be configured with the binlog_rows_query_log_events option set to ON. Query will not be present for events generated from snapshot. WARNING: Enabling this option may expose tables or fields explicitly blacklisted or masked by including the original SQL statement in the change event. For this reason the default value is 'false'. | false | [...]
-| *includeSchemaChanges* (mysql) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value includes the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
+| *includeSchemaChanges* (mysql) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
| *inconsistentSchemaHandlingMode* (mysql) | Specify how binlog events that belong to a table missing from internal schema representation (i.e. internal representation is not consistent with database) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'skip' the problematic ev [...]
| *maxBatchSize* (mysql) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
| *maxQueueSize* (mysql) | 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. | 8192 | int
| *messageKeyColumns* (mysql) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) [...]
| *pollIntervalMs* (mysql) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
+| *skippedOperations* (mysql) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *snapshotDelayMs* (mysql) | The number of milliseconds to delay before a snapshot will begin. | 0ms | long
| *snapshotFetchSize* (mysql) | The maximum number of records that should be loaded into memory while performing a snapshot | | int
| *snapshotLockingMode* (mysql) | Controls how long the connector holds onto the global read lock while it is performing a snapshot. The default is 'minimal', which means the connector holds the global read lock (and thus prevents any updates) for just the initial portion of the snapshot while the database schemas and other metadata are being read. The remaining work in a snapshot involves selecting all rows from each table, and this can be done using the snapshot process' REPEATABLE REA [...]
-| *snapshotMode* (mysql) | The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally read the binlog; and [...]
+| *snapshotMode* (mysql) | The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'schema_only' to only take a snapshot of the schema (table structures) but no actual data; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector [...]
| *snapshotNewTables* (mysql) | 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 snapshot new tables.'parallel': The snapshot of the new tables will occur in parallel to the continued binlog reading of the old tables. When the snapshot completes, an independent binlog reader will begin reading the events for the new tables until [...]
| *snapshotSelectStatement Overrides* (mysql) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of [...]
| *sourceStructVersion* (mysql) | A version of the format of the publicly visible source part in the message | v2 | String
diff --git a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
index d79e852..fe58a43 100644
--- a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
+++ b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
@@ -30,11 +30,16 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "additionalProperties": getOrCreateConfiguration(target).setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
case "basicpropertybinding":
case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": getOrCreateConfiguration(target).setBinaryHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
case "bridgeerrorhandler":
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
case "columnblacklist":
case "columnBlacklist": getOrCreateConfiguration(target).setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+ case "columnwhitelist":
+ case "columnWhitelist": getOrCreateConfiguration(target).setColumnWhitelist(property(camelContext, java.lang.String.class, value)); return true;
case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration.class, value)); return true;
+ case "converters": getOrCreateConfiguration(target).setConverters(property(camelContext, java.lang.String.class, value)); return true;
case "databasedbname":
case "databaseDbname": getOrCreateConfiguration(target).setDatabaseDbname(property(camelContext, java.lang.String.class, value)); return true;
case "databasehistoryfilefilename":
@@ -113,14 +118,20 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "providetransactionmetadata":
case "provideTransactionMetadata": getOrCreateConfiguration(target).setProvideTransactionMetadata(property(camelContext, boolean.class, value)); return true;
+ case "publicationautocreatemode":
+ case "publicationAutocreateMode": getOrCreateConfiguration(target).setPublicationAutocreateMode(property(camelContext, java.lang.String.class, value)); return true;
case "publicationname":
case "publicationName": getOrCreateConfiguration(target).setPublicationName(property(camelContext, java.lang.String.class, value)); return true;
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": getOrCreateConfiguration(target).setSanitizeFieldNames(property(camelContext, boolean.class, value)); return true;
case "schemablacklist":
case "schemaBlacklist": getOrCreateConfiguration(target).setSchemaBlacklist(property(camelContext, java.lang.String.class, value)); return true;
case "schemarefreshmode":
case "schemaRefreshMode": getOrCreateConfiguration(target).setSchemaRefreshMode(property(camelContext, java.lang.String.class, value)); return true;
case "schemawhitelist":
case "schemaWhitelist": getOrCreateConfiguration(target).setSchemaWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+ case "skippedoperations":
+ case "skippedOperations": getOrCreateConfiguration(target).setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "slotdroponstop":
case "slotDropOnStop": getOrCreateConfiguration(target).setSlotDropOnStop(property(camelContext, boolean.class, value)); return true;
case "slotmaxretries":
@@ -149,6 +160,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "statusUpdateIntervalMs": getOrCreateConfiguration(target).setStatusUpdateIntervalMs(property(camelContext, int.class, value)); return true;
case "tableblacklist":
case "tableBlacklist": getOrCreateConfiguration(target).setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+ case "tableignorebuiltin":
+ case "tableIgnoreBuiltin": getOrCreateConfiguration(target).setTableIgnoreBuiltin(property(camelContext, boolean.class, value)); return true;
case "tablewhitelist":
case "tableWhitelist": getOrCreateConfiguration(target).setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
case "timeprecisionmode":
@@ -168,9 +181,12 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
Map<String, Object> answer = new CaseInsensitiveMap();
answer.put("additionalProperties", java.util.Map.class);
answer.put("basicPropertyBinding", boolean.class);
+ answer.put("binaryHandlingMode", java.lang.String.class);
answer.put("bridgeErrorHandler", boolean.class);
answer.put("columnBlacklist", java.lang.String.class);
+ answer.put("columnWhitelist", java.lang.String.class);
answer.put("configuration", org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration.class);
+ answer.put("converters", java.lang.String.class);
answer.put("databaseDbname", java.lang.String.class);
answer.put("databaseHistoryFileFilename", java.lang.String.class);
answer.put("databaseHostname", java.lang.String.class);
@@ -210,10 +226,13 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
answer.put("pluginName", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
answer.put("provideTransactionMetadata", boolean.class);
+ answer.put("publicationAutocreateMode", java.lang.String.class);
answer.put("publicationName", java.lang.String.class);
+ answer.put("sanitizeFieldNames", boolean.class);
answer.put("schemaBlacklist", java.lang.String.class);
answer.put("schemaRefreshMode", java.lang.String.class);
answer.put("schemaWhitelist", java.lang.String.class);
+ answer.put("skippedOperations", java.lang.String.class);
answer.put("slotDropOnStop", boolean.class);
answer.put("slotMaxRetries", int.class);
answer.put("slotName", java.lang.String.class);
@@ -228,6 +247,7 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
answer.put("sourceStructVersion", java.lang.String.class);
answer.put("statusUpdateIntervalMs", int.class);
answer.put("tableBlacklist", java.lang.String.class);
+ answer.put("tableIgnoreBuiltin", boolean.class);
answer.put("tableWhitelist", java.lang.String.class);
answer.put("timePrecisionMode", java.lang.String.class);
answer.put("toastedValuePlaceholder", java.lang.String.class);
@@ -244,11 +264,16 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "additionalProperties": return getOrCreateConfiguration(target).getAdditionalProperties();
case "basicpropertybinding":
case "basicPropertyBinding": return target.isBasicPropertyBinding();
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": return getOrCreateConfiguration(target).getBinaryHandlingMode();
case "bridgeerrorhandler":
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "columnblacklist":
case "columnBlacklist": return getOrCreateConfiguration(target).getColumnBlacklist();
+ case "columnwhitelist":
+ case "columnWhitelist": return getOrCreateConfiguration(target).getColumnWhitelist();
case "configuration": return target.getConfiguration();
+ case "converters": return getOrCreateConfiguration(target).getConverters();
case "databasedbname":
case "databaseDbname": return getOrCreateConfiguration(target).getDatabaseDbname();
case "databasehistoryfilefilename":
@@ -327,14 +352,20 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "pollIntervalMs": return getOrCreateConfiguration(target).getPollIntervalMs();
case "providetransactionmetadata":
case "provideTransactionMetadata": return getOrCreateConfiguration(target).isProvideTransactionMetadata();
+ case "publicationautocreatemode":
+ case "publicationAutocreateMode": return getOrCreateConfiguration(target).getPublicationAutocreateMode();
case "publicationname":
case "publicationName": return getOrCreateConfiguration(target).getPublicationName();
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": return getOrCreateConfiguration(target).isSanitizeFieldNames();
case "schemablacklist":
case "schemaBlacklist": return getOrCreateConfiguration(target).getSchemaBlacklist();
case "schemarefreshmode":
case "schemaRefreshMode": return getOrCreateConfiguration(target).getSchemaRefreshMode();
case "schemawhitelist":
case "schemaWhitelist": return getOrCreateConfiguration(target).getSchemaWhitelist();
+ case "skippedoperations":
+ case "skippedOperations": return getOrCreateConfiguration(target).getSkippedOperations();
case "slotdroponstop":
case "slotDropOnStop": return getOrCreateConfiguration(target).isSlotDropOnStop();
case "slotmaxretries":
@@ -363,6 +394,8 @@ public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSuppo
case "statusUpdateIntervalMs": return getOrCreateConfiguration(target).getStatusUpdateIntervalMs();
case "tableblacklist":
case "tableBlacklist": return getOrCreateConfiguration(target).getTableBlacklist();
+ case "tableignorebuiltin":
+ case "tableIgnoreBuiltin": return getOrCreateConfiguration(target).isTableIgnoreBuiltin();
case "tablewhitelist":
case "tableWhitelist": return getOrCreateConfiguration(target).getTableWhitelist();
case "timeprecisionmode":
diff --git a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
index df0364e..b058510 100644
--- a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
+++ b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresEndpointConfigurer.java
@@ -23,10 +23,15 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "additionalProperties": target.getConfiguration().setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
case "basicpropertybinding":
case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": target.getConfiguration().setBinaryHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
case "bridgeerrorhandler":
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
case "columnblacklist":
case "columnBlacklist": target.getConfiguration().setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+ case "columnwhitelist":
+ case "columnWhitelist": target.getConfiguration().setColumnWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+ case "converters": target.getConfiguration().setConverters(property(camelContext, java.lang.String.class, value)); return true;
case "databasedbname":
case "databaseDbname": target.getConfiguration().setDatabaseDbname(property(camelContext, java.lang.String.class, value)); return true;
case "databasehistoryfilefilename":
@@ -109,14 +114,20 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "pollIntervalMs": target.getConfiguration().setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "providetransactionmetadata":
case "provideTransactionMetadata": target.getConfiguration().setProvideTransactionMetadata(property(camelContext, boolean.class, value)); return true;
+ case "publicationautocreatemode":
+ case "publicationAutocreateMode": target.getConfiguration().setPublicationAutocreateMode(property(camelContext, java.lang.String.class, value)); return true;
case "publicationname":
case "publicationName": target.getConfiguration().setPublicationName(property(camelContext, java.lang.String.class, value)); return true;
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": target.getConfiguration().setSanitizeFieldNames(property(camelContext, boolean.class, value)); return true;
case "schemablacklist":
case "schemaBlacklist": target.getConfiguration().setSchemaBlacklist(property(camelContext, java.lang.String.class, value)); return true;
case "schemarefreshmode":
case "schemaRefreshMode": target.getConfiguration().setSchemaRefreshMode(property(camelContext, java.lang.String.class, value)); return true;
case "schemawhitelist":
case "schemaWhitelist": target.getConfiguration().setSchemaWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+ case "skippedoperations":
+ case "skippedOperations": target.getConfiguration().setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "slotdroponstop":
case "slotDropOnStop": target.getConfiguration().setSlotDropOnStop(property(camelContext, boolean.class, value)); return true;
case "slotmaxretries":
@@ -146,6 +157,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
case "tableblacklist":
case "tableBlacklist": target.getConfiguration().setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+ case "tableignorebuiltin":
+ case "tableIgnoreBuiltin": target.getConfiguration().setTableIgnoreBuiltin(property(camelContext, boolean.class, value)); return true;
case "tablewhitelist":
case "tableWhitelist": target.getConfiguration().setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
case "timeprecisionmode":
@@ -165,8 +178,11 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
Map<String, Object> answer = new CaseInsensitiveMap();
answer.put("additionalProperties", java.util.Map.class);
answer.put("basicPropertyBinding", boolean.class);
+ answer.put("binaryHandlingMode", java.lang.String.class);
answer.put("bridgeErrorHandler", boolean.class);
answer.put("columnBlacklist", java.lang.String.class);
+ answer.put("columnWhitelist", java.lang.String.class);
+ answer.put("converters", java.lang.String.class);
answer.put("databaseDbname", java.lang.String.class);
answer.put("databaseHistoryFileFilename", java.lang.String.class);
answer.put("databaseHostname", java.lang.String.class);
@@ -208,10 +224,13 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
answer.put("pluginName", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
answer.put("provideTransactionMetadata", boolean.class);
+ answer.put("publicationAutocreateMode", java.lang.String.class);
answer.put("publicationName", java.lang.String.class);
+ answer.put("sanitizeFieldNames", boolean.class);
answer.put("schemaBlacklist", java.lang.String.class);
answer.put("schemaRefreshMode", java.lang.String.class);
answer.put("schemaWhitelist", java.lang.String.class);
+ answer.put("skippedOperations", java.lang.String.class);
answer.put("slotDropOnStop", boolean.class);
answer.put("slotMaxRetries", int.class);
answer.put("slotName", java.lang.String.class);
@@ -227,6 +246,7 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
answer.put("statusUpdateIntervalMs", int.class);
answer.put("synchronous", boolean.class);
answer.put("tableBlacklist", java.lang.String.class);
+ answer.put("tableIgnoreBuiltin", boolean.class);
answer.put("tableWhitelist", java.lang.String.class);
answer.put("timePrecisionMode", java.lang.String.class);
answer.put("toastedValuePlaceholder", java.lang.String.class);
@@ -243,10 +263,15 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "additionalProperties": return target.getConfiguration().getAdditionalProperties();
case "basicpropertybinding":
case "basicPropertyBinding": return target.isBasicPropertyBinding();
+ case "binaryhandlingmode":
+ case "binaryHandlingMode": return target.getConfiguration().getBinaryHandlingMode();
case "bridgeerrorhandler":
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "columnblacklist":
case "columnBlacklist": return target.getConfiguration().getColumnBlacklist();
+ case "columnwhitelist":
+ case "columnWhitelist": return target.getConfiguration().getColumnWhitelist();
+ case "converters": return target.getConfiguration().getConverters();
case "databasedbname":
case "databaseDbname": return target.getConfiguration().getDatabaseDbname();
case "databasehistoryfilefilename":
@@ -329,14 +354,20 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "pollIntervalMs": return target.getConfiguration().getPollIntervalMs();
case "providetransactionmetadata":
case "provideTransactionMetadata": return target.getConfiguration().isProvideTransactionMetadata();
+ case "publicationautocreatemode":
+ case "publicationAutocreateMode": return target.getConfiguration().getPublicationAutocreateMode();
case "publicationname":
case "publicationName": return target.getConfiguration().getPublicationName();
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": return target.getConfiguration().isSanitizeFieldNames();
case "schemablacklist":
case "schemaBlacklist": return target.getConfiguration().getSchemaBlacklist();
case "schemarefreshmode":
case "schemaRefreshMode": return target.getConfiguration().getSchemaRefreshMode();
case "schemawhitelist":
case "schemaWhitelist": return target.getConfiguration().getSchemaWhitelist();
+ case "skippedoperations":
+ case "skippedOperations": return target.getConfiguration().getSkippedOperations();
case "slotdroponstop":
case "slotDropOnStop": return target.getConfiguration().isSlotDropOnStop();
case "slotmaxretries":
@@ -366,6 +397,8 @@ public class DebeziumPostgresEndpointConfigurer extends PropertyConfigurerSuppor
case "synchronous": return target.isSynchronous();
case "tableblacklist":
case "tableBlacklist": return target.getConfiguration().getTableBlacklist();
+ case "tableignorebuiltin":
+ case "tableIgnoreBuiltin": return target.getConfiguration().isTableIgnoreBuiltin();
case "tablewhitelist":
case "tableWhitelist": return target.getConfiguration().getTableWhitelist();
case "timeprecisionmode":
diff --git a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
index 2804371..044190c 100644
--- a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/configuration/PostgresConnectorEmbeddedDebeziumConfiguration.java
@@ -19,9 +19,9 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
@UriParam(label = LABEL_NAME)
private String columnBlacklist;
@UriParam(label = LABEL_NAME)
- private String schemaBlacklist;
- @UriParam(label = LABEL_NAME)
private String tableBlacklist;
+ @UriParam(label = LABEL_NAME)
+ private String schemaBlacklist;
@UriParam(label = LABEL_NAME, defaultValue = "6")
private int slotMaxRetries = 6;
@UriParam(label = LABEL_NAME, defaultValue = "columns_diff")
@@ -36,11 +36,13 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private long pollIntervalMs = 500;
@UriParam(label = LABEL_NAME)
private String databaseInitialStatements;
- @UriParam(label = LABEL_NAME, defaultValue = "__debezium-heartbeat")
- private String heartbeatTopicsPrefix = "__debezium-heartbeat";
@UriParam(label = LABEL_NAME, defaultValue = "numeric")
private String intervalHandlingMode = "numeric";
@UriParam(label = LABEL_NAME)
+ private String converters;
+ @UriParam(label = LABEL_NAME, defaultValue = "__debezium-heartbeat")
+ private String heartbeatTopicsPrefix = "__debezium-heartbeat";
+ @UriParam(label = LABEL_NAME)
private String databaseSslfactory;
@UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
private int statusUpdateIntervalMs = 10000;
@@ -49,17 +51,21 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
@UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
private long snapshotLockTimeoutMs = 10000;
@UriParam(label = LABEL_NAME)
- private String databaseDbname;
- @UriParam(label = LABEL_NAME)
private String databaseUser;
@UriParam(label = LABEL_NAME)
+ private String databaseDbname;
+ @UriParam(label = LABEL_NAME)
private String databaseSslkey;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean sanitizeFieldNames = false;
@UriParam(label = LABEL_NAME)
private String snapshotSelectStatementOverrides;
- @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
- private int heartbeatIntervalMs = 0;
@UriParam(label = LABEL_NAME, defaultValue = "v2")
private String sourceStructVersion = "v2";
+ @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
+ private int heartbeatIntervalMs = 0;
+ @UriParam(label = LABEL_NAME)
+ private String columnWhitelist;
@UriParam(label = LABEL_NAME, defaultValue = "decoderbufs")
private String pluginName = "decoderbufs";
@UriParam(label = LABEL_NAME)
@@ -75,6 +81,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private String databaseSslrootcert;
@UriParam(label = LABEL_NAME, defaultValue = "2048")
private int maxBatchSize = 2048;
+ @UriParam(label = LABEL_NAME)
+ private String skippedOperations;
@UriParam(label = LABEL_NAME, defaultValue = "initial")
private String snapshotMode = "initial";
@UriParam(label = LABEL_NAME, defaultValue = "8192")
@@ -97,8 +105,14 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
private long slotRetryDelayMs = 10000;
@UriParam(label = LABEL_NAME, defaultValue = "precise")
private String decimalHandlingMode = "precise";
+ @UriParam(label = LABEL_NAME, defaultValue = "bytes")
+ private String binaryHandlingMode = "bytes";
+ @UriParam(label = LABEL_NAME, defaultValue = "true")
+ private boolean tableIgnoreBuiltin = true;
@UriParam(label = LABEL_NAME, defaultValue = "true")
private boolean databaseTcpkeepalive = true;
+ @UriParam(label = LABEL_NAME, defaultValue = "all_tables")
+ private String publicationAutocreateMode = "all_tables";
@UriParam(label = LABEL_NAME)
private String databaseHistoryFileFilename;
@UriParam(label = LABEL_NAME, defaultValue = "false")
@@ -153,8 +167,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events
*/
public void setColumnBlacklist(String columnBlacklist) {
this.columnBlacklist = columnBlacklist;
@@ -165,17 +178,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
- * The schemas for which events must not be captured
- */
- public void setSchemaBlacklist(String schemaBlacklist) {
- this.schemaBlacklist = schemaBlacklist;
- }
-
- public String getSchemaBlacklist() {
- return schemaBlacklist;
- }
-
- /**
* Description is not available here, please check Debezium website for
* corresponding key 'table.blacklist' description.
*/
@@ -188,6 +190,17 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The schemas for which events must not be captured
+ */
+ public void setSchemaBlacklist(String schemaBlacklist) {
+ this.schemaBlacklist = schemaBlacklist;
+ }
+
+ public String getSchemaBlacklist() {
+ return schemaBlacklist;
+ }
+
+ /**
* How many times to retry connecting to a replication slot when an attempt
* fails.
*/
@@ -290,18 +303,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
- * The prefix that is used to name heartbeat topics.Defaults to
- * __debezium-heartbeat.
- */
- public void setHeartbeatTopicsPrefix(String heartbeatTopicsPrefix) {
- this.heartbeatTopicsPrefix = heartbeatTopicsPrefix;
- }
-
- public String getHeartbeatTopicsPrefix() {
- return heartbeatTopicsPrefix;
- }
-
- /**
* Specify how INTERVAL columns should be represented in change events,
* including:'string' represents values as an exact ISO formatted
* string'numeric' (default) represents values using the inexact conversion
@@ -316,6 +317,31 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Optional list of custom converters that would be used instead of default
+ * ones. The converters are defined using '<converter.prefix>.type' config
+ * option and configured using options '<converter.prefix>.<option>'
+ */
+ public void setConverters(String converters) {
+ this.converters = converters;
+ }
+
+ public String getConverters() {
+ return converters;
+ }
+
+ /**
+ * The prefix that is used to name heartbeat topics.Defaults to
+ * __debezium-heartbeat.
+ */
+ public void setHeartbeatTopicsPrefix(String heartbeatTopicsPrefix) {
+ this.heartbeatTopicsPrefix = heartbeatTopicsPrefix;
+ }
+
+ public String getHeartbeatTopicsPrefix() {
+ return heartbeatTopicsPrefix;
+ }
+
+ /**
* A name of class to that creates SSL Sockets. Use
* org.postgresql.ssl.NonValidatingFactory to disable SSL validation in
* development environments
@@ -366,17 +392,6 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
- * The name of the database the connector should be monitoring
- */
- public void setDatabaseDbname(String databaseDbname) {
- this.databaseDbname = databaseDbname;
- }
-
- public String getDatabaseDbname() {
- return databaseDbname;
- }
-
- /**
* Name of the Postgres database user to be used when connecting to the
* database.
*/
@@ -389,6 +404,17 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The name of the database the connector should be monitoring
+ */
+ public void setDatabaseDbname(String databaseDbname) {
+ this.databaseDbname = databaseDbname;
+ }
+
+ public String getDatabaseDbname() {
+ return databaseDbname;
+ }
+
+ /**
* File containing the SSL private key for the client. See the Postgres SSL
* docs for further information
*/
@@ -401,6 +427,17 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether field names will be sanitized to Avro naming conventions
+ */
+ public void setSanitizeFieldNames(boolean sanitizeFieldNames) {
+ this.sanitizeFieldNames = sanitizeFieldNames;
+ }
+
+ public boolean isSanitizeFieldNames() {
+ return sanitizeFieldNames;
+ }
+
+ /**
* This property contains a comma-separated list of fully-qualified tables
* (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on
* thespecific connectors . Select statements for the individual tables are
@@ -424,6 +461,18 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * A version of the format of the publicly visible source part in the
+ * message
+ */
+ public void setSourceStructVersion(String sourceStructVersion) {
+ this.sourceStructVersion = sourceStructVersion;
+ }
+
+ public String getSourceStructVersion() {
+ return sourceStructVersion;
+ }
+
+ /**
* Length of an interval in milli-seconds in in which the connector
* periodically sends heartbeat messages to a heartbeat topic. Use 0 to
* disable heartbeat messages. Disabled by default.
@@ -437,15 +486,14 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
- * A version of the format of the publicly visible source part in the
- * message
+ * Regular expressions matching columns to include in change events
*/
- public void setSourceStructVersion(String sourceStructVersion) {
- this.sourceStructVersion = sourceStructVersion;
+ public void setColumnWhitelist(String columnWhitelist) {
+ this.columnWhitelist = columnWhitelist;
}
- public String getSourceStructVersion() {
- return sourceStructVersion;
+ public String getColumnWhitelist() {
+ return columnWhitelist;
}
/**
@@ -534,6 +582,19 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The comma-separated list of operations to skip during streaming, defined
+ * as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no
+ * operations will be skipped.
+ */
+ public void setSkippedOperations(String skippedOperations) {
+ this.skippedOperations = skippedOperations;
+ }
+
+ public String getSkippedOperations() {
+ return skippedOperations;
+ }
+
+ /**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'always' to specify that the connector run a snapshot
* each time it starts up; 'initial' (the default) to specify the connector
@@ -687,6 +748,31 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Specify how binary (blob, binary, etc.) columns should be represented in
+ * change events, including:'bytes' represents binary data as byte array
+ * (default)'base64' represents binary data as base64-encoded string'hex'
+ * represents binary data as hex-encoded (base16) string
+ */
+ public void setBinaryHandlingMode(String binaryHandlingMode) {
+ this.binaryHandlingMode = binaryHandlingMode;
+ }
+
+ public String getBinaryHandlingMode() {
+ return binaryHandlingMode;
+ }
+
+ /**
+ * Flag specifying whether built-in tables should be ignored.
+ */
+ public void setTableIgnoreBuiltin(boolean tableIgnoreBuiltin) {
+ this.tableIgnoreBuiltin = tableIgnoreBuiltin;
+ }
+
+ public boolean isTableIgnoreBuiltin() {
+ return tableIgnoreBuiltin;
+ }
+
+ /**
* Enable or disable TCP keep-alive probe to avoid dropping TCP connection
*/
public void setDatabaseTcpkeepalive(boolean databaseTcpkeepalive) {
@@ -698,6 +784,30 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Applies only when streaming changes using pgoutput.Determine how creation
+ * of a publication should work, the default is all_tables.DISABLED - The
+ * connector will not attempt to create a publication at all. The
+ * expectation is that the user has created the publication up-front. If the
+ * publication isn't found to exist upon startup, the connector will throw
+ * an exception and stop.ALL_TABLES - If no publication exists, the
+ * connector will create a new publication for all tables. Note this
+ * requires that the configured user has access. If the publication already
+ * exists, it will be used. i.e CREATE PUBLICATION <publication_name> FOR
+ * ALL TABLES;FILTERED - If no publication exists, the connector will create
+ * a new publication for all those tables matchingthe current filter
+ * configuration (see table/database whitelist/blacklist properties). If the
+ * publication already exists, it will be used. i.e CREATE PUBLICATION
+ * <publication_name> FOR TABLE <tbl1, tbl2, etc>
+ */
+ public void setPublicationAutocreateMode(String publicationAutocreateMode) {
+ this.publicationAutocreateMode = publicationAutocreateMode;
+ }
+
+ public String getPublicationAutocreateMode() {
+ return publicationAutocreateMode;
+ }
+
+ /**
* The path to the file that will be used to record the database history
*/
public void setDatabaseHistoryFileFilename(
@@ -842,8 +952,8 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "message.key.columns", messageKeyColumns);
addPropertyIfNotNull(configBuilder, "publication.name", publicationName);
addPropertyIfNotNull(configBuilder, "column.blacklist", columnBlacklist);
- addPropertyIfNotNull(configBuilder, "schema.blacklist", schemaBlacklist);
addPropertyIfNotNull(configBuilder, "table.blacklist", tableBlacklist);
+ addPropertyIfNotNull(configBuilder, "schema.blacklist", schemaBlacklist);
addPropertyIfNotNull(configBuilder, "slot.max.retries", slotMaxRetries);
addPropertyIfNotNull(configBuilder, "schema.refresh.mode", schemaRefreshMode);
addPropertyIfNotNull(configBuilder, "database.sslmode", databaseSslmode);
@@ -851,18 +961,21 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.sslcert", databaseSslcert);
addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
addPropertyIfNotNull(configBuilder, "database.initial.statements", databaseInitialStatements);
- addPropertyIfNotNull(configBuilder, "heartbeat.topics.prefix", heartbeatTopicsPrefix);
addPropertyIfNotNull(configBuilder, "interval.handling.mode", intervalHandlingMode);
+ addPropertyIfNotNull(configBuilder, "converters", converters);
+ addPropertyIfNotNull(configBuilder, "heartbeat.topics.prefix", heartbeatTopicsPrefix);
addPropertyIfNotNull(configBuilder, "database.sslfactory", databaseSslfactory);
addPropertyIfNotNull(configBuilder, "status.update.interval.ms", statusUpdateIntervalMs);
addPropertyIfNotNull(configBuilder, "snapshot.fetch.size", snapshotFetchSize);
addPropertyIfNotNull(configBuilder, "snapshot.lock.timeout.ms", snapshotLockTimeoutMs);
- addPropertyIfNotNull(configBuilder, "database.dbname", databaseDbname);
addPropertyIfNotNull(configBuilder, "database.user", databaseUser);
+ addPropertyIfNotNull(configBuilder, "database.dbname", databaseDbname);
addPropertyIfNotNull(configBuilder, "database.sslkey", databaseSslkey);
+ addPropertyIfNotNull(configBuilder, "sanitize.field.names", sanitizeFieldNames);
addPropertyIfNotNull(configBuilder, "snapshot.select.statement.overrides", snapshotSelectStatementOverrides);
- addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
addPropertyIfNotNull(configBuilder, "source.struct.version", sourceStructVersion);
+ addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
+ addPropertyIfNotNull(configBuilder, "column.whitelist", columnWhitelist);
addPropertyIfNotNull(configBuilder, "plugin.name", pluginName);
addPropertyIfNotNull(configBuilder, "database.sslpassword", databaseSslpassword);
addPropertyIfNotNull(configBuilder, "toasted.value.placeholder", toastedValuePlaceholder);
@@ -870,6 +983,7 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.password", databasePassword);
addPropertyIfNotNull(configBuilder, "database.sslrootcert", databaseSslrootcert);
addPropertyIfNotNull(configBuilder, "max.batch.size", maxBatchSize);
+ addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
addPropertyIfNotNull(configBuilder, "max.queue.size", maxQueueSize);
addPropertyIfNotNull(configBuilder, "snapshot.custom.class", snapshotCustomClass);
@@ -881,7 +995,10 @@ public class PostgresConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
addPropertyIfNotNull(configBuilder, "slot.retry.delay.ms", slotRetryDelayMs);
addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
+ addPropertyIfNotNull(configBuilder, "binary.handling.mode", binaryHandlingMode);
+ addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
addPropertyIfNotNull(configBuilder, "database.tcpKeepAlive", databaseTcpkeepalive);
+ addPropertyIfNotNull(configBuilder, "publication.autocreate.mode", publicationAutocreateMode);
addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
addPropertyIfNotNull(configBuilder, "slot.drop.on.stop", slotDropOnStop);
addPropertyIfNotNull(configBuilder, "xmin.fetch.interval.ms", xminFetchIntervalMs);
diff --git a/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json b/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
index efdd628..fb2433e 100644
--- a/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
+++ b/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
@@ -35,7 +35,10 @@
"offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offset storage topic. Re [...]
"offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offse [...]
"basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
- "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for correspo [...]
+ "binaryHandlingMode": { "kind": "property", "displayName": "Binary Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "bytes", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binary (blob, binary, etc.) colum [...]
+ "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to exclude from change events" },
+ "columnWhitelist": { "kind": "property", "displayName": "Column Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to include in change events" },
+ "converters": { "kind": "property", "displayName": "Converters", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Optional list of custom converters that would be used instead of default ones. The conve [...]
"databaseDbname": { "kind": "property", "displayName": "Database Dbname", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the database the connector should be monitoring" },
"databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record th [...]
"databaseHostname": { "kind": "property", "displayName": "Database Hostname", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Resolvable hostname or IP address of the Postgres database server." },
@@ -65,10 +68,13 @@
"pluginName": { "kind": "property", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical decoding plugin install [...]
"pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appe [...]
"provideTransactionMetadata": { "kind": "property", "displayName": "Provide Transaction Metadata", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction metadata extracti [...]
+ "publicationAutocreateMode": { "kind": "property", "displayName": "Publication Autocreate Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "all_tables", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Applies only when streamin [...]
"publicationName": { "kind": "property", "displayName": "Publication Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "dbz_publication", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres 10 publication us [...]
+ "sanitizeFieldNames": { "kind": "property", "displayName": "Sanitize Field Names", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether field names will be sanitized to Avro naming [...]
"schemaBlacklist": { "kind": "property", "displayName": "Schema Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The schemas for which events must not be captured" },
"schemaRefreshMode": { "kind": "property", "displayName": "Schema Refresh Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "columns_diff", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify the conditions that trigger a re [...]
"schemaWhitelist": { "kind": "property", "displayName": "Schema Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The schemas for which events should be captured" },
+ "skippedOperations": { "kind": "property", "displayName": "Skipped Operations", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defined [...]
"slotDropOnStop": { "kind": "property", "displayName": "Slot Drop On Stop", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether or not to drop the logical replication slot when the [...]
"slotMaxRetries": { "kind": "property", "displayName": "Slot Max Retries", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "6", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "How many times to retry connecting to a replication slot when an atte [...]
"slotName": { "kind": "property", "displayName": "Slot Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "debezium", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical decoding slot created for stre [...]
@@ -83,6 +89,7 @@
"sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visibl [...]
"statusUpdateIntervalMs": { "kind": "property", "displayName": "Status Update Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds for sending replication [...]
"tableBlacklist": { "kind": "property", "displayName": "Table Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for correspond [...]
+ "tableIgnoreBuiltin": { "kind": "property", "displayName": "Table Ignore Builtin", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Flag specifying whether built-in tables should be igno [...]
"tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timestamps can be represente [...]
"toastedValuePlaceholder": { "kind": "property", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify the [...]
@@ -107,7 +114,10 @@
"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, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
"basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
"synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
- "columnBlacklist": { "kind": "parameter", "displayName": "Column Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresp [...]
+ "binaryHandlingMode": { "kind": "parameter", "displayName": "Binary Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "bytes", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binary (blob, binary, etc.) colu [...]
+ "columnBlacklist": { "kind": "parameter", "displayName": "Column Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to exclude from change events" },
+ "columnWhitelist": { "kind": "parameter", "displayName": "Column Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to include in change events" },
+ "converters": { "kind": "parameter", "displayName": "Converters", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Optional list of custom converters that would be used instead of default ones. The conv [...]
"databaseDbname": { "kind": "parameter", "displayName": "Database Dbname", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the database the connector should be monitoring" },
"databaseHistoryFileFilename": { "kind": "parameter", "displayName": "Database History File Filename", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record t [...]
"databaseHostname": { "kind": "parameter", "displayName": "Database Hostname", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Resolvable hostname or IP address of the Postgres database server." },
@@ -137,10 +147,13 @@
"pluginName": { "kind": "parameter", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical decoding plugin instal [...]
"pollIntervalMs": { "kind": "parameter", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to app [...]
"provideTransactionMetadata": { "kind": "parameter", "displayName": "Provide Transaction Metadata", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction metadata extract [...]
+ "publicationAutocreateMode": { "kind": "parameter", "displayName": "Publication Autocreate Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "all_tables", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Applies only when streami [...]
"publicationName": { "kind": "parameter", "displayName": "Publication Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "dbz_publication", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres 10 publication u [...]
+ "sanitizeFieldNames": { "kind": "parameter", "displayName": "Sanitize Field Names", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether field names will be sanitized to Avro naming [...]
"schemaBlacklist": { "kind": "parameter", "displayName": "Schema Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The schemas for which events must not be captured" },
"schemaRefreshMode": { "kind": "parameter", "displayName": "Schema Refresh Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "columns_diff", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify the conditions that trigger a r [...]
"schemaWhitelist": { "kind": "parameter", "displayName": "Schema Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The schemas for which events should be captured" },
+ "skippedOperations": { "kind": "parameter", "displayName": "Skipped Operations", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defined [...]
"slotDropOnStop": { "kind": "parameter", "displayName": "Slot Drop On Stop", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether or not to drop the logical replication slot when th [...]
"slotMaxRetries": { "kind": "parameter", "displayName": "Slot Max Retries", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "6", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "How many times to retry connecting to a replication slot when an att [...]
"slotName": { "kind": "parameter", "displayName": "Slot Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "debezium", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical decoding slot created for str [...]
@@ -155,6 +168,7 @@
"sourceStructVersion": { "kind": "parameter", "displayName": "Source Struct Version", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visib [...]
"statusUpdateIntervalMs": { "kind": "parameter", "displayName": "Status Update Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds for sending replicatio [...]
"tableBlacklist": { "kind": "parameter", "displayName": "Table Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for correspon [...]
+ "tableIgnoreBuiltin": { "kind": "parameter", "displayName": "Table Ignore Builtin", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Flag specifying whether built-in tables should be ign [...]
"tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
"timePrecisionMode": { "kind": "parameter", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timestamps can be represent [...]
"toastedValuePlaceholder": { "kind": "parameter", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify the [...]
diff --git a/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc b/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
index 32afdf2..3bc8680 100644
--- a/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
+++ b/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
@@ -44,7 +44,7 @@ debezium-postgres:name[?options]
// component options: START
-The Debezium PostgresSQL Connector component supports 67 options, which are listed below.
+The Debezium PostgresSQL Connector component supports 74 options, which are listed below.
@@ -65,7 +65,10 @@ The Debezium PostgresSQL Connector component supports 67 options, which are list
| *offsetStorageReplicationFactor* (consumer) | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore | | int
| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. | | String
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *columnBlacklist* (postgres) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. | | String
+| *binaryHandlingMode* (postgres) | Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string | bytes | String
+| *columnBlacklist* (postgres) | Regular expressions matching columns to exclude from change events | | String
+| *columnWhitelist* (postgres) | Regular expressions matching columns to include in change events | | String
+| *converters* (postgres) | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' | | String
| *databaseDbname* (postgres) | The name of the database the connector should be monitoring | | String
| *databaseHistoryFileFilename* (postgres) | The path to the file that will be used to record the database history | | String
| *databaseHostname* (postgres) | Resolvable hostname or IP address of the Postgres database server. | | String
@@ -95,10 +98,13 @@ The Debezium PostgresSQL Connector component supports 67 options, which are list
| *pluginName* (postgres) | The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs' and 'wal2json'. Defaults to 'decoderbufs'. | decoderbufs | String
| *pollIntervalMs* (postgres) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
| *provideTransactionMetadata* (postgres) | Enables transaction metadata extraction together with event counting | false | boolean
+| *publicationAutocreateMode* (postgres) | Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all. The expectation is that the user has created the publication up-front. If the publication isn't found to exist upon startup, the connector will throw an exception and stop.ALL_TABLES - If no publication exists, the connector will create a new pu [...]
| *publicationName* (postgres) | The name of the Postgres 10 publication used for streaming changes from a plugin.Defaults to 'dbz_publication' | dbz_publication | String
+| *sanitizeFieldNames* (postgres) | Whether field names will be sanitized to Avro naming conventions | false | boolean
| *schemaBlacklist* (postgres) | The schemas for which events must not be captured | | String
| *schemaRefreshMode* (postgres) | Specify the conditions that trigger a refresh of the in-memory schema for a table. 'columns_diff' (the default) is the safest mode, ensuring the in-memory schema stays in-sync with the database table's schema at all times. 'columns_diff_exclude_unchanged_toast' instructs the connector to refresh the in-memory schema cache if there is a discrepancy between it and the schema derived from the incoming message, unless unchanged TOASTable data fully accounts [...]
| *schemaWhitelist* (postgres) | The schemas for which events should be captured | | String
+| *skippedOperations* (postgres) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *slotDropOnStop* (postgres) | Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location | false | boolean
| *slotMaxRetries* (postgres) | How many times to retry connecting to a replication slot when an attempt fails. | 6 | int
| *slotName* (postgres) | The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium | debezium | String
@@ -113,6 +119,7 @@ The Debezium PostgresSQL Connector component supports 67 options, which are list
| *sourceStructVersion* (postgres) | A version of the format of the publicly visible source part in the message | v2 | String
| *statusUpdateIntervalMs* (postgres) | Frequency in milliseconds for sending replication connection status updates to the server. Defaults to 10 seconds (10000 ms). | 10s | int
| *tableBlacklist* (postgres) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. | | String
+| *tableIgnoreBuiltin* (postgres) | Flag specifying whether built-in tables should be ignored. | true | boolean
| *tableWhitelist* (postgres) | The tables for which changes are to be captured | | String
| *timePrecisionMode* (postgres) | 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; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which us [...]
| *toastedValuePlaceholder* (postgres) | 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. | __debezium_unavailable_value | String
@@ -141,7 +148,7 @@ with the following path and query parameters:
|===
-=== Query Parameters (69 parameters):
+=== Query Parameters (76 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
@@ -163,7 +170,10 @@ with the following path and query parameters:
| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
-| *columnBlacklist* (postgres) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. | | String
+| *binaryHandlingMode* (postgres) | Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string | bytes | String
+| *columnBlacklist* (postgres) | Regular expressions matching columns to exclude from change events | | String
+| *columnWhitelist* (postgres) | Regular expressions matching columns to include in change events | | String
+| *converters* (postgres) | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' | | String
| *databaseDbname* (postgres) | The name of the database the connector should be monitoring | | String
| *databaseHistoryFileFilename* (postgres) | The path to the file that will be used to record the database history | | String
| *databaseHostname* (postgres) | Resolvable hostname or IP address of the Postgres database server. | | String
@@ -193,10 +203,13 @@ with the following path and query parameters:
| *pluginName* (postgres) | The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs' and 'wal2json'. Defaults to 'decoderbufs'. | decoderbufs | String
| *pollIntervalMs* (postgres) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
| *provideTransactionMetadata* (postgres) | Enables transaction metadata extraction together with event counting | false | boolean
+| *publicationAutocreateMode* (postgres) | Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all. The expectation is that the user has created the publication up-front. If the publication isn't found to exist upon startup, the connector will throw an exception and stop.ALL_TABLES - If no publication exists, the connector will create a new pu [...]
| *publicationName* (postgres) | The name of the Postgres 10 publication used for streaming changes from a plugin.Defaults to 'dbz_publication' | dbz_publication | String
+| *sanitizeFieldNames* (postgres) | Whether field names will be sanitized to Avro naming conventions | false | boolean
| *schemaBlacklist* (postgres) | The schemas for which events must not be captured | | String
| *schemaRefreshMode* (postgres) | Specify the conditions that trigger a refresh of the in-memory schema for a table. 'columns_diff' (the default) is the safest mode, ensuring the in-memory schema stays in-sync with the database table's schema at all times. 'columns_diff_exclude_unchanged_toast' instructs the connector to refresh the in-memory schema cache if there is a discrepancy between it and the schema derived from the incoming message, unless unchanged TOASTable data fully accounts [...]
| *schemaWhitelist* (postgres) | The schemas for which events should be captured | | String
+| *skippedOperations* (postgres) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *slotDropOnStop* (postgres) | Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location | false | boolean
| *slotMaxRetries* (postgres) | How many times to retry connecting to a replication slot when an attempt fails. | 6 | int
| *slotName* (postgres) | The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium | debezium | String
@@ -211,6 +224,7 @@ with the following path and query parameters:
| *sourceStructVersion* (postgres) | A version of the format of the publicly visible source part in the message | v2 | String
| *statusUpdateIntervalMs* (postgres) | Frequency in milliseconds for sending replication connection status updates to the server. Defaults to 10 seconds (10000 ms). | 10s | int
| *tableBlacklist* (postgres) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. | | String
+| *tableIgnoreBuiltin* (postgres) | Flag specifying whether built-in tables should be ignored. | true | boolean
| *tableWhitelist* (postgres) | The tables for which changes are to be captured | | String
| *timePrecisionMode* (postgres) | 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; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which us [...]
| *toastedValuePlaceholder* (postgres) | 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. | __debezium_unavailable_value | String
diff --git a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
index 6c456d3..0674ba9 100644
--- a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
+++ b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
@@ -34,7 +34,10 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
case "columnblacklist":
case "columnBlacklist": getOrCreateConfiguration(target).setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+ case "columnwhitelist":
+ case "columnWhitelist": getOrCreateConfiguration(target).setColumnWhitelist(property(camelContext, java.lang.String.class, value)); return true;
case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration.class, value)); return true;
+ case "converters": getOrCreateConfiguration(target).setConverters(property(camelContext, java.lang.String.class, value)); return true;
case "databasedbname":
case "databaseDbname": getOrCreateConfiguration(target).setDatabaseDbname(property(camelContext, java.lang.String.class, value)); return true;
case "databasehistory":
@@ -69,6 +72,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
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 "internalkeyconverter":
case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
case "internalvalueconverter":
@@ -99,10 +104,16 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "providetransactionmetadata":
case "provideTransactionMetadata": getOrCreateConfiguration(target).setProvideTransactionMetadata(property(camelContext, boolean.class, value)); return true;
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": getOrCreateConfiguration(target).setSanitizeFieldNames(property(camelContext, boolean.class, value)); return true;
+ case "skippedoperations":
+ case "skippedOperations": getOrCreateConfiguration(target).setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotdelayms":
case "snapshotDelayMs": getOrCreateConfiguration(target).setSnapshotDelayMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "snapshotfetchsize":
case "snapshotFetchSize": getOrCreateConfiguration(target).setSnapshotFetchSize(property(camelContext, int.class, value)); return true;
+ case "snapshotisolationmode":
+ case "snapshotIsolationMode": getOrCreateConfiguration(target).setSnapshotIsolationMode(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotlocktimeoutms":
case "snapshotLockTimeoutMs": getOrCreateConfiguration(target).setSnapshotLockTimeoutMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "snapshotmode":
@@ -111,6 +122,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "snapshotSelectStatementOverrides": getOrCreateConfiguration(target).setSnapshotSelectStatementOverrides(property(camelContext, java.lang.String.class, value)); return true;
case "sourcestructversion":
case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
+ case "sourcetimestampmode":
+ case "sourceTimestampMode": getOrCreateConfiguration(target).setSourceTimestampMode(property(camelContext, java.lang.String.class, value)); return true;
case "tableblacklist":
case "tableBlacklist": getOrCreateConfiguration(target).setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
case "tableignorebuiltin":
@@ -132,7 +145,9 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
answer.put("basicPropertyBinding", boolean.class);
answer.put("bridgeErrorHandler", boolean.class);
answer.put("columnBlacklist", java.lang.String.class);
+ answer.put("columnWhitelist", java.lang.String.class);
answer.put("configuration", org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration.class);
+ answer.put("converters", java.lang.String.class);
answer.put("databaseDbname", java.lang.String.class);
answer.put("databaseHistory", java.lang.String.class);
answer.put("databaseHistoryFileFilename", java.lang.String.class);
@@ -150,6 +165,7 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
answer.put("eventProcessingFailureHandlingMode", java.lang.String.class);
answer.put("heartbeatIntervalMs", int.class);
answer.put("heartbeatTopicsPrefix", java.lang.String.class);
+ answer.put("includeSchemaChanges", boolean.class);
answer.put("internalKeyConverter", java.lang.String.class);
answer.put("internalValueConverter", java.lang.String.class);
answer.put("maxBatchSize", int.class);
@@ -165,12 +181,16 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
answer.put("offsetStorageTopic", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
answer.put("provideTransactionMetadata", boolean.class);
+ answer.put("sanitizeFieldNames", boolean.class);
+ answer.put("skippedOperations", java.lang.String.class);
answer.put("snapshotDelayMs", long.class);
answer.put("snapshotFetchSize", int.class);
+ answer.put("snapshotIsolationMode", java.lang.String.class);
answer.put("snapshotLockTimeoutMs", long.class);
answer.put("snapshotMode", java.lang.String.class);
answer.put("snapshotSelectStatementOverrides", java.lang.String.class);
answer.put("sourceStructVersion", java.lang.String.class);
+ answer.put("sourceTimestampMode", java.lang.String.class);
answer.put("tableBlacklist", java.lang.String.class);
answer.put("tableIgnoreBuiltin", boolean.class);
answer.put("tableWhitelist", java.lang.String.class);
@@ -191,7 +211,10 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "columnblacklist":
case "columnBlacklist": return getOrCreateConfiguration(target).getColumnBlacklist();
+ case "columnwhitelist":
+ case "columnWhitelist": return getOrCreateConfiguration(target).getColumnWhitelist();
case "configuration": return target.getConfiguration();
+ case "converters": return getOrCreateConfiguration(target).getConverters();
case "databasedbname":
case "databaseDbname": return getOrCreateConfiguration(target).getDatabaseDbname();
case "databasehistory":
@@ -226,6 +249,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "heartbeatIntervalMs": return getOrCreateConfiguration(target).getHeartbeatIntervalMs();
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": return getOrCreateConfiguration(target).getHeartbeatTopicsPrefix();
+ case "includeschemachanges":
+ case "includeSchemaChanges": return getOrCreateConfiguration(target).isIncludeSchemaChanges();
case "internalkeyconverter":
case "internalKeyConverter": return getOrCreateConfiguration(target).getInternalKeyConverter();
case "internalvalueconverter":
@@ -256,10 +281,16 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "pollIntervalMs": return getOrCreateConfiguration(target).getPollIntervalMs();
case "providetransactionmetadata":
case "provideTransactionMetadata": return getOrCreateConfiguration(target).isProvideTransactionMetadata();
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": return getOrCreateConfiguration(target).isSanitizeFieldNames();
+ case "skippedoperations":
+ case "skippedOperations": return getOrCreateConfiguration(target).getSkippedOperations();
case "snapshotdelayms":
case "snapshotDelayMs": return getOrCreateConfiguration(target).getSnapshotDelayMs();
case "snapshotfetchsize":
case "snapshotFetchSize": return getOrCreateConfiguration(target).getSnapshotFetchSize();
+ case "snapshotisolationmode":
+ case "snapshotIsolationMode": return getOrCreateConfiguration(target).getSnapshotIsolationMode();
case "snapshotlocktimeoutms":
case "snapshotLockTimeoutMs": return getOrCreateConfiguration(target).getSnapshotLockTimeoutMs();
case "snapshotmode":
@@ -268,6 +299,8 @@ public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupp
case "snapshotSelectStatementOverrides": return getOrCreateConfiguration(target).getSnapshotSelectStatementOverrides();
case "sourcestructversion":
case "sourceStructVersion": return getOrCreateConfiguration(target).getSourceStructVersion();
+ case "sourcetimestampmode":
+ case "sourceTimestampMode": return getOrCreateConfiguration(target).getSourceTimestampMode();
case "tableblacklist":
case "tableBlacklist": return getOrCreateConfiguration(target).getTableBlacklist();
case "tableignorebuiltin":
diff --git a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
index 6065994..9ae4f64 100644
--- a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
+++ b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverEndpointConfigurer.java
@@ -27,6 +27,9 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
case "columnblacklist":
case "columnBlacklist": target.getConfiguration().setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+ case "columnwhitelist":
+ case "columnWhitelist": target.getConfiguration().setColumnWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+ case "converters": target.getConfiguration().setConverters(property(camelContext, java.lang.String.class, value)); return true;
case "databasedbname":
case "databaseDbname": target.getConfiguration().setDatabaseDbname(property(camelContext, java.lang.String.class, value)); return true;
case "databasehistory":
@@ -65,6 +68,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
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 "internalkeyconverter":
case "internalKeyConverter": target.getConfiguration().setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
case "internalvalueconverter":
@@ -95,10 +100,16 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "pollIntervalMs": target.getConfiguration().setPollIntervalMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "providetransactionmetadata":
case "provideTransactionMetadata": target.getConfiguration().setProvideTransactionMetadata(property(camelContext, boolean.class, value)); return true;
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": target.getConfiguration().setSanitizeFieldNames(property(camelContext, boolean.class, value)); return true;
+ case "skippedoperations":
+ case "skippedOperations": target.getConfiguration().setSkippedOperations(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotdelayms":
case "snapshotDelayMs": target.getConfiguration().setSnapshotDelayMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "snapshotfetchsize":
case "snapshotFetchSize": target.getConfiguration().setSnapshotFetchSize(property(camelContext, int.class, value)); return true;
+ case "snapshotisolationmode":
+ case "snapshotIsolationMode": target.getConfiguration().setSnapshotIsolationMode(property(camelContext, java.lang.String.class, value)); return true;
case "snapshotlocktimeoutms":
case "snapshotLockTimeoutMs": target.getConfiguration().setSnapshotLockTimeoutMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
case "snapshotmode":
@@ -107,6 +118,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "snapshotSelectStatementOverrides": target.getConfiguration().setSnapshotSelectStatementOverrides(property(camelContext, java.lang.String.class, value)); return true;
case "sourcestructversion":
case "sourceStructVersion": target.getConfiguration().setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
+ case "sourcetimestampmode":
+ case "sourceTimestampMode": target.getConfiguration().setSourceTimestampMode(property(camelContext, java.lang.String.class, value)); return true;
case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
case "tableblacklist":
case "tableBlacklist": target.getConfiguration().setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
@@ -129,6 +142,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
answer.put("basicPropertyBinding", boolean.class);
answer.put("bridgeErrorHandler", boolean.class);
answer.put("columnBlacklist", java.lang.String.class);
+ answer.put("columnWhitelist", java.lang.String.class);
+ answer.put("converters", java.lang.String.class);
answer.put("databaseDbname", java.lang.String.class);
answer.put("databaseHistory", java.lang.String.class);
answer.put("databaseHistoryFileFilename", java.lang.String.class);
@@ -148,6 +163,7 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
answer.put("exchangePattern", org.apache.camel.ExchangePattern.class);
answer.put("heartbeatIntervalMs", int.class);
answer.put("heartbeatTopicsPrefix", java.lang.String.class);
+ answer.put("includeSchemaChanges", boolean.class);
answer.put("internalKeyConverter", java.lang.String.class);
answer.put("internalValueConverter", java.lang.String.class);
answer.put("maxBatchSize", int.class);
@@ -163,12 +179,16 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
answer.put("offsetStorageTopic", java.lang.String.class);
answer.put("pollIntervalMs", long.class);
answer.put("provideTransactionMetadata", boolean.class);
+ answer.put("sanitizeFieldNames", boolean.class);
+ answer.put("skippedOperations", java.lang.String.class);
answer.put("snapshotDelayMs", long.class);
answer.put("snapshotFetchSize", int.class);
+ answer.put("snapshotIsolationMode", java.lang.String.class);
answer.put("snapshotLockTimeoutMs", long.class);
answer.put("snapshotMode", java.lang.String.class);
answer.put("snapshotSelectStatementOverrides", java.lang.String.class);
answer.put("sourceStructVersion", java.lang.String.class);
+ answer.put("sourceTimestampMode", java.lang.String.class);
answer.put("synchronous", boolean.class);
answer.put("tableBlacklist", java.lang.String.class);
answer.put("tableIgnoreBuiltin", boolean.class);
@@ -190,6 +210,9 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "columnblacklist":
case "columnBlacklist": return target.getConfiguration().getColumnBlacklist();
+ case "columnwhitelist":
+ case "columnWhitelist": return target.getConfiguration().getColumnWhitelist();
+ case "converters": return target.getConfiguration().getConverters();
case "databasedbname":
case "databaseDbname": return target.getConfiguration().getDatabaseDbname();
case "databasehistory":
@@ -228,6 +251,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "heartbeatIntervalMs": return target.getConfiguration().getHeartbeatIntervalMs();
case "heartbeattopicsprefix":
case "heartbeatTopicsPrefix": return target.getConfiguration().getHeartbeatTopicsPrefix();
+ case "includeschemachanges":
+ case "includeSchemaChanges": return target.getConfiguration().isIncludeSchemaChanges();
case "internalkeyconverter":
case "internalKeyConverter": return target.getConfiguration().getInternalKeyConverter();
case "internalvalueconverter":
@@ -258,10 +283,16 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "pollIntervalMs": return target.getConfiguration().getPollIntervalMs();
case "providetransactionmetadata":
case "provideTransactionMetadata": return target.getConfiguration().isProvideTransactionMetadata();
+ case "sanitizefieldnames":
+ case "sanitizeFieldNames": return target.getConfiguration().isSanitizeFieldNames();
+ case "skippedoperations":
+ case "skippedOperations": return target.getConfiguration().getSkippedOperations();
case "snapshotdelayms":
case "snapshotDelayMs": return target.getConfiguration().getSnapshotDelayMs();
case "snapshotfetchsize":
case "snapshotFetchSize": return target.getConfiguration().getSnapshotFetchSize();
+ case "snapshotisolationmode":
+ case "snapshotIsolationMode": return target.getConfiguration().getSnapshotIsolationMode();
case "snapshotlocktimeoutms":
case "snapshotLockTimeoutMs": return target.getConfiguration().getSnapshotLockTimeoutMs();
case "snapshotmode":
@@ -270,6 +301,8 @@ public class DebeziumSqlserverEndpointConfigurer extends PropertyConfigurerSuppo
case "snapshotSelectStatementOverrides": return target.getConfiguration().getSnapshotSelectStatementOverrides();
case "sourcestructversion":
case "sourceStructVersion": return target.getConfiguration().getSourceStructVersion();
+ case "sourcetimestampmode":
+ case "sourceTimestampMode": return target.getConfiguration().getSourceTimestampMode();
case "synchronous": return target.isSynchronous();
case "tableblacklist":
case "tableBlacklist": return target.getConfiguration().getTableBlacklist();
diff --git a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
index 452d6bf..1909072 100644
--- a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
+++ b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/configuration/SqlServerConnectorEmbeddedDebeziumConfiguration.java
@@ -28,6 +28,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private String tableBlacklist;
@UriParam(label = LABEL_NAME, defaultValue = "false")
private boolean provideTransactionMetadata = false;
+ @UriParam(label = LABEL_NAME, defaultValue = "true")
+ private boolean includeSchemaChanges = true;
@UriParam(label = LABEL_NAME)
private String tableWhitelist;
@UriParam(label = LABEL_NAME)
@@ -36,10 +38,12 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private boolean tombstonesOnDelete = false;
@UriParam(label = LABEL_NAME, defaultValue = "precise")
private String decimalHandlingMode = "precise";
- @UriParam(label = LABEL_NAME, defaultValue = "100ms", javaType = "java.time.Duration")
- private int databaseHistoryKafkaRecoveryPollIntervalMs = 100;
@UriParam(label = LABEL_NAME, defaultValue = "500ms", javaType = "java.time.Duration")
private long pollIntervalMs = 500;
+ @UriParam(label = LABEL_NAME, defaultValue = "100ms", javaType = "java.time.Duration")
+ private int databaseHistoryKafkaRecoveryPollIntervalMs = 100;
+ @UriParam(label = LABEL_NAME)
+ private String converters;
@UriParam(label = LABEL_NAME, defaultValue = "__debezium-heartbeat")
private String heartbeatTopicsPrefix = "__debezium-heartbeat";
@UriParam(label = LABEL_NAME, defaultValue = "true")
@@ -48,12 +52,16 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private int snapshotFetchSize;
@UriParam(label = LABEL_NAME, defaultValue = "10s", javaType = "java.time.Duration")
private long snapshotLockTimeoutMs = 10000;
+ @UriParam(label = LABEL_NAME, defaultValue = "commit")
+ private String sourceTimestampMode = "commit";
@UriParam(label = LABEL_NAME)
private String databaseHistoryFileFilename;
@UriParam(label = LABEL_NAME)
private String databaseDbname;
@UriParam(label = LABEL_NAME)
private String databaseUser;
+ @UriParam(label = LABEL_NAME, defaultValue = "false")
+ private boolean sanitizeFieldNames = false;
@UriParam(label = LABEL_NAME)
private String snapshotSelectStatementOverrides;
@UriParam(label = LABEL_NAME)
@@ -63,12 +71,16 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
@UriParam(label = LABEL_NAME)
@Metadata(required = true)
private String databaseServerName;
- @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
- private int heartbeatIntervalMs = 0;
- @UriParam(label = LABEL_NAME, defaultValue = "v2")
- private String sourceStructVersion = "v2";
@UriParam(label = LABEL_NAME, defaultValue = "fail")
private String eventProcessingFailureHandlingMode = "fail";
+ @UriParam(label = LABEL_NAME, defaultValue = "repeatable_read")
+ private String snapshotIsolationMode = "repeatable_read";
+ @UriParam(label = LABEL_NAME, defaultValue = "v2")
+ private String sourceStructVersion = "v2";
+ @UriParam(label = LABEL_NAME, defaultValue = "0ms", javaType = "java.time.Duration")
+ private int heartbeatIntervalMs = 0;
+ @UriParam(label = LABEL_NAME)
+ private String columnWhitelist;
@UriParam(label = LABEL_NAME, defaultValue = "1433")
private int databasePort = 1433;
@UriParam(label = LABEL_NAME)
@@ -78,6 +90,8 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
private String databasePassword;
@UriParam(label = LABEL_NAME, defaultValue = "2048")
private int maxBatchSize = 2048;
+ @UriParam(label = LABEL_NAME)
+ private String skippedOperations;
@UriParam(label = LABEL_NAME, defaultValue = "initial")
private String snapshotMode = "initial";
@UriParam(label = LABEL_NAME, defaultValue = "io.debezium.relational.history.FileDatabaseHistory")
@@ -127,8 +141,7 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events
*/
public void setColumnBlacklist(String columnBlacklist) {
this.columnBlacklist = columnBlacklist;
@@ -187,6 +200,22 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether the connector should publish changes in the database schema to a
+ * Kafka topic with the same name as the database server ID. Each schema
+ * change will be recorded using a key that contains the database name and
+ * whose value include logical description of the new schema and optionally
+ * the DDL statement(s).The default is 'true'. This is independent of how
+ * the connector internally records database history.
+ */
+ public void setIncludeSchemaChanges(boolean includeSchemaChanges) {
+ this.includeSchemaChanges = includeSchemaChanges;
+ }
+
+ public boolean isIncludeSchemaChanges() {
+ return includeSchemaChanges;
+ }
+
+ /**
* The tables for which changes are to be captured
*/
public void setTableWhitelist(String tableWhitelist) {
@@ -242,6 +271,18 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Frequency in milliseconds to wait for new change events to appear after
+ * receiving no events. Defaults to 500ms.
+ */
+ public void setPollIntervalMs(long pollIntervalMs) {
+ this.pollIntervalMs = pollIntervalMs;
+ }
+
+ public long getPollIntervalMs() {
+ return pollIntervalMs;
+ }
+
+ /**
* The number of milliseconds to wait while polling for persisted data
* during recovery.
*/
@@ -255,15 +296,16 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
- * Frequency in milliseconds to wait for new change events to appear after
- * receiving no events. Defaults to 500ms.
+ * Optional list of custom converters that would be used instead of default
+ * ones. The converters are defined using '<converter.prefix>.type' config
+ * option and configured using options '<converter.prefix>.<option>'
*/
- public void setPollIntervalMs(long pollIntervalMs) {
- this.pollIntervalMs = pollIntervalMs;
+ public void setConverters(String converters) {
+ this.converters = converters;
}
- public long getPollIntervalMs() {
- return pollIntervalMs;
+ public String getConverters() {
+ return converters;
}
/**
@@ -315,6 +357,21 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Configures the criteria of the attached timestamp within the source
+ * record (ts_ms).Options include:'commit', (default) the source timestamp
+ * is set to the instant where the record was committed in the
+ * database'processing', the source timestamp is set to the instant where
+ * the record was processed by Debezium.
+ */
+ public void setSourceTimestampMode(String sourceTimestampMode) {
+ this.sourceTimestampMode = sourceTimestampMode;
+ }
+
+ public String getSourceTimestampMode() {
+ return sourceTimestampMode;
+ }
+
+ /**
* The path to the file that will be used to record the database history
*/
public void setDatabaseHistoryFileFilename(
@@ -351,6 +408,17 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * Whether field names will be sanitized to Avro naming conventions
+ */
+ public void setSanitizeFieldNames(boolean sanitizeFieldNames) {
+ this.sanitizeFieldNames = sanitizeFieldNames;
+ }
+
+ public boolean isSanitizeFieldNames() {
+ return sanitizeFieldNames;
+ }
+
+ /**
* This property contains a comma-separated list of fully-qualified tables
* (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on
* thespecific connectors . Select statements for the individual tables are
@@ -421,16 +489,45 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
- * Length of an interval in milli-seconds in in which the connector
- * periodically sends heartbeat messages to a heartbeat topic. Use 0 to
- * disable heartbeat messages. Disabled by default.
+ * Specify how failures during processing of events (i.e. when encountering
+ * a corrupted event) should be handled, including:'fail' (the default) an
+ * exception indicating the problematic event and its position is raised,
+ * causing the connector to be stopped; 'warn' the problematic event and its
+ * position will be logged and the event will be skipped;'ignore' the
+ * problematic event will be skipped.
*/
- public void setHeartbeatIntervalMs(int heartbeatIntervalMs) {
- this.heartbeatIntervalMs = heartbeatIntervalMs;
+ public void setEventProcessingFailureHandlingMode(
+ String eventProcessingFailureHandlingMode) {
+ this.eventProcessingFailureHandlingMode = eventProcessingFailureHandlingMode;
}
- public int getHeartbeatIntervalMs() {
- return heartbeatIntervalMs;
+ public String getEventProcessingFailureHandlingMode() {
+ return eventProcessingFailureHandlingMode;
+ }
+
+ /**
+ * Controls which transaction isolation level is used and how long the
+ * connector locks the monitored tables. The default is 'repeatable_read',
+ * which means that repeatable read isolation level is used. In addition,
+ * exclusive locks are taken only during schema snapshot. Using a value of
+ * 'exclusive' ensures that the connector holds the exclusive lock (and thus
+ * prevents any reads and updates) for all monitored tables during the
+ * entire snapshot duration. When 'snapshot' is specified, connector runs
+ * the initial snapshot in SNAPSHOT isolation level, which guarantees
+ * snapshot consistency. In addition, neither table nor row-level locks are
+ * held. When 'read_committed' is specified, connector runs the initial
+ * snapshot in READ COMMITTED isolation level. No long-running locks are
+ * taken, so that initial snapshot does not prevent other transactions from
+ * updating table rows. Snapshot consistency is not guaranteed.In
+ * 'read_uncommitted' mode neither table nor row-level locks are acquired,
+ * but connector does not guarantee snapshot consistency.
+ */
+ public void setSnapshotIsolationMode(String snapshotIsolationMode) {
+ this.snapshotIsolationMode = snapshotIsolationMode;
+ }
+
+ public String getSnapshotIsolationMode() {
+ return snapshotIsolationMode;
}
/**
@@ -446,20 +543,27 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
- * Specify how failures during processing of events (i.e. when encountering
- * a corrupted event) should be handled, including:'fail' (the default) an
- * exception indicating the problematic event and its position is raised,
- * causing the connector to be stopped; 'warn' the problematic event and its
- * position will be logged and the event will be skipped;'ignore' the
- * problematic event will be skipped.
+ * Length of an interval in milli-seconds in in which the connector
+ * periodically sends heartbeat messages to a heartbeat topic. Use 0 to
+ * disable heartbeat messages. Disabled by default.
*/
- public void setEventProcessingFailureHandlingMode(
- String eventProcessingFailureHandlingMode) {
- this.eventProcessingFailureHandlingMode = eventProcessingFailureHandlingMode;
+ public void setHeartbeatIntervalMs(int heartbeatIntervalMs) {
+ this.heartbeatIntervalMs = heartbeatIntervalMs;
}
- public String getEventProcessingFailureHandlingMode() {
- return eventProcessingFailureHandlingMode;
+ public int getHeartbeatIntervalMs() {
+ return heartbeatIntervalMs;
+ }
+
+ /**
+ * Regular expressions matching columns to include in change events
+ */
+ public void setColumnWhitelist(String columnWhitelist) {
+ this.columnWhitelist = columnWhitelist;
+ }
+
+ public String getColumnWhitelist() {
+ return columnWhitelist;
}
/**
@@ -508,6 +612,19 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
}
/**
+ * The comma-separated list of operations to skip during streaming, defined
+ * as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no
+ * operations will be skipped.
+ */
+ public void setSkippedOperations(String skippedOperations) {
+ this.skippedOperations = skippedOperations;
+ }
+
+ public String getSkippedOperations() {
+ return skippedOperations;
+ }
+
+ /**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'initial' (the default) to specify the connector should
* run a snapshot only when no offsets are available for the logical server
@@ -547,30 +664,37 @@ public class SqlServerConnectorEmbeddedDebeziumConfiguration
addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.attempts", databaseHistoryKafkaRecoveryAttempts);
addPropertyIfNotNull(configBuilder, "table.blacklist", tableBlacklist);
addPropertyIfNotNull(configBuilder, "provide.transaction.metadata", provideTransactionMetadata);
+ addPropertyIfNotNull(configBuilder, "include.schema.changes", includeSchemaChanges);
addPropertyIfNotNull(configBuilder, "table.whitelist", tableWhitelist);
addPropertyIfNotNull(configBuilder, "database.server.timezone", databaseServerTimezone);
addPropertyIfNotNull(configBuilder, "tombstones.on.delete", tombstonesOnDelete);
addPropertyIfNotNull(configBuilder, "decimal.handling.mode", decimalHandlingMode);
- addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.poll.interval.ms", databaseHistoryKafkaRecoveryPollIntervalMs);
addPropertyIfNotNull(configBuilder, "poll.interval.ms", pollIntervalMs);
+ addPropertyIfNotNull(configBuilder, "database.history.kafka.recovery.poll.interval.ms", databaseHistoryKafkaRecoveryPollIntervalMs);
+ addPropertyIfNotNull(configBuilder, "converters", converters);
addPropertyIfNotNull(configBuilder, "heartbeat.topics.prefix", heartbeatTopicsPrefix);
addPropertyIfNotNull(configBuilder, "table.ignore.builtin", tableIgnoreBuiltin);
addPropertyIfNotNull(configBuilder, "snapshot.fetch.size", snapshotFetchSize);
addPropertyIfNotNull(configBuilder, "snapshot.lock.timeout.ms", snapshotLockTimeoutMs);
+ addPropertyIfNotNull(configBuilder, "source.timestamp.mode", sourceTimestampMode);
addPropertyIfNotNull(configBuilder, "database.history.file.filename", databaseHistoryFileFilename);
addPropertyIfNotNull(configBuilder, "database.dbname", databaseDbname);
addPropertyIfNotNull(configBuilder, "database.user", databaseUser);
+ addPropertyIfNotNull(configBuilder, "sanitize.field.names", sanitizeFieldNames);
addPropertyIfNotNull(configBuilder, "snapshot.select.statement.overrides", snapshotSelectStatementOverrides);
addPropertyIfNotNull(configBuilder, "database.history.kafka.bootstrap.servers", databaseHistoryKafkaBootstrapServers);
addPropertyIfNotNull(configBuilder, "time.precision.mode", timePrecisionMode);
addPropertyIfNotNull(configBuilder, "database.server.name", databaseServerName);
- addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
- addPropertyIfNotNull(configBuilder, "source.struct.version", sourceStructVersion);
addPropertyIfNotNull(configBuilder, "event.processing.failure.handling.mode", eventProcessingFailureHandlingMode);
+ addPropertyIfNotNull(configBuilder, "snapshot.isolation.mode", snapshotIsolationMode);
+ addPropertyIfNotNull(configBuilder, "source.struct.version", sourceStructVersion);
+ addPropertyIfNotNull(configBuilder, "heartbeat.interval.ms", heartbeatIntervalMs);
+ addPropertyIfNotNull(configBuilder, "column.whitelist", columnWhitelist);
addPropertyIfNotNull(configBuilder, "database.port", databasePort);
addPropertyIfNotNull(configBuilder, "database.hostname", databaseHostname);
addPropertyIfNotNull(configBuilder, "database.password", databasePassword);
addPropertyIfNotNull(configBuilder, "max.batch.size", maxBatchSize);
+ addPropertyIfNotNull(configBuilder, "skipped.operations", skippedOperations);
addPropertyIfNotNull(configBuilder, "snapshot.mode", snapshotMode);
addPropertyIfNotNull(configBuilder, "database.history", databaseHistory);
diff --git a/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json b/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
index e52f221..a30ddee 100644
--- a/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
+++ b/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
@@ -35,7 +35,9 @@
"offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offset storage topic. R [...]
"offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offs [...]
"basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
- "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corre [...]
+ "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to exclude from change events" },
+ "columnWhitelist": { "kind": "property", "displayName": "Column Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to include in change events" },
+ "converters": { "kind": "property", "displayName": "Converters", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Optional list of custom converters that would be used instead of default ones. The co [...]
"databaseDbname": { "kind": "property", "displayName": "Database Dbname", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the database the connector should be monitoring. When working wi [...]
"databaseHistory": { "kind": "property", "displayName": "Database History", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.relational.history.FileDatabaseHistory", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
"databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record [...]
@@ -53,17 +55,22 @@
"eventProcessingFailureHandlingMode": { "kind": "property", "displayName": "Event Processing Failure Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify h [...]
"heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which th [...]
"heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is us [...]
+ "includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes in [...]
"maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
"maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": 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 from the database [...]
"messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified [...]
"pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to a [...]
"provideTransactionMetadata": { "kind": "property", "displayName": "Provide Transaction Metadata", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction metadata extra [...]
+ "sanitizeFieldNames": { "kind": "property", "displayName": "Sanitize Field Names", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether field names will be sanitized to Avro nami [...]
+ "skippedOperations": { "kind": "property", "displayName": "Skipped Operations", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defin [...]
"snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will b [...]
"snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing [...]
+ "snapshotIsolationMode": { "kind": "property", "displayName": "Snapshot Isolation Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "repeatable_read", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls which transaction [...]
"snapshotLockTimeoutMs": { "kind": "property", "displayName": "Snapshot Lock Timeout Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of millis to wait for table [...]
"snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of t [...]
"snapshotSelectStatementOverrides": { "kind": "property", "displayName": "Snapshot Select Statement Overrides", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separat [...]
"sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly vis [...]
+ "sourceTimestampMode": { "kind": "property", "displayName": "Source Timestamp Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "commit", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Configures the criteria of the attached [...]
"tableBlacklist": { "kind": "property", "displayName": "Table Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresp [...]
"tableIgnoreBuiltin": { "kind": "property", "displayName": "Table Ignore Builtin", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Flag specifying whether built-in tables should be i [...]
"tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
@@ -88,7 +95,9 @@
"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, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
"basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
"synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
- "columnBlacklist": { "kind": "parameter", "displayName": "Column Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corr [...]
+ "columnBlacklist": { "kind": "parameter", "displayName": "Column Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to exclude from change events" },
+ "columnWhitelist": { "kind": "parameter", "displayName": "Column Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Regular expressions matching columns to include in change events" },
+ "converters": { "kind": "parameter", "displayName": "Converters", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Optional list of custom converters that would be used instead of default ones. The c [...]
"databaseDbname": { "kind": "parameter", "displayName": "Database Dbname", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the database the connector should be monitoring. When working w [...]
"databaseHistory": { "kind": "parameter", "displayName": "Database History", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.relational.history.FileDatabaseHistory", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The [...]
"databaseHistoryFileFilename": { "kind": "parameter", "displayName": "Database History File Filename", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to recor [...]
@@ -106,17 +115,22 @@
"eventProcessingFailureHandlingMode": { "kind": "parameter", "displayName": "Event Processing Failure Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify [...]
"heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which t [...]
"heartbeatTopicsPrefix": { "kind": "parameter", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is u [...]
+ "includeSchemaChanges": { "kind": "parameter", "displayName": "Include Schema Changes", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes i [...]
"maxBatchSize": { "kind": "parameter", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
"maxQueueSize": { "kind": "parameter", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": 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 from the database [...]
"messageKeyColumns": { "kind": "parameter", "displayName": "Message Key Columns", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified [...]
"pollIntervalMs": { "kind": "parameter", "displayName": "Poll Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to [...]
"provideTransactionMetadata": { "kind": "parameter", "displayName": "Provide Transaction Metadata", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enables transaction metadata extr [...]
+ "sanitizeFieldNames": { "kind": "parameter", "displayName": "Sanitize Field Names", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether field names will be sanitized to Avro nam [...]
+ "skippedOperations": { "kind": "parameter", "displayName": "Skipped Operations", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The comma-separated list of operations to skip during streaming, defi [...]
"snapshotDelayMs": { "kind": "parameter", "displayName": "Snapshot Delay Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will [...]
"snapshotFetchSize": { "kind": "parameter", "displayName": "Snapshot Fetch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing [...]
+ "snapshotIsolationMode": { "kind": "parameter", "displayName": "Snapshot Isolation Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "repeatable_read", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls which transactio [...]
"snapshotLockTimeoutMs": { "kind": "parameter", "displayName": "Snapshot Lock Timeout Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of millis to wait for table [...]
"snapshotMode": { "kind": "parameter", "displayName": "Snapshot Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of [...]
"snapshotSelectStatementOverrides": { "kind": "parameter", "displayName": "Snapshot Select Statement Overrides", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separa [...]
"sourceStructVersion": { "kind": "parameter", "displayName": "Source Struct Version", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly vi [...]
+ "sourceTimestampMode": { "kind": "parameter", "displayName": "Source Timestamp Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "commit", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Configures the criteria of the attache [...]
"tableBlacklist": { "kind": "parameter", "displayName": "Table Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corres [...]
"tableIgnoreBuiltin": { "kind": "parameter", "displayName": "Table Ignore Builtin", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Flag specifying whether built-in tables should be [...]
"tableWhitelist": { "kind": "parameter", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
diff --git a/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc b/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
index a7c40b2..9bf8428 100644
--- a/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
+++ b/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
@@ -43,7 +43,7 @@ debezium-sqlserver:name[?options]
// component options: START
-The Debezium SQL Server Connector component supports 48 options, which are listed below.
+The Debezium SQL Server Connector component supports 55 options, which are listed below.
@@ -64,7 +64,9 @@ The Debezium SQL Server Connector component supports 48 options, which are liste
| *offsetStorageReplicationFactor* (consumer) | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore | | int
| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. | | String
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *columnBlacklist* (sqlserver) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. | | String
+| *columnBlacklist* (sqlserver) | Regular expressions matching columns to exclude from change events | | String
+| *columnWhitelist* (sqlserver) | Regular expressions matching columns to include in change events | | String
+| *converters* (sqlserver) | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' | | String
| *databaseDbname* (sqlserver) | The name of the database the connector should be monitoring. When working with a multi-tenant set-up, must be set to the CDB name. | | String
| *databaseHistory* (sqlserver) | The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string. | io.debezium.relational.history.FileDatabaseHistory | String
| *databaseHistoryFileFilename* (sqlserver) | The path to the file that will be used to record the database history | | String
@@ -82,17 +84,22 @@ The Debezium SQL Server Connector component supports 48 options, which are liste
| *eventProcessingFailureHandling Mode* (sqlserver) | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
| *heartbeatIntervalMs* (sqlserver) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0ms | int
| *heartbeatTopicsPrefix* (sqlserver) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
+| *includeSchemaChanges* (sqlserver) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
| *maxBatchSize* (sqlserver) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
| *maxQueueSize* (sqlserver) | 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. | 8192 | int
| *messageKeyColumns* (sqlserver) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key colum [...]
| *pollIntervalMs* (sqlserver) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
| *provideTransactionMetadata* (sqlserver) | Enables transaction metadata extraction together with event counting | false | boolean
+| *sanitizeFieldNames* (sqlserver) | Whether field names will be sanitized to Avro naming conventions | false | boolean
+| *skippedOperations* (sqlserver) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *snapshotDelayMs* (sqlserver) | The number of milliseconds to delay before a snapshot will begin. | 0ms | long
| *snapshotFetchSize* (sqlserver) | The maximum number of records that should be loaded into memory while performing a snapshot | | int
+| *snapshotIsolationMode* (sqlserver) | Controls which transaction isolation level is used and how long the connector locks the monitored tables. The default is 'repeatable_read', which means that repeatable read isolation level is used. In addition, exclusive locks are taken only during schema snapshot. Using a value of 'exclusive' ensures that the connector holds the exclusive lock (and thus prevents any reads and updates) for all monitored tables during the entire snapshot duration. W [...]
| *snapshotLockTimeoutMs* (sqlserver) | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds | 10s | long
| *snapshotMode* (sqlserver) | The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should run a snapshot only when no offsets are available for the logical server name; 'schema_only' to specify the connector should run a snapshot of the schema when no offsets are available for the logical server name. | initial | String
| *snapshotSelectStatement Overrides* (sqlserver) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The valu [...]
| *sourceStructVersion* (sqlserver) | A version of the format of the publicly visible source part in the message | v2 | String
+| *sourceTimestampMode* (sqlserver) | Configures the criteria of the attached timestamp within the source record (ts_ms).Options include:'commit', (default) the source timestamp is set to the instant where the record was committed in the database'processing', the source timestamp is set to the instant where the record was processed by Debezium. | commit | String
| *tableBlacklist* (sqlserver) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. | | String
| *tableIgnoreBuiltin* (sqlserver) | Flag specifying whether built-in tables should be ignored. | true | boolean
| *tableWhitelist* (sqlserver) | The tables for which changes are to be captured | | String
@@ -121,7 +128,7 @@ with the following path and query parameters:
|===
-=== Query Parameters (50 parameters):
+=== Query Parameters (57 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
@@ -143,7 +150,9 @@ with the following path and query parameters:
| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
-| *columnBlacklist* (sqlserver) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. | | String
+| *columnBlacklist* (sqlserver) | Regular expressions matching columns to exclude from change events | | String
+| *columnWhitelist* (sqlserver) | Regular expressions matching columns to include in change events | | String
+| *converters* (sqlserver) | Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.' | | String
| *databaseDbname* (sqlserver) | The name of the database the connector should be monitoring. When working with a multi-tenant set-up, must be set to the CDB name. | | String
| *databaseHistory* (sqlserver) | The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string. | io.debezium.relational.history.FileDatabaseHistory | String
| *databaseHistoryFileFilename* (sqlserver) | The path to the file that will be used to record the database history | | String
@@ -161,17 +170,22 @@ with the following path and query parameters:
| *eventProcessingFailureHandling Mode* (sqlserver) | Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
| *heartbeatIntervalMs* (sqlserver) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0ms | int
| *heartbeatTopicsPrefix* (sqlserver) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
+| *includeSchemaChanges* (sqlserver) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
| *maxBatchSize* (sqlserver) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
| *maxQueueSize* (sqlserver) | 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. | 8192 | int
| *messageKeyColumns* (sqlserver) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key colum [...]
| *pollIntervalMs* (sqlserver) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500ms | long
| *provideTransactionMetadata* (sqlserver) | Enables transaction metadata extraction together with event counting | false | boolean
+| *sanitizeFieldNames* (sqlserver) | Whether field names will be sanitized to Avro naming conventions | false | boolean
+| *skippedOperations* (sqlserver) | The comma-separated list of operations to skip during streaming, defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By default, no operations will be skipped. | | String
| *snapshotDelayMs* (sqlserver) | The number of milliseconds to delay before a snapshot will begin. | 0ms | long
| *snapshotFetchSize* (sqlserver) | The maximum number of records that should be loaded into memory while performing a snapshot | | int
+| *snapshotIsolationMode* (sqlserver) | Controls which transaction isolation level is used and how long the connector locks the monitored tables. The default is 'repeatable_read', which means that repeatable read isolation level is used. In addition, exclusive locks are taken only during schema snapshot. Using a value of 'exclusive' ensures that the connector holds the exclusive lock (and thus prevents any reads and updates) for all monitored tables during the entire snapshot duration. W [...]
| *snapshotLockTimeoutMs* (sqlserver) | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds | 10s | long
| *snapshotMode* (sqlserver) | The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should run a snapshot only when no offsets are available for the logical server name; 'schema_only' to specify the connector should run a snapshot of the schema when no offsets are available for the logical server name. | initial | String
| *snapshotSelectStatement Overrides* (sqlserver) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The valu [...]
| *sourceStructVersion* (sqlserver) | A version of the format of the publicly visible source part in the message | v2 | String
+| *sourceTimestampMode* (sqlserver) | Configures the criteria of the attached timestamp within the source record (ts_ms).Options include:'commit', (default) the source timestamp is set to the instant where the record was committed in the database'processing', the source timestamp is set to the instant where the record was processed by Debezium. | commit | String
| *tableBlacklist* (sqlserver) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. | | String
| *tableIgnoreBuiltin* (sqlserver) | Flag specifying whether built-in tables should be ignored. | true | boolean
| *tableWhitelist* (sqlserver) | The tables for which changes are to be captured | | String
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMongodbComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMongodbComponentBuilderFactory.java
index be66761..2b0e444 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMongodbComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMongodbComponentBuilderFactory.java
@@ -326,6 +326,20 @@ public interface DebeziumMongodbComponentBuilderFactory {
return this;
}
/**
+ * Optional list of custom converters that would be used instead of
+ * default ones. The converters are defined using '.type' config option
+ * and configured using options '.'.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: mongodb
+ */
+ default DebeziumMongodbComponentBuilder converters(
+ java.lang.String converters) {
+ doSetProperty("converters", converters);
+ return this;
+ }
+ /**
* The databases for which changes are to be excluded.
*
* The option is a: <code>java.lang.String</code> type.
@@ -363,6 +377,24 @@ public interface DebeziumMongodbComponentBuilderFactory {
return this;
}
/**
+ * Specify how failures during processing of events (i.e. when
+ * encountering a corrupted event) should be handled, including:'fail'
+ * (the default) an exception indicating the problematic event and its
+ * position is raised, causing the connector to be stopped; 'warn' the
+ * problematic event and its position will be logged and the event will
+ * be skipped;'ignore' the problematic event will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: fail
+ * Group: mongodb
+ */
+ default DebeziumMongodbComponentBuilder eventProcessingFailureHandlingMode(
+ java.lang.String eventProcessingFailureHandlingMode) {
+ doSetProperty("eventProcessingFailureHandlingMode", eventProcessingFailureHandlingMode);
+ return this;
+ }
+ /**
* Description is not available here, please check Debezium website for
* corresponding key 'field.blacklist' description.
*
@@ -458,6 +490,19 @@ public interface DebeziumMongodbComponentBuilderFactory {
return this;
}
/**
+ * Database containing user credentials.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: admin
+ * Group: mongodb
+ */
+ default DebeziumMongodbComponentBuilder mongodbAuthsource(
+ java.lang.String mongodbAuthsource) {
+ doSetProperty("mongodbAuthsource", mongodbAuthsource);
+ return this;
+ }
+ /**
* The hostname and port pairs (in the form 'host' or 'host:port') of
* the MongoDB server(s) in the replica set.
*
@@ -514,6 +559,20 @@ public interface DebeziumMongodbComponentBuilderFactory {
return this;
}
/**
+ * Frequency in seconds to look for new, removed, or changed replica
+ * sets. Defaults to 30 seconds.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 30
+ * Group: mongodb
+ */
+ default DebeziumMongodbComponentBuilder mongodbPollIntervalSec(
+ int mongodbPollIntervalSec) {
+ doSetProperty("mongodbPollIntervalSec", mongodbPollIntervalSec);
+ return this;
+ }
+ /**
* Should connector use SSL to connect to MongoDB instances.
*
* The option is a: <code>boolean</code> type.
@@ -567,6 +626,32 @@ public interface DebeziumMongodbComponentBuilderFactory {
return this;
}
/**
+ * Enables transaction metadata extraction together with event counting.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: mongodb
+ */
+ default DebeziumMongodbComponentBuilder provideTransactionMetadata(
+ boolean provideTransactionMetadata) {
+ doSetProperty("provideTransactionMetadata", provideTransactionMetadata);
+ return this;
+ }
+ /**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: mongodb
+ */
+ default DebeziumMongodbComponentBuilder sanitizeFieldNames(
+ boolean sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
* The comma-separated list of operations to skip during streaming,
* defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
* default, no operations will be skipped.
@@ -696,9 +781,11 @@ public interface DebeziumMongodbComponentBuilderFactory {
case "connectBackoffInitialDelayMs": getOrCreateConfiguration((DebeziumMongodbComponent) component).setConnectBackoffInitialDelayMs((long) value); return true;
case "connectBackoffMaxDelayMs": getOrCreateConfiguration((DebeziumMongodbComponent) component).setConnectBackoffMaxDelayMs((long) value); return true;
case "connectMaxAttempts": getOrCreateConfiguration((DebeziumMongodbComponent) component).setConnectMaxAttempts((int) value); return true;
+ case "converters": getOrCreateConfiguration((DebeziumMongodbComponent) component).setConverters((java.lang.String) value); return true;
case "databaseBlacklist": getOrCreateConfiguration((DebeziumMongodbComponent) component).setDatabaseBlacklist((java.lang.String) value); return true;
case "databaseHistoryFileFilename": getOrCreateConfiguration((DebeziumMongodbComponent) component).setDatabaseHistoryFileFilename((java.lang.String) value); return true;
case "databaseWhitelist": getOrCreateConfiguration((DebeziumMongodbComponent) component).setDatabaseWhitelist((java.lang.String) value); return true;
+ case "eventProcessingFailureHandlingMode": getOrCreateConfiguration((DebeziumMongodbComponent) component).setEventProcessingFailureHandlingMode((java.lang.String) value); return true;
case "fieldBlacklist": getOrCreateConfiguration((DebeziumMongodbComponent) component).setFieldBlacklist((java.lang.String) value); return true;
case "fieldRenames": getOrCreateConfiguration((DebeziumMongodbComponent) component).setFieldRenames((java.lang.String) value); return true;
case "heartbeatIntervalMs": getOrCreateConfiguration((DebeziumMongodbComponent) component).setHeartbeatIntervalMs((int) value); return true;
@@ -706,14 +793,18 @@ public interface DebeziumMongodbComponentBuilderFactory {
case "initialSyncMaxThreads": getOrCreateConfiguration((DebeziumMongodbComponent) component).setInitialSyncMaxThreads((int) value); return true;
case "maxBatchSize": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMaxBatchSize((int) value); return true;
case "maxQueueSize": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMaxQueueSize((int) value); return true;
+ case "mongodbAuthsource": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbAuthsource((java.lang.String) value); return true;
case "mongodbHosts": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbHosts((java.lang.String) value); return true;
case "mongodbMembersAutoDiscover": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbMembersAutoDiscover((boolean) value); return true;
case "mongodbName": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbName((java.lang.String) value); return true;
case "mongodbPassword": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbPassword((java.lang.String) value); return true;
+ case "mongodbPollIntervalSec": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbPollIntervalSec((int) value); return true;
case "mongodbSslEnabled": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbSslEnabled((boolean) value); return true;
case "mongodbSslInvalidHostnameAllowed": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbSslInvalidHostnameAllowed((boolean) value); return true;
case "mongodbUser": getOrCreateConfiguration((DebeziumMongodbComponent) component).setMongodbUser((java.lang.String) value); return true;
case "pollIntervalMs": getOrCreateConfiguration((DebeziumMongodbComponent) component).setPollIntervalMs((long) value); return true;
+ case "provideTransactionMetadata": getOrCreateConfiguration((DebeziumMongodbComponent) component).setProvideTransactionMetadata((boolean) value); return true;
+ case "sanitizeFieldNames": getOrCreateConfiguration((DebeziumMongodbComponent) component).setSanitizeFieldNames((boolean) value); return true;
case "skippedOperations": getOrCreateConfiguration((DebeziumMongodbComponent) component).setSkippedOperations((java.lang.String) value); return true;
case "snapshotDelayMs": getOrCreateConfiguration((DebeziumMongodbComponent) component).setSnapshotDelayMs((long) value); return true;
case "snapshotFetchSize": getOrCreateConfiguration((DebeziumMongodbComponent) component).setSnapshotFetchSize((int) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMysqlComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMysqlComponentBuilderFactory.java
index 7982af0..8d0f684 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMysqlComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumMysqlComponentBuilderFactory.java
@@ -273,6 +273,22 @@ public interface DebeziumMysqlComponentBuilderFactory {
return this;
}
/**
+ * Specify how binary (blob, binary, etc.) columns should be represented
+ * in change events, including:'bytes' represents binary data as byte
+ * array (default)'base64' represents binary data as base64-encoded
+ * string'hex' represents binary data as hex-encoded (base16) string.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: bytes
+ * Group: mysql
+ */
+ default DebeziumMysqlComponentBuilder binaryHandlingMode(
+ java.lang.String binaryHandlingMode) {
+ doSetProperty("binaryHandlingMode", binaryHandlingMode);
+ return this;
+ }
+ /**
* The size of a look-ahead buffer used by the binlog reader to decide
* whether the transaction in progress is going to be committed or
* rolled back. Use 0 to disable look-ahead buffering. Defaults to 0
@@ -289,8 +305,7 @@ public interface DebeziumMysqlComponentBuilderFactory {
return this;
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -875,9 +890,9 @@ public interface DebeziumMysqlComponentBuilderFactory {
* Whether the connector should publish changes in the database schema
* to a Kafka topic with the same name as the database server ID. Each
* schema change will be recorded using a key that contains the database
- * name and whose value includes the DDL statement(s).The default is
- * 'true'. This is independent of how the connector internally records
- * database history.
+ * name and whose value include logical description of the new schema
+ * and optionally the DDL statement(s).The default is 'true'. This is
+ * independent of how the connector internally records database history.
*
* The option is a: <code>boolean</code> type.
*
@@ -968,6 +983,20 @@ public interface DebeziumMysqlComponentBuilderFactory {
return this;
}
/**
+ * The comma-separated list of operations to skip during streaming,
+ * defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
+ * default, no operations will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: mysql
+ */
+ default DebeziumMysqlComponentBuilder skippedOperations(
+ java.lang.String skippedOperations) {
+ doSetProperty("skippedOperations", skippedOperations);
+ return this;
+ }
+ /**
* The number of milliseconds to delay before a snapshot will begin.
*
* The option is a: <code>long</code> type.
@@ -1024,15 +1053,16 @@ public interface DebeziumMysqlComponentBuilderFactory {
/**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'when_needed' to specify that the connector run a
- * snapshot upon startup whenever it deems it necessary; 'initial' (the
- * default) to specify the connector can run a snapshot only when no
- * offsets are available for the logical server name; 'initial_only'
- * same as 'initial' except the connector should stop after completing
- * the snapshot and before it would normally read the binlog; and'never'
- * to specify the connector should never run a snapshot and that upon
- * first startup the connector should read from the beginning of the
- * binlog. The 'never' mode should be used with care, and only when the
- * binlog is known to contain all history.
+ * snapshot upon startup whenever it deems it necessary; 'schema_only'
+ * to only take a snapshot of the schema (table structures) but no
+ * actual data; 'initial' (the default) to specify the connector can run
+ * a snapshot only when no offsets are available for the logical server
+ * name; 'initial_only' same as 'initial' except the connector should
+ * stop after completing the snapshot and before it would normally read
+ * the binlog; and'never' to specify the connector should never run a
+ * snapshot and that upon first startup the connector should read from
+ * the beginning of the binlog. The 'never' mode should be used with
+ * care, and only when the binlog is known to contain all history.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -1218,6 +1248,7 @@ public interface DebeziumMysqlComponentBuilderFactory {
case "offsetStorageTopic": getOrCreateConfiguration((DebeziumMySqlComponent) component).setOffsetStorageTopic((java.lang.String) value); return true;
case "basicPropertyBinding": ((DebeziumMySqlComponent) component).setBasicPropertyBinding((boolean) value); return true;
case "bigintUnsignedHandlingMode": getOrCreateConfiguration((DebeziumMySqlComponent) component).setBigintUnsignedHandlingMode((java.lang.String) value); return true;
+ case "binaryHandlingMode": getOrCreateConfiguration((DebeziumMySqlComponent) component).setBinaryHandlingMode((java.lang.String) value); return true;
case "binlogBufferSize": getOrCreateConfiguration((DebeziumMySqlComponent) component).setBinlogBufferSize((int) value); return true;
case "columnBlacklist": getOrCreateConfiguration((DebeziumMySqlComponent) component).setColumnBlacklist((java.lang.String) value); return true;
case "connectKeepAlive": getOrCreateConfiguration((DebeziumMySqlComponent) component).setConnectKeepAlive((boolean) value); return true;
@@ -1264,6 +1295,7 @@ public interface DebeziumMysqlComponentBuilderFactory {
case "maxQueueSize": getOrCreateConfiguration((DebeziumMySqlComponent) component).setMaxQueueSize((int) value); return true;
case "messageKeyColumns": getOrCreateConfiguration((DebeziumMySqlComponent) component).setMessageKeyColumns((java.lang.String) value); return true;
case "pollIntervalMs": getOrCreateConfiguration((DebeziumMySqlComponent) component).setPollIntervalMs((long) value); return true;
+ case "skippedOperations": getOrCreateConfiguration((DebeziumMySqlComponent) component).setSkippedOperations((java.lang.String) value); return true;
case "snapshotDelayMs": getOrCreateConfiguration((DebeziumMySqlComponent) component).setSnapshotDelayMs((long) value); return true;
case "snapshotFetchSize": getOrCreateConfiguration((DebeziumMySqlComponent) component).setSnapshotFetchSize((int) value); return true;
case "snapshotLockingMode": getOrCreateConfiguration((DebeziumMySqlComponent) component).setSnapshotLockingMode((java.lang.String) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumPostgresComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumPostgresComponentBuilderFactory.java
index e38f760..3200845 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumPostgresComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumPostgresComponentBuilderFactory.java
@@ -254,8 +254,23 @@ public interface DebeziumPostgresComponentBuilderFactory {
return this;
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Specify how binary (blob, binary, etc.) columns should be represented
+ * in change events, including:'bytes' represents binary data as byte
+ * array (default)'base64' represents binary data as base64-encoded
+ * string'hex' represents binary data as hex-encoded (base16) string.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: bytes
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder binaryHandlingMode(
+ java.lang.String binaryHandlingMode) {
+ doSetProperty("binaryHandlingMode", binaryHandlingMode);
+ return this;
+ }
+ /**
+ * Regular expressions matching columns to exclude from change events.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -267,6 +282,32 @@ public interface DebeziumPostgresComponentBuilderFactory {
return this;
}
/**
+ * Regular expressions matching columns to include in change events.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder columnWhitelist(
+ java.lang.String columnWhitelist) {
+ doSetProperty("columnWhitelist", columnWhitelist);
+ return this;
+ }
+ /**
+ * Optional list of custom converters that would be used instead of
+ * default ones. The converters are defined using '.type' config option
+ * and configured using options '.'.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder converters(
+ java.lang.String converters) {
+ doSetProperty("converters", converters);
+ return this;
+ }
+ /**
* The name of the database the connector should be monitoring.
*
* The option is a: <code>java.lang.String</code> type.
@@ -689,6 +730,32 @@ public interface DebeziumPostgresComponentBuilderFactory {
return this;
}
/**
+ * Applies only when streaming changes using pgoutput.Determine how
+ * creation of a publication should work, the default is
+ * all_tables.DISABLED - The connector will not attempt to create a
+ * publication at all. The expectation is that the user has created the
+ * publication up-front. If the publication isn't found to exist upon
+ * startup, the connector will throw an exception and stop.ALL_TABLES -
+ * If no publication exists, the connector will create a new publication
+ * for all tables. Note this requires that the configured user has
+ * access. If the publication already exists, it will be used. i.e
+ * CREATE PUBLICATION FOR ALL TABLES;FILTERED - If no publication
+ * exists, the connector will create a new publication for all those
+ * tables matchingthe current filter configuration (see table/database
+ * whitelist/blacklist properties). If the publication already exists,
+ * it will be used. i.e CREATE PUBLICATION FOR TABLE.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: all_tables
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder publicationAutocreateMode(
+ java.lang.String publicationAutocreateMode) {
+ doSetProperty("publicationAutocreateMode", publicationAutocreateMode);
+ return this;
+ }
+ /**
* The name of the Postgres 10 publication used for streaming changes
* from a plugin.Defaults to 'dbz_publication'.
*
@@ -703,6 +770,19 @@ public interface DebeziumPostgresComponentBuilderFactory {
return this;
}
/**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder sanitizeFieldNames(
+ boolean sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
* The schemas for which events must not be captured.
*
* The option is a: <code>java.lang.String</code> type.
@@ -751,6 +831,20 @@ public interface DebeziumPostgresComponentBuilderFactory {
return this;
}
/**
+ * The comma-separated list of operations to skip during streaming,
+ * defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
+ * default, no operations will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder skippedOperations(
+ java.lang.String skippedOperations) {
+ doSetProperty("skippedOperations", skippedOperations);
+ return this;
+ }
+ /**
* Whether or not to drop the logical replication slot when the
* connector finishes orderlyBy default the replication is kept so that
* on restart progress can resume from the last recorded location.
@@ -968,6 +1062,19 @@ public interface DebeziumPostgresComponentBuilderFactory {
return this;
}
/**
+ * Flag specifying whether built-in tables should be ignored.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: postgres
+ */
+ default DebeziumPostgresComponentBuilder tableIgnoreBuiltin(
+ boolean tableIgnoreBuiltin) {
+ doSetProperty("tableIgnoreBuiltin", tableIgnoreBuiltin);
+ return this;
+ }
+ /**
* The tables for which changes are to be captured.
*
* The option is a: <code>java.lang.String</code> type.
@@ -1090,7 +1197,10 @@ public interface DebeziumPostgresComponentBuilderFactory {
case "offsetStorageReplicationFactor": getOrCreateConfiguration((DebeziumPostgresComponent) component).setOffsetStorageReplicationFactor((int) value); return true;
case "offsetStorageTopic": getOrCreateConfiguration((DebeziumPostgresComponent) component).setOffsetStorageTopic((java.lang.String) value); return true;
case "basicPropertyBinding": ((DebeziumPostgresComponent) component).setBasicPropertyBinding((boolean) value); return true;
+ case "binaryHandlingMode": getOrCreateConfiguration((DebeziumPostgresComponent) component).setBinaryHandlingMode((java.lang.String) value); return true;
case "columnBlacklist": getOrCreateConfiguration((DebeziumPostgresComponent) component).setColumnBlacklist((java.lang.String) value); return true;
+ case "columnWhitelist": getOrCreateConfiguration((DebeziumPostgresComponent) component).setColumnWhitelist((java.lang.String) value); return true;
+ case "converters": getOrCreateConfiguration((DebeziumPostgresComponent) component).setConverters((java.lang.String) value); return true;
case "databaseDbname": getOrCreateConfiguration((DebeziumPostgresComponent) component).setDatabaseDbname((java.lang.String) value); return true;
case "databaseHistoryFileFilename": getOrCreateConfiguration((DebeziumPostgresComponent) component).setDatabaseHistoryFileFilename((java.lang.String) value); return true;
case "databaseHostname": getOrCreateConfiguration((DebeziumPostgresComponent) component).setDatabaseHostname((java.lang.String) value); return true;
@@ -1120,10 +1230,13 @@ public interface DebeziumPostgresComponentBuilderFactory {
case "pluginName": getOrCreateConfiguration((DebeziumPostgresComponent) component).setPluginName((java.lang.String) value); return true;
case "pollIntervalMs": getOrCreateConfiguration((DebeziumPostgresComponent) component).setPollIntervalMs((long) value); return true;
case "provideTransactionMetadata": getOrCreateConfiguration((DebeziumPostgresComponent) component).setProvideTransactionMetadata((boolean) value); return true;
+ case "publicationAutocreateMode": getOrCreateConfiguration((DebeziumPostgresComponent) component).setPublicationAutocreateMode((java.lang.String) value); return true;
case "publicationName": getOrCreateConfiguration((DebeziumPostgresComponent) component).setPublicationName((java.lang.String) value); return true;
+ case "sanitizeFieldNames": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSanitizeFieldNames((boolean) value); return true;
case "schemaBlacklist": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSchemaBlacklist((java.lang.String) value); return true;
case "schemaRefreshMode": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSchemaRefreshMode((java.lang.String) value); return true;
case "schemaWhitelist": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSchemaWhitelist((java.lang.String) value); return true;
+ case "skippedOperations": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSkippedOperations((java.lang.String) value); return true;
case "slotDropOnStop": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSlotDropOnStop((boolean) value); return true;
case "slotMaxRetries": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSlotMaxRetries((int) value); return true;
case "slotName": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSlotName((java.lang.String) value); return true;
@@ -1138,6 +1251,7 @@ public interface DebeziumPostgresComponentBuilderFactory {
case "sourceStructVersion": getOrCreateConfiguration((DebeziumPostgresComponent) component).setSourceStructVersion((java.lang.String) value); return true;
case "statusUpdateIntervalMs": getOrCreateConfiguration((DebeziumPostgresComponent) component).setStatusUpdateIntervalMs((int) value); return true;
case "tableBlacklist": getOrCreateConfiguration((DebeziumPostgresComponent) component).setTableBlacklist((java.lang.String) value); return true;
+ case "tableIgnoreBuiltin": getOrCreateConfiguration((DebeziumPostgresComponent) component).setTableIgnoreBuiltin((boolean) value); return true;
case "tableWhitelist": getOrCreateConfiguration((DebeziumPostgresComponent) component).setTableWhitelist((java.lang.String) value); return true;
case "timePrecisionMode": getOrCreateConfiguration((DebeziumPostgresComponent) component).setTimePrecisionMode((java.lang.String) value); return true;
case "toastedValuePlaceholder": getOrCreateConfiguration((DebeziumPostgresComponent) component).setToastedValuePlaceholder((java.lang.String) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumSqlserverComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumSqlserverComponentBuilderFactory.java
index e03bef7..49c31ae 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumSqlserverComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/DebeziumSqlserverComponentBuilderFactory.java
@@ -254,8 +254,7 @@ public interface DebeziumSqlserverComponentBuilderFactory {
return this;
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -267,6 +266,32 @@ public interface DebeziumSqlserverComponentBuilderFactory {
return this;
}
/**
+ * Regular expressions matching columns to include in change events.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder columnWhitelist(
+ java.lang.String columnWhitelist) {
+ doSetProperty("columnWhitelist", columnWhitelist);
+ return this;
+ }
+ /**
+ * Optional list of custom converters that would be used instead of
+ * default ones. The converters are defined using '.type' config option
+ * and configured using options '.'.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder converters(
+ java.lang.String converters) {
+ doSetProperty("converters", converters);
+ return this;
+ }
+ /**
* The name of the database the connector should be monitoring. When
* working with a multi-tenant set-up, must be set to the CDB name.
*
@@ -512,6 +537,24 @@ public interface DebeziumSqlserverComponentBuilderFactory {
return this;
}
/**
+ * Whether the connector should publish changes in the database schema
+ * to a Kafka topic with the same name as the database server ID. Each
+ * schema change will be recorded using a key that contains the database
+ * name and whose value include logical description of the new schema
+ * and optionally the DDL statement(s).The default is 'true'. This is
+ * independent of how the connector internally records database history.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder includeSchemaChanges(
+ boolean includeSchemaChanges) {
+ doSetProperty("includeSchemaChanges", includeSchemaChanges);
+ return this;
+ }
+ /**
* Maximum size of each batch of source records. Defaults to 2048.
*
* The option is a: <code>int</code> type.
@@ -585,6 +628,33 @@ public interface DebeziumSqlserverComponentBuilderFactory {
return this;
}
/**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder sanitizeFieldNames(
+ boolean sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
+ * The comma-separated list of operations to skip during streaming,
+ * defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
+ * default, no operations will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder skippedOperations(
+ java.lang.String skippedOperations) {
+ doSetProperty("skippedOperations", skippedOperations);
+ return this;
+ }
+ /**
* The number of milliseconds to delay before a snapshot will begin.
*
* The option is a: <code>long</code> type.
@@ -611,6 +681,34 @@ public interface DebeziumSqlserverComponentBuilderFactory {
return this;
}
/**
+ * Controls which transaction isolation level is used and how long the
+ * connector locks the monitored tables. The default is
+ * 'repeatable_read', which means that repeatable read isolation level
+ * is used. In addition, exclusive locks are taken only during schema
+ * snapshot. Using a value of 'exclusive' ensures that the connector
+ * holds the exclusive lock (and thus prevents any reads and updates)
+ * for all monitored tables during the entire snapshot duration. When
+ * 'snapshot' is specified, connector runs the initial snapshot in
+ * SNAPSHOT isolation level, which guarantees snapshot consistency. In
+ * addition, neither table nor row-level locks are held. When
+ * 'read_committed' is specified, connector runs the initial snapshot in
+ * READ COMMITTED isolation level. No long-running locks are taken, so
+ * that initial snapshot does not prevent other transactions from
+ * updating table rows. Snapshot consistency is not guaranteed.In
+ * 'read_uncommitted' mode neither table nor row-level locks are
+ * acquired, but connector does not guarantee snapshot consistency.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: repeatable_read
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder snapshotIsolationMode(
+ java.lang.String snapshotIsolationMode) {
+ doSetProperty("snapshotIsolationMode", snapshotIsolationMode);
+ return this;
+ }
+ /**
* The maximum number of millis to wait for table locks at the beginning
* of a snapshot. If locks cannot be acquired in this time frame, the
* snapshot will be aborted. Defaults to 10 seconds.
@@ -681,6 +779,23 @@ public interface DebeziumSqlserverComponentBuilderFactory {
return this;
}
/**
+ * Configures the criteria of the attached timestamp within the source
+ * record (ts_ms).Options include:'commit', (default) the source
+ * timestamp is set to the instant where the record was committed in the
+ * database'processing', the source timestamp is set to the instant
+ * where the record was processed by Debezium.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: commit
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverComponentBuilder sourceTimestampMode(
+ java.lang.String sourceTimestampMode) {
+ doSetProperty("sourceTimestampMode", sourceTimestampMode);
+ return this;
+ }
+ /**
* Description is not available here, please check Debezium website for
* corresponding key 'table.blacklist' description.
*
@@ -794,6 +909,8 @@ public interface DebeziumSqlserverComponentBuilderFactory {
case "offsetStorageTopic": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setOffsetStorageTopic((java.lang.String) value); return true;
case "basicPropertyBinding": ((DebeziumSqlserverComponent) component).setBasicPropertyBinding((boolean) value); return true;
case "columnBlacklist": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setColumnBlacklist((java.lang.String) value); return true;
+ case "columnWhitelist": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setColumnWhitelist((java.lang.String) value); return true;
+ case "converters": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setConverters((java.lang.String) value); return true;
case "databaseDbname": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setDatabaseDbname((java.lang.String) value); return true;
case "databaseHistory": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setDatabaseHistory((java.lang.String) value); return true;
case "databaseHistoryFileFilename": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setDatabaseHistoryFileFilename((java.lang.String) value); return true;
@@ -811,17 +928,22 @@ public interface DebeziumSqlserverComponentBuilderFactory {
case "eventProcessingFailureHandlingMode": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setEventProcessingFailureHandlingMode((java.lang.String) value); return true;
case "heartbeatIntervalMs": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setHeartbeatIntervalMs((int) value); return true;
case "heartbeatTopicsPrefix": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setHeartbeatTopicsPrefix((java.lang.String) value); return true;
+ case "includeSchemaChanges": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setIncludeSchemaChanges((boolean) value); return true;
case "maxBatchSize": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setMaxBatchSize((int) value); return true;
case "maxQueueSize": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setMaxQueueSize((int) value); return true;
case "messageKeyColumns": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setMessageKeyColumns((java.lang.String) value); return true;
case "pollIntervalMs": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setPollIntervalMs((long) value); return true;
case "provideTransactionMetadata": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setProvideTransactionMetadata((boolean) value); return true;
+ case "sanitizeFieldNames": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSanitizeFieldNames((boolean) value); return true;
+ case "skippedOperations": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSkippedOperations((java.lang.String) value); return true;
case "snapshotDelayMs": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSnapshotDelayMs((long) value); return true;
case "snapshotFetchSize": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSnapshotFetchSize((int) value); return true;
+ case "snapshotIsolationMode": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSnapshotIsolationMode((java.lang.String) value); return true;
case "snapshotLockTimeoutMs": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSnapshotLockTimeoutMs((long) value); return true;
case "snapshotMode": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSnapshotMode((java.lang.String) value); return true;
case "snapshotSelectStatementOverrides": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSnapshotSelectStatementOverrides((java.lang.String) value); return true;
case "sourceStructVersion": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSourceStructVersion((java.lang.String) value); return true;
+ case "sourceTimestampMode": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setSourceTimestampMode((java.lang.String) value); return true;
case "tableBlacklist": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setTableBlacklist((java.lang.String) value); return true;
case "tableIgnoreBuiltin": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setTableIgnoreBuiltin((boolean) value); return true;
case "tableWhitelist": getOrCreateConfiguration((DebeziumSqlserverComponent) component).setTableWhitelist((java.lang.String) value); return true;
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMongodbEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMongodbEndpointBuilderFactory.java
index f592357..82fa1b6 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMongodbEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMongodbEndpointBuilderFactory.java
@@ -438,6 +438,19 @@ public interface DebeziumMongodbEndpointBuilderFactory {
return this;
}
/**
+ * Optional list of custom converters that would be used instead of
+ * default ones. The converters are defined using '.type' config option
+ * and configured using options '.'.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder converters(String converters) {
+ doSetProperty("converters", converters);
+ return this;
+ }
+ /**
* The databases for which changes are to be excluded.
*
* The option is a: <code>java.lang.String</code> type.
@@ -475,6 +488,24 @@ public interface DebeziumMongodbEndpointBuilderFactory {
return this;
}
/**
+ * Specify how failures during processing of events (i.e. when
+ * encountering a corrupted event) should be handled, including:'fail'
+ * (the default) an exception indicating the problematic event and its
+ * position is raised, causing the connector to be stopped; 'warn' the
+ * problematic event and its position will be logged and the event will
+ * be skipped;'ignore' the problematic event will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: fail
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder eventProcessingFailureHandlingMode(
+ String eventProcessingFailureHandlingMode) {
+ doSetProperty("eventProcessingFailureHandlingMode", eventProcessingFailureHandlingMode);
+ return this;
+ }
+ /**
* Description is not available here, please check Debezium website for
* corresponding key 'field.blacklist' description.
*
@@ -624,6 +655,19 @@ public interface DebeziumMongodbEndpointBuilderFactory {
return this;
}
/**
+ * Database containing user credentials.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: admin
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder mongodbAuthsource(
+ String mongodbAuthsource) {
+ doSetProperty("mongodbAuthsource", mongodbAuthsource);
+ return this;
+ }
+ /**
* The hostname and port pairs (in the form 'host' or 'host:port') of
* the MongoDB server(s) in the replica set.
*
@@ -696,6 +740,34 @@ public interface DebeziumMongodbEndpointBuilderFactory {
return this;
}
/**
+ * Frequency in seconds to look for new, removed, or changed replica
+ * sets. Defaults to 30 seconds.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 30
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder mongodbPollIntervalSec(
+ int mongodbPollIntervalSec) {
+ doSetProperty("mongodbPollIntervalSec", mongodbPollIntervalSec);
+ return this;
+ }
+ /**
+ * Frequency in seconds to look for new, removed, or changed replica
+ * sets. Defaults to 30 seconds.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 30
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder mongodbPollIntervalSec(
+ String mongodbPollIntervalSec) {
+ doSetProperty("mongodbPollIntervalSec", mongodbPollIntervalSec);
+ return this;
+ }
+ /**
* Should connector use SSL to connect to MongoDB instances.
*
* The option is a: <code>boolean</code> type.
@@ -789,6 +861,58 @@ public interface DebeziumMongodbEndpointBuilderFactory {
return this;
}
/**
+ * Enables transaction metadata extraction together with event counting.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder provideTransactionMetadata(
+ boolean provideTransactionMetadata) {
+ doSetProperty("provideTransactionMetadata", provideTransactionMetadata);
+ return this;
+ }
+ /**
+ * Enables transaction metadata extraction together with event counting.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder provideTransactionMetadata(
+ String provideTransactionMetadata) {
+ doSetProperty("provideTransactionMetadata", provideTransactionMetadata);
+ return this;
+ }
+ /**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder sanitizeFieldNames(
+ boolean sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: mongodb
+ */
+ default DebeziumMongodbEndpointBuilder sanitizeFieldNames(
+ String sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
* The comma-separated list of operations to skip during streaming,
* defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
* default, no operations will be skipped.
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMySqlEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMySqlEndpointBuilderFactory.java
index 92ab05d..10ee106 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMySqlEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumMySqlEndpointBuilderFactory.java
@@ -337,6 +337,22 @@ public interface DebeziumMySqlEndpointBuilderFactory {
return this;
}
/**
+ * Specify how binary (blob, binary, etc.) columns should be represented
+ * in change events, including:'bytes' represents binary data as byte
+ * array (default)'base64' represents binary data as base64-encoded
+ * string'hex' represents binary data as hex-encoded (base16) string.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: bytes
+ * Group: mysql
+ */
+ default DebeziumMySqlEndpointBuilder binaryHandlingMode(
+ String binaryHandlingMode) {
+ doSetProperty("binaryHandlingMode", binaryHandlingMode);
+ return this;
+ }
+ /**
* The size of a look-ahead buffer used by the binlog reader to decide
* whether the transaction in progress is going to be committed or
* rolled back. Use 0 to disable look-ahead buffering. Defaults to 0
@@ -369,8 +385,7 @@ public interface DebeziumMySqlEndpointBuilderFactory {
return this;
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -1169,9 +1184,9 @@ public interface DebeziumMySqlEndpointBuilderFactory {
* Whether the connector should publish changes in the database schema
* to a Kafka topic with the same name as the database server ID. Each
* schema change will be recorded using a key that contains the database
- * name and whose value includes the DDL statement(s).The default is
- * 'true'. This is independent of how the connector internally records
- * database history.
+ * name and whose value include logical description of the new schema
+ * and optionally the DDL statement(s).The default is 'true'. This is
+ * independent of how the connector internally records database history.
*
* The option is a: <code>boolean</code> type.
*
@@ -1187,9 +1202,9 @@ public interface DebeziumMySqlEndpointBuilderFactory {
* Whether the connector should publish changes in the database schema
* to a Kafka topic with the same name as the database server ID. Each
* schema change will be recorded using a key that contains the database
- * name and whose value includes the DDL statement(s).The default is
- * 'true'. This is independent of how the connector internally records
- * database history.
+ * name and whose value include logical description of the new schema
+ * and optionally the DDL statement(s).The default is 'true'. This is
+ * independent of how the connector internally records database history.
*
* The option will be converted to a <code>boolean</code> type.
*
@@ -1320,6 +1335,20 @@ public interface DebeziumMySqlEndpointBuilderFactory {
return this;
}
/**
+ * The comma-separated list of operations to skip during streaming,
+ * defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
+ * default, no operations will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: mysql
+ */
+ default DebeziumMySqlEndpointBuilder skippedOperations(
+ String skippedOperations) {
+ doSetProperty("skippedOperations", skippedOperations);
+ return this;
+ }
+ /**
* The number of milliseconds to delay before a snapshot will begin.
*
* The option is a: <code>long</code> type.
@@ -1402,15 +1431,16 @@ public interface DebeziumMySqlEndpointBuilderFactory {
/**
* The criteria for running a snapshot upon startup of the connector.
* Options include: 'when_needed' to specify that the connector run a
- * snapshot upon startup whenever it deems it necessary; 'initial' (the
- * default) to specify the connector can run a snapshot only when no
- * offsets are available for the logical server name; 'initial_only'
- * same as 'initial' except the connector should stop after completing
- * the snapshot and before it would normally read the binlog; and'never'
- * to specify the connector should never run a snapshot and that upon
- * first startup the connector should read from the beginning of the
- * binlog. The 'never' mode should be used with care, and only when the
- * binlog is known to contain all history.
+ * snapshot upon startup whenever it deems it necessary; 'schema_only'
+ * to only take a snapshot of the schema (table structures) but no
+ * actual data; 'initial' (the default) to specify the connector can run
+ * a snapshot only when no offsets are available for the logical server
+ * name; 'initial_only' same as 'initial' except the connector should
+ * stop after completing the snapshot and before it would normally read
+ * the binlog; and'never' to specify the connector should never run a
+ * snapshot and that upon first startup the connector should read from
+ * the beginning of the binlog. The 'never' mode should be used with
+ * care, and only when the binlog is known to contain all history.
*
* The option is a: <code>java.lang.String</code> type.
*
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumPostgresEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumPostgresEndpointBuilderFactory.java
index 8f37a45..a229051 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumPostgresEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumPostgresEndpointBuilderFactory.java
@@ -319,8 +319,23 @@ public interface DebeziumPostgresEndpointBuilderFactory {
return this;
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Specify how binary (blob, binary, etc.) columns should be represented
+ * in change events, including:'bytes' represents binary data as byte
+ * array (default)'base64' represents binary data as base64-encoded
+ * string'hex' represents binary data as hex-encoded (base16) string.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: bytes
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder binaryHandlingMode(
+ String binaryHandlingMode) {
+ doSetProperty("binaryHandlingMode", binaryHandlingMode);
+ return this;
+ }
+ /**
+ * Regular expressions matching columns to exclude from change events.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -332,6 +347,31 @@ public interface DebeziumPostgresEndpointBuilderFactory {
return this;
}
/**
+ * Regular expressions matching columns to include in change events.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder columnWhitelist(
+ String columnWhitelist) {
+ doSetProperty("columnWhitelist", columnWhitelist);
+ return this;
+ }
+ /**
+ * Optional list of custom converters that would be used instead of
+ * default ones. The converters are defined using '.type' config option
+ * and configured using options '.'.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder converters(String converters) {
+ doSetProperty("converters", converters);
+ return this;
+ }
+ /**
* The name of the database the connector should be monitoring.
*
* The option is a: <code>java.lang.String</code> type.
@@ -864,6 +904,32 @@ public interface DebeziumPostgresEndpointBuilderFactory {
return this;
}
/**
+ * Applies only when streaming changes using pgoutput.Determine how
+ * creation of a publication should work, the default is
+ * all_tables.DISABLED - The connector will not attempt to create a
+ * publication at all. The expectation is that the user has created the
+ * publication up-front. If the publication isn't found to exist upon
+ * startup, the connector will throw an exception and stop.ALL_TABLES -
+ * If no publication exists, the connector will create a new publication
+ * for all tables. Note this requires that the configured user has
+ * access. If the publication already exists, it will be used. i.e
+ * CREATE PUBLICATION FOR ALL TABLES;FILTERED - If no publication
+ * exists, the connector will create a new publication for all those
+ * tables matchingthe current filter configuration (see table/database
+ * whitelist/blacklist properties). If the publication already exists,
+ * it will be used. i.e CREATE PUBLICATION FOR TABLE.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: all_tables
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder publicationAutocreateMode(
+ String publicationAutocreateMode) {
+ doSetProperty("publicationAutocreateMode", publicationAutocreateMode);
+ return this;
+ }
+ /**
* The name of the Postgres 10 publication used for streaming changes
* from a plugin.Defaults to 'dbz_publication'.
*
@@ -878,6 +944,32 @@ public interface DebeziumPostgresEndpointBuilderFactory {
return this;
}
/**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder sanitizeFieldNames(
+ boolean sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder sanitizeFieldNames(
+ String sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
* The schemas for which events must not be captured.
*
* The option is a: <code>java.lang.String</code> type.
@@ -926,6 +1018,20 @@ public interface DebeziumPostgresEndpointBuilderFactory {
return this;
}
/**
+ * The comma-separated list of operations to skip during streaming,
+ * defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
+ * default, no operations will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder skippedOperations(
+ String skippedOperations) {
+ doSetProperty("skippedOperations", skippedOperations);
+ return this;
+ }
+ /**
* Whether or not to drop the logical replication slot when the
* connector finishes orderlyBy default the replication is kept so that
* on restart progress can resume from the last recorded location.
@@ -1239,6 +1345,32 @@ public interface DebeziumPostgresEndpointBuilderFactory {
return this;
}
/**
+ * Flag specifying whether built-in tables should be ignored.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder tableIgnoreBuiltin(
+ boolean tableIgnoreBuiltin) {
+ doSetProperty("tableIgnoreBuiltin", tableIgnoreBuiltin);
+ return this;
+ }
+ /**
+ * Flag specifying whether built-in tables should be ignored.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: postgres
+ */
+ default DebeziumPostgresEndpointBuilder tableIgnoreBuiltin(
+ String tableIgnoreBuiltin) {
+ doSetProperty("tableIgnoreBuiltin", tableIgnoreBuiltin);
+ return this;
+ }
+ /**
* The tables for which changes are to be captured.
*
* The option is a: <code>java.lang.String</code> type.
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumSqlserverEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumSqlserverEndpointBuilderFactory.java
index a9e85ac..061a52c 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumSqlserverEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/DebeziumSqlserverEndpointBuilderFactory.java
@@ -319,8 +319,7 @@ public interface DebeziumSqlserverEndpointBuilderFactory {
return this;
}
/**
- * Description is not available here, please check Debezium website for
- * corresponding key 'column.blacklist' description.
+ * Regular expressions matching columns to exclude from change events.
*
* The option is a: <code>java.lang.String</code> type.
*
@@ -332,6 +331,31 @@ public interface DebeziumSqlserverEndpointBuilderFactory {
return this;
}
/**
+ * Regular expressions matching columns to include in change events.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder columnWhitelist(
+ String columnWhitelist) {
+ doSetProperty("columnWhitelist", columnWhitelist);
+ return this;
+ }
+ /**
+ * Optional list of custom converters that would be used instead of
+ * default ones. The converters are defined using '.type' config option
+ * and configured using options '.'.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder converters(String converters) {
+ doSetProperty("converters", converters);
+ return this;
+ }
+ /**
* The name of the database the connector should be monitoring. When
* working with a multi-tenant set-up, must be set to the CDB name.
*
@@ -637,6 +661,42 @@ public interface DebeziumSqlserverEndpointBuilderFactory {
return this;
}
/**
+ * Whether the connector should publish changes in the database schema
+ * to a Kafka topic with the same name as the database server ID. Each
+ * schema change will be recorded using a key that contains the database
+ * name and whose value include logical description of the new schema
+ * and optionally the DDL statement(s).The default is 'true'. This is
+ * independent of how the connector internally records database history.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder includeSchemaChanges(
+ boolean includeSchemaChanges) {
+ doSetProperty("includeSchemaChanges", includeSchemaChanges);
+ return this;
+ }
+ /**
+ * Whether the connector should publish changes in the database schema
+ * to a Kafka topic with the same name as the database server ID. Each
+ * schema change will be recorded using a key that contains the database
+ * name and whose value include logical description of the new schema
+ * and optionally the DDL statement(s).The default is 'true'. This is
+ * independent of how the connector internally records database history.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder includeSchemaChanges(
+ String includeSchemaChanges) {
+ doSetProperty("includeSchemaChanges", includeSchemaChanges);
+ return this;
+ }
+ /**
* Maximum size of each batch of source records. Defaults to 2048.
*
* The option is a: <code>int</code> type.
@@ -765,6 +825,46 @@ public interface DebeziumSqlserverEndpointBuilderFactory {
return this;
}
/**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder sanitizeFieldNames(
+ boolean sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
+ * Whether field names will be sanitized to Avro naming conventions.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder sanitizeFieldNames(
+ String sanitizeFieldNames) {
+ doSetProperty("sanitizeFieldNames", sanitizeFieldNames);
+ return this;
+ }
+ /**
+ * The comma-separated list of operations to skip during streaming,
+ * defined as: 'i' for inserts; 'u' for updates; 'd' for deletes. By
+ * default, no operations will be skipped.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder skippedOperations(
+ String skippedOperations) {
+ doSetProperty("skippedOperations", skippedOperations);
+ return this;
+ }
+ /**
* The number of milliseconds to delay before a snapshot will begin.
*
* The option is a: <code>long</code> type.
@@ -817,6 +917,34 @@ public interface DebeziumSqlserverEndpointBuilderFactory {
return this;
}
/**
+ * Controls which transaction isolation level is used and how long the
+ * connector locks the monitored tables. The default is
+ * 'repeatable_read', which means that repeatable read isolation level
+ * is used. In addition, exclusive locks are taken only during schema
+ * snapshot. Using a value of 'exclusive' ensures that the connector
+ * holds the exclusive lock (and thus prevents any reads and updates)
+ * for all monitored tables during the entire snapshot duration. When
+ * 'snapshot' is specified, connector runs the initial snapshot in
+ * SNAPSHOT isolation level, which guarantees snapshot consistency. In
+ * addition, neither table nor row-level locks are held. When
+ * 'read_committed' is specified, connector runs the initial snapshot in
+ * READ COMMITTED isolation level. No long-running locks are taken, so
+ * that initial snapshot does not prevent other transactions from
+ * updating table rows. Snapshot consistency is not guaranteed.In
+ * 'read_uncommitted' mode neither table nor row-level locks are
+ * acquired, but connector does not guarantee snapshot consistency.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: repeatable_read
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder snapshotIsolationMode(
+ String snapshotIsolationMode) {
+ doSetProperty("snapshotIsolationMode", snapshotIsolationMode);
+ return this;
+ }
+ /**
* The maximum number of millis to wait for table locks at the beginning
* of a snapshot. If locks cannot be acquired in this time frame, the
* snapshot will be aborted. Defaults to 10 seconds.
@@ -902,6 +1030,23 @@ public interface DebeziumSqlserverEndpointBuilderFactory {
return this;
}
/**
+ * Configures the criteria of the attached timestamp within the source
+ * record (ts_ms).Options include:'commit', (default) the source
+ * timestamp is set to the instant where the record was committed in the
+ * database'processing', the source timestamp is set to the instant
+ * where the record was processed by Debezium.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Default: commit
+ * Group: sqlserver
+ */
+ default DebeziumSqlserverEndpointBuilder sourceTimestampMode(
+ String sourceTimestampMode) {
+ doSetProperty("sourceTimestampMode", sourceTimestampMode);
+ return this;
+ }
+ /**
* Description is not available here, please check Debezium website for
* corresponding key 'table.blacklist' description.
*
diff --git a/parent/pom.xml b/parent/pom.xml
index c1f1ed9..6eda041 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -155,7 +155,7 @@
<dozer-version>6.5.0</dozer-version>
<drools-version>7.38.0.Final</drools-version>
<dropbox-version>3.1.4</dropbox-version>
- <debezium-version>1.1.2.Final</debezium-version>
+ <debezium-version>1.2.0.Final</debezium-version>
<debezium-mysql-connector-version>8.0.16</debezium-mysql-connector-version>
<egit-github-core-version>2.1.5</egit-github-core-version>
<ehcache3-version>3.8.1</ehcache3-version>