oscerd opened a new pull request, #3007:
URL: https://github.com/apache/camel-kamelets/pull/3007
Fixes #542.
The catalog shipped `couchbase-sink` but nothing on the consuming side, even
though `camel-couchbase` supports both. This adds the missing half.
## Two polling modes, both exposed
The component's own description is *"Query Couchbase databases using SQL
(N1QL) queries or MapReduce Views with a poll strategy"*, and the Kamelet
covers both:
- **N1QL** (default) — the `statement` property runs against the bucket on
each poll
- **MapReduce view** — set `useView: true` and select it with
`designDocumentName` / `viewName`
Rather than pick one and hide the other, the description says plainly which
properties belong to which mode, since `designDocumentName` and `viewName` are
inert unless `useView` is on.
## Consistency with the sink
Connection and credential properties mirror `couchbase-sink` exactly — same
names (`protocol`, `couchbaseHostname`, `couchbasePort`, `bucket`, `username`,
`password`), same `format: password` and credentials descriptor on the
password, and the same `connectionString` escape hatch with the same wording.
Someone configuring the pair should not have to learn two vocabularies.
The source-only additions are the query options the consumer actually reads:
`statement`, `useView`, `designDocumentName`, `viewName`, `fullDocument`,
`limit`, `skip`, `descending`, and `delay` for the poll interval. The sink-only
`startingId` / `autoStartId` are deliberately absent — they configure insert id
generation and have no meaning on a consumer.
## Verification
`script/validator` reports no errors, `script/generator` adds the `nav.adoc`
entry, and `mvn clean install` passes **with tests** from the repository root.
Parameter binding checked against the real component with `camel run`. The
Couchbase SDK initialises and starts bootstrapping from the configured host:
```
Routes startup (total:1 started:1 kamelets:1)
[com.couchbase.core][CoreCreatedEvent]
{"connectionString":"couchbase://localhost", ...}
[com.couchbase.node][NodeCreatedEvent] Node created
{"managerPort":"8091","remote":"localhost"}
```
with **zero** unknown-option or endpoint-resolution errors — it then simply
cannot reach a cluster that is not running. A mistyped parameter would have
failed before any of that.
**No Citrus test**: exercising this needs a live Couchbase and the project's
Citrus/Testcontainers toolchain has no Couchbase container, so it ships
`Preview` without `kamelet.verified=true`. Happy to add one in a follow-up if
there is an image the project is willing to depend on.
The icon is the existing Couchbase icon reused from `couchbase-sink`, so the
pair renders consistently.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Tz352mt7yzGWLfvYTBo2Dk
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]