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]

Reply via email to