This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 5f4a7cf7565f CAMEL-23610: docs - Normalize YAML DSL in component docs
to canonical form
5f4a7cf7565f is described below
commit 5f4a7cf7565f53c198ab689ddf6cee19a5784b4c
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue May 26 07:15:19 2026 +0200
CAMEL-23610: docs - Normalize YAML DSL in component docs to canonical form
Normalize YAML DSL code blocks across 19 component documentation files
from classic shorthand to canonical form, consistent with the canonical
JSON schema introduced in CAMEL-22987. Covers shorthand to/log, inline
simple expressions, URI query params expanded to parameters blocks, and
bare from wrapped with route parent. Largest changes in camel-keycloak
(254 instances) and camel-docling (57 instances).
Closes #23512
---
.../src/main/docs/docling-component.adoc | 399 +++++----
.../docs/langchain4j-embeddings-component.adoc | 62 +-
.../docs/langchain4j-embeddingstore-component.adoc | 48 +-
.../src/main/docs/openai-component.adoc | 36 +-
.../src/main/docs/pgvector-component.adoc | 30 +-
.../src/main/docs/aws2-s3-vectors-component.adoc | 127 +--
.../main/docs/azure-storage-blob-component.adoc | 28 +-
.../src/main/docs/camunda-component.adoc | 25 +-
.../camel-dfdl/src/main/docs/dfdl-dataformat.adoc | 16 +-
.../src/main/docs/dhis2-component.adoc | 71 +-
.../camel-event/src/main/docs/event-component.adoc | 17 +-
.../src/main/docs/ibm-watsonx-ai-component.adoc | 9 +-
.../camel-kafka/src/main/docs/kafka-component.adoc | 24 +-
.../src/main/docs/kamelet-component.adoc | 33 +-
.../src/main/docs/keycloak-component.adoc | 890 +++++++++++++++------
.../camel-ocsf/src/main/docs/ocsf-dataformat.adoc | 6 +-
.../camel-pqc/src/main/docs/pqc-component.adoc | 19 +-
.../src/main/docs/smooks-component.adoc | 13 +-
.../src/main/docs/smooks-dataformat.adoc | 8 +-
19 files changed, 1251 insertions(+), 610 deletions(-)
diff --git
a/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
b/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
index c96d3448f478..16ee1514a850 100644
--- a/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
+++ b/components/camel-ai/camel-docling/src/main/docs/docling-component.adoc
@@ -152,14 +152,14 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -185,12 +185,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_HTML"
+ uri: docling:CONVERT_TO_HTML
parameters:
contentInBody: true
- process:
@@ -228,12 +228,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:EXTRACT_STRUCTURED_DATA"
+ uri: docling:EXTRACT_STRUCTURED_DATA
parameters:
useDoclingServe: true
contentInBody: true
@@ -270,32 +270,32 @@ YAML::
# CLI mode
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
enableOCR: false
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
# API mode
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
doOcr: false
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -321,7 +321,7 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
@@ -335,9 +335,9 @@ YAML::
name: "CamelDoclingOCRLanguage"
constant: "es"
- to:
- uri: "docling:CONVERT_TO_MARKDOWN" # Operation will be overridden
by header
+ uri: docling:CONVERT_TO_MARKDOWN # Operation will be overridden by
header
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -364,7 +364,7 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
@@ -375,9 +375,9 @@ YAML::
ref: "customArgsBean"
method: "createCustomArgs"
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -467,14 +467,16 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:EXTRACT_METADATA"
- - log: "Document: ${header.CamelDoclingMetadataTitle} by
${header.CamelDoclingMetadataAuthor}"
- - log: "Pages: ${header.CamelDoclingMetadataPageCount}"
+ uri: docling:EXTRACT_METADATA
+ - log:
+ message: "Document: ${header.CamelDoclingMetadataTitle} by
${header.CamelDoclingMetadataAuthor}"
+ - log:
+ message: "Pages: ${header.CamelDoclingMetadataPageCount}"
- process:
ref: "metadataProcessor"
----
@@ -507,12 +509,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:EXTRACT_METADATA"
+ uri: docling:EXTRACT_METADATA
parameters:
includeRawMetadata: true
- process:
@@ -551,29 +553,42 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:EXTRACT_METADATA"
+ uri: docling:EXTRACT_METADATA
- choice:
when:
- - simple: "${header.CamelDoclingMetadataPageCount} > 100"
+ - expression:
+ simple:
+ expression: "${header.CamelDoclingMetadataPageCount} > 100"
steps:
- - log: "Large document with
${header.CamelDoclingMetadataPageCount} pages"
- - to: "file:///data/large-docs"
- - simple: "${header.CamelDoclingMetadataLanguage} == 'fr'"
+ - log:
+ message: "Large document with
${header.CamelDoclingMetadataPageCount} pages"
+ - to:
+ uri: file:///data/large-docs
+ - expression:
+ simple:
+ expression: "${header.CamelDoclingMetadataLanguage} == 'fr'"
steps:
- - log: "French document"
- - to: "file:///data/french-docs"
- - simple: "${header.CamelDoclingMetadataAuthor} contains 'Smith'"
+ - log:
+ message: "French document"
+ - to:
+ uri: file:///data/french-docs
+ - expression:
+ simple:
+ expression: "${header.CamelDoclingMetadataAuthor} contains
'Smith'"
steps:
- - log: "Document by Smith"
- - to: "file:///data/smith-docs"
+ - log:
+ message: "Document by Smith"
+ - to:
+ uri: file:///data/smith-docs
otherwise:
steps:
- - to: "file:///data/other-docs"
+ - to:
+ uri: file:///data/other-docs
----
====
@@ -602,12 +617,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:EXTRACT_METADATA"
+ uri: docling:EXTRACT_METADATA
parameters:
includeMetadataInHeaders: false
- process:
@@ -647,12 +662,12 @@ YAML::
# Get content directly in body (file is automatically deleted)
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
contentInBody: true
- process:
@@ -661,12 +676,12 @@ YAML::
# Get file path (file is preserved)
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
contentInBody: false
- process:
@@ -811,27 +826,36 @@ YAML::
- route:
id: batch-convert
from:
- uri: "direct:documents"
+ uri: direct:documents
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "BATCH_CONVERT_TO_MARKDOWN"
useDoclingServe: true
batchParallelism: 4
batchFailOnFirstError: true
- - log: "Processed
${header.CamelDoclingBatchSuccessCount}/${header.CamelDoclingBatchTotalDocuments}
documents successfully"
+ - log:
+ message: "Processed
${header.CamelDoclingBatchSuccessCount}/${header.CamelDoclingBatchTotalDocuments}
documents successfully"
- split:
- simple: "${body.results}"
+ expression:
+ simple:
+ expression: "${body.results}"
steps:
- choice:
when:
- - simple: "${body.success}"
+ - expression:
+ simple:
+ expression: "${body.success}"
steps:
- - to:
"file:///data/output?fileName=${body.documentId}.md"
+ - to:
+ uri: file:///data/output
+ parameters:
+ fileName: "${body.documentId}.md"
otherwise:
steps:
- - log: "Failed: ${body.originalPath} -
${body.errorMessage}"
+ - log:
+ message: "Failed: ${body.originalPath} -
${body.errorMessage}"
----
====
@@ -901,7 +925,7 @@ YAML::
# Route 1: Collect documents
- route:
from:
- uri: "file:///data/incoming"
+ uri: file:///data/incoming
parameters:
noop: true
maxMessagesPerPoll: 50
@@ -910,16 +934,18 @@ YAML::
type: "java.lang.String"
- setHeader:
name: "documentPath"
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
- to:
- uri: "seda:document-queue"
+ uri: seda:document-queue
parameters:
waitForTaskToComplete: "Never"
# Route 2: Aggregate into batches
- route:
from:
- uri: "seda:document-queue"
+ uri: seda:document-queue
parameters:
concurrentConsumers: 1
steps:
@@ -930,31 +956,42 @@ YAML::
constant: true
completionSize: 10
completionTimeout: 5000
- - to: "direct:batch-process"
+ - to:
+ uri: direct:batch-process
# Route 3: Process batch
- route:
from:
- uri: "direct:batch-process"
+ uri: direct:batch-process
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "BATCH_CONVERT_TO_MARKDOWN"
useDoclingServe: true
batchParallelism: 5
batchFailOnFirstError: false
- split:
- simple: "${body.results}"
+ expression:
+ simple:
+ expression: "${body.results}"
steps:
- choice:
when:
- - simple: "${body.success}"
+ - expression:
+ simple:
+ expression: "${body.success}"
steps:
- - to:
"file:///data/output?fileName=${body.documentId}.md"
+ - to:
+ uri: file:///data/output
+ parameters:
+ fileName: "${body.documentId}.md"
otherwise:
steps:
- - to:
"file:///data/failed?fileName=${body.documentId}.error"
+ - to:
+ uri: file:///data/failed
+ parameters:
+ fileName: "${body.documentId}.error"
----
====
@@ -1032,41 +1069,52 @@ YAML::
- route:
id: batch-strict
from:
- uri: "direct:batch-strict"
+ uri: direct:batch-strict
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "BATCH_CONVERT_TO_MARKDOWN"
useDoclingServe: true
batchFailOnFirstError: true
- - log: "All documents converted successfully"
+ - log:
+ message: "All documents converted successfully"
# Continue on errors and process failures
- route:
id: batch-lenient
from:
- uri: "direct:batch-lenient"
+ uri: direct:batch-lenient
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "BATCH_CONVERT_TO_MARKDOWN"
useDoclingServe: true
batchFailOnFirstError: false
- - log: "Batch completed: ${header.CamelDoclingBatchSuccessCount}
succeeded, ${header.CamelDoclingBatchFailureCount} failed"
+ - log:
+ message: "Batch completed: ${header.CamelDoclingBatchSuccessCount}
succeeded, ${header.CamelDoclingBatchFailureCount} failed"
- choice:
when:
- - simple: "${header.CamelDoclingBatchFailureCount} > 0"
+ - expression:
+ simple:
+ expression: "${header.CamelDoclingBatchFailureCount} > 0"
steps:
- split:
- simple: "${body.failed}"
+ expression:
+ simple:
+ expression: "${body.failed}"
steps:
- - log: "Failed document: ${body.originalPath} -
${body.errorMessage}"
- - to:
"file:///data/failed?fileName=${body.documentId}.error"
+ - log:
+ message: "Failed document: ${body.originalPath} -
${body.errorMessage}"
+ - to:
+ uri: file:///data/failed
+ parameters:
+ fileName: "${body.documentId}.error"
otherwise:
steps:
- - log: "All documents processed successfully"
+ - log:
+ message: "All documents processed successfully"
----
====
@@ -1278,37 +1326,49 @@ YAML::
# Example 1: Split and route based on success
- route:
from:
- uri: "direct:batch-with-split"
+ uri: direct:batch-with-split
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "BATCH_CONVERT_TO_MARKDOWN"
useDoclingServe: true
splitBatchResults: true
contentInBody: true
- split:
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
steps:
- choice:
when:
- - simple: "${body.success}"
+ - expression:
+ simple:
+ expression: "${body.success}"
steps:
- - log: "Success: ${body.documentId}"
- - to:
"file:///data/success?fileName=${body.documentId}.md"
+ - log:
+ message: "Success: ${body.documentId}"
+ - to:
+ uri: file:///data/success
+ parameters:
+ fileName: "${body.documentId}.md"
otherwise:
steps:
- - log: "Failed: ${body.documentId}"
- - to:
"file:///data/failed?fileName=${body.documentId}.error"
+ - log:
+ message: "Failed: ${body.documentId}"
+ - to:
+ uri: file:///data/failed
+ parameters:
+ fileName: "${body.documentId}.error"
# Example 2: Split with parallel processing
- route:
id: batch-split-parallel
from:
- uri: "direct:batch-parallel"
+ uri: direct:batch-parallel
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "BATCH_CONVERT_TO_MARKDOWN"
useDoclingServe: true
@@ -1316,20 +1376,33 @@ YAML::
batchParallelism: 4
contentInBody: true
- split:
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
parallelProcessing: true
steps:
- - log: "Processing document ${body.documentId} (index
${body.batchIndex})"
+ - log:
+ message: "Processing document ${body.documentId} (index
${body.batchIndex})"
- choice:
when:
- - simple: "${body.success}"
+ - expression:
+ simple:
+ expression: "${body.success}"
steps:
- - log: "Successfully converted ${body.documentId}"
- - to:
"file:///data/processed?fileName=${body.documentId}.md"
+ - log:
+ message: "Successfully converted ${body.documentId}"
+ - to:
+ uri: file:///data/processed
+ parameters:
+ fileName: "${body.documentId}.md"
otherwise:
steps:
- - log: "Failed to convert ${body.documentId}:
${body.errorMessage}"
- - to:
"file:///data/errors?fileName=${body.documentId}.error"
+ - log:
+ message: "Failed to convert ${body.documentId}:
${body.errorMessage}"
+ - to:
+ uri: file:///data/errors
+ parameters:
+ fileName: "${body.documentId}.error"
----
====
@@ -1416,15 +1489,17 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- setHeader:
name: CamelDoclingInputFilePath
- simple: "${file:absolute.path}"
+ expression:
+ simple:
+ expression: "${file:absolute.path}"
- to:
- uri: "docling:CHUNK_HYBRID"
+ uri: docling:CHUNK_HYBRID
parameters:
useDoclingServe: true
contentInBody: true
@@ -1432,9 +1507,12 @@ YAML::
chunkingMaxTokens: 128
chunkingMergePeers: true
- split:
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
steps:
- - log: "Chunk ${body.chunkIndex}: ${body.text}"
+ - log:
+ message: "Chunk ${body.chunkIndex}: ${body.text}"
----
====
@@ -1471,13 +1549,15 @@ YAML::
- route:
id: ingest-pdf
from:
- uri: "direct:ingest-pdf"
+ uri: direct:ingest-pdf
steps:
- setHeader:
name: CamelDoclingInputFilePath
- simple: "${header.pdfFilePath}"
+ expression:
+ simple:
+ expression: "${header.pdfFilePath}"
- to:
- uri: "docling:CHUNK_HYBRID"
+ uri: docling:CHUNK_HYBRID
parameters:
useDoclingServe: true
contentInBody: true
@@ -1485,15 +1565,20 @@ YAML::
chunkingMaxTokens: "{{embedding.max-tokens}}"
chunkingMergePeers: true
- split:
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
steps:
- setBody:
- simple: "${body.text}"
+ expression:
+ simple:
+ expression: "${body.text}"
- to:
- uri: "openai:embeddings"
+ uri: openai:embeddings
parameters:
embeddingModel: "{{embedding.model}}"
- - to: "direct:store-embedding"
+ - to:
+ uri: direct:store-embedding
----
====
@@ -1523,22 +1608,27 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- setHeader:
name: CamelDoclingInputFilePath
- simple: "${file:absolute.path}"
+ expression:
+ simple:
+ expression: "${file:absolute.path}"
- to:
- uri: "docling:CHUNK_HIERARCHICAL"
+ uri: docling:CHUNK_HIERARCHICAL
parameters:
useDoclingServe: true
contentInBody: true
- split:
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
steps:
- - log: "Section [${body.headings}] page ${body.pageNumbers}:
${body.text}"
+ - log:
+ message: "Section [${body.headings}] page ${body.pageNumbers}:
${body.text}"
----
====
@@ -1573,12 +1663,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
useAsyncMode: true
@@ -1586,7 +1676,7 @@ YAML::
asyncTimeout: 300000
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -1616,12 +1706,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/large-documents"
+ uri: file:///data/large-documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
useAsyncMode: true
@@ -1629,7 +1719,7 @@ YAML::
asyncTimeout: 600000
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -1662,19 +1752,19 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- process:
ref: "asyncDecisionProcessor"
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -1812,24 +1902,29 @@ YAML::
- route:
id: async-with-custom-polling
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- - log: "Starting async conversion for: ${header.CamelFileName}"
+ - log:
+ message: "Starting async conversion for: ${header.CamelFileName}"
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "SUBMIT_ASYNC_CONVERSION"
useDoclingServe: true
- - log: "Submitted conversion with task ID: ${body}"
+ - log:
+ message: "Submitted conversion with task ID: ${body}"
- setHeader:
name: "taskId"
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
# For YAML, simpler to use Java processor bean or built-in async mode
- to:
- uri: "bean:asyncPollingProcessor"
- - to: "file:///data/output"
+ uri: bean:asyncPollingProcessor
+ - to:
+ uri: file:///data/output
----
====
@@ -1912,12 +2007,12 @@ YAML::
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:convert"
+ uri: docling:convert
parameters:
operation: "CONVERT_TO_MARKDOWN"
useDoclingServe: true
@@ -1926,7 +2021,7 @@ YAML::
asyncTimeout: 120000
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
parameters:
fileName: "${header.CamelFileName}"
----
@@ -1958,12 +2053,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
doclingServeUrl: "http://localhost:5001"
@@ -1995,19 +2090,19 @@ YAML::
----
- route:
from:
- uri: "timer:convert"
+ uri: timer:convert
parameters:
repeatCount: 1
steps:
- setBody:
constant: "https://arxiv.org/pdf/2501.17887"
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -2030,18 +2125,18 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.(pdf|docx)"
steps:
- to:
- uri: "docling:CONVERT_TO_HTML"
+ uri: docling:CONVERT_TO_HTML
parameters:
useDoclingServe: true
doclingServeUrl: "http://localhost:5001"
contentInBody: true
- to:
- uri: "file:///data/converted"
+ uri: file:///data/converted
parameters:
fileName: "${file:name.noext}.html"
----
@@ -2075,12 +2170,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
doclingServeUrl: "http://localhost:5001"
@@ -2088,7 +2183,7 @@ YAML::
authenticationToken: "your-bearer-token-here"
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -2117,12 +2212,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
doclingServeUrl: "http://localhost:5001"
@@ -2131,7 +2226,7 @@ YAML::
apiKeyHeader: "X-API-Key"
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -2162,12 +2257,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
doclingServeUrl: "http://localhost:5001"
@@ -2176,7 +2271,7 @@ YAML::
apiKeyHeader: "X-Custom-API-Key"
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -2206,12 +2301,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
doclingServeUrl: "{{docling.serve.url}}"
@@ -2219,7 +2314,7 @@ YAML::
authenticationToken: "{{docling.serve.token}}"
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
@@ -2393,12 +2488,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:EXTRACT_STRUCTURED_DATA"
+ uri: docling:EXTRACT_STRUCTURED_DATA
parameters:
useDoclingServe: true
doOcr: true
@@ -2455,12 +2550,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/documents"
+ uri: file:///data/documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_JSON"
+ uri: docling:CONVERT_TO_JSON
parameters:
useDoclingServe: true
contentInBody: true
@@ -2550,12 +2645,12 @@ YAML::
----
- route:
from:
- uri: "file:///data/large-documents"
+ uri: file:///data/large-documents
parameters:
include: ".*\\.pdf"
steps:
- to:
- uri: "docling:CONVERT_TO_MARKDOWN"
+ uri: docling:CONVERT_TO_MARKDOWN
parameters:
useDoclingServe: true
useAsyncMode: true
@@ -2563,7 +2658,7 @@ YAML::
asyncTimeout: 600000
contentInBody: true
- to:
- uri: "file:///data/output"
+ uri: file:///data/output
----
====
diff --git
a/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
b/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
index 884940a9dc06..41b1eed50b57 100644
---
a/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
+++
b/components/camel-ai/camel-langchain4j-embeddings/src/main/docs/langchain4j-embeddings-component.adoc
@@ -96,10 +96,10 @@ YAML::
----
- route:
from:
- uri: "direct:embeddings"
+ uri: direct:embeddings
steps:
- to:
- uri: "langchain4j-embeddings:test"
+ uri: langchain4j-embeddings:test
parameters:
embeddingModel: "#embeddingModel"
----
@@ -174,10 +174,10 @@ YAML::
----
- route:
from:
- uri: "direct:embeddings"
+ uri: direct:embeddings
steps:
- to:
- uri: "langchain4j-embeddings:test"
+ uri: langchain4j-embeddings:test
parameters:
embeddingModel: "#myEmbeddingModel"
----
@@ -211,9 +211,10 @@ YAML::
----
- route:
from:
- uri: "direct:store"
+ uri: direct:store
steps:
- - to: "langchain4j-embeddings:embed"
+ - to:
+ uri: langchain4j-embeddings:embed
- setHeader:
name: CamelQdrantAction
constant: UPSERT
@@ -222,7 +223,8 @@ YAML::
constant: 1
- transform:
dataType: "qdrant:embeddings"
- - to: "qdrant:myCollection"
+ - to:
+ uri: qdrant:myCollection
----
====
@@ -251,9 +253,10 @@ YAML::
----
- route:
from:
- uri: "direct:search"
+ uri: direct:search
steps:
- - to: "langchain4j-embeddings:embed"
+ - to:
+ uri: langchain4j-embeddings:embed
- transform:
dataType: "qdrant:embeddings"
- setHeader:
@@ -262,7 +265,8 @@ YAML::
- setHeader:
name: CamelQdrantIncludePayload
constant: true
- - to: "qdrant:myCollection"
+ - to:
+ uri: qdrant:myCollection
- transform:
dataType: "qdrant:rag"
----
@@ -291,15 +295,17 @@ YAML::
----
- route:
from:
- uri: "direct:store"
+ uri: direct:store
steps:
- - to: "langchain4j-embeddings:embed"
+ - to:
+ uri: langchain4j-embeddings:embed
- setHeader:
name: CamelPgVectorAction
constant: UPSERT
- transform:
dataType: "pgvector:embeddings"
- - to: "pgvector:myCollection"
+ - to:
+ uri: pgvector:myCollection
----
====
@@ -325,15 +331,17 @@ YAML::
----
- route:
from:
- uri: "direct:search"
+ uri: direct:search
steps:
- - to: "langchain4j-embeddings:embed"
+ - to:
+ uri: langchain4j-embeddings:embed
- transform:
dataType: "pgvector:embeddings"
- setHeader:
name: CamelPgVectorAction
constant: SIMILARITY_SEARCH
- - to: "pgvector:myCollection"
+ - to:
+ uri: pgvector:myCollection
- transform:
dataType: "pgvector:rag"
----
@@ -364,16 +372,26 @@ YAML::
----
- route:
from:
- uri: "direct:store"
+ uri: direct:store
steps:
- - to: "langchain4j-embeddings:embed"
- - to: "langchain4j-embeddingstore:myStore?action=ADD"
+ - to:
+ uri: langchain4j-embeddings:embed
+ - to:
+ uri: langchain4j-embeddingstore:myStore
+ parameters:
+ action: ADD
- route:
from:
- uri: "direct:search"
+ uri: direct:search
steps:
- - to: "langchain4j-embeddings:embed"
- - to:
"langchain4j-embeddingstore:myStore?action=SEARCH&maxResults=5&returnTextContent=true"
+ - to:
+ uri: langchain4j-embeddings:embed
+ - to:
+ uri: langchain4j-embeddingstore:myStore
+ parameters:
+ action: SEARCH
+ maxResults: 5
+ returnTextContent: true
----
====
diff --git
a/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
b/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
index 7b83aa94cc9e..50b9bcb1a41f 100644
---
a/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
+++
b/components/camel-ai/camel-langchain4j-embeddingstore/src/main/docs/langchain4j-embeddingstore-component.adoc
@@ -94,10 +94,14 @@ YAML::
----
- route:
from:
- uri: "direct:store"
+ uri: direct:store
steps:
- - to: "langchain4j-embeddings:embed"
- - to: "langchain4j-embeddingstore:myStore?action=ADD"
+ - to:
+ uri: langchain4j-embeddings:embed
+ - to:
+ uri: langchain4j-embeddingstore:myStore
+ parameters:
+ action: ADD
----
====
@@ -124,10 +128,16 @@ YAML::
----
- route:
from:
- uri: "direct:search"
+ uri: direct:search
steps:
- - to: "langchain4j-embeddings:embed"
- - to:
"langchain4j-embeddingstore:myStore?action=SEARCH&maxResults=5&minScore=0.7"
+ - to:
+ uri: langchain4j-embeddings:embed
+ - to:
+ uri: langchain4j-embeddingstore:myStore
+ parameters:
+ action: SEARCH
+ maxResults: 5
+ minScore: 0.7
----
====
@@ -155,11 +165,18 @@ YAML::
----
- route:
from:
- uri: "direct:search"
+ uri: direct:search
steps:
- - to: "langchain4j-embeddings:embed"
- - to:
"langchain4j-embeddingstore:myStore?action=SEARCH&maxResults=5&returnTextContent=true"
- - log: "Found texts: ${body}"
+ - to:
+ uri: langchain4j-embeddings:embed
+ - to:
+ uri: langchain4j-embeddingstore:myStore
+ parameters:
+ action: SEARCH
+ maxResults: 5
+ returnTextContent: true
+ - log:
+ message: "Found texts: ${body}"
----
====
@@ -184,11 +201,16 @@ YAML::
----
- route:
from:
- uri: "direct:remove"
+ uri: direct:remove
steps:
- setBody:
- simple: "${header.embeddingId}"
- - to: "langchain4j-embeddingstore:myStore?action=REMOVE"
+ expression:
+ simple:
+ expression: "${header.embeddingId}"
+ - to:
+ uri: langchain4j-embeddingstore:myStore
+ parameters:
+ action: REMOVE
----
====
diff --git
a/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
b/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
index 5da5f286a4c0..61a90d3c1d9f 100644
--- a/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
+++ b/components/camel-ai/camel-openai/src/main/docs/openai-component.adoc
@@ -123,7 +123,8 @@ YAML::
uri: openai:chat-completion
parameters:
userMessage: What is Apache Camel?
- - log: "Response: ${body}"
+ - log:
+ message: "Response: ${body}"
----
====
@@ -186,8 +187,9 @@ When `streaming=true`, the component returns an
`Iterator<ChatCompletionChunk>`
- log:
id: log-6722
message: ${body}
- simple:
- expression: ${body}
+ expression:
+ simple:
+ expression: ${body}
streaming: true
----
@@ -594,7 +596,9 @@ Using the xref:pgvector-component.adoc[PGVector] component:
steps:
- setVariable:
name: text
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
- to:
uri: openai:embeddings
parameters:
@@ -604,7 +608,9 @@ Using the xref:pgvector-component.adoc[PGVector] component:
constant: UPSERT
- setHeader:
name: CamelPgVectorTextContent
- simple: "${variable.text}"
+ expression:
+ simple:
+ expression: "${variable.text}"
- to:
uri: pgvector:documents
@@ -713,7 +719,8 @@ YAML::
uri: openai:audio-transcription
parameters:
audioModel: whisper-1
- - log: "Transcription: ${body}"
+ - log:
+ message: "Transcription: ${body}"
----
====
@@ -857,7 +864,8 @@ YAML::
mcpServer.fs.args:
"-y,@modelcontextprotocol/server-filesystem,/tmp"
mcpServer.weather.transportType: sse
mcpServer.weather.url: http://localhost:8080
- - log: "${body}"
+ - log:
+ message: "${body}"
----
====
@@ -936,7 +944,9 @@ YAML::
steps:
- setProperty:
name: originalPrompt
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
- to:
uri: openai:chat-completion
parameters:
@@ -946,7 +956,9 @@ YAML::
mcpServer.api.transportType: streamableHttp
mcpServer.api.url: http://localhost:9090/mcp
- loopDoWhile:
- simple: "${header.CamelOpenAIFinishReason} == 'tool_calls'"
+ expression:
+ simple:
+ expression: "${header.CamelOpenAIFinishReason} == 'tool_calls'"
steps:
- to:
uri: openai:tool-execution
@@ -961,7 +973,8 @@ YAML::
storeFullResponse: true
mcpServer.api.transportType: streamableHttp
mcpServer.api.url: http://localhost:9090/mcp
- - log: "Final answer: ${body}"
+ - log:
+ message: "Final answer: ${body}"
----
====
@@ -1029,7 +1042,8 @@ YAML::
conversationMemory: true
mcpServer.api.transportType: streamableHttp
mcpServer.api.url: http://localhost:9090/mcp
- - log: "${body}"
+ - log:
+ message: "${body}"
----
====
diff --git
a/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
b/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
index 6048cd9f37fc..a0b3f9f0dc93 100644
--- a/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
+++ b/components/camel-ai/camel-pgvector/src/main/docs/pgvector-component.adoc
@@ -106,7 +106,9 @@ YAML::
steps:
- setVariable:
name: text
- simple: "${body}"
+ expression:
+ simple:
+ expression: "${body}"
- to:
uri: openai:embeddings
parameters:
@@ -116,8 +118,11 @@ YAML::
constant: UPSERT
- setHeader:
name: CamelPgVectorTextContent
- simple: "${variable.text}"
- - to: pgvector:documents
+ expression:
+ simple:
+ expression: "${variable.text}"
+ - to:
+ uri: pgvector:documents
- route:
from:
@@ -133,7 +138,8 @@ YAML::
- setHeader:
name: CamelPgVectorQueryTopK
constant: 5
- - to: pgvector:documents
+ - to:
+ uri: pgvector:documents
----
====
@@ -172,27 +178,31 @@ YAML::
----
- route:
from:
- uri: "direct:store"
+ uri: direct:store
steps:
- - to: "langchain4j-embeddings:embed"
+ - to:
+ uri: langchain4j-embeddings:embed
- setHeader:
name: CamelPgVectorAction
constant: UPSERT
- transform:
dataType: "pgvector:embeddings"
- - to: "pgvector:myCollection"
+ - to:
+ uri: pgvector:myCollection
- route:
from:
- uri: "direct:search"
+ uri: direct:search
steps:
- - to: "langchain4j-embeddings:embed"
+ - to:
+ uri: langchain4j-embeddings:embed
- transform:
dataType: "pgvector:embeddings"
- setHeader:
name: CamelPgVectorAction
constant: SIMILARITY_SEARCH
- - to: "pgvector:myCollection"
+ - to:
+ uri: pgvector:myCollection
- transform:
dataType: "pgvector:rag"
----
diff --git
a/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
b/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
index f35278141912..7a57effee793 100644
---
a/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
+++
b/components/camel-aws/camel-aws2-s3-vectors/src/main/docs/aws2-s3-vectors-component.adoc
@@ -80,22 +80,23 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:insert
- steps:
- - setHeader:
- name: CamelAwsS3VectorsVectorId
- constant: doc-001
- - setBody:
- constant:
- - 0.1
- - 0.2
- - 0.3
- - to:
- uri: aws2-s3-vectors://my-bucket
- parameters:
- operation: putVectors
- vectorIndexName: my-index
+- route:
+ from:
+ uri: direct:insert
+ steps:
+ - setHeader:
+ name: CamelAwsS3VectorsVectorId
+ constant: doc-001
+ - setBody:
+ constant:
+ - 0.1
+ - 0.2
+ - 0.3
+ - to:
+ uri: aws2-s3-vectors://my-bucket
+ parameters:
+ operation: putVectors
+ vectorIndexName: my-index
----
====
@@ -118,23 +119,25 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:search
- steps:
- - setBody:
- constant:
- - 0.15
- - 0.25
- - 0.35
- - setHeader:
- name: CamelAwsS3VectorsTopK
- constant: 5
- - to:
- uri: aws2-s3-vectors://my-bucket
- parameters:
- operation: queryVectors
- vectorIndexName: my-index
- - log: "Found ${body.size} similar vectors"
+- route:
+ from:
+ uri: direct:search
+ steps:
+ - setBody:
+ constant:
+ - 0.15
+ - 0.25
+ - 0.35
+ - setHeader:
+ name: CamelAwsS3VectorsTopK
+ constant: 5
+ - to:
+ uri: aws2-s3-vectors://my-bucket
+ parameters:
+ operation: queryVectors
+ vectorIndexName: my-index
+ - log:
+ message: "Found ${body.size} similar vectors"
----
====
@@ -159,16 +162,19 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: aws2-s3-vectors://my-bucket
- parameters:
- vectorIndexName: my-index
- consumerQueryVector: "0.1,0.2,0.3"
- delay: 5000
- maxMessagesPerPoll: 10
- steps:
- - log: "Vector ID: ${header.CamelAwsS3VectorsVectorId}"
- - to: direct:process
+- route:
+ from:
+ uri: aws2-s3-vectors://my-bucket
+ parameters:
+ vectorIndexName: my-index
+ consumerQueryVector: "0.1,0.2,0.3"
+ delay: 5000
+ maxMessagesPerPoll: 10
+ steps:
+ - log:
+ message: "Vector ID: ${header.CamelAwsS3VectorsVectorId}"
+ - to:
+ uri: direct:process
----
====
@@ -191,23 +197,24 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:createIndex
- steps:
- - setHeader:
- name: CamelAwsS3VectorsVectorDimensions
- constant: 1536
- - setHeader:
- name: CamelAwsS3VectorsDataType
- constant: float32
- - setHeader:
- name: CamelAwsS3VectorsDistanceMetric
- constant: cosine
- - to:
- uri: aws2-s3-vectors://my-bucket
- parameters:
- operation: createVectorIndex
- vectorIndexName: my-index
+- route:
+ from:
+ uri: direct:createIndex
+ steps:
+ - setHeader:
+ name: CamelAwsS3VectorsVectorDimensions
+ constant: 1536
+ - setHeader:
+ name: CamelAwsS3VectorsDataType
+ constant: float32
+ - setHeader:
+ name: CamelAwsS3VectorsDistanceMetric
+ constant: cosine
+ - to:
+ uri: aws2-s3-vectors://my-bucket
+ parameters:
+ operation: createVectorIndex
+ vectorIndexName: my-index
----
====
diff --git
a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
index 0bfb34e0ea96..d31288b14e8f 100644
---
a/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
+++
b/components/camel-azure/camel-azure-storage-blob/src/main/docs/azure-storage-blob-component.adoc
@@ -233,8 +233,10 @@ YAML::
credentialType: SHARED_ACCOUNT_KEY
accessKey: "RAW({{azure.accessKey}})"
steps:
- - log: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
- - to: direct:processBlob
+ - log:
+ message: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
+ - to:
+ uri: direct:processBlob
----
====
@@ -272,8 +274,10 @@ YAML::
credentialType: SHARED_ACCOUNT_KEY
accessKey: "RAW({{azure.accessKey}})"
steps:
- - log: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
- - to: direct:processBlob
+ - log:
+ message: "Processing blob: ${header.CamelAzureStorageBlobBlobName}"
+ - to:
+ uri: direct:processBlob
----
====
@@ -317,8 +321,10 @@ YAML::
credentialType: SHARED_ACCOUNT_KEY
accessKey: "RAW({{azure.accessKey}})"
steps:
- - log: "Processing: ${header.CamelAzureStorageBlobBlobName}"
- - to: direct:processBlob
+ - log:
+ message: "Processing: ${header.CamelAzureStorageBlobBlobName}"
+ - to:
+ uri: direct:processBlob
----
====
@@ -530,9 +536,12 @@ YAML::
- route:
id: azure-blob-upload
from:
- uri: file://data?noop=true
+ uri: file://data
+ parameters:
+ noop: true
steps:
- - log: "Uploading file: ${header.CamelFileName}"
+ - log:
+ message: "Uploading file: ${header.CamelFileName}"
- toD:
uri: "azure-storage-blob://{{azure.account}}/{{azure.container}}"
parameters:
@@ -542,7 +551,8 @@ YAML::
maxConcurrency: 4 # 4 parallel uploads
credentialType: SHARED_ACCOUNT_KEY
accessKey: "RAW({{azure.accessKey}})"
- - log: "Upload completed: ${header.CamelFileName}"
+ - log:
+ message: "Upload completed: ${header.CamelFileName}"
----
====
diff --git a/components/camel-camunda/src/main/docs/camunda-component.adoc
b/components/camel-camunda/src/main/docs/camunda-component.adoc
index 75b8715f8d62..f0ef14e42ae4 100644
--- a/components/camel-camunda/src/main/docs/camunda-component.adoc
+++ b/components/camel-camunda/src/main/docs/camunda-component.adoc
@@ -149,7 +149,7 @@ YAML::
- setBody:
simple: '{"process_id":"processId","variables":${body}}'
- to:
- uri: "camunda://startProcess"
+ uri: camunda://startProcess
----
XML::
@@ -220,7 +220,7 @@ YAML::
- setBody:
simple: '{"process_instance_key": 123}'
- to:
- uri: "camunda://cancelProcess"
+ uri: camunda://cancelProcess
----
XML::
@@ -268,7 +268,7 @@ YAML::
- setBody:
simple:
'{"name":"MessageName","correlation_key":"messageKey","time_to_live":100,"variables":{}}'
- to:
- uri: "camunda://publishMessage"
+ uri: camunda://publishMessage
----
XML::
@@ -313,7 +313,7 @@ YAML::
name: CamelCamundaResourceName
simple: "process.bpmn"
- to:
- uri: "camunda://deployResource"
+ uri: camunda://deployResource
----
XML::
@@ -378,7 +378,10 @@ YAML::
----
- route:
from:
- uri: "camunda://worker?jobType=myJobType&timeout=20"
+ uri: camunda://worker
+ parameters:
+ jobType: myJobType
+ timeout: 20
steps:
- log:
message: "Received job ${header.CamelCamundaJobKey}"
@@ -417,7 +420,10 @@ YAML::
----
- route:
from:
- uri: "camunda://worker?jobType=myJobType&timeout=20"
+ uri: camunda://worker
+ parameters:
+ jobType: myJobType
+ timeout: 20
steps:
- setBody:
constant:
@@ -464,7 +470,10 @@ YAML::
----
- route:
from:
- uri: "camunda://worker?jobType=myJobType&timeout=20"
+ uri: camunda://worker
+ parameters:
+ jobType: myJobType
+ timeout: 20
steps:
- setHeader:
name: CamelCamundaErrorCode
@@ -473,7 +482,7 @@ YAML::
name: CamelCamundaErrorMessage
simple: "Data validation failed"
- to:
- uri: "camunda://throwError"
+ uri: camunda://throwError
----
XML::
diff --git a/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
b/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
index 583906dc2bc0..cfb0635efc39 100644
--- a/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
+++ b/components/camel-dfdl/src/main/docs/dfdl-dataformat.adoc
@@ -53,13 +53,15 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:unmarshal
+- route:
+ from:
+ uri: direct:unmarshal
steps:
- unmarshal:
dfdl:
schemaUri: X12-837P.dfdl.xsd
- - log: "Unmarshalled X12 837P message: ${body}"
+ - log:
+ message: "Unmarshalled X12 837P message: ${body}"
----
====
@@ -81,13 +83,15 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:marshal
+- route:
+ from:
+ uri: direct:marshal
steps:
- marshal:
dfdl:
schemaUri: X12-837P.dfdl.xsd
- - log: "Marshalled X12 837P message: ${body}"
+ - log:
+ message: "Marshalled X12 837P message: ${body}"
----
====
diff --git
a/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
b/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
index cc26ef538185..f417b09a383a 100644
---
a/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
+++
b/components/camel-dhis2/camel-dhis2-component/src/main/docs/dhis2-component.adoc
@@ -69,8 +69,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:getResource
+- route:
+ from:
+ uri: direct:getResource
steps:
- to:
uri: dhis2:get/resource
@@ -112,8 +113,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:getCollection
+- route:
+ from:
+ uri: direct:getCollection
steps:
- to:
uri: dhis2:get/collection
@@ -124,11 +126,14 @@ YAML::
password: district
baseApiUrl: https://play.im.dhis2.org/stable-2-40-5/api
- split:
- simple: ${body}
+ expression:
+ simple:
+ expression: ${body}
steps:
- convertBodyTo:
type: org.hisp.dhis.api.model.v40_2_2.OrganisationUnit
- - log: ${body}
+ - log:
+ message: ${body}
----
====
@@ -159,8 +164,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:getCollection
+- route:
+ from:
+ uri: direct:getCollection
steps:
- to:
uri: dhis2:get/collection
@@ -172,11 +178,14 @@ YAML::
baseApiUrl: https://play.im.dhis2.org/stable-2-40-5/api
fields: code
- split:
- simple: ${body}
+ expression:
+ simple:
+ expression: ${body}
steps:
- convertBodyTo:
type: org.hisp.dhis.api.model.v40_2_2.OrganisationUnit
- - log: ${body}
+ - log:
+ message: ${body}
----
====
@@ -208,8 +217,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:getCollection
+- route:
+ from:
+ uri: direct:getCollection
steps:
- to:
uri: dhis2:get/collection
@@ -221,11 +231,14 @@ YAML::
baseApiUrl: https://play.im.dhis2.org/stable-2-40-5/api
filter: "phoneNumber:!null:"
- split:
- simple: ${body}
+ expression:
+ simple:
+ expression: ${body}
steps:
- convertBodyTo:
type: org.hisp.dhis.api.model.v40_2_2.User
- - log: ${body}
+ - log:
+ message: ${body}
----
====
@@ -275,8 +288,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:postResource
+- route:
+ from:
+ uri: direct:postResource
steps:
- setBody:
groovy: |
@@ -340,8 +354,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:putResource
+- route:
+ from:
+ uri: direct:putResource
steps:
- setBody:
groovy: |
@@ -399,8 +414,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:deleteResource
+- route:
+ from:
+ uri: direct:deleteResource
steps:
- to:
uri: dhis2:delete/resource
@@ -446,8 +462,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:resourceTablesAnalytics
+- route:
+ from:
+ uri: direct:resourceTablesAnalytics
steps:
- to:
uri: dhis2:resourceTables/analytics
@@ -498,8 +515,9 @@ YAML::
script: >
org.hisp.dhis.integration.sdk.Dhis2ClientBuilder.newClient('https://play.im.dhis2.org/stable-2-40-5/api',
'admin', 'district').build()
-- from:
- uri: direct:resourceTablesAnalytics
+- route:
+ from:
+ uri: direct:resourceTablesAnalytics
steps:
- to:
uri: dhis2:resourceTables/analytics
@@ -539,8 +557,9 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:clearCache
+- route:
+ from:
+ uri: direct:clearCache
steps:
- setHeader:
name: CamelDhis2.queryParams
diff --git a/components/camel-event/src/main/docs/event-component.adoc
b/components/camel-event/src/main/docs/event-component.adoc
index 9a61a66c3b9a..453d368821ab 100644
--- a/components/camel-event/src/main/docs/event-component.adoc
+++ b/components/camel-event/src/main/docs/event-component.adoc
@@ -381,26 +381,29 @@ Create a file called `event-monitor.yaml`:
----
- route:
from:
- uri: "event:Route*"
+ uri: event:Route*
steps:
- - log: "Route event: ${header.CamelEventType} - route
${header.CamelEventRouteId}"
+ - log:
+ message: "Route event: ${header.CamelEventType} - route
${header.CamelEventRouteId}"
- route:
from:
- uri: "event:ExchangeCompleted,ExchangeFailed"
+ uri: event:ExchangeCompleted,ExchangeFailed
steps:
- - log: "Exchange ${header.CamelEventExchangeId} on route
${header.CamelEventRouteId}: ${header.CamelEventType}"
+ - log:
+ message: "Exchange ${header.CamelEventExchangeId} on route
${header.CamelEventRouteId}: ${header.CamelEventType}"
- route:
id: myRoute
from:
- uri: "timer:tick"
+ uri: timer:tick
parameters:
- period: "5000"
+ period: 5000
steps:
- setBody:
constant: "Hello from myRoute!"
- - log: "${body}"
+ - log:
+ message: "${body}"
----
Then run it:
diff --git
a/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
b/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
index 287f3ff64227..9abe5d8aa45f 100644
---
a/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
+++
b/components/camel-ibm/camel-ibm-watsonx-ai/src/main/docs/ibm-watsonx-ai-component.adoc
@@ -422,13 +422,16 @@ YAML::
- loop:
id: loop-4459
doWhile: true
- simple:
- expression: ${header.CamelIBMWatsonxAiHasToolCalls} == true
+ expression:
+ simple:
+ expression: ${header.CamelIBMWatsonxAiHasToolCalls} == true
steps:
- log:
message: Executing tool calls...
- to:
- uri: ibm-watsonx-ai:tools?operation=processToolCalls
+ uri: ibm-watsonx-ai:tools
+ parameters:
+ operation: processToolCalls
- to:
uri: ibm-watsonx-ai:chat
parameters:
diff --git a/components/camel-kafka/src/main/docs/kafka-component.adoc
b/components/camel-kafka/src/main/docs/kafka-component.adoc
index 29ab34b973e2..c9a43fbc8338 100644
--- a/components/camel-kafka/src/main/docs/kafka-component.adoc
+++ b/components/camel-kafka/src/main/docs/kafka-component.adoc
@@ -609,9 +609,9 @@ YAML::
----
- route:
from:
- uri: "kafka:topic"
+ uri: kafka:topic
parameters:
- groupId: "myGroup"
+ groupId: myGroup
pollTimeoutMs: 1000
batching: true
maxPollRecords: 10
@@ -619,8 +619,9 @@ YAML::
autoCommitEnable: true
steps:
- process:
- ref: "batchProcessor"
- - to: "mock:result"
+ ref: batchProcessor
+ - to:
+ uri: mock:result
----
Processor Implementation::
@@ -704,25 +705,26 @@ YAML::
----
- route:
on-exception:
- - exception: "java.lang.Exception"
+ - exception: java.lang.Exception
handled: false
steps:
- process:
- ref: "errorCommitProcessor"
+ ref: errorCommitProcessor
from:
- uri: "kafka:topic"
+ uri: kafka:topic
parameters:
- groupId: "myGroup"
+ groupId: myGroup
batching: true
breakOnFirstError: true
autoCommitEnable: false
allowManualCommit: true
steps:
- process:
- ref: "batchProcessorManual"
+ ref: batchProcessorManual
- process:
- ref: "successCommitProcessor"
- - to: "mock:result"
+ ref: successCommitProcessor
+ - to:
+ uri: mock:result
----
Processor Implementations::
diff --git a/components/camel-kamelet/src/main/docs/kamelet-component.adoc
b/components/camel-kamelet/src/main/docs/kamelet-component.adoc
index d21e2936ac13..ab14c80e3ba0 100644
--- a/components/camel-kamelet/src/main/docs/kamelet-component.adoc
+++ b/components/camel-kamelet/src/main/docs/kamelet-component.adoc
@@ -59,9 +59,10 @@ Which means you will se a WARN being logged.
deadLetterUri: log:dead?level=WARN
id: myRoute
from:
- uri: "kamelet:my-error-source/source"
+ uri: kamelet:my-error-source/source
steps:
- - log: "${body}"
+ - log:
+ message: "${body}"
----
For sink kamelets then error handling also allows to perform retries.
@@ -79,11 +80,12 @@ So suppose you have the following route:
redeliveryDelay: "5000"
id: myRoute
from:
- uri: "direct:start"
+ uri: direct:start
steps:
- to:
- uri: "kamelet:my-error-sink/sink"
- - log: "${body}"
+ uri: kamelet:my-error-sink/sink
+ - log:
+ message: "${body}"
----
Then notice the error handler has been configured to do redeliveries up till 5
times with 5 sec delay between.
@@ -121,9 +123,12 @@ spec:
- "camel:kamelet"
template:
from:
- uri: "kamelet:source"
+ uri: kamelet:source
steps:
- - to: "kamelet:log-sink?level={{log-level}}"
+ - to:
+ uri: kamelet:log-sink
+ parameters:
+ level: "{{log-level}}"
----
According to the specification, this Kamelet expects a parameter, _log-level_
which we will use as a further parameter for the downstream call to the
`log-sink` Kamelet.
@@ -132,14 +137,18 @@ The usage of this Kamelet into a Camel route is going to
be the same as any othe
[source,yaml]
----
-- from:
- uri: "timer:yaml"
- parameters:
- period: "5000"
+- route:
+ from:
+ uri: timer:yaml
+ parameters:
+ period: "5000"
steps:
- setBody:
simple: "Hello Camel from ${routeId}"
- - to: "kamelet:nested-sink?log-level=INFO"
+ - to:
+ uri: kamelet:nested-sink
+ parameters:
+ log-level: INFO
----
WARNING: beware of any potential circular reference you may introduce when
using chain of Kamelets, in which case, the runtime will likely be idle
consuming a high amount of resources.
diff --git a/components/camel-keycloak/src/main/docs/keycloak-component.adoc
b/components/camel-keycloak/src/main/docs/keycloak-component.adoc
index 7a08c9899f7e..72de959a747d 100644
--- a/components/camel-keycloak/src/main/docs/keycloak-component.adoc
+++ b/components/camel-keycloak/src/main/docs/keycloak-component.adoc
@@ -277,13 +277,20 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakRoleName
- simple: "${body[roleName]}"
+ expression:
+ simple:
+ expression: "${body[roleName]}"
- setHeader:
name: CamelKeycloakRoleDescription
- simple: "${body[description]}"
+ expression:
+ simple:
+ expression: "${body[description]}"
- to:
- uri: keycloak:admin?operation=createRole
- - log: "Created role: ${header.CamelKeycloakRoleName}"
+ uri: keycloak:admin
+ parameters:
+ operation: createRole
+ - log:
+ message: "Created role: ${header.CamelKeycloakRoleName}"
# Get role route
- route:
@@ -295,10 +302,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakRoleName
- simple: "${body[roleName]}"
+ expression:
+ simple:
+ expression: "${body[roleName]}"
- to:
- uri: keycloak:admin?operation=getRole
- - log: "Role info: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: getRole
+ - log:
+ message: "Role info: ${body}"
# Assign role to user route
- route:
@@ -310,13 +322,20 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUsername
- simple: "${body[username]}"
+ expression:
+ simple:
+ expression: "${body[username]}"
- setHeader:
name: CamelKeycloakRoleName
- simple: "${body[roleName]}"
+ expression:
+ simple:
+ expression: "${body[roleName]}"
- to:
- uri: keycloak:admin?operation=assignRoleToUser
- - log: "Assigned role ${header.CamelKeycloakRoleName} to user
${header.CamelKeycloakUsername}"
+ uri: keycloak:admin
+ parameters:
+ operation: assignRoleToUser
+ - log:
+ message: "Assigned role ${header.CamelKeycloakRoleName} to user
${header.CamelKeycloakUsername}"
# Delete role route
- route:
@@ -328,10 +347,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakRoleName
- simple: "${body[roleName]}"
+ expression:
+ simple:
+ expression: "${body[roleName]}"
- to:
- uri: keycloak:admin?operation=deleteRole
- - log: "Deleted role: ${header.CamelKeycloakRoleName}"
+ uri: keycloak:admin
+ parameters:
+ operation: deleteRole
+ - log:
+ message: "Deleted role: ${header.CamelKeycloakRoleName}"
----
====
@@ -389,7 +413,9 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientId
- simple: "${body[clientId]}"
+ expression:
+ simple:
+ expression: "${body[clientId]}"
- setHeader:
name: CamelKeycloakClientSecretRequired
constant: true
@@ -397,8 +423,11 @@ YAML::
name: CamelKeycloakClientDirectAccessGrantsEnabled
constant: true
- to:
- uri: keycloak:admin?operation=createClient
- - log: "Created client: ${header.CamelKeycloakClientId}"
+ uri: keycloak:admin
+ parameters:
+ operation: createClient
+ - log:
+ message: "Created client: ${header.CamelKeycloakClientId}"
# Get client route
- route:
@@ -410,10 +439,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientId
- simple: "${body[clientId]}"
+ expression:
+ simple:
+ expression: "${body[clientId]}"
- to:
- uri: keycloak:admin?operation=getClient
- - log: "Client info: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: getClient
+ - log:
+ message: "Client info: ${body}"
# Get client secret route
- route:
@@ -425,10 +459,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientId
- simple: "${body[clientId]}"
+ expression:
+ simple:
+ expression: "${body[clientId]}"
- to:
- uri: keycloak:admin?operation=getClientSecret
- - log: "Client secret retrieved for: ${header.CamelKeycloakClientId}"
+ uri: keycloak:admin
+ parameters:
+ operation: getClientSecret
+ - log:
+ message: "Client secret retrieved for:
${header.CamelKeycloakClientId}"
# Delete client route
- route:
@@ -440,10 +479,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientId
- simple: "${body[clientId]}"
+ expression:
+ simple:
+ expression: "${body[clientId]}"
- to:
- uri: keycloak:admin?operation=deleteClient
- - log: "Deleted client: ${header.CamelKeycloakClientId}"
+ uri: keycloak:admin
+ parameters:
+ operation: deleteClient
+ - log:
+ message: "Deleted client: ${header.CamelKeycloakClientId}"
----
====
@@ -503,10 +547,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakGroupName
- simple: "${body[groupName]}"
+ expression:
+ simple:
+ expression: "${body[groupName]}"
- to:
- uri: keycloak:admin?operation=createGroup
- - log: "Created group: ${header.CamelKeycloakGroupName}"
+ uri: keycloak:admin
+ parameters:
+ operation: createGroup
+ - log:
+ message: "Created group: ${header.CamelKeycloakGroupName}"
# List groups route
- route:
@@ -517,8 +566,11 @@ YAML::
name: CamelKeycloakRealmName
constant: "my-realm"
- to:
- uri: keycloak:admin?operation=listGroups
- - log: "Groups: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: listGroups
+ - log:
+ message: "Groups: ${body}"
# Add user to group route
- route:
@@ -530,13 +582,20 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakGroupId
- simple: "${body[groupId]}"
+ expression:
+ simple:
+ expression: "${body[groupId]}"
- to:
- uri: keycloak:admin?operation=addUserToGroup
- - log: "Added user ${header.CamelKeycloakUserId} to group"
+ uri: keycloak:admin
+ parameters:
+ operation: addUserToGroup
+ - log:
+ message: "Added user ${header.CamelKeycloakUserId} to group"
# List user groups route
- route:
@@ -548,10 +607,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=listUserGroups
- - log: "User groups: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: listUserGroups
+ - log:
+ message: "User groups: ${body}"
----
====
@@ -596,16 +660,25 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakUserPassword
- simple: "${body[password]}"
+ expression:
+ simple:
+ expression: "${body[password]}"
- setHeader:
name: CamelKeycloakPasswordTemporary
- simple: "${body[temporary]}"
+ expression:
+ simple:
+ expression: "${body[temporary]}"
- to:
- uri: keycloak:admin?operation=resetUserPassword
- - log: "Password reset for user ${header.CamelKeycloakUserId}"
+ uri: keycloak:admin
+ parameters:
+ operation: resetUserPassword
+ - log:
+ message: "Password reset for user ${header.CamelKeycloakUserId}"
# Reset with temporary password
- route:
@@ -617,16 +690,23 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakUserPassword
- simple: "${body[password]}"
+ expression:
+ simple:
+ expression: "${body[password]}"
- setHeader:
name: CamelKeycloakPasswordTemporary
constant: true
- to:
- uri: keycloak:admin?operation=resetUserPassword
- - log: "Temporary password set for user ${header.CamelKeycloakUserId}"
+ uri: keycloak:admin
+ parameters:
+ operation: resetUserPassword
+ - log:
+ message: "Temporary password set for user
${header.CamelKeycloakUserId}"
----
====
@@ -677,10 +757,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakSearchQuery
- simple: "${body[query]}"
+ expression:
+ simple:
+ expression: "${body[query]}"
- to:
- uri: keycloak:admin?operation=searchUsers
- - log: "Search results: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: searchUsers
+ - log:
+ message: "Search results: ${body}"
# Search with pagination
- route:
@@ -692,16 +777,25 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakSearchQuery
- simple: "${body[query]}"
+ expression:
+ simple:
+ expression: "${body[query]}"
- setHeader:
name: CamelKeycloakFirstResult
- simple: "${body[offset]}"
+ expression:
+ simple:
+ expression: "${body[offset]}"
- setHeader:
name: CamelKeycloakMaxResults
- simple: "${body[limit]}"
+ expression:
+ simple:
+ expression: "${body[limit]}"
- to:
- uri: keycloak:admin?operation=searchUsers
- - log: "Found ${body.size} users"
+ uri: keycloak:admin
+ parameters:
+ operation: searchUsers
+ - log:
+ message: "Found ${body.size} users"
# Get user roles route
- route:
@@ -713,10 +807,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=getUserRoles
- - log: "User roles: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: getUserRoles
+ - log:
+ message: "User roles: ${body}"
----
====
@@ -777,16 +876,25 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientUuid
- simple: "${body[clientUuid]}"
+ expression:
+ simple:
+ expression: "${body[clientUuid]}"
- setHeader:
name: CamelKeycloakRoleName
- simple: "${body[roleName]}"
+ expression:
+ simple:
+ expression: "${body[roleName]}"
- setHeader:
name: CamelKeycloakRoleDescription
- simple: "${body[description]}"
+ expression:
+ simple:
+ expression: "${body[description]}"
- to:
- uri: keycloak:admin?operation=createClientRole
- - log: "Created client role: ${header.CamelKeycloakRoleName}"
+ uri: keycloak:admin
+ parameters:
+ operation: createClientRole
+ - log:
+ message: "Created client role: ${header.CamelKeycloakRoleName}"
# List client roles route
- route:
@@ -798,10 +906,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientUuid
- simple: "${body[clientUuid]}"
+ expression:
+ simple:
+ expression: "${body[clientUuid]}"
- to:
- uri: keycloak:admin?operation=listClientRoles
- - log: "Client roles: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: listClientRoles
+ - log:
+ message: "Client roles: ${body}"
# Assign client role to user
- route:
@@ -813,16 +926,25 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakClientUuid
- simple: "${body[clientUuid]}"
+ expression:
+ simple:
+ expression: "${body[clientUuid]}"
- setHeader:
name: CamelKeycloakRoleName
- simple: "${body[roleName]}"
+ expression:
+ simple:
+ expression: "${body[roleName]}"
- to:
- uri: keycloak:admin?operation=assignClientRoleToUser
- - log: "Assigned client role to user"
+ uri: keycloak:admin
+ parameters:
+ operation: assignClientRoleToUser
+ - log:
+ message: "Assigned client role to user"
----
====
@@ -864,10 +986,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=listUserSessions
- - log: "User sessions: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: listUserSessions
+ - log:
+ message: "User sessions: ${body}"
# Logout user route
- route:
@@ -879,10 +1006,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=logoutUser
- - log: "User logged out: ${header.CamelKeycloakUserId}"
+ uri: keycloak:admin
+ parameters:
+ operation: logoutUser
+ - log:
+ message: "User logged out: ${header.CamelKeycloakUserId}"
----
====
@@ -934,10 +1066,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientScopeName
- simple: "${body[scopeName]}"
+ expression:
+ simple:
+ expression: "${body[scopeName]}"
- to:
- uri: keycloak:admin?operation=createClientScope
- - log: "Created client scope: ${header.CamelKeycloakClientScopeName}"
+ uri: keycloak:admin
+ parameters:
+ operation: createClientScope
+ - log:
+ message: "Created client scope:
${header.CamelKeycloakClientScopeName}"
# List client scopes route
- route:
@@ -948,8 +1085,11 @@ YAML::
name: CamelKeycloakRealmName
constant: "my-realm"
- to:
- uri: keycloak:admin?operation=listClientScopes
- - log: "Client scopes: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: listClientScopes
+ - log:
+ message: "Client scopes: ${body}"
# Get client scope route
- route:
@@ -961,10 +1101,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientScopeId
- simple: "${body[scopeId]}"
+ expression:
+ simple:
+ expression: "${body[scopeId]}"
- to:
- uri: keycloak:admin?operation=getClientScope
- - log: "Client scope: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: getClientScope
+ - log:
+ message: "Client scope: ${body}"
----
====
@@ -1143,16 +1288,25 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakAttributeName
- simple: "${body[attributeName]}"
+ expression:
+ simple:
+ expression: "${body[attributeName]}"
- setHeader:
name: CamelKeycloakAttributeValue
- simple: "${body[attributeValue]}"
+ expression:
+ simple:
+ expression: "${body[attributeValue]}"
- to:
- uri: keycloak:admin?operation=setUserAttribute
- - log: "Set attribute ${header.CamelKeycloakAttributeName}"
+ uri: keycloak:admin
+ parameters:
+ operation: setUserAttribute
+ - log:
+ message: "Set attribute ${header.CamelKeycloakAttributeName}"
# Get user attributes
- route:
@@ -1164,10 +1318,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=getUserAttributes
- - log: "User attributes: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: getUserAttributes
+ - log:
+ message: "User attributes: ${body}"
# Delete user attribute
- route:
@@ -1179,13 +1338,20 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakAttributeName
- simple: "${body[attributeName]}"
+ expression:
+ simple:
+ expression: "${body[attributeName]}"
- to:
- uri: keycloak:admin?operation=deleteUserAttribute
- - log: "Deleted attribute ${header.CamelKeycloakAttributeName}"
+ uri: keycloak:admin
+ parameters:
+ operation: deleteUserAttribute
+ - log:
+ message: "Deleted attribute ${header.CamelKeycloakAttributeName}"
----
====
@@ -1262,10 +1428,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=getUserCredentials
- - log: "User credentials: ${body}"
+ uri: keycloak:admin
+ parameters:
+ operation: getUserCredentials
+ - log:
+ message: "User credentials: ${body}"
# Send verification email
- route:
@@ -1277,10 +1448,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=sendVerifyEmail
- - log: "Verification email sent to user ${header.CamelKeycloakUserId}"
+ uri: keycloak:admin
+ parameters:
+ operation: sendVerifyEmail
+ - log:
+ message: "Verification email sent to user
${header.CamelKeycloakUserId}"
# Send password reset email
- route:
@@ -1292,10 +1468,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- to:
- uri: keycloak:admin?operation=sendPasswordResetEmail
- - log: "Password reset email sent"
+ uri: keycloak:admin
+ parameters:
+ operation: sendPasswordResetEmail
+ - log:
+ message: "Password reset email sent"
# Add required action
- route:
@@ -1307,13 +1488,18 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakRequiredAction
constant: "VERIFY_EMAIL"
- to:
- uri: keycloak:admin?operation=addRequiredAction
- - log: "Added required action VERIFY_EMAIL"
+ uri: keycloak:admin
+ parameters:
+ operation: addRequiredAction
+ - log:
+ message: "Added required action VERIFY_EMAIL"
# Execute actions email
- route:
@@ -1325,7 +1511,9 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakActions
constant:
@@ -1338,8 +1526,11 @@ YAML::
name: CamelKeycloakLifespan
constant: 3600
- to:
- uri: keycloak:admin?operation=executeActionsEmail
- - log: "Sent actions email to user"
+ uri: keycloak:admin
+ parameters:
+ operation: executeActionsEmail
+ - log:
+ message: "Sent actions email to user"
----
====
@@ -1390,10 +1581,15 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientUuid
- simple: "${body[clientUuid]}"
+ expression:
+ simple:
+ expression: "${body[clientUuid]}"
- to:
- uri: keycloak:admin?operation=getClientSecret
- - log: "Retrieved client secret"
+ uri: keycloak:admin
+ parameters:
+ operation: getClientSecret
+ - log:
+ message: "Retrieved client secret"
# Regenerate client secret
- route:
@@ -1405,11 +1601,17 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakClientUuid
- simple: "${body[clientUuid]}"
+ expression:
+ simple:
+ expression: "${body[clientUuid]}"
- to:
- uri: keycloak:admin?operation=regenerateClientSecret
- - log: "Regenerated client secret: ${body.value}"
- - to: "direct:notify-secret-rotation"
+ uri: keycloak:admin
+ parameters:
+ operation: regenerateClientSecret
+ - log:
+ message: "Regenerated client secret: ${body.value}"
+ - to:
+ uri: direct:notify-secret-rotation
----
====
@@ -1590,7 +1792,9 @@ YAML::
steps:
- setHeader:
name: CamelKeycloakAccessToken
- simple: "${header.Authorization.substring(7)}" # Extract from
Bearer token
+ expression:
+ simple:
+ expression: "${header.Authorization.substring(7)}"
- setHeader:
name: CamelKeycloakPermissionsOnly
constant: true
@@ -1602,7 +1806,8 @@ YAML::
clientId={{keycloak.client-id}}&
clientSecret={{keycloak.client-secret}}&
operation=evaluatePermission
- - log: "User has ${body[permissionCount]} permissions, access granted:
${body[granted]}"
+ - log:
+ message: "User has ${body[permissionCount]} permissions, access
granted: ${body[granted]}"
# Check specific resource access
- route:
@@ -1612,10 +1817,14 @@ YAML::
steps:
- setHeader:
name: CamelKeycloakAccessToken
- simple: "${header.Authorization.substring(7)}"
+ expression:
+ simple:
+ expression: "${header.Authorization.substring(7)}"
- setHeader:
name: CamelKeycloakPermissionResourceNames
- simple: "${body[resourceName]}"
+ expression:
+ simple:
+ expression: "${body[resourceName]}"
- setHeader:
name: CamelKeycloakPermissionScopes
constant: "read,write"
@@ -1632,13 +1841,18 @@ YAML::
operation=evaluatePermission
- choice:
when:
- - simple: "${body[granted]} == true"
+ - expression:
+ simple:
+ expression: "${body[granted]} == true"
steps:
- - log: "Access granted for resource ${body[resourceName]}"
- - to: "direct:process-resource"
+ - log:
+ message: "Access granted for resource
${body[resourceName]}"
+ - to:
+ uri: direct:process-resource
otherwise:
steps:
- - log: "Access denied for resource ${body[resourceName]}"
+ - log:
+ message: "Access denied for resource ${body[resourceName]}"
- setHeader:
name: CamelHttpResponseCode
constant: 403
@@ -1653,7 +1867,9 @@ YAML::
steps:
- setHeader:
name: CamelKeycloakPermissionResourceNames
- simple: "${body[resources]}"
+ expression:
+ simple:
+ expression: "${body[resources]}"
- to:
uri: >
keycloak:authz?
@@ -1664,7 +1880,8 @@ YAML::
username={{service.username}}&
password={{service.password}}&
operation=evaluatePermission
- - log: "RPT token obtained, expires in: ${body[expiresIn]} seconds"
+ - log:
+ message: "RPT token obtained, expires in: ${body[expiresIn]}
seconds"
----
====
@@ -1827,8 +2044,11 @@ YAML::
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkCreateUsers
- - log: "Created ${body[success]} out of ${body[total]} users"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkCreateUsers
+ - log:
+ message: "Created ${body[success]} out of ${body[total]} users"
----
====
@@ -1878,13 +2098,18 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUsernames
- simple: "${body}" # List of usernames
+ expression:
+ simple:
+ expression: "${body}"
- setHeader:
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkDeleteUsers
- - log: "Deleted ${body[success]} out of ${body[total]} users"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkDeleteUsers
+ - log:
+ message: "Deleted ${body[success]} out of ${body[total]} users"
----
====
@@ -1933,16 +2158,23 @@ YAML::
constant: "my-realm"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setHeader:
name: CamelKeycloakRoleNames
- simple: "${body[roles]}" # List of role names
+ expression:
+ simple:
+ expression: "${body[roles]}"
- setHeader:
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkAssignRolesToUser
- - log: "Assigned ${body[assigned]} roles to user"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkAssignRolesToUser
+ - log:
+ message: "Assigned ${body[assigned]} roles to user"
----
====
@@ -1996,13 +2228,18 @@ YAML::
constant: "developer"
- setHeader:
name: CamelKeycloakUsernames
- simple: "${body}" # List of usernames
+ expression:
+ simple:
+ expression: "${body}"
- setHeader:
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkAssignRoleToUsers
- - log: "Assigned role to ${body[success]} out of ${body[total]} users"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkAssignRoleToUsers
+ - log:
+ message: "Assigned role to ${body[success]} out of ${body[total]}
users"
----
====
@@ -2064,8 +2301,11 @@ YAML::
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkUpdateUsers
- - log: "Updated ${body[success]} out of ${body[total]} users"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkUpdateUsers
+ - log:
+ message: "Updated ${body[success]} out of ${body[total]} users"
----
====
@@ -2238,9 +2478,12 @@ YAML::
- route:
id: bulk-user-provisioning
from:
- uri: file:data/incoming?noop=true
+ uri: file:data/incoming
+ parameters:
+ noop: "true"
steps:
- - log: "Processing user provisioning file: ${header.CamelFileName}"
+ - log:
+ message: "Processing user provisioning file:
${header.CamelFileName}"
- unmarshal:
csv: {}
- process:
@@ -2252,8 +2495,11 @@ YAML::
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkCreateUsers
- - log: "Provisioning completed: ${body[success]} succeeded,
${body[failed]} failed"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkCreateUsers
+ - log:
+ message: "Provisioning completed: ${body[success]} succeeded,
${body[failed]} failed"
# Bulk role assignment API
- rest:
@@ -2270,17 +2516,25 @@ YAML::
json: {}
- setHeader:
name: CamelKeycloakRealmName
- simple: "${body[realm]}"
+ expression:
+ simple:
+ expression: "${body[realm]}"
- setHeader:
name: CamelKeycloakUserId
- simple: "${body[userId]}"
+ expression:
+ simple:
+ expression: "${body[userId]}"
- setBody:
- simple: "${body[roles]}"
+ expression:
+ simple:
+ expression: "${body[roles]}"
- setHeader:
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkAssignRolesToUser
+ uri: keycloak:admin
+ parameters:
+ operation: bulkAssignRolesToUser
- marshal:
json: {}
@@ -2288,25 +2542,35 @@ YAML::
- route:
id: cleanup-inactive-users
from:
- uri: timer:cleanup?period=86400000
+ uri: timer:cleanup
+ parameters:
+ period: "86400000"
steps:
- - log: "Starting inactive user cleanup"
+ - log:
+ message: "Starting inactive user cleanup"
- setHeader:
name: CamelKeycloakRealmName
constant: "my-realm"
- to:
- uri: keycloak:admin?operation=listUsers
+ uri: keycloak:admin
+ parameters:
+ operation: listUsers
- process:
ref: identifyInactiveUsersProcessor
- filter:
- simple: "${body.size} > 0"
+ expression:
+ simple:
+ expression: "${body.size} > 0"
steps:
- setHeader:
name: CamelKeycloakContinueOnError
constant: true
- to:
- uri: keycloak:admin?operation=bulkDeleteUsers
- - log: "Deleted ${body[success]} inactive users"
+ uri: keycloak:admin
+ parameters:
+ operation: bulkDeleteUsers
+ - log:
+ message: "Deleted ${body[success]} inactive users"
----
====
@@ -2434,15 +2698,19 @@ YAML::
from:
uri: direct:setup-user-environment
steps:
- - log: "Setting up user environment..."
+ - log:
+ message: "Setting up user environment..."
# Step 1: Create realm
- setHeader:
name: CamelKeycloakRealmName
constant: "my-company"
- to:
- uri: keycloak:admin?operation=createRealm
- - log: "Created realm: my-company"
+ uri: keycloak:admin
+ parameters:
+ operation: createRealm
+ - log:
+ message: "Created realm: my-company"
# Step 2: Create admin role
- setHeader:
@@ -2452,8 +2720,11 @@ YAML::
name: CamelKeycloakRoleDescription
constant: "Administrator role"
- to:
- uri: keycloak:admin?operation=createRole
- - log: "Created admin role"
+ uri: keycloak:admin
+ parameters:
+ operation: createRole
+ - log:
+ message: "Created admin role"
# Step 3: Create user role
- setHeader:
@@ -2463,8 +2734,11 @@ YAML::
name: CamelKeycloakRoleDescription
constant: "Standard user role"
- to:
- uri: keycloak:admin?operation=createRole
- - log: "Created user role"
+ uri: keycloak:admin
+ parameters:
+ operation: createRole
+ - log:
+ message: "Created user role"
# Step 4: Create client
- setHeader:
@@ -2477,8 +2751,11 @@ YAML::
name: CamelKeycloakClientDirectAccessGrantsEnabled
constant: true
- to:
- uri: keycloak:admin?operation=createClient
- - log: "Created client: my-app"
+ uri: keycloak:admin
+ parameters:
+ operation: createClient
+ - log:
+ message: "Created client: my-app"
# Step 5: Create admin user
- setHeader:
@@ -2494,8 +2771,11 @@ YAML::
name: CamelKeycloakUserLastName
constant: "User"
- to:
- uri: keycloak:admin?operation=createUser
- - log: "Created admin user"
+ uri: keycloak:admin
+ parameters:
+ operation: createUser
+ - log:
+ message: "Created admin user"
# Step 6: Set password
- setHeader:
@@ -2505,16 +2785,22 @@ YAML::
name: CamelKeycloakUserPasswordTemporary
constant: false
- to:
- uri: keycloak:admin?operation=setUserPassword
- - log: "Set admin user password"
+ uri: keycloak:admin
+ parameters:
+ operation: setUserPassword
+ - log:
+ message: "Set admin user password"
# Step 7: Assign role
- setHeader:
name: CamelKeycloakRoleName
constant: "admin"
- to:
- uri: keycloak:admin?operation=assignRoleToUser
- - log: "Assigned admin role to user"
+ uri: keycloak:admin
+ parameters:
+ operation: assignRoleToUser
+ - log:
+ message: "Assigned admin role to user"
- transform:
constant: "User environment setup completed successfully"
@@ -2541,7 +2827,8 @@ YAML::
from:
uri: direct:create-user-api
steps:
- - log: "Creating user: ${body}"
+ - log:
+ message: "Creating user: ${body}"
- setHeader:
name: CamelKeycloakRealmName
constant: "my-company"
@@ -2558,7 +2845,9 @@ YAML::
name: CamelKeycloakUserLastName
jsonpath: "$.lastName"
- to:
- uri: keycloak:admin?operation=createUser
+ uri: keycloak:admin
+ parameters:
+ operation: createUser
- setHeader:
name: Content-Type
constant: "application/json"
@@ -2570,12 +2859,15 @@ YAML::
from:
uri: direct:list-users-api
steps:
- - log: "Listing users"
+ - log:
+ message: "Listing users"
- setHeader:
name: CamelKeycloakRealmName
constant: "my-company"
- to:
- uri: keycloak:admin?operation=listUsers
+ uri: keycloak:admin
+ parameters:
+ operation: listUsers
- setHeader:
name: Content-Type
constant: "application/json"
@@ -2585,7 +2877,8 @@ YAML::
from:
uri: direct:delete-user-api
steps:
- - log: "Deleting user: ${header.username}"
+ - log:
+ message: "Deleting user: ${header.username}"
- setHeader:
name: CamelKeycloakRealmName
constant: "my-company"
@@ -2593,7 +2886,9 @@ YAML::
name: CamelKeycloakUsername
header: "username"
- to:
- uri: keycloak:admin?operation=deleteUser
+ uri: keycloak:admin
+ parameters:
+ operation: deleteUser
- setHeader:
name: Content-Type
constant: "application/json"
@@ -2749,22 +3044,34 @@ YAML::
initialDelay=1000&
delay=5000
steps:
- - log: "Received admin event: ${body}"
+ - log:
+ message: "Received admin event: ${body}"
- choice:
when:
- - simple: "${body.operationType} == 'CREATE'"
+ - expression:
+ simple:
+ expression: "${body.operationType} == 'CREATE'"
steps:
- - log: "Resource created: ${body.resourceType} at
${body.resourcePath}"
- - simple: "${body.operationType} == 'UPDATE'"
+ - log:
+ message: "Resource created: ${body.resourceType} at
${body.resourcePath}"
+ - expression:
+ simple:
+ expression: "${body.operationType} == 'UPDATE'"
steps:
- - log: "Resource updated: ${body.resourceType}"
- - simple: "${body.operationType} == 'DELETE'"
+ - log:
+ message: "Resource updated: ${body.resourceType}"
+ - expression:
+ simple:
+ expression: "${body.operationType} == 'DELETE'"
steps:
- - log: "Resource deleted: ${body.resourceType}"
+ - log:
+ message: "Resource deleted: ${body.resourceType}"
otherwise:
steps:
- - log: "Other operation: ${body.operationType}"
- - to: "direct:process-admin-event"
+ - log:
+ message: "Other operation: ${body.operationType}"
+ - to:
+ uri: direct:process-admin-event
# Process admin events
- route:
@@ -2772,8 +3079,12 @@ YAML::
from:
uri: direct:process-admin-event
steps:
- - log: "Processing admin event: ${body.operationType} on
${body.resourceType}"
- - to: "bean:auditService?method=recordAdminEvent"
+ - log:
+ message: "Processing admin event: ${body.operationType} on
${body.resourceType}"
+ - to:
+ uri: bean:auditService
+ parameters:
+ method: recordAdminEvent
----
====
@@ -2857,28 +3168,46 @@ YAML::
initialDelay=1000&
delay=5000
steps:
- - log: "Received user event: ${body}"
+ - log:
+ message: "Received user event: ${body}"
- choice:
when:
- - simple: "${body.type} == 'LOGIN'"
+ - expression:
+ simple:
+ expression: "${body.type} == 'LOGIN'"
steps:
- - log: "User logged in: ${body.userId} from IP
${body.ipAddress}"
- - to: "direct:handle-login"
- - simple: "${body.type} == 'LOGIN_ERROR'"
+ - log:
+ message: "User logged in: ${body.userId} from IP
${body.ipAddress}"
+ - to:
+ uri: direct:handle-login
+ - expression:
+ simple:
+ expression: "${body.type} == 'LOGIN_ERROR'"
steps:
- - log: "Failed login attempt: ${body.userId}"
- - to: "direct:handle-failed-login"
- - simple: "${body.type} == 'LOGOUT'"
+ - log:
+ message: "Failed login attempt: ${body.userId}"
+ - to:
+ uri: direct:handle-failed-login
+ - expression:
+ simple:
+ expression: "${body.type} == 'LOGOUT'"
steps:
- - log: "User logged out: ${body.userId}"
- - to: "direct:handle-logout"
- - simple: "${body.type} == 'REGISTER'"
+ - log:
+ message: "User logged out: ${body.userId}"
+ - to:
+ uri: direct:handle-logout
+ - expression:
+ simple:
+ expression: "${body.type} == 'REGISTER'"
steps:
- - log: "New user registered: ${body.userId}"
- - to: "direct:handle-registration"
+ - log:
+ message: "New user registered: ${body.userId}"
+ - to:
+ uri: direct:handle-registration
otherwise:
steps:
- - log: "Other event: ${body.type}"
+ - log:
+ message: "Other event: ${body.type}"
# Handle login events
- route:
@@ -2886,8 +3215,12 @@ YAML::
from:
uri: direct:handle-login
steps:
- - log: "Processing login event for user ${body.userId}"
- - to: "bean:analyticsService?method=recordLogin"
+ - log:
+ message: "Processing login event for user ${body.userId}"
+ - to:
+ uri: bean:analyticsService
+ parameters:
+ method: recordLogin
# Handle failed login
- route:
@@ -2895,8 +3228,12 @@ YAML::
from:
uri: direct:handle-failed-login
steps:
- - log: "Processing failed login from ${body.ipAddress}"
- - to: "bean:securityService?method=checkFailedAttempts"
+ - log:
+ message: "Processing failed login from ${body.ipAddress}"
+ - to:
+ uri: bean:securityService
+ parameters:
+ method: checkFailedAttempts
----
====
@@ -2960,7 +3297,8 @@ YAML::
operationTypes=CREATE,UPDATE,DELETE&
maxResults=100
steps:
- - log: "Filtered admin event: ${body}"
+ - log:
+ message: "Filtered admin event: ${body}"
# Filter user events by type
- route:
@@ -2972,7 +3310,8 @@ YAML::
types=LOGIN,LOGOUT,REGISTER&
maxResults=100
steps:
- - log: "Filtered user event: ${body}"
+ - log:
+ message: "Filtered user event: ${body}"
# Filter by date range
- route:
@@ -2985,7 +3324,8 @@ YAML::
dateTo=1640995200000&
maxResults=100
steps:
- - log: "Events in date range: ${body}"
+ - log:
+ message: "Events in date range: ${body}"
# Filter by user and client
- route:
@@ -2999,7 +3339,8 @@ YAML::
ipAddress=192.168.1.100&
maxResults=50
steps:
- - log: "Specific user events: ${body}"
+ - log:
+ message: "Specific user events: ${body}"
----
====
@@ -3067,8 +3408,14 @@ YAML::
}
- marshal:
json: {}
- - to: "kafka:audit-trail?brokers=localhost:9092"
- - to: "jdbc:dataSource?useHeadersAsParameters=true"
+ - to:
+ uri: kafka:audit-trail
+ parameters:
+ brokers: "localhost:9092"
+ - to:
+ uri: jdbc:dataSource
+ parameters:
+ useHeadersAsParameters: true
----
====
@@ -3118,17 +3465,24 @@ YAML::
delay=5000
steps:
- filter:
- simple: "${body.type} == 'LOGIN_ERROR'"
+ expression:
+ simple:
+ expression: "${body.type} == 'LOGIN_ERROR'"
- aggregate:
correlationExpression:
- simple: "${body.ipAddress}"
+ expression:
+ simple:
+ expression: "${body.ipAddress}"
aggregationStrategy: "#arrayListAggregation"
completionSize: 5
completionTimeout: 300000
steps:
- - log: "SECURITY ALERT: Multiple failed login attempts from
${body[0].ipAddress}"
- - to: "direct:block-ip"
- - to: "direct:send-security-alert"
+ - log:
+ message: "SECURITY ALERT: Multiple failed login attempts
from ${body[0].ipAddress}"
+ - to:
+ uri: direct:block-ip
+ - to:
+ uri: direct:send-security-alert
----
====
@@ -3193,8 +3547,15 @@ YAML::
"ipAddress": "${body.ipAddress}",
"sessionId": "${body.sessionId}"
}
- - to: "bean:analyticsService?method=recordActivity"
- - to:
"elasticsearch://keycloak-events?operation=Index&indexName=user-activity"
+ - to:
+ uri: bean:analyticsService
+ parameters:
+ method: recordActivity
+ - to:
+ uri: elasticsearch://keycloak-events
+ parameters:
+ operation: Index
+ indexName: user-activity
----
====
@@ -3354,8 +3715,10 @@ camel:
maxResults=100&
delay=10000
steps:
- - log: "Admin event: ${body.operationType} on ${body.resourceType}"
- - to: "direct:audit-trail"
+ - log:
+ message: "Admin event: ${body.operationType} on
${body.resourceType}"
+ - to:
+ uri: direct:audit-trail
- route:
id: user-activity-tracking
@@ -3368,8 +3731,10 @@ camel:
maxResults=50&
delay=30000
steps:
- - log: "User activity: ${body.type} for user ${body.userId}"
- - to: "direct:analytics"
+ - log:
+ message: "User activity: ${body.type} for user ${body.userId}"
+ - to:
+ uri: direct:analytics
- route:
id: security-monitoring
@@ -3382,8 +3747,10 @@ camel:
maxResults=100&
delay=5000
steps:
- - log: "Failed login from IP: ${body.ipAddress}"
- - to: "direct:security-check"
+ - log:
+ message: "Failed login from IP: ${body.ipAddress}"
+ - to:
+ uri: direct:security-check
# Processing routes
- route:
@@ -3393,24 +3760,36 @@ camel:
steps:
- marshal:
json: {}
- - to: "kafka:admin-audit?brokers=localhost:9092"
- - to: "log:audit"
+ - to:
+ uri: kafka:admin-audit
+ parameters:
+ brokers: "localhost:9092"
+ - to:
+ uri: log:audit
- route:
id: process-analytics
from:
uri: direct:analytics
steps:
- - to: "bean:analyticsService?method=processUserActivity"
- - to: "log:analytics"
+ - to:
+ uri: bean:analyticsService
+ parameters:
+ method: processUserActivity
+ - to:
+ uri: log:analytics
- route:
id: process-security-check
from:
uri: direct:security-check
steps:
- - to: "bean:securityService?method=checkFailedLogin"
- - to: "log:security"
+ - to:
+ uri: bean:securityService
+ parameters:
+ method: checkFailedLogin
+ - to:
+ uri: log:security
----
====
@@ -3751,7 +4130,9 @@ YAML::
- policy:
ref: paymentPolicy
- to:
- uri: bean:paymentService?method=processPayment
+ uri: bean:paymentService
+ parameters:
+ method: processPayment
# Regular endpoint with local JWT
- route:
@@ -3761,7 +4142,9 @@ YAML::
- policy:
ref: standardPolicy
- to:
- uri: bean:dataService?method=getData
+ uri: bean:dataService
+ parameters:
+ method: getData
# Security policies
beans:
@@ -3849,7 +4232,9 @@ YAML::
- policy:
ref: adminIntrospection
- to:
- uri: bean:userService?method=deleteUser
+ uri: bean:userService
+ parameters:
+ method: deleteUser
- route:
from:
@@ -3858,7 +4243,9 @@ YAML::
- policy:
ref: adminIntrospection
- to:
- uri: bean:roleService?method=assignRole
+ uri: bean:roleService
+ parameters:
+ method: assignRole
# Read routes with local JWT
- route:
@@ -3868,7 +4255,9 @@ YAML::
- policy:
ref: readPolicy
- to:
- uri: bean:userService?method=listUsers
+ uri: bean:userService
+ parameters:
+ method: listUsers
- route:
from:
@@ -3877,7 +4266,9 @@ YAML::
- policy:
ref: readPolicy
- to:
- uri: bean:userService?method=getProfile
+ uri: bean:userService
+ parameters:
+ method: getProfile
# Security policies
beans:
@@ -4502,7 +4893,9 @@ YAML::
- policy:
ref: userPolicy
- to:
- uri: bean:userService?method=processUser
+ uri: bean:userService
+ parameters:
+ method: processUser
# Bean definition
beans:
@@ -4693,7 +5086,8 @@ YAML::
constant: "application/json"
- transform:
constant: '{"error": "Access denied", "message": "Insufficient
privileges"}'
- - log: "Authorization failed: ${exception.message}"
+ - log:
+ message: "Authorization failed: ${exception.message}"
# Route-specific error handling
- route:
@@ -4834,7 +5228,9 @@ YAML::
- policy:
ref: adminPolicy
- to:
- uri: bean:userService?method=getAllUsers
+ uri: bean:userService
+ parameters:
+ method: getAllUsers
- route:
from:
@@ -4843,7 +5239,9 @@ YAML::
- policy:
ref: userPolicy
- to:
- uri: bean:userService?method=getCurrentUser
+ uri: bean:userService
+ parameters:
+ method: getCurrentUser
# Security policy beans
beans:
@@ -5162,7 +5560,9 @@ YAML::
- policy:
ref: strictPolicy
- to:
- uri: bean:documentService?method=adminOperations
+ uri: bean:documentService
+ parameters:
+ method: adminOperations
- route:
from:
@@ -5171,7 +5571,9 @@ YAML::
- policy:
ref: flexiblePolicy
- to:
- uri: bean:documentService?method=flexibleOperations
+ uri: bean:documentService
+ parameters:
+ method: flexibleOperations
# Bean definitions
beans:
diff --git a/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
b/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
index daf52fc1c38a..f8b611dedad6 100644
--- a/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
+++ b/components/camel-ocsf/src/main/docs/ocsf-dataformat.adoc
@@ -212,7 +212,7 @@ from("kafka:security-events")
----
- route:
from:
- uri: "kafka:security-events"
+ uri: kafka:security-events
steps:
- unmarshal:
ocsf:
@@ -239,11 +239,11 @@ from("kafka:security-events")
2. Recommended immediate actions
3. Risk assessment (Critical/High/Medium/Low)
- to:
- uri: "langchain4j-chat:security-analyst"
+ uri: langchain4j-chat:security-analyst
parameters:
chatModel: "#chatLanguageModel"
- to:
- uri: "direct:ai-summary"
+ uri: direct:ai-summary
----
== Dependencies
diff --git a/components/camel-pqc/src/main/docs/pqc-component.adoc
b/components/camel-pqc/src/main/docs/pqc-component.adoc
index 21f05bf34c01..7ff27dee5d2d 100644
--- a/components/camel-pqc/src/main/docs/pqc-component.adoc
+++ b/components/camel-pqc/src/main/docs/pqc-component.adoc
@@ -1666,16 +1666,21 @@ YAML::
method: needsRotation('route-signing-key', 90, 10000)
- choice:
when:
- - simple: "${body} == true"
+ - expression:
+ simple:
+ expression: "${body} == true"
steps:
- - log: "Rotating signing key"
+ - log:
+ message: "Rotating signing key"
- bean:
ref: keyLifecycleManager
method: rotateKey('route-signing-key',
'route-signing-key-new', 'DILITHIUM')
- - to: log:rotation-complete
+ - to:
+ uri: log:rotation-complete
otherwise:
steps:
- - log: "Key rotation not needed"
+ - log:
+ message: "Key rotation not needed"
----
====
@@ -2211,7 +2216,8 @@ from("file:encrypted")
keyEncapsulationAlgorithm: MLKEM
symmetricKeyAlgorithm: AES
symmetricKeyLength: 256
- - to: file:encrypted
+ - to:
+ uri: file:encrypted
- route:
id: decrypt-route
@@ -2223,7 +2229,8 @@ from("file:encrypted")
keyEncapsulationAlgorithm: MLKEM
symmetricKeyAlgorithm: AES
symmetricKeyLength: 256
- - to: direct:decrypted
+ - to:
+ uri: direct:decrypted
--------------------------------------------------------------------------------
=== Configuration Options
diff --git a/components/camel-smooks/src/main/docs/smooks-component.adoc
b/components/camel-smooks/src/main/docs/smooks-component.adoc
index 9bb77c52e05c..1dc0d893680b 100644
--- a/components/camel-smooks/src/main/docs/smooks-component.adoc
+++ b/components/camel-smooks/src/main/docs/smooks-component.adoc
@@ -69,11 +69,16 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: file:inputDir?noop=true
+- route:
+ from:
+ uri: file:inputDir
+ parameters:
+ noop: true
steps:
- - to: smooks:smooks-config.xml
- - to: jms:queue:order
+ - to:
+ uri: smooks:smooks-config.xml
+ - to:
+ uri: jms:queue:order
----
====
diff --git a/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
b/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
index 82a6480c1696..563ae6304500 100644
--- a/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
+++ b/components/camel-smooks/src/main/docs/smooks-dataformat.adoc
@@ -45,13 +45,15 @@ YAML::
+
[source,yaml]
----
-- from:
- uri: direct:unmarshal
+- route:
+ from:
+ uri: direct:unmarshal
steps:
- unmarshal:
smooks:
smooksConfig: csv-smooks-unmarshal-config.xml
- - log: "Unmarshalled customers: ${body}"
+ - log:
+ message: "Unmarshalled customers: ${body}"
----
====