This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-jbang-examples.git
The following commit(s) were added to refs/heads/main by this push:
new fc4ffed chore: reorganize examples into categorized folders (#70)
fc4ffed is described below
commit fc4ffed5ac7fa10a4cfb51c5d458a564789b8010
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Jul 7 12:14:35 2026 +0200
chore: reorganize examples into categorized folders (#70)
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.
Signed-off-by: Claus Ibsen <[email protected]>
Co-authored-by: Claude Opus 4.6 <[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