This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch reorganize-examples-into-categories
in repository https://gitbox.apache.org/repos/asf/camel-jbang-examples.git

commit 25b221081149b4364bff54e3e42bf2b41fb30a12
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Jul 7 11:46:50 2026 +0200

    chore: reorganize examples into categorized folders
    
    Organize all examples into topic-based subfolders for better
    discoverability on GitHub and in the CLI/TUI example browser:
    
    - beginner/ - first examples for newcomers (timer-log, rest-api, etc.)
    - eip/ - Enterprise Integration Patterns (content-based-router, splitter, 
aggregator, circuit-breaker)
    - rest/ - REST and OpenAPI examples
    - messaging/ - JMS, Kafka, MQTT
    - database/ - SQL/PostgreSQL
    - cloud/ - AWS, IBM, Kubernetes
    - ai/ - LangChain4j, OpenAI, Watson, observability+AI
    - security/ - Keycloak, PQC, OCSF
    - transformation/ - XSLT, EDI
    - observability/ - diagnostics and monitoring tools
    - language/ - expression language examples
    
    Adds 3 new EIP examples:
    - eip/content-based-router: choice/when routing by message content
    - eip/splitter: split batch into individual messages
    - eip/aggregator: collect messages into batches
    
    The beginner/ folder sorts first alphabetically on GitHub,
    giving new users a clear starting point.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../docling-langchain4j-rag}/README.md             |   0
 .../application.properties                         |   0
 .../docling-langchain4j-rag}/compose.yaml          |   0
 .../docling-langchain4j-rag.yaml                   |   0
 .../docling-langchain4j-rag}/metadata.json         |   0
 .../docling-langchain4j-rag}/sample.md             |   0
 .../financial-doc-analyzer}/README.md              |   0
 .../financial-doc-analyzer}/application.properties |   0
 .../examples/banking-sector-brief.pdf              | Bin
 .../examples/magnificent-seven-update.pdf          | Bin
 .../examples/semiconductor-sector-analysis.pdf     | Bin
 .../examples/tesla-q3-2024.pdf                     | Bin
 .../financial-doc-analyzer.yaml                    |   0
 .../financial-doc-analyzer}/metadata.json          |   0
 {ibm => ai}/ibm-watson-language/README.md          |   0
 .../ibm-watson-language/application.properties     |   0
 .../comprehensive-analysis.camel.yaml              |   0
 .../ibm-watson-language-sink.kamelet.yaml          |   0
 {ibm => ai}/ibm-watson-language/metadata.json      |   0
 .../sentiment-analysis.camel.yaml                  |   0
 .../text-analysis-api.camel.yaml                   |   0
 .../openai-pii-redaction}/README.md                |   0
 .../openai-pii-redaction}/application.properties   |   0
 .../openai-pii-redaction}/metadata.json            |   0
 .../openai-pii-redaction}/pii-redaction.camel.yaml |   0
 .../openai-pii-redaction}/pii.schema.json          |   0
 .../smart-log-analyzer}/.kaoto                     |   0
 .../smart-log-analyzer}/README.md                  |   0
 .../analyzer/application-dev.properties            |   0
 .../analyzer/error-analyzer.camel.yaml             |   0
 .../caches/infinispan-events-config.json           |   0
 .../infinispan-events-to-process-config.json       |   0
 .../containers/docker-compose.yaml                 |   0
 .../containers/otel-collector-config.yaml          |   0
 .../correlator/application-dev.properties          |   0
 .../correlator/correlated-log-schema.json          |   0
 .../correlator/correlated-trace-schema.json        |   0
 .../correlator/infinispan.camel.yaml               |   0
 .../correlator/kafka-ca-cert.pem                   |   0
 .../correlator/kaoto-datamapper-4a94acc3.xsl       |   0
 .../correlator/kaoto-datamapper-8f5bb2dd.xsl       |   0
 .../correlator/logs-mapper.camel.yaml              |   0
 .../correlator/otel-log-record-schema.json         |   0
 .../correlator/otel-logs-schema.json               |   0
 .../correlator/otel-span-schema.json               |   0
 .../correlator/otel-traces-schema.json             |   0
 .../correlator/traces-mapper.camel.yaml            |   0
 .../first-iteration/analyzer.camel.yaml            |   0
 .../first-iteration/application.properties         |   0
 .../first-iteration/load-generator.camel.yaml      |   0
 .../test/citrus-application.properties             |   0
 .../test/first-iteration.citrus.it.yaml            |   0
 .../first-iteration/test/payload-error.json        |   0
 .../first-iteration/test/payload-info.json         |   0
 .../log-generator/agent.properties                 |   0
 .../log-generator/application-dev.properties       |   0
 .../log-generator/log-generator.camel.yaml         |   0
 .../log-generator/opentelemetry-javaagent.jar      | Bin
 .../smart-log-analyzer}/metadata.json              |   0
 .../ui-console/application-dev.properties          |   0
 .../smart-log-analyzer}/ui-console/index.html      |   0
 .../ui-console/jms-file-storage.camel.yaml         |   0
 .../ui-console/rest-api.camel.yaml                 |   0
 .../camel-1-tribute}/README.md                     |   0
 .../camel-1-tribute}/application.properties        |   0
 .../camel-1-tribute}/jms-to-file.camel.yaml        |   0
 .../camel-1-tribute}/metadata.json                 |   0
 {cron-log => beginner/cron-log}/README.md          |   0
 .../cron-log}/application.properties               |   0
 .../cron-log}/cron-log.camel.yaml                  |   0
 {cron-log => beginner/cron-log}/metadata.json      |   0
 {rest-api => beginner/rest-api}/README.md          |   0
 .../rest-api}/application.properties               |   0
 {rest-api => beginner/rest-api}/metadata.json      |   0
 .../rest-api}/rest-api.camel.yaml                  |   0
 {routes => beginner/routes}/Greeter.java           |   0
 {routes => beginner/routes}/README.md              |   0
 {routes => beginner/routes}/application.properties |   0
 {routes => beginner/routes}/beans.yaml             |   0
 {routes => beginner/routes}/metadata.json          |   0
 {routes => beginner/routes}/routes.camel.yaml      |   0
 {timer-log => beginner/timer-log}/README.md        |   0
 .../timer-log}/application.properties              |   0
 {timer-log => beginner/timer-log}/metadata.json    |   0
 .../timer-log}/timer-log.camel.yaml                |   0
 .../tui-hello-world}/README.md                     |   0
 .../tui-hello-world}/metadata.json                 |   0
 .../tui-hello-world}/tui-hello-world.yaml          |   0
 camel-jbang-example-catalog.json                   | 638 +++++++++++----------
 {aws => cloud}/aws-s3-event-based/README.md        |   0
 .../aws-s3-event-based/application.properties      |   0
 .../aws-s3-event-based/aws-s3-cdc-log.camel.yaml   |   0
 {aws => cloud}/aws-s3-event-based/example-file.txt |   0
 {aws => cloud}/aws-s3-event-based/metadata.json    |   0
 .../aws-s3-event-based/policy-queue.json           |   0
 .../aws-s3-event-based/terraform/main.tf           |   0
 .../aws-s3-event-based/test/amazonS3Client.groovy  |   0
 .../test/application.test.properties               |   0
 .../test/aws-s3-cdc-log.citrus.it.yaml             |   0
 .../test/citrus-application.properties             |   0
 {aws => cloud}/aws-sqs/README.md                   |   0
 {aws => cloud}/aws-sqs/application.properties      |   0
 {aws => cloud}/aws-sqs/http-to-aws-sqs.camel.yaml  |   0
 {aws => cloud}/aws-sqs/metadata.json               |   0
 {aws => cloud}/aws-sqs/test/amazonSQSClient.groovy |   0
 .../aws-sqs/test/application.test.properties       |   0
 .../aws-sqs}/test/citrus-application.properties    |   0
 .../aws-sqs/test/http-to-aws-sqs.citrus.it.yaml    |   0
 {ibm => cloud}/ibm-cos/README.md                   |   0
 {ibm => cloud}/ibm-cos/application.properties      |   0
 {ibm => cloud}/ibm-cos/ibm-cos-sink.kamelet.yaml   |   0
 {ibm => cloud}/ibm-cos/ibm-cos-source.kamelet.yaml |   0
 {ibm => cloud}/ibm-cos/ibm-cos-to-log.camel.yaml   |   0
 {ibm => cloud}/ibm-cos/kafka-to-ibm-cos.camel.yaml |   0
 {ibm => cloud}/ibm-cos/metadata.json               |   0
 .../secrets => cloud/kubernetes-secrets}/README.md |   0
 .../kubernetes-secrets}/application.properties     |   0
 .../kubernetes-secrets}/metadata.json              |   0
 .../kubernetes-secrets}/news-service.camel.yaml    |   0
 .../test/news-secret.properties                    |   0
 .../test/news-service.citrus.it.yaml               |   0
 .../service => cloud/kubernetes-service}/README.md |   0
 .../kubernetes-service}/metadata.json              |   0
 .../kubernetes-service}/news-service.camel.yaml    |   0
 .../test/news-service.citrus.it.yaml               |   0
 {sql => database/sql}/README.md                    |   0
 {sql => database/sql}/application.properties       |   0
 {sql => database/sql}/compose.yaml                 |   0
 {sql => database/sql}/metadata.json                |   0
 {sql => database/sql}/sql.camel.yaml               |   0
 eip/aggregator/README.md                           |  47 ++
 eip/aggregator/aggregator.camel.yaml               |  37 ++
 eip/aggregator/metadata.json                       |  11 +
 {circuit-breaker => eip/circuit-breaker}/README.md |   0
 .../circuit-breaker}/metadata.json                 |   0
 .../circuit-breaker}/route.camel.yaml              |   0
 eip/content-based-router/README.md                 |  48 ++
 .../content-based-router.camel.yaml                |  45 ++
 eip/content-based-router/metadata.json             |  11 +
 eip/splitter/README.md                             |  47 ++
 eip/splitter/metadata.json                         |  11 +
 eip/splitter/splitter.camel.yaml                   |  22 +
 {groovy => language/groovy}/README.md              |   0
 {groovy => language/groovy}/application.properties |   0
 {groovy => language/groovy}/groovy.camel.yaml      |   0
 {groovy => language/groovy}/metadata.json          |   0
 {artemis => messaging/artemis}/README.md           |   0
 .../artemis}/application.properties                |   0
 {artemis => messaging/artemis}/consumer.camel.yaml |   0
 {artemis => messaging/artemis}/metadata.json       |   0
 {artemis => messaging/artemis}/producer.camel.yaml |   0
 {ftp => messaging/ftp}/README.md                   |   0
 {ftp => messaging/ftp}/application.properties      |   0
 {ftp => messaging/ftp}/compose.yaml                |   0
 {ftp => messaging/ftp}/ftp-kaoto.png               | Bin
 {ftp => messaging/ftp}/ftp.camel.yaml              |   0
 {ftp => messaging/ftp}/jbang.properties            |   0
 {ftp => messaging/ftp}/metadata.json               |   0
 .../ftp}/test/citrus-application.properties        |   0
 {ftp => messaging/ftp}/test/ftp.citrus.it.yaml     |   0
 {ftp => messaging/ftp}/test/payload.xml            |   0
 {mqtt => messaging/mqtt}/README.md                 |   0
 {mqtt => messaging/mqtt}/application.properties    |   0
 {mqtt => messaging/mqtt}/compose.yaml              |   0
 {mqtt => messaging/mqtt}/infra/mosquitto.conf      |   0
 {mqtt => messaging/mqtt}/metadata.json             |   0
 {mqtt => messaging/mqtt}/mqtt-kaoto.png            | Bin
 {mqtt => messaging/mqtt}/mqtt-karavan.png          | Bin
 {mqtt => messaging/mqtt}/mqtt.camel.yaml           |   0
 {mqtt => messaging/mqtt}/start.sh                  |   0
 .../mqtt}/test/citrus-application.properties       |   0
 {mqtt => messaging/mqtt}/test/mqtt.citrus.it.yaml  |   0
 {mqtt => messaging/mqtt}/test/payload-low.json     |   0
 {mqtt => messaging/mqtt}/test/payload.json         |   0
 .../memory-leak}/MemoryLeak.java                   |   0
 .../memory-leak}/README.md                         |   0
 .../memory-leak}/metadata.json                     |   0
 .../message-size}/README.md                        |   0
 .../message-size}/metadata.json                    |   0
 .../message-size}/orders.camel.yaml                |   0
 .../route-topology}/README.md                      |   0
 .../route-topology}/application.properties         |   0
 .../route-topology}/metadata.json                  |   0
 .../route-topology}/route-topology.camel.yaml      |   0
 openapi/README.md                                  |  18 -
 {openapi/client => rest/openapi-client}/README.md  |   0
 .../openapi-client}/application.properties         |   0
 .../openapi-client}/examples/1001.json             |   0
 .../client => rest/openapi-client}/metadata.json   |   0
 .../openapi-client}/petstore-api.json              |   0
 .../openapi-client}/petstore-client.camel.yaml     |   0
 .../test/citrus-application.properties             |   0
 .../openapi-client}/test/examples/1001.json        |   0
 .../openapi-client}/test/petstore-api.json         |   0
 .../test/petstore-client.citrus.it.yaml            |   0
 .../openapi-client}/test/petstoreServer.groovy     |   0
 {openapi/server => rest/openapi-server}/README.md  |   0
 .../openapi-server}/application.properties         |   0
 .../openapi-server}/examples/pet/1000.json         |   0
 .../server => rest/openapi-server}/metadata.json   |   0
 .../openapi-server}/petstore-api.json              |   0
 .../openapi-server}/petstore.camel.yaml            |   0
 .../test/citrus-application.properties             |   0
 .../openapi-server}/test/examples/pet/1000.json    |   0
 .../openapi-server}/test/petstore-api.json         |   0
 .../openapi-server}/test/petstore.citrus.it.yaml   |   0
 .../keycloak-introspection-rest}/README.md         |   0
 .../application.properties                         |   0
 .../keycloak-introspection-rest}/metadata.json     |   0
 .../rest-api.camel.yaml                            |   0
 .../keycloak-ldap-migration}/README.md             |   0
 .../application.properties                         |   0
 .../ldap-migration.camel.yaml                      |   0
 .../keycloak-ldap-migration}/metadata.json         |   0
 .../keycloak-ldap-migration}/users.ldif            |   0
 .../keycloak-security-rest}/README.md              |   0
 .../keycloak-security-rest}/application.properties |   0
 .../keycloak-security-rest}/metadata.json          |   0
 .../keycloak-security-rest}/rest-api.camel.yaml    |   0
 {ocsf => security/ocsf}/README.md                  |   0
 {ocsf => security/ocsf}/application.properties     |   0
 {ocsf => security/ocsf}/metadata.json              |   0
 {ocsf => security/ocsf}/ocsf.camel.yaml            |   0
 .../ocsf}/test/authentication-event.json           |   0
 {ocsf => security/ocsf}/test/authentication_1.json |   0
 {ocsf => security/ocsf}/test/authentication_2.json |   0
 .../ocsf}/test/detection-finding.json              |   0
 .../ocsf}/test/detection-finding_1.json            |   0
 .../ocsf}/test/detection-finding_2.json            |   0
 .../ocsf}/test/detection-finding_3.json            |   0
 .../ocsf}/test/detection-finding_4.json            |   0
 .../ocsf}/test/detection-finding_5.json            |   0
 .../ocsf}/test/detection-finding_6.json            |   0
 {ocsf => security/ocsf}/test/file-activity_1.json  |   0
 .../ocsf}/test/network-activity_1.json             |   0
 .../ocsf}/test/network-activity_2.json             |   0
 .../ocsf}/test/process-activity_1.json             |   0
 .../ocsf}/test/vulnerability-finding_1.json        |   0
 .../ocsf}/test/vulnerability-finding_2.json        |   0
 .../pqc-document-signing}/README.md                |   0
 .../pqc-document-signing}/application.properties   |   0
 .../pqc-document-signing}/metadata.json            |   0
 .../pqc-document-signing.yaml                      |   0
 .../pqc-secure-file-transfer}/README.md            |   0
 .../application.properties                         |   0
 .../pqc-secure-file-transfer}/metadata.json        |   0
 .../pqc-secure-file-transfer.yaml                  |   0
 .../edi-x12-as2}/.gitignore                        |   0
 .../edi-x12-as2}/README.md                         |   0
 .../edi-x12-as2}/camel/App.java                    |   0
 .../edi-x12-as2}/camel/EmbeddedBroker.java         |   0
 .../camel/InvalidPartnerException.java             |   0
 .../edi-x12-as2}/camel/application.properties      |   0
 .../edi-x12-as2}/camel/broker.xml                  |   0
 .../edi-x12-as2}/camel/edi-x12-as2.camel.yaml      |   0
 .../edi-x12-as2}/camel/fake.camel.yaml             |   0
 .../edi-x12-as2-camel-smooks.excalidraw            |   0
 .../edi-x12-as2}/edi-x12-as2-camel-smooks.png      | Bin
 .../edi-x12-as2}/ftl/segment-id-attr.xml.ftl       |   0
 .../edi-x12-as2}/ftl/x12-ack.xml.ftl               |   0
 .../edi-x12-as2}/metadata.json                     |   0
 .../edi-x12-as2}/smooks/gen-x12-ack-config.xml     |   0
 .../edi-x12-as2}/smooks/ingest-x12-config.xml      |   0
 .../edi-x12-as2}/test/application.test.properties  |   0
 .../test/citrus-application.properties             |   0
 .../edi-x12-as2}/test/compose.yaml                 |   0
 .../edi-x12-as2}/test/edi-x12-as2.citrus.it.yaml   |   0
 .../edi-x12-as2}/test/payload.edi                  |   0
 {xslt => transformation/xslt}/README.md            |   0
 {xslt => transformation/xslt}/consumer.camel.yaml  |   0
 {xslt => transformation/xslt}/input/account.xml    |   0
 {xslt => transformation/xslt}/metadata.json        |   0
 {xslt => transformation/xslt}/stylesheet.xsl       |   0
 273 files changed, 625 insertions(+), 310 deletions(-)

