You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2026/04/13 09:36:04 UTC
(camel-kafka-connector) 01/01: CAMEL-23300: pass connectionString to couchbase-sink connector
This is an automated email from the ASF dual-hosted git repository.
fmariani pushed a commit to branch CAMEL-23300/couchbase-connection-string
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git
commit abfafd344832cb31f478be1807fad048b0cb9878
Author: Croway <fe...@gmail.com>
AuthorDate: Mon Apr 13 11:35:49 2026 +0200
CAMEL-23300: pass connectionString to couchbase-sink connector
Expose the connectionString endpoint option so the Couchbase SDK
connects to the correct KV port when Testcontainers maps ports randomly.
---
.../couchbasesink/CamelCouchbasesinkSinkConnectorConfig.java | 4 ++++
.../src/main/resources/kamelets/couchbase-sink.kamelet.yaml | 7 ++++++-
.../couchbase/sink/CamelCouchbasePropertyFactory.java | 4 ++++
.../kafkaconnector/couchbase/sink/CamelSinkCouchbaseITCase.java | 3 ++-
4 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/connectors/camel-couchbase-sink-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/couchbasesink/CamelCouchbasesinkSinkConnectorConfig.java b/connectors/camel-couchbase-sink-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/couchbasesink/CamelCouchbasesinkSinkConnectorConfig.java
index 0f4a52dc29..04537fa9ff 100644
--- a/connectors/camel-couchbase-sink-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/couchbasesink/CamelCouchbasesinkSinkConnectorConfig.java
+++ b/connectors/camel-couchbase-sink-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/couchbasesink/CamelCouchbasesinkSinkConnectorConfig.java
@@ -47,6 +47,9 @@ public class CamelCouchbasesinkSinkConnectorConfig
public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_STARTING_ID_CONF = "camel.kamelet.couchbase-sink.startingId";
public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_STARTING_ID_DOC = "The starting id";
public static final Integer CAMEL_SINK_COUCHBASESINK_KAMELET_STARTING_ID_DEFAULT = 1;
+ public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_CONNECTION_STRING_CONF = "camel.kamelet.couchbase-sink.connectionString";
+ public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_CONNECTION_STRING_DOC = "The full Couchbase SDK connection string (e.g. couchbase://host:port). When set, it takes precedence over hostname extraction for the KV service port.";
+ public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_CONNECTION_STRING_DEFAULT = null;
public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_AUTO_START_ID_CONF = "camel.kamelet.couchbase-sink.autoStartId";
public static final String CAMEL_SINK_COUCHBASESINK_KAMELET_AUTO_START_ID_DOC = "Auto Start Id or not";
public static final Boolean CAMEL_SINK_COUCHBASESINK_KAMELET_AUTO_START_ID_DEFAULT = true;
@@ -71,6 +74,7 @@ public class CamelCouchbasesinkSinkConnectorConfig
conf.define(CAMEL_SINK_COUCHBASESINK_KAMELET_USERNAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_COUCHBASESINK_KAMELET_USERNAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_COUCHBASESINK_KAMELET_USERNAME_DOC);
conf.define(CAMEL_SINK_COUCHBASESINK_KAMELET_PASSWORD_CONF, ConfigDef.Type.PASSWORD, CAMEL_SINK_COUCHBASESINK_KAMELET_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_COUCHBASESINK_KAMELET_PASSWORD_DOC);
conf.define(CAMEL_SINK_COUCHBASESINK_KAMELET_STARTING_ID_CONF, ConfigDef.Type.INT, CAMEL_SINK_COUCHBASESINK_KAMELET_STARTING_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_COUCHBASESINK_KAMELET_STARTING_ID_DOC);
+ conf.define(CAMEL_SINK_COUCHBASESINK_KAMELET_CONNECTION_STRING_CONF, ConfigDef.Type.STRING, CAMEL_SINK_COUCHBASESINK_KAMELET_CONNECTION_STRING_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_COUCHBASESINK_KAMELET_CONNECTION_STRING_DOC);
conf.define(CAMEL_SINK_COUCHBASESINK_KAMELET_AUTO_START_ID_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_COUCHBASESINK_KAMELET_AUTO_START_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_COUCHBASESINK_KAMELET_AUTO_START_ID_DOC);
return conf;
}
diff --git a/connectors/camel-couchbase-sink-kafka-connector/src/main/resources/kamelets/couchbase-sink.kamelet.yaml b/connectors/camel-couchbase-sink-kafka-connector/src/main/resources/kamelets/couchbase-sink.kamelet.yaml
index 8eabfc78ba..85392235b1 100644
--- a/connectors/camel-couchbase-sink-kafka-connector/src/main/resources/kamelets/couchbase-sink.kamelet.yaml
+++ b/connectors/camel-couchbase-sink-kafka-connector/src/main/resources/kamelets/couchbase-sink.kamelet.yaml
@@ -72,6 +72,10 @@ spec:
description: The starting id
type: integer
default: 1
+ connectionString:
+ title: Connection String
+ description: The full Couchbase SDK connection string (e.g. couchbase://host:port). When set, it takes precedence over hostname extraction for the KV service port.
+ type: string
autoStartId:
title: Auto Start Id
description: Auto Start Id or not
@@ -91,4 +95,5 @@ spec:
autoStartIdForInserts: "{{autoStartId}}"
startingIdForInsertsFrom: "{{startingId}}"
username: "{{username}}"
- password: "{{password}}"
\ No newline at end of file
+ password: "{{password}}"
+ connectionString: "{{?connectionString}}"
\ No newline at end of file
diff --git a/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelCouchbasePropertyFactory.java b/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelCouchbasePropertyFactory.java
index e97623901c..c905cdf223 100644
--- a/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelCouchbasePropertyFactory.java
+++ b/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelCouchbasePropertyFactory.java
@@ -45,6 +45,10 @@ public class CamelCouchbasePropertyFactory extends SinkConnectorPropertyFactory<
return setProperty("camel.kamelet.couchbase-sink.password", value);
}
+ public CamelCouchbasePropertyFactory withConnectionString(String value) {
+ return setProperty("camel.kamelet.couchbase-sink.connectionString", value);
+ }
+
public static CamelCouchbasePropertyFactory basic() {
return new CamelCouchbasePropertyFactory()
.withTasksMax(1)
diff --git a/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelSinkCouchbaseITCase.java b/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelSinkCouchbaseITCase.java
index a43019d3e3..a1fc7b3dc0 100644
--- a/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelSinkCouchbaseITCase.java
+++ b/tests/itests-couchbase/src/test/java/org/apache/camel/kafkaconnector/couchbase/sink/CamelSinkCouchbaseITCase.java
@@ -221,7 +221,8 @@ public class CamelSinkCouchbaseITCase extends CamelSinkTestSupport {
.withHostname(service.getHostname())
.withPort(service.getPort())
.withUsername(service.getUsername())
- .withPassword(service.getPassword());
+ .withPassword(service.getPassword())
+ .withConnectionString(service.getConnectionString());
runTest(factory, new CustomProducer(getKafkaService().getBootstrapServers(), topic, expect));
}