You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/07/07 09:48:39 UTC
(camel) 01/01: chore: reorganize bundled jbang examples into categorized folders
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch chore/reorganize-jbang-examples
in repository https://gitbox.apache.org/repos/asf/camel.git
commit cc2c3b7236625ff1342ba439308f800cd253d8c1
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jul 7 11:48:23 2026 +0200
chore: reorganize bundled jbang examples into categorized folders
Organize bundled examples into topic-based subfolders matching
the companion reorganization of apache/camel-jbang-examples:
- beginner/ - timer-log, cron-log, rest-api, routes, tui-hello-world, camel-1-tribute
- eip/ - circuit-breaker, content-based-router (new), splitter (new), aggregator (new)
- database/ - sql
- language/ - groovy
- observability/ - memory-leak, message-size, route-topology
- transformation/ - xslt
Three new EIP examples added:
- content-based-router: choice/when routing by message content
- splitter: split batch into individual messages
- aggregator: collect messages into batches
Catalog JSON updated with new paths for all 29 examples.
Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../{ => beginner}/camel-1-tribute/README.md | 0
.../camel-1-tribute/application.properties | 0
.../camel-1-tribute/jms-to-file.camel.yaml | 0
.../examples/{ => beginner}/cron-log/README.md | 0
.../{ => beginner}/cron-log/application.properties | 0
.../{ => beginner}/cron-log/cron-log.camel.yaml | 0
.../examples/{ => beginner}/rest-api/README.md | 0
.../{ => beginner}/rest-api/application.properties | 0
.../{ => beginner}/rest-api/rest-api.camel.yaml | 0
.../examples/{ => beginner}/routes/Greeter.java | 0
.../examples/{ => beginner}/routes/README.md | 0
.../{ => beginner}/routes/application.properties | 0
.../examples/{ => beginner}/routes/beans.yaml | 0
.../{ => beginner}/routes/routes.camel.yaml | 0
.../examples/{ => beginner}/timer-log/README.md | 0
.../timer-log/application.properties | 0
.../{ => beginner}/timer-log/timer-log.camel.yaml | 0
.../{ => beginner}/tui-hello-world/README.md | 0
.../tui-hello-world/tui-hello-world.yaml | 0
.../examples/camel-jbang-example-catalog.json | 638 +++++++++++----------
.../examples/{ => database}/sql/README.md | 0
.../{ => database}/sql/application.properties | 0
.../examples/{ => database}/sql/sql.camel.yaml | 0
.../resources/examples/eip/aggregator/README.md | 47 ++
.../examples/eip/aggregator/aggregator.camel.yaml | 37 ++
.../examples/{ => eip}/circuit-breaker/README.md | 0
.../{ => eip}/circuit-breaker/route.camel.yaml | 0
.../examples/eip/content-based-router/README.md | 48 ++
.../content-based-router.camel.yaml | 45 ++
.../main/resources/examples/eip/splitter/README.md | 47 ++
.../examples/eip/splitter/splitter.camel.yaml | 22 +
.../examples/{ => language}/groovy/README.md | 0
.../{ => language}/groovy/application.properties | 0
.../{ => language}/groovy/groovy.camel.yaml | 0
.../memory-leak/MemoryLeak.java | 0
.../{ => observability}/memory-leak/README.md | 0
.../{ => observability}/message-size/README.md | 0
.../message-size/message-size.camel.yaml | 0
.../message-size/orders.camel.yaml | 0
.../{ => observability}/route-topology/README.md | 0
.../route-topology/application.properties | 0
.../route-topology/route-topology.camel.yaml | 0
.../examples/{ => transformation}/xslt/README.md | 0
.../{ => transformation}/xslt/consumer.camel.yaml | 0
.../{ => transformation}/xslt/input/account.xml | 0
.../{ => transformation}/xslt/stylesheet.xsl | 0
46 files changed, 592 insertions(+), 292 deletions(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-1-tribute/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/camel-1-tribute/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-1-tribute/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/camel-1-tribute/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-1-tribute/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/camel-1-tribute/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-1-tribute/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/camel-1-tribute/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-1-tribute/jms-to-file.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/camel-1-tribute/jms-to-file.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-1-tribute/jms-to-file.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/camel-1-tribute/jms-to-file.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/cron-log/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/cron-log/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/cron-log/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/cron-log/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log/cron-log.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/cron-log/cron-log.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/cron-log/cron-log.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/cron-log/cron-log.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/rest-api/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/rest-api/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/rest-api/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/rest-api/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api/rest-api.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/rest-api/rest-api.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/rest-api/rest-api.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/rest-api/rest-api.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/Greeter.java b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/Greeter.java
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/Greeter.java
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/Greeter.java
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/beans.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/beans.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/beans.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/beans.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/routes.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/routes.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/routes/routes.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/routes/routes.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/timer-log/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/timer-log/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/timer-log/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/timer-log/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log/timer-log.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/timer-log/timer-log.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/timer-log/timer-log.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/timer-log/timer-log.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/tui-hello-world/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/tui-hello-world/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/tui-hello-world/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/tui-hello-world/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/tui-hello-world/tui-hello-world.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/tui-hello-world/tui-hello-world.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/tui-hello-world/tui-hello-world.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/beginner/tui-hello-world/tui-hello-world.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
index a065576cc70f..bd1affbb688b 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/camel-jbang-example-catalog.json
@@ -1,13 +1,14 @@
[
{
- "name": "artemis",
- "title": "Apache ActiveMQ Artemis",
- "description": "Setup connection factory to a remote Apache ActiveMQ Artemis messaging broker",
- "level": "intermediate",
+ "name": "ai/docling-langchain4j-rag",
+ "title": "Document Analysis with Docling and LangChain4j RAG",
+ "description": "RAG workflow combining Docling document conversion with LangChain4j and Ollama",
+ "level": "advanced",
"tags": [
- "messaging",
- "jms",
- "artemis"
+ "ai",
+ "rag",
+ "langchain4j",
+ "docling"
],
"bundled": false,
"requiresDocker": true,
@@ -15,59 +16,112 @@
"files": [
"README.md",
"application.properties",
- "consumer.camel.yaml",
- "producer.camel.yaml"
+ "docling-langchain4j-rag.yaml",
+ "sample.md"
],
"infraServices": [
- "artemis"
+ "docling",
+ "ollama"
]
},
{
- "name": "aws/aws-s3-event-based",
- "title": "AWS S3 CDC",
- "description": "Consume S3 events using EventBridge and SQS for change data capture",
+ "name": "ai/financial-doc-analyzer",
+ "title": "Financial Document Analyzer",
+ "description": "Automated financial document analysis with Docling, LangChain4j, and market data",
"level": "advanced",
"tags": [
- "aws",
- "s3",
- "sqs",
- "eventbridge",
- "cloud"
+ "ai",
+ "langchain4j",
+ "docling",
+ "finance"
+ ],
+ "bundled": false,
+ "requiresDocker": true,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "application.properties",
+ "examples/banking-sector-brief.pdf",
+ "examples/magnificent-seven-update.pdf",
+ "examples/semiconductor-sector-analysis.pdf",
+ "examples/tesla-q3-2024.pdf",
+ "financial-doc-analyzer.yaml"
+ ],
+ "infraServices": [
+ "docling",
+ "ollama"
+ ]
+ },
+ {
+ "name": "ai/openai-pii-redaction",
+ "title": "OpenAI PII Redaction",
+ "description": "Redact personal identifiable information from text using OpenAI-compatible LLMs",
+ "level": "advanced",
+ "tags": [
+ "ai",
+ "openai",
+ "privacy",
+ "security"
],
"bundled": false,
"requiresDocker": false,
- "hasCitrusTests": true,
+ "hasCitrusTests": false,
"files": [
"README.md",
"application.properties",
- "aws-s3-cdc-log.camel.yaml",
- "example-file.txt",
- "policy-queue.json",
- "terraform/main.tf"
+ "pii-redaction.camel.yaml",
+ "pii.schema.json"
]
},
{
- "name": "aws/aws-sqs",
- "title": "AWS SQS Sink",
- "description": "Push messages to AWS SQS queue via HTTP service",
+ "name": "ai/smart-log-analyzer",
+ "title": "Smart Log Analyzer",
+ "description": "Intelligent observability correlating OpenTelemetry logs and traces with LLM analysis",
"level": "advanced",
"tags": [
- "aws",
- "sqs",
- "http",
- "cloud"
+ "ai",
+ "observability",
+ "opentelemetry",
+ "logging"
],
"bundled": false,
"requiresDocker": false,
"hasCitrusTests": true,
"files": [
"README.md",
- "application.properties",
- "http-to-aws-sqs.camel.yaml"
+ "analyzer/application-dev.properties",
+ "analyzer/error-analyzer.camel.yaml",
+ "containers/caches/infinispan-events-config.json",
+ "containers/caches/infinispan-events-to-process-config.json",
+ "containers/otel-collector-config.yaml",
+ "correlator/application-dev.properties",
+ "correlator/correlated-log-schema.json",
+ "correlator/correlated-trace-schema.json",
+ "correlator/infinispan.camel.yaml",
+ "correlator/kafka-ca-cert.pem",
+ "correlator/kaoto-datamapper-4a94acc3.xsl",
+ "correlator/kaoto-datamapper-8f5bb2dd.xsl",
+ "correlator/logs-mapper.camel.yaml",
+ "correlator/otel-log-record-schema.json",
+ "correlator/otel-logs-schema.json",
+ "correlator/otel-span-schema.json",
+ "correlator/otel-traces-schema.json",
+ "correlator/traces-mapper.camel.yaml",
+ "first-iteration/analyzer.camel.yaml",
+ "first-iteration/application.properties",
+ "first-iteration/load-generator.camel.yaml",
+ "log-generator/agent.properties",
+ "log-generator/application-dev.properties",
+ "log-generator/log-generator.camel.yaml",
+ "log-generator/opentelemetry-javaagent.jar",
+ "ui-console/application-dev.properties",
+ "ui-console/index.html",
+ "ui-console/jms-file-storage.camel.yaml",
+ "ui-console/rest-api.camel.yaml"
]
},
{
- "name": "camel-1-tribute",
+ "name": "beginner/camel-1-tribute",
"title": "Camel 1.0 Tribute",
"description": "A tribute to the very first Apache Camel example from 2007 - JMS to File",
"level": "beginner",
@@ -91,31 +145,73 @@
]
},
{
- "name": "circuit-breaker",
- "title": "Circuit Breaker",
- "description": "Use the circuit breaker EIP for fault tolerance",
+ "name": "beginner/cron-log",
+ "title": "Cron Log",
+ "description": "Scheduled task that logs every 5 seconds",
"level": "beginner",
"tags": [
- "eip",
- "resilience"
+ "beginner",
+ "timer",
+ "cron",
+ "log"
],
"bundled": true,
"requiresDocker": false,
"hasCitrusTests": false,
"files": [
"README.md",
- "route.camel.yaml"
+ "application.properties",
+ "cron-log.camel.yaml"
]
},
{
- "name": "cron-log",
- "title": "Cron Log",
- "description": "Scheduled task that logs every 5 seconds",
+ "name": "beginner/rest-api",
+ "title": "REST API",
+ "description": "REST API with hello endpoints",
+ "level": "beginner",
+ "tags": [
+ "beginner",
+ "rest",
+ "http"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "application.properties",
+ "rest-api.camel.yaml"
+ ]
+ },
+ {
+ "name": "beginner/routes",
+ "title": "Routes",
+ "description": "Define routes in YAML with Java beans",
+ "level": "beginner",
+ "tags": [
+ "beginner",
+ "yaml",
+ "bean"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "Greeter.java",
+ "README.md",
+ "application.properties",
+ "beans.yaml",
+ "routes.camel.yaml"
+ ]
+ },
+ {
+ "name": "beginner/timer-log",
+ "title": "Timer Log",
+ "description": "Simple timer that logs a hello message every second",
"level": "beginner",
"tags": [
"beginner",
"timer",
- "cron",
"log"
],
"bundled": true,
@@ -124,88 +220,167 @@
"files": [
"README.md",
"application.properties",
- "cron-log.camel.yaml"
+ "timer-log.camel.yaml"
]
},
{
- "name": "docling-langchain4j-rag",
- "title": "Document Analysis with Docling and LangChain4j RAG",
- "description": "RAG workflow combining Docling document conversion with LangChain4j and Ollama",
+ "name": "beginner/tui-hello-world",
+ "title": "TUI Hello World",
+ "description": "Say hello via TUI Send Message (F2) or CLI",
+ "level": "beginner",
+ "tags": [
+ "beginner",
+ "direct",
+ "send",
+ "tui"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "tui-hello-world.yaml"
+ ]
+ },
+ {
+ "name": "cloud/aws-s3-event-based",
+ "title": "AWS S3 CDC",
+ "description": "Consume S3 events using EventBridge and SQS for change data capture",
"level": "advanced",
"tags": [
- "ai",
- "rag",
- "langchain4j",
- "docling"
+ "aws",
+ "s3",
+ "sqs",
+ "eventbridge",
+ "cloud"
],
"bundled": false,
- "requiresDocker": true,
- "hasCitrusTests": false,
+ "requiresDocker": false,
+ "hasCitrusTests": true,
"files": [
"README.md",
"application.properties",
- "docling-langchain4j-rag.yaml",
- "sample.md"
- ],
- "infraServices": [
- "docling",
- "ollama"
+ "aws-s3-cdc-log.camel.yaml",
+ "example-file.txt",
+ "policy-queue.json",
+ "terraform/main.tf"
]
},
{
- "name": "financial-doc-analyzer",
- "title": "Financial Document Analyzer",
- "description": "Automated financial document analysis with Docling, LangChain4j, and market data",
+ "name": "cloud/aws-sqs",
+ "title": "AWS SQS Sink",
+ "description": "Push messages to AWS SQS queue via HTTP service",
"level": "advanced",
"tags": [
- "ai",
- "langchain4j",
- "docling",
- "finance"
+ "aws",
+ "sqs",
+ "http",
+ "cloud"
],
"bundled": false,
- "requiresDocker": true,
- "hasCitrusTests": false,
+ "requiresDocker": false,
+ "hasCitrusTests": true,
"files": [
"README.md",
"application.properties",
- "examples/banking-sector-brief.pdf",
- "examples/magnificent-seven-update.pdf",
- "examples/semiconductor-sector-analysis.pdf",
- "examples/tesla-q3-2024.pdf",
- "financial-doc-analyzer.yaml"
- ],
- "infraServices": [
- "docling",
- "ollama"
+ "http-to-aws-sqs.camel.yaml"
]
},
{
- "name": "ftp",
- "title": "ActiveMQ to FTP",
- "description": "Integrate ActiveMQ messaging with an FTP server",
+ "name": "database/sql",
+ "title": "SQL Database",
+ "description": "Use a SQL database with Camel and Postgres",
"level": "intermediate",
"tags": [
- "messaging",
- "ftp",
- "activemq"
+ "database",
+ "sql",
+ "postgres"
],
- "bundled": false,
+ "bundled": true,
"requiresDocker": true,
- "hasCitrusTests": true,
+ "hasCitrusTests": false,
"files": [
"README.md",
"application.properties",
- "ftp.camel.yaml",
- "jbang.properties"
+ "sql.camel.yaml"
],
"infraServices": [
- "artemis",
- "ftp"
+ "postgres"
+ ]
+ },
+ {
+ "name": "eip/aggregator",
+ "title": "Aggregator",
+ "description": "Collect individual messages into a batch using the Aggregator EIP",
+ "level": "beginner",
+ "tags": [
+ "eip",
+ "aggregator",
+ "batch"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "aggregator.camel.yaml"
+ ]
+ },
+ {
+ "name": "eip/circuit-breaker",
+ "title": "Circuit Breaker",
+ "description": "Use the circuit breaker EIP for fault tolerance",
+ "level": "beginner",
+ "tags": [
+ "eip",
+ "resilience"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "route.camel.yaml"
+ ]
+ },
+ {
+ "name": "eip/content-based-router",
+ "title": "Content Based Router",
+ "description": "Route messages to different destinations based on message content using the Choice EIP",
+ "level": "beginner",
+ "tags": [
+ "eip",
+ "choice",
+ "routing"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "content-based-router.camel.yaml"
+ ]
+ },
+ {
+ "name": "eip/splitter",
+ "title": "Splitter",
+ "description": "Split a batch of items into individual messages for processing",
+ "level": "beginner",
+ "tags": [
+ "eip",
+ "splitter",
+ "batch"
+ ],
+ "bundled": true,
+ "requiresDocker": false,
+ "hasCitrusTests": false,
+ "files": [
+ "README.md",
+ "splitter.camel.yaml"
]
},
{
- "name": "groovy",
+ "name": "language/groovy",
"title": "Groovy",
"description": "Use Groovy with extra dependencies and content-based routing",
"level": "beginner",
@@ -224,15 +399,14 @@
]
},
{
- "name": "keycloak-introspection-rest",
- "title": "Keycloak Token Introspection REST API",
- "description": "Secure REST APIs with Keycloak OAuth 2.0 token introspection",
- "level": "advanced",
+ "name": "messaging/artemis",
+ "title": "Apache ActiveMQ Artemis",
+ "description": "Setup connection factory to a remote Apache ActiveMQ Artemis messaging broker",
+ "level": "intermediate",
"tags": [
- "security",
- "keycloak",
- "rest",
- "oauth"
+ "messaging",
+ "jms",
+ "artemis"
],
"bundled": false,
"requiresDocker": true,
@@ -240,37 +414,63 @@
"files": [
"README.md",
"application.properties",
- "rest-api.camel.yaml"
+ "consumer.camel.yaml",
+ "producer.camel.yaml"
],
"infraServices": [
- "keycloak"
+ "artemis"
]
},
{
- "name": "keycloak-security-rest",
- "title": "Keycloak Security REST API",
- "description": "Secure REST APIs with Keycloak authentication and authorization",
- "level": "advanced",
+ "name": "messaging/ftp",
+ "title": "ActiveMQ to FTP",
+ "description": "Integrate ActiveMQ messaging with an FTP server",
+ "level": "intermediate",
"tags": [
- "security",
- "keycloak",
- "rest",
- "oauth"
+ "messaging",
+ "ftp",
+ "activemq"
],
"bundled": false,
"requiresDocker": true,
- "hasCitrusTests": false,
+ "hasCitrusTests": true,
"files": [
"README.md",
"application.properties",
- "rest-api.camel.yaml"
+ "ftp.camel.yaml",
+ "jbang.properties"
],
"infraServices": [
- "keycloak"
+ "artemis",
+ "ftp"
+ ]
+ },
+ {
+ "name": "messaging/mqtt",
+ "title": "MQTT",
+ "description": "Receive MQTT events from an external MQTT broker",
+ "level": "intermediate",
+ "tags": [
+ "messaging",
+ "mqtt",
+ "iot"
+ ],
+ "bundled": false,
+ "requiresDocker": true,
+ "hasCitrusTests": true,
+ "files": [
+ "README.md",
+ "application.properties",
+ "infra/mosquitto.conf",
+ "mqtt.camel.yaml",
+ "start.sh"
+ ],
+ "infraServices": [
+ "mosquitto"
]
},
{
- "name": "memory-leak",
+ "name": "observability/memory-leak",
"title": "Memory Leak",
"description": "Simulates a memory leak for testing JFR Old Object Sample diagnostics",
"level": "beginner",
@@ -289,7 +489,7 @@
]
},
{
- "name": "message-size",
+ "name": "observability/message-size",
"title": "Message Size",
"description": "Track message body and header sizes per endpoint",
"level": "beginner",
@@ -307,52 +507,30 @@
]
},
{
- "name": "mqtt",
- "title": "MQTT",
- "description": "Receive MQTT events from an external MQTT broker",
+ "name": "observability/route-topology",
+ "title": "Route Topology",
+ "description": "Demonstrates inter-route topology with triggers, shared routes, and external systems",
"level": "intermediate",
"tags": [
- "messaging",
- "mqtt",
- "iot"
+ "topology",
+ "direct",
+ "kafka",
+ "timer"
],
- "bundled": false,
+ "bundled": true,
"requiresDocker": true,
- "hasCitrusTests": true,
+ "hasCitrusTests": false,
"files": [
"README.md",
"application.properties",
- "infra/mosquitto.conf",
- "mqtt.camel.yaml",
- "start.sh"
+ "route-topology.camel.yaml"
],
"infraServices": [
- "mosquitto"
- ]
- },
- {
- "name": "openai/pii-redaction",
- "title": "OpenAI PII Redaction",
- "description": "Redact personal identifiable information from text using OpenAI-compatible LLMs",
- "level": "advanced",
- "tags": [
- "ai",
- "openai",
- "privacy",
- "security"
- ],
- "bundled": false,
- "requiresDocker": false,
- "hasCitrusTests": false,
- "files": [
- "README.md",
- "application.properties",
- "pii-redaction.camel.yaml",
- "pii.schema.json"
+ "kafka"
]
},
{
- "name": "openapi/client",
+ "name": "rest/openapi-client",
"title": "OpenAPI Client",
"description": "REST client generated from an OpenAPI specification",
"level": "intermediate",
@@ -373,7 +551,7 @@
]
},
{
- "name": "openapi/server",
+ "name": "rest/openapi-server",
"title": "OpenAPI Server",
"description": "REST service implemented from an OpenAPI specification",
"level": "intermediate",
@@ -394,177 +572,53 @@
]
},
{
- "name": "rest-api",
- "title": "REST API",
- "description": "REST API with hello endpoints",
- "level": "beginner",
+ "name": "security/keycloak-introspection-rest",
+ "title": "Keycloak Token Introspection REST API",
+ "description": "Secure REST APIs with Keycloak OAuth 2.0 token introspection",
+ "level": "advanced",
"tags": [
- "beginner",
+ "security",
+ "keycloak",
"rest",
- "http"
- ],
- "bundled": true,
- "requiresDocker": false,
- "hasCitrusTests": false,
- "files": [
- "README.md",
- "application.properties",
- "rest-api.camel.yaml"
- ]
- },
- {
- "name": "route-topology",
- "title": "Route Topology",
- "description": "Demonstrates inter-route topology with triggers, shared routes, and external systems",
- "level": "intermediate",
- "tags": [
- "topology",
- "direct",
- "kafka",
- "timer"
+ "oauth"
],
- "bundled": true,
+ "bundled": false,
"requiresDocker": true,
"hasCitrusTests": false,
"files": [
"README.md",
"application.properties",
- "route-topology.camel.yaml"
+ "rest-api.camel.yaml"
],
"infraServices": [
- "kafka"
- ]
- },
- {
- "name": "routes",
- "title": "Routes",
- "description": "Define routes in YAML with Java beans",
- "level": "beginner",
- "tags": [
- "beginner",
- "yaml",
- "bean"
- ],
- "bundled": true,
- "requiresDocker": false,
- "hasCitrusTests": false,
- "files": [
- "Greeter.java",
- "README.md",
- "application.properties",
- "beans.yaml",
- "routes.camel.yaml"
+ "keycloak"
]
},
{
- "name": "smart-log-analyzer",
- "title": "Smart Log Analyzer",
- "description": "Intelligent observability correlating OpenTelemetry logs and traces with LLM analysis",
+ "name": "security/keycloak-security-rest",
+ "title": "Keycloak Security REST API",
+ "description": "Secure REST APIs with Keycloak authentication and authorization",
"level": "advanced",
"tags": [
- "ai",
- "observability",
- "opentelemetry",
- "logging"
+ "security",
+ "keycloak",
+ "rest",
+ "oauth"
],
"bundled": false,
- "requiresDocker": false,
- "hasCitrusTests": true,
- "files": [
- "README.md",
- "analyzer/application-dev.properties",
- "analyzer/error-analyzer.camel.yaml",
- "containers/caches/infinispan-events-config.json",
- "containers/caches/infinispan-events-to-process-config.json",
- "containers/otel-collector-config.yaml",
- "correlator/application-dev.properties",
- "correlator/correlated-log-schema.json",
- "correlator/correlated-trace-schema.json",
- "correlator/infinispan.camel.yaml",
- "correlator/kafka-ca-cert.pem",
- "correlator/kaoto-datamapper-4a94acc3.xsl",
- "correlator/kaoto-datamapper-8f5bb2dd.xsl",
- "correlator/logs-mapper.camel.yaml",
- "correlator/otel-log-record-schema.json",
- "correlator/otel-logs-schema.json",
- "correlator/otel-span-schema.json",
- "correlator/otel-traces-schema.json",
- "correlator/traces-mapper.camel.yaml",
- "first-iteration/analyzer.camel.yaml",
- "first-iteration/application.properties",
- "first-iteration/load-generator.camel.yaml",
- "log-generator/agent.properties",
- "log-generator/application-dev.properties",
- "log-generator/log-generator.camel.yaml",
- "log-generator/opentelemetry-javaagent.jar",
- "ui-console/application-dev.properties",
- "ui-console/index.html",
- "ui-console/jms-file-storage.camel.yaml",
- "ui-console/rest-api.camel.yaml"
- ]
- },
- {
- "name": "sql",
- "title": "SQL Database",
- "description": "Use a SQL database with Camel and Postgres",
- "level": "intermediate",
- "tags": [
- "database",
- "sql",
- "postgres"
- ],
- "bundled": true,
"requiresDocker": true,
"hasCitrusTests": false,
"files": [
"README.md",
"application.properties",
- "sql.camel.yaml"
+ "rest-api.camel.yaml"
],
"infraServices": [
- "postgres"
- ]
- },
- {
- "name": "timer-log",
- "title": "Timer Log",
- "description": "Simple timer that logs a hello message every second",
- "level": "beginner",
- "tags": [
- "beginner",
- "timer",
- "log"
- ],
- "bundled": true,
- "requiresDocker": false,
- "hasCitrusTests": false,
- "files": [
- "README.md",
- "application.properties",
- "timer-log.camel.yaml"
- ]
- },
- {
- "name": "tui-hello-world",
- "title": "TUI Hello World",
- "description": "Say hello via TUI Send Message (F2) or CLI",
- "level": "beginner",
- "tags": [
- "beginner",
- "direct",
- "send",
- "tui"
- ],
- "bundled": true,
- "requiresDocker": false,
- "hasCitrusTests": false,
- "files": [
- "README.md",
- "tui-hello-world.yaml"
+ "keycloak"
]
},
{
- "name": "xslt",
+ "name": "transformation/xslt",
"title": "XSLT Transformation",
"description": "Basic XML transformation using XSLT style sheets",
"level": "beginner",
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/database/sql/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/database/sql/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/database/sql/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/database/sql/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/sql.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/database/sql/sql.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/sql/sql.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/database/sql/sql.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/aggregator/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/aggregator/README.md
new file mode 100644
index 000000000000..2f66737101fe
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/aggregator/README.md
@@ -0,0 +1,47 @@
+## Aggregator
+
+This example demonstrates the Aggregator EIP.
+
+Individual order messages are collected into batches of 5 using the Aggregator EIP.
+The `StringAggregationStrategy` joins message bodies with a comma delimiter.
+
+A timer generates one order per second. The aggregator collects 5 orders before
+releasing the batch, which is then logged as a single combined message.
+
+### Install JBang
+
+First install JBang according to https://www.jbang.dev
+
+When JBang is installed then you should be able to run from a shell:
+
+```sh
+$ jbang --version
+```
+
+This will output the version of JBang.
+
+To run this example you can either install Camel on JBang via:
+
+```sh
+$ jbang app install camel@apache/camel
+```
+
+Which allows to run Camel CLI with `camel` as shown below.
+
+### How to run
+
+You can run this example using:
+
+```sh
+$ camel run *
+```
+
+### Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+[let us know](https://camel.apache.org/community/support/).
+
+We also love contributors, so
+[get involved](https://camel.apache.org/community/contributing/) :-)
+
+The Camel riders!
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/aggregator/aggregator.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/aggregator/aggregator.camel.yaml
new file mode 100644
index 000000000000..45a750c03a9b
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/aggregator/aggregator.camel.yaml
@@ -0,0 +1,37 @@
+- beans:
+ - name: myAggregationStrategy
+ type: "#class:org.apache.camel.processor.aggregate.StringAggregationStrategy"
+ properties:
+ delimiter: ", "
+
+- route:
+ id: order-generator
+ from:
+ uri: timer
+ parameters:
+ timerName: orders
+ period: 1000
+ steps:
+ - setBody:
+ expression:
+ simple:
+ expression: "Order-${exchangeProperty.CamelTimerCounter}"
+ - log:
+ message: "New: ${body}"
+ - to:
+ uri: direct:aggregate
+
+- route:
+ id: order-aggregator
+ from:
+ uri: direct:aggregate
+ steps:
+ - aggregate:
+ aggregationStrategy: "#bean:myAggregationStrategy"
+ correlationExpression:
+ constant:
+ expression: "true"
+ completionSize: 5
+ steps:
+ - log:
+ message: "Batch of 5: ${body}"
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/circuit-breaker/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/circuit-breaker/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/circuit-breaker/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/circuit-breaker/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/circuit-breaker/route.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/circuit-breaker/route.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/circuit-breaker/route.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/circuit-breaker/route.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/content-based-router/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/content-based-router/README.md
new file mode 100644
index 000000000000..d030d8dde2ad
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/content-based-router/README.md
@@ -0,0 +1,48 @@
+## Content Based Router
+
+This example demonstrates the Content Based Router EIP.
+
+A simulated temperature sensor generates random readings between 0 and 40.
+The route uses the `choice` EIP to classify each reading:
+
+- **Hot** (>= 30): logged as an alert
+- **Normal** (15-29): logged as normal
+- **Cold** (< 15): logged as an alert
+
+### Install JBang
+
+First install JBang according to https://www.jbang.dev
+
+When JBang is installed then you should be able to run from a shell:
+
+```sh
+$ jbang --version
+```
+
+This will output the version of JBang.
+
+To run this example you can either install Camel on JBang via:
+
+```sh
+$ jbang app install camel@apache/camel
+```
+
+Which allows to run Camel CLI with `camel` as shown below.
+
+### How to run
+
+You can run this example using:
+
+```sh
+$ camel run *
+```
+
+### Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+[let us know](https://camel.apache.org/community/support/).
+
+We also love contributors, so
+[get involved](https://camel.apache.org/community/contributing/) :-)
+
+The Camel riders!
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/content-based-router/content-based-router.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/content-based-router/content-based-router.camel.yaml
new file mode 100644
index 000000000000..698c2b1c39dc
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/content-based-router/content-based-router.camel.yaml
@@ -0,0 +1,45 @@
+- route:
+ id: sensor
+ from:
+ uri: timer
+ parameters:
+ timerName: sensor
+ period: 1000
+ steps:
+ - setBody:
+ expression:
+ simple:
+ expression: "${random(0,40)}"
+ - convertBodyTo:
+ type: int
+ - choice:
+ when:
+ - simple:
+ expression: "${body} >= 30"
+ steps:
+ - setHeader:
+ name: level
+ expression:
+ constant:
+ expression: hot
+ - log:
+ message: "Hot alert: ${body} C"
+ - simple:
+ expression: "${body} >= 15"
+ steps:
+ - setHeader:
+ name: level
+ expression:
+ constant:
+ expression: normal
+ - log:
+ message: "Normal: ${body} C"
+ otherwise:
+ steps:
+ - setHeader:
+ name: level
+ expression:
+ constant:
+ expression: cold
+ - log:
+ message: "Cold alert: ${body} C"
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/splitter/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/splitter/README.md
new file mode 100644
index 000000000000..ea673ccfe3aa
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/splitter/README.md
@@ -0,0 +1,47 @@
+## Splitter
+
+This example demonstrates the Splitter EIP.
+
+A batch of comma-separated product names is split into individual messages.
+Each item is logged with its split index.
+
+The splitter processes each part of the message independently, which is useful
+for breaking down bulk data into individual records for downstream processing.
+
+### Install JBang
+
+First install JBang according to https://www.jbang.dev
+
+When JBang is installed then you should be able to run from a shell:
+
+```sh
+$ jbang --version
+```
+
+This will output the version of JBang.
+
+To run this example you can either install Camel on JBang via:
+
+```sh
+$ jbang app install camel@apache/camel
+```
+
+Which allows to run Camel CLI with `camel` as shown below.
+
+### How to run
+
+You can run this example using:
+
+```sh
+$ camel run *
+```
+
+### Help and contributions
+
+If you hit any problem using Camel or have some feedback, then please
+[let us know](https://camel.apache.org/community/support/).
+
+We also love contributors, so
+[get involved](https://camel.apache.org/community/contributing/) :-)
+
+The Camel riders!
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/splitter/splitter.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/splitter/splitter.camel.yaml
new file mode 100644
index 000000000000..b87b5b4b4d56
--- /dev/null
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/eip/splitter/splitter.camel.yaml
@@ -0,0 +1,22 @@
+- route:
+ id: order-splitter
+ from:
+ uri: timer
+ parameters:
+ timerName: orders
+ period: 5000
+ repeatCount: 3
+ steps:
+ - setBody:
+ expression:
+ constant:
+ expression: "Laptop,Phone,Tablet,Monitor,Keyboard"
+ - log:
+ message: "Received batch: ${body}"
+ - split:
+ expression:
+ tokenize:
+ token: ","
+ steps:
+ - log:
+ message: "Processing item ${headers.CamelSplitIndex}: ${body}"
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/groovy/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/language/groovy/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/groovy/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/language/groovy/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/groovy/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/language/groovy/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/groovy/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/language/groovy/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/groovy/groovy.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/language/groovy/groovy.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/groovy/groovy.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/language/groovy/groovy.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/memory-leak/MemoryLeak.java b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/memory-leak/MemoryLeak.java
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/memory-leak/MemoryLeak.java
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/memory-leak/MemoryLeak.java
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/memory-leak/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/memory-leak/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/memory-leak/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/memory-leak/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/message-size/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/message-size/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/message-size/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/message-size/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/message-size/message-size.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/message-size/message-size.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/message-size/message-size.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/message-size/message-size.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/message-size/orders.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/message-size/orders.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/message-size/orders.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/message-size/orders.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/route-topology/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/route-topology/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/route-topology/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/route-topology/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/route-topology/application.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/route-topology/application.properties
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/route-topology/application.properties
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/route-topology/application.properties
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/route-topology/route-topology.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/route-topology/route-topology.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/route-topology/route-topology.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/observability/route-topology/route-topology.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/README.md b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/README.md
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/README.md
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/README.md
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/consumer.camel.yaml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/consumer.camel.yaml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/consumer.camel.yaml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/consumer.camel.yaml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/input/account.xml b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/input/account.xml
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/input/account.xml
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/input/account.xml
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/stylesheet.xsl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/stylesheet.xsl
similarity index 100%
rename from dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/xslt/stylesheet.xsl
rename to dsl/camel-jbang/camel-jbang-core/src/main/resources/examples/transformation/xslt/stylesheet.xsl