diff --git a/docling-langchain4j-rag/README.md 
b/ai/docling-langchain4j-rag/README.md
similarity index 100%
rename from docling-langchain4j-rag/README.md
rename to ai/docling-langchain4j-rag/README.md
diff --git a/docling-langchain4j-rag/application.properties 
b/ai/docling-langchain4j-rag/application.properties
similarity index 100%
rename from docling-langchain4j-rag/application.properties
rename to ai/docling-langchain4j-rag/application.properties
diff --git a/docling-langchain4j-rag/compose.yaml 
b/ai/docling-langchain4j-rag/compose.yaml
similarity index 100%
rename from docling-langchain4j-rag/compose.yaml
rename to ai/docling-langchain4j-rag/compose.yaml
diff --git a/docling-langchain4j-rag/docling-langchain4j-rag.yaml 
b/ai/docling-langchain4j-rag/docling-langchain4j-rag.yaml
similarity index 100%
rename from docling-langchain4j-rag/docling-langchain4j-rag.yaml
rename to ai/docling-langchain4j-rag/docling-langchain4j-rag.yaml
diff --git a/docling-langchain4j-rag/metadata.json 
b/ai/docling-langchain4j-rag/metadata.json
similarity index 100%
rename from docling-langchain4j-rag/metadata.json
rename to ai/docling-langchain4j-rag/metadata.json
diff --git a/docling-langchain4j-rag/sample.md 
b/ai/docling-langchain4j-rag/sample.md
similarity index 100%
rename from docling-langchain4j-rag/sample.md
rename to ai/docling-langchain4j-rag/sample.md
diff --git a/financial-doc-analyzer/README.md 
b/ai/financial-doc-analyzer/README.md
similarity index 100%
rename from financial-doc-analyzer/README.md
rename to ai/financial-doc-analyzer/README.md
diff --git a/financial-doc-analyzer/application.properties 
b/ai/financial-doc-analyzer/application.properties
similarity index 100%
rename from financial-doc-analyzer/application.properties
rename to ai/financial-doc-analyzer/application.properties
diff --git a/financial-doc-analyzer/examples/banking-sector-brief.pdf 
b/ai/financial-doc-analyzer/examples/banking-sector-brief.pdf
similarity index 100%
rename from financial-doc-analyzer/examples/banking-sector-brief.pdf
rename to ai/financial-doc-analyzer/examples/banking-sector-brief.pdf
diff --git a/financial-doc-analyzer/examples/magnificent-seven-update.pdf 
b/ai/financial-doc-analyzer/examples/magnificent-seven-update.pdf
similarity index 100%
rename from financial-doc-analyzer/examples/magnificent-seven-update.pdf
rename to ai/financial-doc-analyzer/examples/magnificent-seven-update.pdf
diff --git a/financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf 
b/ai/financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf
similarity index 100%
rename from financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf
rename to ai/financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf
diff --git a/financial-doc-analyzer/examples/tesla-q3-2024.pdf 
b/ai/financial-doc-analyzer/examples/tesla-q3-2024.pdf
similarity index 100%
rename from financial-doc-analyzer/examples/tesla-q3-2024.pdf
rename to ai/financial-doc-analyzer/examples/tesla-q3-2024.pdf
diff --git a/financial-doc-analyzer/financial-doc-analyzer.yaml 
b/ai/financial-doc-analyzer/financial-doc-analyzer.yaml
similarity index 100%
rename from financial-doc-analyzer/financial-doc-analyzer.yaml
rename to ai/financial-doc-analyzer/financial-doc-analyzer.yaml
diff --git a/financial-doc-analyzer/metadata.json 
b/ai/financial-doc-analyzer/metadata.json
similarity index 100%
rename from financial-doc-analyzer/metadata.json
rename to ai/financial-doc-analyzer/metadata.json
diff --git a/ibm/ibm-watson-language/README.md 
b/ai/ibm-watson-language/README.md
similarity index 100%
rename from ibm/ibm-watson-language/README.md
rename to ai/ibm-watson-language/README.md
diff --git a/ibm/ibm-watson-language/application.properties 
b/ai/ibm-watson-language/application.properties
similarity index 100%
rename from ibm/ibm-watson-language/application.properties
rename to ai/ibm-watson-language/application.properties
diff --git a/ibm/ibm-watson-language/comprehensive-analysis.camel.yaml 
b/ai/ibm-watson-language/comprehensive-analysis.camel.yaml
similarity index 100%
rename from ibm/ibm-watson-language/comprehensive-analysis.camel.yaml
rename to ai/ibm-watson-language/comprehensive-analysis.camel.yaml
diff --git a/ibm/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml 
b/ai/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml
similarity index 100%
rename from ibm/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml
rename to ai/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml
diff --git a/ibm/ibm-watson-language/metadata.json 
b/ai/ibm-watson-language/metadata.json
similarity index 100%
rename from ibm/ibm-watson-language/metadata.json
rename to ai/ibm-watson-language/metadata.json
diff --git a/ibm/ibm-watson-language/sentiment-analysis.camel.yaml 
b/ai/ibm-watson-language/sentiment-analysis.camel.yaml
similarity index 100%
rename from ibm/ibm-watson-language/sentiment-analysis.camel.yaml
rename to ai/ibm-watson-language/sentiment-analysis.camel.yaml
diff --git a/ibm/ibm-watson-language/text-analysis-api.camel.yaml 
b/ai/ibm-watson-language/text-analysis-api.camel.yaml
similarity index 100%
rename from ibm/ibm-watson-language/text-analysis-api.camel.yaml
rename to ai/ibm-watson-language/text-analysis-api.camel.yaml
diff --git a/openai/pii-redaction/README.md b/ai/openai-pii-redaction/README.md
similarity index 100%
rename from openai/pii-redaction/README.md
rename to ai/openai-pii-redaction/README.md
diff --git a/openai/pii-redaction/application.properties 
b/ai/openai-pii-redaction/application.properties
similarity index 100%
rename from openai/pii-redaction/application.properties
rename to ai/openai-pii-redaction/application.properties
diff --git a/openai/pii-redaction/metadata.json 
b/ai/openai-pii-redaction/metadata.json
similarity index 100%
rename from openai/pii-redaction/metadata.json
rename to ai/openai-pii-redaction/metadata.json
diff --git a/openai/pii-redaction/pii-redaction.camel.yaml 
b/ai/openai-pii-redaction/pii-redaction.camel.yaml
similarity index 100%
rename from openai/pii-redaction/pii-redaction.camel.yaml
rename to ai/openai-pii-redaction/pii-redaction.camel.yaml
diff --git a/openai/pii-redaction/pii.schema.json 
b/ai/openai-pii-redaction/pii.schema.json
similarity index 100%
rename from openai/pii-redaction/pii.schema.json
rename to ai/openai-pii-redaction/pii.schema.json
diff --git a/smart-log-analyzer/.kaoto b/ai/smart-log-analyzer/.kaoto
similarity index 100%
rename from smart-log-analyzer/.kaoto
rename to ai/smart-log-analyzer/.kaoto
diff --git a/smart-log-analyzer/README.md b/ai/smart-log-analyzer/README.md
similarity index 100%
rename from smart-log-analyzer/README.md
rename to ai/smart-log-analyzer/README.md
diff --git a/smart-log-analyzer/analyzer/application-dev.properties 
b/ai/smart-log-analyzer/analyzer/application-dev.properties
similarity index 100%
rename from smart-log-analyzer/analyzer/application-dev.properties
rename to ai/smart-log-analyzer/analyzer/application-dev.properties
diff --git a/smart-log-analyzer/analyzer/error-analyzer.camel.yaml 
b/ai/smart-log-analyzer/analyzer/error-analyzer.camel.yaml
similarity index 100%
rename from smart-log-analyzer/analyzer/error-analyzer.camel.yaml
rename to ai/smart-log-analyzer/analyzer/error-analyzer.camel.yaml
diff --git a/smart-log-analyzer/containers/caches/infinispan-events-config.json 
b/ai/smart-log-analyzer/containers/caches/infinispan-events-config.json
similarity index 100%
rename from smart-log-analyzer/containers/caches/infinispan-events-config.json
rename to ai/smart-log-analyzer/containers/caches/infinispan-events-config.json
diff --git 
a/smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json 
b/ai/smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json
similarity index 100%
rename from 
smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json
rename to 
ai/smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json
diff --git a/smart-log-analyzer/containers/docker-compose.yaml 
b/ai/smart-log-analyzer/containers/docker-compose.yaml
similarity index 100%
rename from smart-log-analyzer/containers/docker-compose.yaml
rename to ai/smart-log-analyzer/containers/docker-compose.yaml
diff --git a/smart-log-analyzer/containers/otel-collector-config.yaml 
b/ai/smart-log-analyzer/containers/otel-collector-config.yaml
similarity index 100%
rename from smart-log-analyzer/containers/otel-collector-config.yaml
rename to ai/smart-log-analyzer/containers/otel-collector-config.yaml
diff --git a/smart-log-analyzer/correlator/application-dev.properties 
b/ai/smart-log-analyzer/correlator/application-dev.properties
similarity index 100%
rename from smart-log-analyzer/correlator/application-dev.properties
rename to ai/smart-log-analyzer/correlator/application-dev.properties
diff --git a/smart-log-analyzer/correlator/correlated-log-schema.json 
b/ai/smart-log-analyzer/correlator/correlated-log-schema.json
similarity index 100%
rename from smart-log-analyzer/correlator/correlated-log-schema.json
rename to ai/smart-log-analyzer/correlator/correlated-log-schema.json
diff --git a/smart-log-analyzer/correlator/correlated-trace-schema.json 
b/ai/smart-log-analyzer/correlator/correlated-trace-schema.json
similarity index 100%
rename from smart-log-analyzer/correlator/correlated-trace-schema.json
rename to ai/smart-log-analyzer/correlator/correlated-trace-schema.json
diff --git a/smart-log-analyzer/correlator/infinispan.camel.yaml 
b/ai/smart-log-analyzer/correlator/infinispan.camel.yaml
similarity index 100%
rename from smart-log-analyzer/correlator/infinispan.camel.yaml
rename to ai/smart-log-analyzer/correlator/infinispan.camel.yaml
diff --git a/smart-log-analyzer/correlator/kafka-ca-cert.pem 
b/ai/smart-log-analyzer/correlator/kafka-ca-cert.pem
similarity index 100%
rename from smart-log-analyzer/correlator/kafka-ca-cert.pem
rename to ai/smart-log-analyzer/correlator/kafka-ca-cert.pem
diff --git a/smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl 
b/ai/smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl
similarity index 100%
rename from smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl
rename to ai/smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl
diff --git a/smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl 
b/ai/smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl
similarity index 100%
rename from smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl
rename to ai/smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl
diff --git a/smart-log-analyzer/correlator/logs-mapper.camel.yaml 
b/ai/smart-log-analyzer/correlator/logs-mapper.camel.yaml
similarity index 100%
rename from smart-log-analyzer/correlator/logs-mapper.camel.yaml
rename to ai/smart-log-analyzer/correlator/logs-mapper.camel.yaml
diff --git a/smart-log-analyzer/correlator/otel-log-record-schema.json 
b/ai/smart-log-analyzer/correlator/otel-log-record-schema.json
similarity index 100%
rename from smart-log-analyzer/correlator/otel-log-record-schema.json
rename to ai/smart-log-analyzer/correlator/otel-log-record-schema.json
diff --git a/smart-log-analyzer/correlator/otel-logs-schema.json 
b/ai/smart-log-analyzer/correlator/otel-logs-schema.json
similarity index 100%
rename from smart-log-analyzer/correlator/otel-logs-schema.json
rename to ai/smart-log-analyzer/correlator/otel-logs-schema.json
diff --git a/smart-log-analyzer/correlator/otel-span-schema.json 
b/ai/smart-log-analyzer/correlator/otel-span-schema.json
similarity index 100%
rename from smart-log-analyzer/correlator/otel-span-schema.json
rename to ai/smart-log-analyzer/correlator/otel-span-schema.json
diff --git a/smart-log-analyzer/correlator/otel-traces-schema.json 
b/ai/smart-log-analyzer/correlator/otel-traces-schema.json
similarity index 100%
rename from smart-log-analyzer/correlator/otel-traces-schema.json
rename to ai/smart-log-analyzer/correlator/otel-traces-schema.json
diff --git a/smart-log-analyzer/correlator/traces-mapper.camel.yaml 
b/ai/smart-log-analyzer/correlator/traces-mapper.camel.yaml
similarity index 100%
rename from smart-log-analyzer/correlator/traces-mapper.camel.yaml
rename to ai/smart-log-analyzer/correlator/traces-mapper.camel.yaml
diff --git a/smart-log-analyzer/first-iteration/analyzer.camel.yaml 
b/ai/smart-log-analyzer/first-iteration/analyzer.camel.yaml
similarity index 100%
rename from smart-log-analyzer/first-iteration/analyzer.camel.yaml
rename to ai/smart-log-analyzer/first-iteration/analyzer.camel.yaml
diff --git a/smart-log-analyzer/first-iteration/application.properties 
b/ai/smart-log-analyzer/first-iteration/application.properties
similarity index 100%
rename from smart-log-analyzer/first-iteration/application.properties
rename to ai/smart-log-analyzer/first-iteration/application.properties
diff --git a/smart-log-analyzer/first-iteration/load-generator.camel.yaml 
b/ai/smart-log-analyzer/first-iteration/load-generator.camel.yaml
similarity index 100%
rename from smart-log-analyzer/first-iteration/load-generator.camel.yaml
rename to ai/smart-log-analyzer/first-iteration/load-generator.camel.yaml
diff --git a/aws/aws-s3-event-based/test/citrus-application.properties 
b/ai/smart-log-analyzer/first-iteration/test/citrus-application.properties
similarity index 100%
rename from aws/aws-s3-event-based/test/citrus-application.properties
rename to 
ai/smart-log-analyzer/first-iteration/test/citrus-application.properties
diff --git 
a/smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml 
b/ai/smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml
similarity index 100%
rename from 
smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml
rename to 
ai/smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml
diff --git a/smart-log-analyzer/first-iteration/test/payload-error.json 
b/ai/smart-log-analyzer/first-iteration/test/payload-error.json
similarity index 100%
rename from smart-log-analyzer/first-iteration/test/payload-error.json
rename to ai/smart-log-analyzer/first-iteration/test/payload-error.json
diff --git a/smart-log-analyzer/first-iteration/test/payload-info.json 
b/ai/smart-log-analyzer/first-iteration/test/payload-info.json
similarity index 100%
rename from smart-log-analyzer/first-iteration/test/payload-info.json
rename to ai/smart-log-analyzer/first-iteration/test/payload-info.json
diff --git a/smart-log-analyzer/log-generator/agent.properties 
b/ai/smart-log-analyzer/log-generator/agent.properties
similarity index 100%
rename from smart-log-analyzer/log-generator/agent.properties
rename to ai/smart-log-analyzer/log-generator/agent.properties
diff --git a/smart-log-analyzer/log-generator/application-dev.properties 
b/ai/smart-log-analyzer/log-generator/application-dev.properties
similarity index 100%
rename from smart-log-analyzer/log-generator/application-dev.properties
rename to ai/smart-log-analyzer/log-generator/application-dev.properties
diff --git a/smart-log-analyzer/log-generator/log-generator.camel.yaml 
b/ai/smart-log-analyzer/log-generator/log-generator.camel.yaml
similarity index 100%
rename from smart-log-analyzer/log-generator/log-generator.camel.yaml
rename to ai/smart-log-analyzer/log-generator/log-generator.camel.yaml
diff --git a/smart-log-analyzer/log-generator/opentelemetry-javaagent.jar 
b/ai/smart-log-analyzer/log-generator/opentelemetry-javaagent.jar
similarity index 100%
rename from smart-log-analyzer/log-generator/opentelemetry-javaagent.jar
rename to ai/smart-log-analyzer/log-generator/opentelemetry-javaagent.jar
diff --git a/smart-log-analyzer/metadata.json 
b/ai/smart-log-analyzer/metadata.json
similarity index 100%
rename from smart-log-analyzer/metadata.json
rename to ai/smart-log-analyzer/metadata.json
diff --git a/smart-log-analyzer/ui-console/application-dev.properties 
b/ai/smart-log-analyzer/ui-console/application-dev.properties
similarity index 100%
rename from smart-log-analyzer/ui-console/application-dev.properties
rename to ai/smart-log-analyzer/ui-console/application-dev.properties
diff --git a/smart-log-analyzer/ui-console/index.html 
b/ai/smart-log-analyzer/ui-console/index.html
similarity index 100%
rename from smart-log-analyzer/ui-console/index.html
rename to ai/smart-log-analyzer/ui-console/index.html
diff --git a/smart-log-analyzer/ui-console/jms-file-storage.camel.yaml 
b/ai/smart-log-analyzer/ui-console/jms-file-storage.camel.yaml
similarity index 100%
rename from smart-log-analyzer/ui-console/jms-file-storage.camel.yaml
rename to ai/smart-log-analyzer/ui-console/jms-file-storage.camel.yaml
diff --git a/smart-log-analyzer/ui-console/rest-api.camel.yaml 
b/ai/smart-log-analyzer/ui-console/rest-api.camel.yaml
similarity index 100%
rename from smart-log-analyzer/ui-console/rest-api.camel.yaml
rename to ai/smart-log-analyzer/ui-console/rest-api.camel.yaml
diff --git a/camel-1-tribute/README.md b/beginner/camel-1-tribute/README.md
similarity index 100%
rename from camel-1-tribute/README.md
rename to beginner/camel-1-tribute/README.md
diff --git a/camel-1-tribute/application.properties 
b/beginner/camel-1-tribute/application.properties
similarity index 100%
rename from camel-1-tribute/application.properties
rename to beginner/camel-1-tribute/application.properties
diff --git a/camel-1-tribute/jms-to-file.camel.yaml 
b/beginner/camel-1-tribute/jms-to-file.camel.yaml
similarity index 100%
rename from camel-1-tribute/jms-to-file.camel.yaml
rename to beginner/camel-1-tribute/jms-to-file.camel.yaml
diff --git a/camel-1-tribute/metadata.json 
b/beginner/camel-1-tribute/metadata.json
similarity index 100%
rename from camel-1-tribute/metadata.json
rename to beginner/camel-1-tribute/metadata.json
diff --git a/cron-log/README.md b/beginner/cron-log/README.md
similarity index 100%
rename from cron-log/README.md
rename to beginner/cron-log/README.md
diff --git a/cron-log/application.properties 
b/beginner/cron-log/application.properties
similarity index 100%
rename from cron-log/application.properties
rename to beginner/cron-log/application.properties
diff --git a/cron-log/cron-log.camel.yaml 
b/beginner/cron-log/cron-log.camel.yaml
similarity index 100%
rename from cron-log/cron-log.camel.yaml
rename to beginner/cron-log/cron-log.camel.yaml
diff --git a/cron-log/metadata.json b/beginner/cron-log/metadata.json
similarity index 100%
rename from cron-log/metadata.json
rename to beginner/cron-log/metadata.json
diff --git a/rest-api/README.md b/beginner/rest-api/README.md
similarity index 100%
rename from rest-api/README.md
rename to beginner/rest-api/README.md
diff --git a/rest-api/application.properties 
b/beginner/rest-api/application.properties
similarity index 100%
rename from rest-api/application.properties
rename to beginner/rest-api/application.properties
diff --git a/rest-api/metadata.json b/beginner/rest-api/metadata.json
similarity index 100%
rename from rest-api/metadata.json
rename to beginner/rest-api/metadata.json
diff --git a/rest-api/rest-api.camel.yaml 
b/beginner/rest-api/rest-api.camel.yaml
similarity index 100%
rename from rest-api/rest-api.camel.yaml
rename to beginner/rest-api/rest-api.camel.yaml
diff --git a/routes/Greeter.java b/beginner/routes/Greeter.java
similarity index 100%
rename from routes/Greeter.java
rename to beginner/routes/Greeter.java
diff --git a/routes/README.md b/beginner/routes/README.md
similarity index 100%
rename from routes/README.md
rename to beginner/routes/README.md
diff --git a/routes/application.properties 
b/beginner/routes/application.properties
similarity index 100%
rename from routes/application.properties
rename to beginner/routes/application.properties
diff --git a/routes/beans.yaml b/beginner/routes/beans.yaml
similarity index 100%
rename from routes/beans.yaml
rename to beginner/routes/beans.yaml
diff --git a/routes/metadata.json b/beginner/routes/metadata.json
similarity index 100%
rename from routes/metadata.json
rename to beginner/routes/metadata.json
diff --git a/routes/routes.camel.yaml b/beginner/routes/routes.camel.yaml
similarity index 100%
rename from routes/routes.camel.yaml
rename to beginner/routes/routes.camel.yaml
diff --git a/timer-log/README.md b/beginner/timer-log/README.md
similarity index 100%
rename from timer-log/README.md
rename to beginner/timer-log/README.md
diff --git a/timer-log/application.properties 
b/beginner/timer-log/application.properties
similarity index 100%
rename from timer-log/application.properties
rename to beginner/timer-log/application.properties
diff --git a/timer-log/metadata.json b/beginner/timer-log/metadata.json
similarity index 100%
rename from timer-log/metadata.json
rename to beginner/timer-log/metadata.json
diff --git a/timer-log/timer-log.camel.yaml 
b/beginner/timer-log/timer-log.camel.yaml
similarity index 100%
rename from timer-log/timer-log.camel.yaml
rename to beginner/timer-log/timer-log.camel.yaml
diff --git a/tui-hello-world/README.md b/beginner/tui-hello-world/README.md
similarity index 100%
rename from tui-hello-world/README.md
rename to beginner/tui-hello-world/README.md
diff --git a/tui-hello-world/metadata.json 
b/beginner/tui-hello-world/metadata.json
similarity index 100%
rename from tui-hello-world/metadata.json
rename to beginner/tui-hello-world/metadata.json
diff --git a/tui-hello-world/tui-hello-world.yaml 
b/beginner/tui-hello-world/tui-hello-world.yaml
similarity index 100%
rename from tui-hello-world/tui-hello-world.yaml
rename to beginner/tui-hello-world/tui-hello-world.yaml
diff --git a/camel-jbang-example-catalog.json b/camel-jbang-example-catalog.json
index a065576..bd1affb 100644
--- a/camel-jbang-example-catalog.json
+++ b/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/aws/aws-s3-event-based/README.md 
b/cloud/aws-s3-event-based/README.md
similarity index 100%
rename from aws/aws-s3-event-based/README.md
rename to cloud/aws-s3-event-based/README.md
diff --git a/aws/aws-s3-event-based/application.properties 
b/cloud/aws-s3-event-based/application.properties
similarity index 100%
rename from aws/aws-s3-event-based/application.properties
rename to cloud/aws-s3-event-based/application.properties
diff --git a/aws/aws-s3-event-based/aws-s3-cdc-log.camel.yaml 
b/cloud/aws-s3-event-based/aws-s3-cdc-log.camel.yaml
similarity index 100%
rename from aws/aws-s3-event-based/aws-s3-cdc-log.camel.yaml
rename to cloud/aws-s3-event-based/aws-s3-cdc-log.camel.yaml
diff --git a/aws/aws-s3-event-based/example-file.txt 
b/cloud/aws-s3-event-based/example-file.txt
similarity index 100%
rename from aws/aws-s3-event-based/example-file.txt
rename to cloud/aws-s3-event-based/example-file.txt
diff --git a/aws/aws-s3-event-based/metadata.json 
b/cloud/aws-s3-event-based/metadata.json
similarity index 100%
rename from aws/aws-s3-event-based/metadata.json
rename to cloud/aws-s3-event-based/metadata.json
diff --git a/aws/aws-s3-event-based/policy-queue.json 
b/cloud/aws-s3-event-based/policy-queue.json
similarity index 100%
rename from aws/aws-s3-event-based/policy-queue.json
rename to cloud/aws-s3-event-based/policy-queue.json
diff --git a/aws/aws-s3-event-based/terraform/main.tf 
b/cloud/aws-s3-event-based/terraform/main.tf
similarity index 100%
rename from aws/aws-s3-event-based/terraform/main.tf
rename to cloud/aws-s3-event-based/terraform/main.tf
diff --git a/aws/aws-s3-event-based/test/amazonS3Client.groovy 
b/cloud/aws-s3-event-based/test/amazonS3Client.groovy
similarity index 100%
rename from aws/aws-s3-event-based/test/amazonS3Client.groovy
rename to cloud/aws-s3-event-based/test/amazonS3Client.groovy
diff --git a/aws/aws-s3-event-based/test/application.test.properties 
b/cloud/aws-s3-event-based/test/application.test.properties
similarity index 100%
rename from aws/aws-s3-event-based/test/application.test.properties
rename to cloud/aws-s3-event-based/test/application.test.properties
diff --git a/aws/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml 
b/cloud/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml
similarity index 100%
rename from aws/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml
rename to cloud/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml
diff --git a/aws/aws-sqs/test/citrus-application.properties 
b/cloud/aws-s3-event-based/test/citrus-application.properties
similarity index 100%
rename from aws/aws-sqs/test/citrus-application.properties
rename to cloud/aws-s3-event-based/test/citrus-application.properties
diff --git a/aws/aws-sqs/README.md b/cloud/aws-sqs/README.md
similarity index 100%
rename from aws/aws-sqs/README.md
rename to cloud/aws-sqs/README.md
diff --git a/aws/aws-sqs/application.properties 
b/cloud/aws-sqs/application.properties
similarity index 100%
rename from aws/aws-sqs/application.properties
rename to cloud/aws-sqs/application.properties
diff --git a/aws/aws-sqs/http-to-aws-sqs.camel.yaml 
b/cloud/aws-sqs/http-to-aws-sqs.camel.yaml
similarity index 100%
rename from aws/aws-sqs/http-to-aws-sqs.camel.yaml
rename to cloud/aws-sqs/http-to-aws-sqs.camel.yaml
diff --git a/aws/aws-sqs/metadata.json b/cloud/aws-sqs/metadata.json
similarity index 100%
rename from aws/aws-sqs/metadata.json
rename to cloud/aws-sqs/metadata.json
diff --git a/aws/aws-sqs/test/amazonSQSClient.groovy 
b/cloud/aws-sqs/test/amazonSQSClient.groovy
similarity index 100%
rename from aws/aws-sqs/test/amazonSQSClient.groovy
rename to cloud/aws-sqs/test/amazonSQSClient.groovy
diff --git a/aws/aws-sqs/test/application.test.properties 
b/cloud/aws-sqs/test/application.test.properties
similarity index 100%
rename from aws/aws-sqs/test/application.test.properties
rename to cloud/aws-sqs/test/application.test.properties
diff --git a/edi-x12-as2/test/citrus-application.properties 
b/cloud/aws-sqs/test/citrus-application.properties
similarity index 100%
rename from edi-x12-as2/test/citrus-application.properties
rename to cloud/aws-sqs/test/citrus-application.properties
diff --git a/aws/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml 
b/cloud/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml
similarity index 100%
rename from aws/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml
rename to cloud/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml
diff --git a/ibm/ibm-cos/README.md b/cloud/ibm-cos/README.md
similarity index 100%
rename from ibm/ibm-cos/README.md
rename to cloud/ibm-cos/README.md
diff --git a/ibm/ibm-cos/application.properties 
b/cloud/ibm-cos/application.properties
similarity index 100%
rename from ibm/ibm-cos/application.properties
rename to cloud/ibm-cos/application.properties
diff --git a/ibm/ibm-cos/ibm-cos-sink.kamelet.yaml 
b/cloud/ibm-cos/ibm-cos-sink.kamelet.yaml
similarity index 100%
rename from ibm/ibm-cos/ibm-cos-sink.kamelet.yaml
rename to cloud/ibm-cos/ibm-cos-sink.kamelet.yaml
diff --git a/ibm/ibm-cos/ibm-cos-source.kamelet.yaml 
b/cloud/ibm-cos/ibm-cos-source.kamelet.yaml
similarity index 100%
rename from ibm/ibm-cos/ibm-cos-source.kamelet.yaml
rename to cloud/ibm-cos/ibm-cos-source.kamelet.yaml
diff --git a/ibm/ibm-cos/ibm-cos-to-log.camel.yaml 
b/cloud/ibm-cos/ibm-cos-to-log.camel.yaml
similarity index 100%
rename from ibm/ibm-cos/ibm-cos-to-log.camel.yaml
rename to cloud/ibm-cos/ibm-cos-to-log.camel.yaml
diff --git a/ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml 
b/cloud/ibm-cos/kafka-to-ibm-cos.camel.yaml
similarity index 100%
rename from ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml
rename to cloud/ibm-cos/kafka-to-ibm-cos.camel.yaml
diff --git a/ibm/ibm-cos/metadata.json b/cloud/ibm-cos/metadata.json
similarity index 100%
rename from ibm/ibm-cos/metadata.json
rename to cloud/ibm-cos/metadata.json
diff --git a/kubernetes/secrets/README.md b/cloud/kubernetes-secrets/README.md
similarity index 100%
rename from kubernetes/secrets/README.md
rename to cloud/kubernetes-secrets/README.md
diff --git a/kubernetes/secrets/application.properties 
b/cloud/kubernetes-secrets/application.properties
similarity index 100%
rename from kubernetes/secrets/application.properties
rename to cloud/kubernetes-secrets/application.properties
diff --git a/kubernetes/secrets/metadata.json 
b/cloud/kubernetes-secrets/metadata.json
similarity index 100%
rename from kubernetes/secrets/metadata.json
rename to cloud/kubernetes-secrets/metadata.json
diff --git a/kubernetes/secrets/news-service.camel.yaml 
b/cloud/kubernetes-secrets/news-service.camel.yaml
similarity index 100%
rename from kubernetes/secrets/news-service.camel.yaml
rename to cloud/kubernetes-secrets/news-service.camel.yaml
diff --git a/kubernetes/secrets/test/news-secret.properties 
b/cloud/kubernetes-secrets/test/news-secret.properties
similarity index 100%
rename from kubernetes/secrets/test/news-secret.properties
rename to cloud/kubernetes-secrets/test/news-secret.properties
diff --git a/kubernetes/secrets/test/news-service.citrus.it.yaml 
b/cloud/kubernetes-secrets/test/news-service.citrus.it.yaml
similarity index 100%
rename from kubernetes/secrets/test/news-service.citrus.it.yaml
rename to cloud/kubernetes-secrets/test/news-service.citrus.it.yaml
diff --git a/kubernetes/service/README.md b/cloud/kubernetes-service/README.md
similarity index 100%
rename from kubernetes/service/README.md
rename to cloud/kubernetes-service/README.md
diff --git a/kubernetes/service/metadata.json 
b/cloud/kubernetes-service/metadata.json
similarity index 100%
rename from kubernetes/service/metadata.json
rename to cloud/kubernetes-service/metadata.json
diff --git a/kubernetes/service/news-service.camel.yaml 
b/cloud/kubernetes-service/news-service.camel.yaml
similarity index 100%
rename from kubernetes/service/news-service.camel.yaml
rename to cloud/kubernetes-service/news-service.camel.yaml
diff --git a/kubernetes/service/test/news-service.citrus.it.yaml 
b/cloud/kubernetes-service/test/news-service.citrus.it.yaml
similarity index 100%
rename from kubernetes/service/test/news-service.citrus.it.yaml
rename to cloud/kubernetes-service/test/news-service.citrus.it.yaml
diff --git a/sql/README.md b/database/sql/README.md
similarity index 100%
rename from sql/README.md
rename to database/sql/README.md
diff --git a/sql/application.properties b/database/sql/application.properties
similarity index 100%
rename from sql/application.properties
rename to database/sql/application.properties
diff --git a/sql/compose.yaml b/database/sql/compose.yaml
similarity index 100%
rename from sql/compose.yaml
rename to database/sql/compose.yaml
diff --git a/sql/metadata.json b/database/sql/metadata.json
similarity index 100%
rename from sql/metadata.json
rename to database/sql/metadata.json
diff --git a/sql/sql.camel.yaml b/database/sql/sql.camel.yaml
similarity index 100%
rename from sql/sql.camel.yaml
rename to database/sql/sql.camel.yaml
diff --git a/eip/aggregator/README.md b/eip/aggregator/README.md
new file mode 100644
index 0000000..2f66737
--- /dev/null
+++ b/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/eip/aggregator/aggregator.camel.yaml 
b/eip/aggregator/aggregator.camel.yaml
new file mode 100644
index 0000000..45a750c
--- /dev/null
+++ b/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/eip/aggregator/metadata.json b/eip/aggregator/metadata.json
new file mode 100644
index 0000000..4b36284
--- /dev/null
+++ b/eip/aggregator/metadata.json
@@ -0,0 +1,11 @@
+{
+    "title": "Aggregator",
+    "description": "Collect individual messages into a batch using the 
Aggregator EIP",
+    "tags": [
+        "eip",
+        "aggregator",
+        "batch"
+    ],
+    "bundled": true,
+    "level": "beginner"
+}
diff --git a/circuit-breaker/README.md b/eip/circuit-breaker/README.md
similarity index 100%
rename from circuit-breaker/README.md
rename to eip/circuit-breaker/README.md
diff --git a/circuit-breaker/metadata.json b/eip/circuit-breaker/metadata.json
similarity index 100%
rename from circuit-breaker/metadata.json
rename to eip/circuit-breaker/metadata.json
diff --git a/circuit-breaker/route.camel.yaml 
b/eip/circuit-breaker/route.camel.yaml
similarity index 100%
rename from circuit-breaker/route.camel.yaml
rename to eip/circuit-breaker/route.camel.yaml
diff --git a/eip/content-based-router/README.md 
b/eip/content-based-router/README.md
new file mode 100644
index 0000000..d030d8d
--- /dev/null
+++ b/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/eip/content-based-router/content-based-router.camel.yaml 
b/eip/content-based-router/content-based-router.camel.yaml
new file mode 100644
index 0000000..698c2b1
--- /dev/null
+++ b/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/eip/content-based-router/metadata.json 
b/eip/content-based-router/metadata.json
new file mode 100644
index 0000000..a47e924
--- /dev/null
+++ b/eip/content-based-router/metadata.json
@@ -0,0 +1,11 @@
+{
+    "title": "Content Based Router",
+    "description": "Route messages to different destinations based on message 
content using the Choice EIP",
+    "tags": [
+        "eip",
+        "choice",
+        "routing"
+    ],
+    "bundled": true,
+    "level": "beginner"
+}
diff --git a/eip/splitter/README.md b/eip/splitter/README.md
new file mode 100644
index 0000000..ea673cc
--- /dev/null
+++ b/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/eip/splitter/metadata.json b/eip/splitter/metadata.json
new file mode 100644
index 0000000..f27e080
--- /dev/null
+++ b/eip/splitter/metadata.json
@@ -0,0 +1,11 @@
+{
+    "title": "Splitter",
+    "description": "Split a batch of items into individual messages for 
processing",
+    "tags": [
+        "eip",
+        "splitter",
+        "batch"
+    ],
+    "bundled": true,
+    "level": "beginner"
+}
diff --git a/eip/splitter/splitter.camel.yaml b/eip/splitter/splitter.camel.yaml
new file mode 100644
index 0000000..b87b5b4
--- /dev/null
+++ b/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/groovy/README.md b/language/groovy/README.md
similarity index 100%
rename from groovy/README.md
rename to language/groovy/README.md
diff --git a/groovy/application.properties 
b/language/groovy/application.properties
similarity index 100%
rename from groovy/application.properties
rename to language/groovy/application.properties
diff --git a/groovy/groovy.camel.yaml b/language/groovy/groovy.camel.yaml
similarity index 100%
rename from groovy/groovy.camel.yaml
rename to language/groovy/groovy.camel.yaml
diff --git a/groovy/metadata.json b/language/groovy/metadata.json
similarity index 100%
rename from groovy/metadata.json
rename to language/groovy/metadata.json
diff --git a/artemis/README.md b/messaging/artemis/README.md
similarity index 100%
rename from artemis/README.md
rename to messaging/artemis/README.md
diff --git a/artemis/application.properties 
b/messaging/artemis/application.properties
similarity index 100%
rename from artemis/application.properties
rename to messaging/artemis/application.properties
diff --git a/artemis/consumer.camel.yaml b/messaging/artemis/consumer.camel.yaml
similarity index 100%
rename from artemis/consumer.camel.yaml
rename to messaging/artemis/consumer.camel.yaml
diff --git a/artemis/metadata.json b/messaging/artemis/metadata.json
similarity index 100%
rename from artemis/metadata.json
rename to messaging/artemis/metadata.json
diff --git a/artemis/producer.camel.yaml b/messaging/artemis/producer.camel.yaml
similarity index 100%
rename from artemis/producer.camel.yaml
rename to messaging/artemis/producer.camel.yaml
diff --git a/ftp/README.md b/messaging/ftp/README.md
similarity index 100%
rename from ftp/README.md
rename to messaging/ftp/README.md
diff --git a/ftp/application.properties b/messaging/ftp/application.properties
similarity index 100%
rename from ftp/application.properties
rename to messaging/ftp/application.properties
diff --git a/ftp/compose.yaml b/messaging/ftp/compose.yaml
similarity index 100%
rename from ftp/compose.yaml
rename to messaging/ftp/compose.yaml
diff --git a/ftp/ftp-kaoto.png b/messaging/ftp/ftp-kaoto.png
similarity index 100%
rename from ftp/ftp-kaoto.png
rename to messaging/ftp/ftp-kaoto.png
diff --git a/ftp/ftp.camel.yaml b/messaging/ftp/ftp.camel.yaml
similarity index 100%
rename from ftp/ftp.camel.yaml
rename to messaging/ftp/ftp.camel.yaml
diff --git a/ftp/jbang.properties b/messaging/ftp/jbang.properties
similarity index 100%
rename from ftp/jbang.properties
rename to messaging/ftp/jbang.properties
diff --git a/ftp/metadata.json b/messaging/ftp/metadata.json
similarity index 100%
rename from ftp/metadata.json
rename to messaging/ftp/metadata.json
diff --git a/ftp/test/citrus-application.properties 
b/messaging/ftp/test/citrus-application.properties
similarity index 100%
rename from ftp/test/citrus-application.properties
rename to messaging/ftp/test/citrus-application.properties
diff --git a/ftp/test/ftp.citrus.it.yaml b/messaging/ftp/test/ftp.citrus.it.yaml
similarity index 100%
rename from ftp/test/ftp.citrus.it.yaml
rename to messaging/ftp/test/ftp.citrus.it.yaml
diff --git a/ftp/test/payload.xml b/messaging/ftp/test/payload.xml
similarity index 100%
rename from ftp/test/payload.xml
rename to messaging/ftp/test/payload.xml
diff --git a/mqtt/README.md b/messaging/mqtt/README.md
similarity index 100%
rename from mqtt/README.md
rename to messaging/mqtt/README.md
diff --git a/mqtt/application.properties b/messaging/mqtt/application.properties
similarity index 100%
rename from mqtt/application.properties
rename to messaging/mqtt/application.properties
diff --git a/mqtt/compose.yaml b/messaging/mqtt/compose.yaml
similarity index 100%
rename from mqtt/compose.yaml
rename to messaging/mqtt/compose.yaml
diff --git a/mqtt/infra/mosquitto.conf b/messaging/mqtt/infra/mosquitto.conf
similarity index 100%
rename from mqtt/infra/mosquitto.conf
rename to messaging/mqtt/infra/mosquitto.conf
diff --git a/mqtt/metadata.json b/messaging/mqtt/metadata.json
similarity index 100%
rename from mqtt/metadata.json
rename to messaging/mqtt/metadata.json
diff --git a/mqtt/mqtt-kaoto.png b/messaging/mqtt/mqtt-kaoto.png
similarity index 100%
rename from mqtt/mqtt-kaoto.png
rename to messaging/mqtt/mqtt-kaoto.png
diff --git a/mqtt/mqtt-karavan.png b/messaging/mqtt/mqtt-karavan.png
similarity index 100%
rename from mqtt/mqtt-karavan.png
rename to messaging/mqtt/mqtt-karavan.png
diff --git a/mqtt/mqtt.camel.yaml b/messaging/mqtt/mqtt.camel.yaml
similarity index 100%
rename from mqtt/mqtt.camel.yaml
rename to messaging/mqtt/mqtt.camel.yaml
diff --git a/mqtt/start.sh b/messaging/mqtt/start.sh
similarity index 100%
rename from mqtt/start.sh
rename to messaging/mqtt/start.sh
diff --git a/mqtt/test/citrus-application.properties 
b/messaging/mqtt/test/citrus-application.properties
similarity index 100%
rename from mqtt/test/citrus-application.properties
rename to messaging/mqtt/test/citrus-application.properties
diff --git a/mqtt/test/mqtt.citrus.it.yaml 
b/messaging/mqtt/test/mqtt.citrus.it.yaml
similarity index 100%
rename from mqtt/test/mqtt.citrus.it.yaml
rename to messaging/mqtt/test/mqtt.citrus.it.yaml
diff --git a/mqtt/test/payload-low.json b/messaging/mqtt/test/payload-low.json
similarity index 100%
rename from mqtt/test/payload-low.json
rename to messaging/mqtt/test/payload-low.json
diff --git a/mqtt/test/payload.json b/messaging/mqtt/test/payload.json
similarity index 100%
rename from mqtt/test/payload.json
rename to messaging/mqtt/test/payload.json
diff --git a/memory-leak/MemoryLeak.java 
b/observability/memory-leak/MemoryLeak.java
similarity index 100%
rename from memory-leak/MemoryLeak.java
rename to observability/memory-leak/MemoryLeak.java
diff --git a/memory-leak/README.md b/observability/memory-leak/README.md
similarity index 100%
rename from memory-leak/README.md
rename to observability/memory-leak/README.md
diff --git a/memory-leak/metadata.json b/observability/memory-leak/metadata.json
similarity index 100%
rename from memory-leak/metadata.json
rename to observability/memory-leak/metadata.json
diff --git a/message-size/README.md b/observability/message-size/README.md
similarity index 100%
rename from message-size/README.md
rename to observability/message-size/README.md
diff --git a/message-size/metadata.json 
b/observability/message-size/metadata.json
similarity index 100%
rename from message-size/metadata.json
rename to observability/message-size/metadata.json
diff --git a/message-size/orders.camel.yaml 
b/observability/message-size/orders.camel.yaml
similarity index 100%
rename from message-size/orders.camel.yaml
rename to observability/message-size/orders.camel.yaml
diff --git a/route-topology/README.md b/observability/route-topology/README.md
similarity index 100%
rename from route-topology/README.md
rename to observability/route-topology/README.md
diff --git a/route-topology/application.properties 
b/observability/route-topology/application.properties
similarity index 100%
rename from route-topology/application.properties
rename to observability/route-topology/application.properties
diff --git a/route-topology/metadata.json 
b/observability/route-topology/metadata.json
similarity index 100%
rename from route-topology/metadata.json
rename to observability/route-topology/metadata.json
diff --git a/route-topology/route-topology.camel.yaml 
b/observability/route-topology/route-topology.camel.yaml
similarity index 100%
rename from route-topology/route-topology.camel.yaml
rename to observability/route-topology/route-topology.camel.yaml
diff --git a/openapi/README.md b/openapi/README.md
deleted file mode 100644
index ab32e3b..0000000
--- a/openapi/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# OpenAPI
-
-This example is using Camel leveraging OpenAPI specifications on both client 
and server side.
-
-Please see the individual examples for:
-
-* [client](client/README.md)
-* [server](server/README.md)
-
-## 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/openapi/client/README.md b/rest/openapi-client/README.md
similarity index 100%
rename from openapi/client/README.md
rename to rest/openapi-client/README.md
diff --git a/openapi/client/application.properties 
b/rest/openapi-client/application.properties
similarity index 100%
rename from openapi/client/application.properties
rename to rest/openapi-client/application.properties
diff --git a/openapi/client/examples/1001.json 
b/rest/openapi-client/examples/1001.json
similarity index 100%
rename from openapi/client/examples/1001.json
rename to rest/openapi-client/examples/1001.json
diff --git a/openapi/client/metadata.json b/rest/openapi-client/metadata.json
similarity index 100%
rename from openapi/client/metadata.json
rename to rest/openapi-client/metadata.json
diff --git a/openapi/client/petstore-api.json 
b/rest/openapi-client/petstore-api.json
similarity index 100%
rename from openapi/client/petstore-api.json
rename to rest/openapi-client/petstore-api.json
diff --git a/openapi/client/petstore-client.camel.yaml 
b/rest/openapi-client/petstore-client.camel.yaml
similarity index 100%
rename from openapi/client/petstore-client.camel.yaml
rename to rest/openapi-client/petstore-client.camel.yaml
diff --git a/openapi/client/test/citrus-application.properties 
b/rest/openapi-client/test/citrus-application.properties
similarity index 100%
rename from openapi/client/test/citrus-application.properties
rename to rest/openapi-client/test/citrus-application.properties
diff --git a/openapi/client/test/examples/1001.json 
b/rest/openapi-client/test/examples/1001.json
similarity index 100%
rename from openapi/client/test/examples/1001.json
rename to rest/openapi-client/test/examples/1001.json
diff --git a/openapi/client/test/petstore-api.json 
b/rest/openapi-client/test/petstore-api.json
similarity index 100%
rename from openapi/client/test/petstore-api.json
rename to rest/openapi-client/test/petstore-api.json
diff --git a/openapi/client/test/petstore-client.citrus.it.yaml 
b/rest/openapi-client/test/petstore-client.citrus.it.yaml
similarity index 100%
rename from openapi/client/test/petstore-client.citrus.it.yaml
rename to rest/openapi-client/test/petstore-client.citrus.it.yaml
diff --git a/openapi/client/test/petstoreServer.groovy 
b/rest/openapi-client/test/petstoreServer.groovy
similarity index 100%
rename from openapi/client/test/petstoreServer.groovy
rename to rest/openapi-client/test/petstoreServer.groovy
diff --git a/openapi/server/README.md b/rest/openapi-server/README.md
similarity index 100%
rename from openapi/server/README.md
rename to rest/openapi-server/README.md
diff --git a/openapi/server/application.properties 
b/rest/openapi-server/application.properties
similarity index 100%
rename from openapi/server/application.properties
rename to rest/openapi-server/application.properties
diff --git a/openapi/server/examples/pet/1000.json 
b/rest/openapi-server/examples/pet/1000.json
similarity index 100%
rename from openapi/server/examples/pet/1000.json
rename to rest/openapi-server/examples/pet/1000.json
diff --git a/openapi/server/metadata.json b/rest/openapi-server/metadata.json
similarity index 100%
rename from openapi/server/metadata.json
rename to rest/openapi-server/metadata.json
diff --git a/openapi/server/petstore-api.json 
b/rest/openapi-server/petstore-api.json
similarity index 100%
rename from openapi/server/petstore-api.json
rename to rest/openapi-server/petstore-api.json
diff --git a/openapi/server/petstore.camel.yaml 
b/rest/openapi-server/petstore.camel.yaml
similarity index 100%
rename from openapi/server/petstore.camel.yaml
rename to rest/openapi-server/petstore.camel.yaml
diff --git a/openapi/server/test/citrus-application.properties 
b/rest/openapi-server/test/citrus-application.properties
similarity index 100%
rename from openapi/server/test/citrus-application.properties
rename to rest/openapi-server/test/citrus-application.properties
diff --git a/openapi/server/test/examples/pet/1000.json 
b/rest/openapi-server/test/examples/pet/1000.json
similarity index 100%
rename from openapi/server/test/examples/pet/1000.json
rename to rest/openapi-server/test/examples/pet/1000.json
diff --git a/openapi/server/test/petstore-api.json 
b/rest/openapi-server/test/petstore-api.json
similarity index 100%
rename from openapi/server/test/petstore-api.json
rename to rest/openapi-server/test/petstore-api.json
diff --git a/openapi/server/test/petstore.citrus.it.yaml 
b/rest/openapi-server/test/petstore.citrus.it.yaml
similarity index 100%
rename from openapi/server/test/petstore.citrus.it.yaml
rename to rest/openapi-server/test/petstore.citrus.it.yaml
diff --git a/keycloak-introspection-rest/README.md 
b/security/keycloak-introspection-rest/README.md
similarity index 100%
rename from keycloak-introspection-rest/README.md
rename to security/keycloak-introspection-rest/README.md
diff --git a/keycloak-introspection-rest/application.properties 
b/security/keycloak-introspection-rest/application.properties
similarity index 100%
rename from keycloak-introspection-rest/application.properties
rename to security/keycloak-introspection-rest/application.properties
diff --git a/keycloak-introspection-rest/metadata.json 
b/security/keycloak-introspection-rest/metadata.json
similarity index 100%
rename from keycloak-introspection-rest/metadata.json
rename to security/keycloak-introspection-rest/metadata.json
diff --git a/keycloak-introspection-rest/rest-api.camel.yaml 
b/security/keycloak-introspection-rest/rest-api.camel.yaml
similarity index 100%
rename from keycloak-introspection-rest/rest-api.camel.yaml
rename to security/keycloak-introspection-rest/rest-api.camel.yaml
diff --git a/keycloak-ldap-migration/README.md 
b/security/keycloak-ldap-migration/README.md
similarity index 100%
rename from keycloak-ldap-migration/README.md
rename to security/keycloak-ldap-migration/README.md
diff --git a/keycloak-ldap-migration/application.properties 
b/security/keycloak-ldap-migration/application.properties
similarity index 100%
rename from keycloak-ldap-migration/application.properties
rename to security/keycloak-ldap-migration/application.properties
diff --git a/keycloak-ldap-migration/ldap-migration.camel.yaml 
b/security/keycloak-ldap-migration/ldap-migration.camel.yaml
similarity index 100%
rename from keycloak-ldap-migration/ldap-migration.camel.yaml
rename to security/keycloak-ldap-migration/ldap-migration.camel.yaml
diff --git a/keycloak-ldap-migration/metadata.json 
b/security/keycloak-ldap-migration/metadata.json
similarity index 100%
rename from keycloak-ldap-migration/metadata.json
rename to security/keycloak-ldap-migration/metadata.json
diff --git a/keycloak-ldap-migration/users.ldif 
b/security/keycloak-ldap-migration/users.ldif
similarity index 100%
rename from keycloak-ldap-migration/users.ldif
rename to security/keycloak-ldap-migration/users.ldif
diff --git a/keycloak-security-rest/README.md 
b/security/keycloak-security-rest/README.md
similarity index 100%
rename from keycloak-security-rest/README.md
rename to security/keycloak-security-rest/README.md
diff --git a/keycloak-security-rest/application.properties 
b/security/keycloak-security-rest/application.properties
similarity index 100%
rename from keycloak-security-rest/application.properties
rename to security/keycloak-security-rest/application.properties
diff --git a/keycloak-security-rest/metadata.json 
b/security/keycloak-security-rest/metadata.json
similarity index 100%
rename from keycloak-security-rest/metadata.json
rename to security/keycloak-security-rest/metadata.json
diff --git a/keycloak-security-rest/rest-api.camel.yaml 
b/security/keycloak-security-rest/rest-api.camel.yaml
similarity index 100%
rename from keycloak-security-rest/rest-api.camel.yaml
rename to security/keycloak-security-rest/rest-api.camel.yaml
diff --git a/ocsf/README.md b/security/ocsf/README.md
similarity index 100%
rename from ocsf/README.md
rename to security/ocsf/README.md
diff --git a/ocsf/application.properties b/security/ocsf/application.properties
similarity index 100%
rename from ocsf/application.properties
rename to security/ocsf/application.properties
diff --git a/ocsf/metadata.json b/security/ocsf/metadata.json
similarity index 100%
rename from ocsf/metadata.json
rename to security/ocsf/metadata.json
diff --git a/ocsf/ocsf.camel.yaml b/security/ocsf/ocsf.camel.yaml
similarity index 100%
rename from ocsf/ocsf.camel.yaml
rename to security/ocsf/ocsf.camel.yaml
diff --git a/ocsf/test/authentication-event.json 
b/security/ocsf/test/authentication-event.json
similarity index 100%
rename from ocsf/test/authentication-event.json
rename to security/ocsf/test/authentication-event.json
diff --git a/ocsf/test/authentication_1.json 
b/security/ocsf/test/authentication_1.json
similarity index 100%
rename from ocsf/test/authentication_1.json
rename to security/ocsf/test/authentication_1.json
diff --git a/ocsf/test/authentication_2.json 
b/security/ocsf/test/authentication_2.json
similarity index 100%
rename from ocsf/test/authentication_2.json
rename to security/ocsf/test/authentication_2.json
diff --git a/ocsf/test/detection-finding.json 
b/security/ocsf/test/detection-finding.json
similarity index 100%
rename from ocsf/test/detection-finding.json
rename to security/ocsf/test/detection-finding.json
diff --git a/ocsf/test/detection-finding_1.json 
b/security/ocsf/test/detection-finding_1.json
similarity index 100%
rename from ocsf/test/detection-finding_1.json
rename to security/ocsf/test/detection-finding_1.json
diff --git a/ocsf/test/detection-finding_2.json 
b/security/ocsf/test/detection-finding_2.json
similarity index 100%
rename from ocsf/test/detection-finding_2.json
rename to security/ocsf/test/detection-finding_2.json
diff --git a/ocsf/test/detection-finding_3.json 
b/security/ocsf/test/detection-finding_3.json
similarity index 100%
rename from ocsf/test/detection-finding_3.json
rename to security/ocsf/test/detection-finding_3.json
diff --git a/ocsf/test/detection-finding_4.json 
b/security/ocsf/test/detection-finding_4.json
similarity index 100%
rename from ocsf/test/detection-finding_4.json
rename to security/ocsf/test/detection-finding_4.json
diff --git a/ocsf/test/detection-finding_5.json 
b/security/ocsf/test/detection-finding_5.json
similarity index 100%
rename from ocsf/test/detection-finding_5.json
rename to security/ocsf/test/detection-finding_5.json
diff --git a/ocsf/test/detection-finding_6.json 
b/security/ocsf/test/detection-finding_6.json
similarity index 100%
rename from ocsf/test/detection-finding_6.json
rename to security/ocsf/test/detection-finding_6.json
diff --git a/ocsf/test/file-activity_1.json 
b/security/ocsf/test/file-activity_1.json
similarity index 100%
rename from ocsf/test/file-activity_1.json
rename to security/ocsf/test/file-activity_1.json
diff --git a/ocsf/test/network-activity_1.json 
b/security/ocsf/test/network-activity_1.json
similarity index 100%
rename from ocsf/test/network-activity_1.json
rename to security/ocsf/test/network-activity_1.json
diff --git a/ocsf/test/network-activity_2.json 
b/security/ocsf/test/network-activity_2.json
similarity index 100%
rename from ocsf/test/network-activity_2.json
rename to security/ocsf/test/network-activity_2.json
diff --git a/ocsf/test/process-activity_1.json 
b/security/ocsf/test/process-activity_1.json
similarity index 100%
rename from ocsf/test/process-activity_1.json
rename to security/ocsf/test/process-activity_1.json
diff --git a/ocsf/test/vulnerability-finding_1.json 
b/security/ocsf/test/vulnerability-finding_1.json
similarity index 100%
rename from ocsf/test/vulnerability-finding_1.json
rename to security/ocsf/test/vulnerability-finding_1.json
diff --git a/ocsf/test/vulnerability-finding_2.json 
b/security/ocsf/test/vulnerability-finding_2.json
similarity index 100%
rename from ocsf/test/vulnerability-finding_2.json
rename to security/ocsf/test/vulnerability-finding_2.json
diff --git a/pqc-document-signing/README.md 
b/security/pqc-document-signing/README.md
similarity index 100%
rename from pqc-document-signing/README.md
rename to security/pqc-document-signing/README.md
diff --git a/pqc-document-signing/application.properties 
b/security/pqc-document-signing/application.properties
similarity index 100%
rename from pqc-document-signing/application.properties
rename to security/pqc-document-signing/application.properties
diff --git a/pqc-document-signing/metadata.json 
b/security/pqc-document-signing/metadata.json
similarity index 100%
rename from pqc-document-signing/metadata.json
rename to security/pqc-document-signing/metadata.json
diff --git a/pqc-document-signing/pqc-document-signing.yaml 
b/security/pqc-document-signing/pqc-document-signing.yaml
similarity index 100%
rename from pqc-document-signing/pqc-document-signing.yaml
rename to security/pqc-document-signing/pqc-document-signing.yaml
diff --git a/pqc-secure-file-transfer/README.md 
b/security/pqc-secure-file-transfer/README.md
similarity index 100%
rename from pqc-secure-file-transfer/README.md
rename to security/pqc-secure-file-transfer/README.md
diff --git a/pqc-secure-file-transfer/application.properties 
b/security/pqc-secure-file-transfer/application.properties
similarity index 100%
rename from pqc-secure-file-transfer/application.properties
rename to security/pqc-secure-file-transfer/application.properties
diff --git a/pqc-secure-file-transfer/metadata.json 
b/security/pqc-secure-file-transfer/metadata.json
similarity index 100%
rename from pqc-secure-file-transfer/metadata.json
rename to security/pqc-secure-file-transfer/metadata.json
diff --git a/pqc-secure-file-transfer/pqc-secure-file-transfer.yaml 
b/security/pqc-secure-file-transfer/pqc-secure-file-transfer.yaml
similarity index 100%
rename from pqc-secure-file-transfer/pqc-secure-file-transfer.yaml
rename to security/pqc-secure-file-transfer/pqc-secure-file-transfer.yaml
diff --git a/edi-x12-as2/.gitignore b/transformation/edi-x12-as2/.gitignore
similarity index 100%
rename from edi-x12-as2/.gitignore
rename to transformation/edi-x12-as2/.gitignore
diff --git a/edi-x12-as2/README.md b/transformation/edi-x12-as2/README.md
similarity index 100%
rename from edi-x12-as2/README.md
rename to transformation/edi-x12-as2/README.md
diff --git a/edi-x12-as2/camel/App.java 
b/transformation/edi-x12-as2/camel/App.java
similarity index 100%
rename from edi-x12-as2/camel/App.java
rename to transformation/edi-x12-as2/camel/App.java
diff --git a/edi-x12-as2/camel/EmbeddedBroker.java 
b/transformation/edi-x12-as2/camel/EmbeddedBroker.java
similarity index 100%
rename from edi-x12-as2/camel/EmbeddedBroker.java
rename to transformation/edi-x12-as2/camel/EmbeddedBroker.java
diff --git a/edi-x12-as2/camel/InvalidPartnerException.java 
b/transformation/edi-x12-as2/camel/InvalidPartnerException.java
similarity index 100%
rename from edi-x12-as2/camel/InvalidPartnerException.java
rename to transformation/edi-x12-as2/camel/InvalidPartnerException.java
diff --git a/edi-x12-as2/camel/application.properties 
b/transformation/edi-x12-as2/camel/application.properties
similarity index 100%
rename from edi-x12-as2/camel/application.properties
rename to transformation/edi-x12-as2/camel/application.properties
diff --git a/edi-x12-as2/camel/broker.xml 
b/transformation/edi-x12-as2/camel/broker.xml
similarity index 100%
rename from edi-x12-as2/camel/broker.xml
rename to transformation/edi-x12-as2/camel/broker.xml
diff --git a/edi-x12-as2/camel/edi-x12-as2.camel.yaml 
b/transformation/edi-x12-as2/camel/edi-x12-as2.camel.yaml
similarity index 100%
rename from edi-x12-as2/camel/edi-x12-as2.camel.yaml
rename to transformation/edi-x12-as2/camel/edi-x12-as2.camel.yaml
diff --git a/edi-x12-as2/camel/fake.camel.yaml 
b/transformation/edi-x12-as2/camel/fake.camel.yaml
similarity index 100%
rename from edi-x12-as2/camel/fake.camel.yaml
rename to transformation/edi-x12-as2/camel/fake.camel.yaml
diff --git a/edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw 
b/transformation/edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw
similarity index 100%
rename from edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw
rename to transformation/edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw
diff --git a/edi-x12-as2/edi-x12-as2-camel-smooks.png 
b/transformation/edi-x12-as2/edi-x12-as2-camel-smooks.png
similarity index 100%
rename from edi-x12-as2/edi-x12-as2-camel-smooks.png
rename to transformation/edi-x12-as2/edi-x12-as2-camel-smooks.png
diff --git a/edi-x12-as2/ftl/segment-id-attr.xml.ftl 
b/transformation/edi-x12-as2/ftl/segment-id-attr.xml.ftl
similarity index 100%
rename from edi-x12-as2/ftl/segment-id-attr.xml.ftl
rename to transformation/edi-x12-as2/ftl/segment-id-attr.xml.ftl
diff --git a/edi-x12-as2/ftl/x12-ack.xml.ftl 
b/transformation/edi-x12-as2/ftl/x12-ack.xml.ftl
similarity index 100%
rename from edi-x12-as2/ftl/x12-ack.xml.ftl
rename to transformation/edi-x12-as2/ftl/x12-ack.xml.ftl
diff --git a/edi-x12-as2/metadata.json 
b/transformation/edi-x12-as2/metadata.json
similarity index 100%
rename from edi-x12-as2/metadata.json
rename to transformation/edi-x12-as2/metadata.json
diff --git a/edi-x12-as2/smooks/gen-x12-ack-config.xml 
b/transformation/edi-x12-as2/smooks/gen-x12-ack-config.xml
similarity index 100%
rename from edi-x12-as2/smooks/gen-x12-ack-config.xml
rename to transformation/edi-x12-as2/smooks/gen-x12-ack-config.xml
diff --git a/edi-x12-as2/smooks/ingest-x12-config.xml 
b/transformation/edi-x12-as2/smooks/ingest-x12-config.xml
similarity index 100%
rename from edi-x12-as2/smooks/ingest-x12-config.xml
rename to transformation/edi-x12-as2/smooks/ingest-x12-config.xml
diff --git a/edi-x12-as2/test/application.test.properties 
b/transformation/edi-x12-as2/test/application.test.properties
similarity index 100%
rename from edi-x12-as2/test/application.test.properties
rename to transformation/edi-x12-as2/test/application.test.properties
diff --git 
a/smart-log-analyzer/first-iteration/test/citrus-application.properties 
b/transformation/edi-x12-as2/test/citrus-application.properties
similarity index 100%
rename from 
smart-log-analyzer/first-iteration/test/citrus-application.properties
rename to transformation/edi-x12-as2/test/citrus-application.properties
diff --git a/edi-x12-as2/test/compose.yaml 
b/transformation/edi-x12-as2/test/compose.yaml
similarity index 100%
rename from edi-x12-as2/test/compose.yaml
rename to transformation/edi-x12-as2/test/compose.yaml
diff --git a/edi-x12-as2/test/edi-x12-as2.citrus.it.yaml 
b/transformation/edi-x12-as2/test/edi-x12-as2.citrus.it.yaml
similarity index 100%
rename from edi-x12-as2/test/edi-x12-as2.citrus.it.yaml
rename to transformation/edi-x12-as2/test/edi-x12-as2.citrus.it.yaml
diff --git a/edi-x12-as2/test/payload.edi 
b/transformation/edi-x12-as2/test/payload.edi
similarity index 100%
rename from edi-x12-as2/test/payload.edi
rename to transformation/edi-x12-as2/test/payload.edi
diff --git a/xslt/README.md b/transformation/xslt/README.md
similarity index 100%
rename from xslt/README.md
rename to transformation/xslt/README.md
diff --git a/xslt/consumer.camel.yaml b/transformation/xslt/consumer.camel.yaml
similarity index 100%
rename from xslt/consumer.camel.yaml
rename to transformation/xslt/consumer.camel.yaml
diff --git a/xslt/input/account.xml b/transformation/xslt/input/account.xml
similarity index 100%
rename from xslt/input/account.xml
rename to transformation/xslt/input/account.xml
diff --git a/xslt/metadata.json b/transformation/xslt/metadata.json
similarity index 100%
rename from xslt/metadata.json
rename to transformation/xslt/metadata.json
diff --git a/xslt/stylesheet.xsl b/transformation/xslt/stylesheet.xsl
similarity index 100%
rename from xslt/stylesheet.xsl
rename to transformation/xslt/stylesheet.xsl

Reply via email to