This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch reorganize-examples-into-categories in repository https://gitbox.apache.org/repos/asf/camel-jbang-examples.git
commit 25b221081149b4364bff54e3e42bf2b41fb30a12 Author: Claus Ibsen <[email protected]> AuthorDate: Tue Jul 7 11:46:50 2026 +0200 chore: reorganize examples into categorized folders Organize all examples into topic-based subfolders for better discoverability on GitHub and in the CLI/TUI example browser: - beginner/ - first examples for newcomers (timer-log, rest-api, etc.) - eip/ - Enterprise Integration Patterns (content-based-router, splitter, aggregator, circuit-breaker) - rest/ - REST and OpenAPI examples - messaging/ - JMS, Kafka, MQTT - database/ - SQL/PostgreSQL - cloud/ - AWS, IBM, Kubernetes - ai/ - LangChain4j, OpenAI, Watson, observability+AI - security/ - Keycloak, PQC, OCSF - transformation/ - XSLT, EDI - observability/ - diagnostics and monitoring tools - language/ - expression language examples Adds 3 new EIP examples: - eip/content-based-router: choice/when routing by message content - eip/splitter: split batch into individual messages - eip/aggregator: collect messages into batches The beginner/ folder sorts first alphabetically on GitHub, giving new users a clear starting point. Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../docling-langchain4j-rag}/README.md | 0 .../application.properties | 0 .../docling-langchain4j-rag}/compose.yaml | 0 .../docling-langchain4j-rag.yaml | 0 .../docling-langchain4j-rag}/metadata.json | 0 .../docling-langchain4j-rag}/sample.md | 0 .../financial-doc-analyzer}/README.md | 0 .../financial-doc-analyzer}/application.properties | 0 .../examples/banking-sector-brief.pdf | Bin .../examples/magnificent-seven-update.pdf | Bin .../examples/semiconductor-sector-analysis.pdf | Bin .../examples/tesla-q3-2024.pdf | Bin .../financial-doc-analyzer.yaml | 0 .../financial-doc-analyzer}/metadata.json | 0 {ibm => ai}/ibm-watson-language/README.md | 0 .../ibm-watson-language/application.properties | 0 .../comprehensive-analysis.camel.yaml | 0 .../ibm-watson-language-sink.kamelet.yaml | 0 {ibm => ai}/ibm-watson-language/metadata.json | 0 .../sentiment-analysis.camel.yaml | 0 .../text-analysis-api.camel.yaml | 0 .../openai-pii-redaction}/README.md | 0 .../openai-pii-redaction}/application.properties | 0 .../openai-pii-redaction}/metadata.json | 0 .../openai-pii-redaction}/pii-redaction.camel.yaml | 0 .../openai-pii-redaction}/pii.schema.json | 0 .../smart-log-analyzer}/.kaoto | 0 .../smart-log-analyzer}/README.md | 0 .../analyzer/application-dev.properties | 0 .../analyzer/error-analyzer.camel.yaml | 0 .../caches/infinispan-events-config.json | 0 .../infinispan-events-to-process-config.json | 0 .../containers/docker-compose.yaml | 0 .../containers/otel-collector-config.yaml | 0 .../correlator/application-dev.properties | 0 .../correlator/correlated-log-schema.json | 0 .../correlator/correlated-trace-schema.json | 0 .../correlator/infinispan.camel.yaml | 0 .../correlator/kafka-ca-cert.pem | 0 .../correlator/kaoto-datamapper-4a94acc3.xsl | 0 .../correlator/kaoto-datamapper-8f5bb2dd.xsl | 0 .../correlator/logs-mapper.camel.yaml | 0 .../correlator/otel-log-record-schema.json | 0 .../correlator/otel-logs-schema.json | 0 .../correlator/otel-span-schema.json | 0 .../correlator/otel-traces-schema.json | 0 .../correlator/traces-mapper.camel.yaml | 0 .../first-iteration/analyzer.camel.yaml | 0 .../first-iteration/application.properties | 0 .../first-iteration/load-generator.camel.yaml | 0 .../test/citrus-application.properties | 0 .../test/first-iteration.citrus.it.yaml | 0 .../first-iteration/test/payload-error.json | 0 .../first-iteration/test/payload-info.json | 0 .../log-generator/agent.properties | 0 .../log-generator/application-dev.properties | 0 .../log-generator/log-generator.camel.yaml | 0 .../log-generator/opentelemetry-javaagent.jar | Bin .../smart-log-analyzer}/metadata.json | 0 .../ui-console/application-dev.properties | 0 .../smart-log-analyzer}/ui-console/index.html | 0 .../ui-console/jms-file-storage.camel.yaml | 0 .../ui-console/rest-api.camel.yaml | 0 .../camel-1-tribute}/README.md | 0 .../camel-1-tribute}/application.properties | 0 .../camel-1-tribute}/jms-to-file.camel.yaml | 0 .../camel-1-tribute}/metadata.json | 0 {cron-log => beginner/cron-log}/README.md | 0 .../cron-log}/application.properties | 0 .../cron-log}/cron-log.camel.yaml | 0 {cron-log => beginner/cron-log}/metadata.json | 0 {rest-api => beginner/rest-api}/README.md | 0 .../rest-api}/application.properties | 0 {rest-api => beginner/rest-api}/metadata.json | 0 .../rest-api}/rest-api.camel.yaml | 0 {routes => beginner/routes}/Greeter.java | 0 {routes => beginner/routes}/README.md | 0 {routes => beginner/routes}/application.properties | 0 {routes => beginner/routes}/beans.yaml | 0 {routes => beginner/routes}/metadata.json | 0 {routes => beginner/routes}/routes.camel.yaml | 0 {timer-log => beginner/timer-log}/README.md | 0 .../timer-log}/application.properties | 0 {timer-log => beginner/timer-log}/metadata.json | 0 .../timer-log}/timer-log.camel.yaml | 0 .../tui-hello-world}/README.md | 0 .../tui-hello-world}/metadata.json | 0 .../tui-hello-world}/tui-hello-world.yaml | 0 camel-jbang-example-catalog.json | 638 +++++++++++---------- {aws => cloud}/aws-s3-event-based/README.md | 0 .../aws-s3-event-based/application.properties | 0 .../aws-s3-event-based/aws-s3-cdc-log.camel.yaml | 0 {aws => cloud}/aws-s3-event-based/example-file.txt | 0 {aws => cloud}/aws-s3-event-based/metadata.json | 0 .../aws-s3-event-based/policy-queue.json | 0 .../aws-s3-event-based/terraform/main.tf | 0 .../aws-s3-event-based/test/amazonS3Client.groovy | 0 .../test/application.test.properties | 0 .../test/aws-s3-cdc-log.citrus.it.yaml | 0 .../test/citrus-application.properties | 0 {aws => cloud}/aws-sqs/README.md | 0 {aws => cloud}/aws-sqs/application.properties | 0 {aws => cloud}/aws-sqs/http-to-aws-sqs.camel.yaml | 0 {aws => cloud}/aws-sqs/metadata.json | 0 {aws => cloud}/aws-sqs/test/amazonSQSClient.groovy | 0 .../aws-sqs/test/application.test.properties | 0 .../aws-sqs}/test/citrus-application.properties | 0 .../aws-sqs/test/http-to-aws-sqs.citrus.it.yaml | 0 {ibm => cloud}/ibm-cos/README.md | 0 {ibm => cloud}/ibm-cos/application.properties | 0 {ibm => cloud}/ibm-cos/ibm-cos-sink.kamelet.yaml | 0 {ibm => cloud}/ibm-cos/ibm-cos-source.kamelet.yaml | 0 {ibm => cloud}/ibm-cos/ibm-cos-to-log.camel.yaml | 0 {ibm => cloud}/ibm-cos/kafka-to-ibm-cos.camel.yaml | 0 {ibm => cloud}/ibm-cos/metadata.json | 0 .../secrets => cloud/kubernetes-secrets}/README.md | 0 .../kubernetes-secrets}/application.properties | 0 .../kubernetes-secrets}/metadata.json | 0 .../kubernetes-secrets}/news-service.camel.yaml | 0 .../test/news-secret.properties | 0 .../test/news-service.citrus.it.yaml | 0 .../service => cloud/kubernetes-service}/README.md | 0 .../kubernetes-service}/metadata.json | 0 .../kubernetes-service}/news-service.camel.yaml | 0 .../test/news-service.citrus.it.yaml | 0 {sql => database/sql}/README.md | 0 {sql => database/sql}/application.properties | 0 {sql => database/sql}/compose.yaml | 0 {sql => database/sql}/metadata.json | 0 {sql => database/sql}/sql.camel.yaml | 0 eip/aggregator/README.md | 47 ++ eip/aggregator/aggregator.camel.yaml | 37 ++ eip/aggregator/metadata.json | 11 + {circuit-breaker => eip/circuit-breaker}/README.md | 0 .../circuit-breaker}/metadata.json | 0 .../circuit-breaker}/route.camel.yaml | 0 eip/content-based-router/README.md | 48 ++ .../content-based-router.camel.yaml | 45 ++ eip/content-based-router/metadata.json | 11 + eip/splitter/README.md | 47 ++ eip/splitter/metadata.json | 11 + eip/splitter/splitter.camel.yaml | 22 + {groovy => language/groovy}/README.md | 0 {groovy => language/groovy}/application.properties | 0 {groovy => language/groovy}/groovy.camel.yaml | 0 {groovy => language/groovy}/metadata.json | 0 {artemis => messaging/artemis}/README.md | 0 .../artemis}/application.properties | 0 {artemis => messaging/artemis}/consumer.camel.yaml | 0 {artemis => messaging/artemis}/metadata.json | 0 {artemis => messaging/artemis}/producer.camel.yaml | 0 {ftp => messaging/ftp}/README.md | 0 {ftp => messaging/ftp}/application.properties | 0 {ftp => messaging/ftp}/compose.yaml | 0 {ftp => messaging/ftp}/ftp-kaoto.png | Bin {ftp => messaging/ftp}/ftp.camel.yaml | 0 {ftp => messaging/ftp}/jbang.properties | 0 {ftp => messaging/ftp}/metadata.json | 0 .../ftp}/test/citrus-application.properties | 0 {ftp => messaging/ftp}/test/ftp.citrus.it.yaml | 0 {ftp => messaging/ftp}/test/payload.xml | 0 {mqtt => messaging/mqtt}/README.md | 0 {mqtt => messaging/mqtt}/application.properties | 0 {mqtt => messaging/mqtt}/compose.yaml | 0 {mqtt => messaging/mqtt}/infra/mosquitto.conf | 0 {mqtt => messaging/mqtt}/metadata.json | 0 {mqtt => messaging/mqtt}/mqtt-kaoto.png | Bin {mqtt => messaging/mqtt}/mqtt-karavan.png | Bin {mqtt => messaging/mqtt}/mqtt.camel.yaml | 0 {mqtt => messaging/mqtt}/start.sh | 0 .../mqtt}/test/citrus-application.properties | 0 {mqtt => messaging/mqtt}/test/mqtt.citrus.it.yaml | 0 {mqtt => messaging/mqtt}/test/payload-low.json | 0 {mqtt => messaging/mqtt}/test/payload.json | 0 .../memory-leak}/MemoryLeak.java | 0 .../memory-leak}/README.md | 0 .../memory-leak}/metadata.json | 0 .../message-size}/README.md | 0 .../message-size}/metadata.json | 0 .../message-size}/orders.camel.yaml | 0 .../route-topology}/README.md | 0 .../route-topology}/application.properties | 0 .../route-topology}/metadata.json | 0 .../route-topology}/route-topology.camel.yaml | 0 openapi/README.md | 18 - {openapi/client => rest/openapi-client}/README.md | 0 .../openapi-client}/application.properties | 0 .../openapi-client}/examples/1001.json | 0 .../client => rest/openapi-client}/metadata.json | 0 .../openapi-client}/petstore-api.json | 0 .../openapi-client}/petstore-client.camel.yaml | 0 .../test/citrus-application.properties | 0 .../openapi-client}/test/examples/1001.json | 0 .../openapi-client}/test/petstore-api.json | 0 .../test/petstore-client.citrus.it.yaml | 0 .../openapi-client}/test/petstoreServer.groovy | 0 {openapi/server => rest/openapi-server}/README.md | 0 .../openapi-server}/application.properties | 0 .../openapi-server}/examples/pet/1000.json | 0 .../server => rest/openapi-server}/metadata.json | 0 .../openapi-server}/petstore-api.json | 0 .../openapi-server}/petstore.camel.yaml | 0 .../test/citrus-application.properties | 0 .../openapi-server}/test/examples/pet/1000.json | 0 .../openapi-server}/test/petstore-api.json | 0 .../openapi-server}/test/petstore.citrus.it.yaml | 0 .../keycloak-introspection-rest}/README.md | 0 .../application.properties | 0 .../keycloak-introspection-rest}/metadata.json | 0 .../rest-api.camel.yaml | 0 .../keycloak-ldap-migration}/README.md | 0 .../application.properties | 0 .../ldap-migration.camel.yaml | 0 .../keycloak-ldap-migration}/metadata.json | 0 .../keycloak-ldap-migration}/users.ldif | 0 .../keycloak-security-rest}/README.md | 0 .../keycloak-security-rest}/application.properties | 0 .../keycloak-security-rest}/metadata.json | 0 .../keycloak-security-rest}/rest-api.camel.yaml | 0 {ocsf => security/ocsf}/README.md | 0 {ocsf => security/ocsf}/application.properties | 0 {ocsf => security/ocsf}/metadata.json | 0 {ocsf => security/ocsf}/ocsf.camel.yaml | 0 .../ocsf}/test/authentication-event.json | 0 {ocsf => security/ocsf}/test/authentication_1.json | 0 {ocsf => security/ocsf}/test/authentication_2.json | 0 .../ocsf}/test/detection-finding.json | 0 .../ocsf}/test/detection-finding_1.json | 0 .../ocsf}/test/detection-finding_2.json | 0 .../ocsf}/test/detection-finding_3.json | 0 .../ocsf}/test/detection-finding_4.json | 0 .../ocsf}/test/detection-finding_5.json | 0 .../ocsf}/test/detection-finding_6.json | 0 {ocsf => security/ocsf}/test/file-activity_1.json | 0 .../ocsf}/test/network-activity_1.json | 0 .../ocsf}/test/network-activity_2.json | 0 .../ocsf}/test/process-activity_1.json | 0 .../ocsf}/test/vulnerability-finding_1.json | 0 .../ocsf}/test/vulnerability-finding_2.json | 0 .../pqc-document-signing}/README.md | 0 .../pqc-document-signing}/application.properties | 0 .../pqc-document-signing}/metadata.json | 0 .../pqc-document-signing.yaml | 0 .../pqc-secure-file-transfer}/README.md | 0 .../application.properties | 0 .../pqc-secure-file-transfer}/metadata.json | 0 .../pqc-secure-file-transfer.yaml | 0 .../edi-x12-as2}/.gitignore | 0 .../edi-x12-as2}/README.md | 0 .../edi-x12-as2}/camel/App.java | 0 .../edi-x12-as2}/camel/EmbeddedBroker.java | 0 .../camel/InvalidPartnerException.java | 0 .../edi-x12-as2}/camel/application.properties | 0 .../edi-x12-as2}/camel/broker.xml | 0 .../edi-x12-as2}/camel/edi-x12-as2.camel.yaml | 0 .../edi-x12-as2}/camel/fake.camel.yaml | 0 .../edi-x12-as2-camel-smooks.excalidraw | 0 .../edi-x12-as2}/edi-x12-as2-camel-smooks.png | Bin .../edi-x12-as2}/ftl/segment-id-attr.xml.ftl | 0 .../edi-x12-as2}/ftl/x12-ack.xml.ftl | 0 .../edi-x12-as2}/metadata.json | 0 .../edi-x12-as2}/smooks/gen-x12-ack-config.xml | 0 .../edi-x12-as2}/smooks/ingest-x12-config.xml | 0 .../edi-x12-as2}/test/application.test.properties | 0 .../test/citrus-application.properties | 0 .../edi-x12-as2}/test/compose.yaml | 0 .../edi-x12-as2}/test/edi-x12-as2.citrus.it.yaml | 0 .../edi-x12-as2}/test/payload.edi | 0 {xslt => transformation/xslt}/README.md | 0 {xslt => transformation/xslt}/consumer.camel.yaml | 0 {xslt => transformation/xslt}/input/account.xml | 0 {xslt => transformation/xslt}/metadata.json | 0 {xslt => transformation/xslt}/stylesheet.xsl | 0 273 files changed, 625 insertions(+), 310 deletions(-) diff --git a/docling-langchain4j-rag/README.md b/ai/docling-langchain4j-rag/README.md similarity index 100% rename from docling-langchain4j-rag/README.md rename to ai/docling-langchain4j-rag/README.md diff --git a/docling-langchain4j-rag/application.properties b/ai/docling-langchain4j-rag/application.properties similarity index 100% rename from docling-langchain4j-rag/application.properties rename to ai/docling-langchain4j-rag/application.properties diff --git a/docling-langchain4j-rag/compose.yaml b/ai/docling-langchain4j-rag/compose.yaml similarity index 100% rename from docling-langchain4j-rag/compose.yaml rename to ai/docling-langchain4j-rag/compose.yaml diff --git a/docling-langchain4j-rag/docling-langchain4j-rag.yaml b/ai/docling-langchain4j-rag/docling-langchain4j-rag.yaml similarity index 100% rename from docling-langchain4j-rag/docling-langchain4j-rag.yaml rename to ai/docling-langchain4j-rag/docling-langchain4j-rag.yaml diff --git a/docling-langchain4j-rag/metadata.json b/ai/docling-langchain4j-rag/metadata.json similarity index 100% rename from docling-langchain4j-rag/metadata.json rename to ai/docling-langchain4j-rag/metadata.json diff --git a/docling-langchain4j-rag/sample.md b/ai/docling-langchain4j-rag/sample.md similarity index 100% rename from docling-langchain4j-rag/sample.md rename to ai/docling-langchain4j-rag/sample.md diff --git a/financial-doc-analyzer/README.md b/ai/financial-doc-analyzer/README.md similarity index 100% rename from financial-doc-analyzer/README.md rename to ai/financial-doc-analyzer/README.md diff --git a/financial-doc-analyzer/application.properties b/ai/financial-doc-analyzer/application.properties similarity index 100% rename from financial-doc-analyzer/application.properties rename to ai/financial-doc-analyzer/application.properties diff --git a/financial-doc-analyzer/examples/banking-sector-brief.pdf b/ai/financial-doc-analyzer/examples/banking-sector-brief.pdf similarity index 100% rename from financial-doc-analyzer/examples/banking-sector-brief.pdf rename to ai/financial-doc-analyzer/examples/banking-sector-brief.pdf diff --git a/financial-doc-analyzer/examples/magnificent-seven-update.pdf b/ai/financial-doc-analyzer/examples/magnificent-seven-update.pdf similarity index 100% rename from financial-doc-analyzer/examples/magnificent-seven-update.pdf rename to ai/financial-doc-analyzer/examples/magnificent-seven-update.pdf diff --git a/financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf b/ai/financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf similarity index 100% rename from financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf rename to ai/financial-doc-analyzer/examples/semiconductor-sector-analysis.pdf diff --git a/financial-doc-analyzer/examples/tesla-q3-2024.pdf b/ai/financial-doc-analyzer/examples/tesla-q3-2024.pdf similarity index 100% rename from financial-doc-analyzer/examples/tesla-q3-2024.pdf rename to ai/financial-doc-analyzer/examples/tesla-q3-2024.pdf diff --git a/financial-doc-analyzer/financial-doc-analyzer.yaml b/ai/financial-doc-analyzer/financial-doc-analyzer.yaml similarity index 100% rename from financial-doc-analyzer/financial-doc-analyzer.yaml rename to ai/financial-doc-analyzer/financial-doc-analyzer.yaml diff --git a/financial-doc-analyzer/metadata.json b/ai/financial-doc-analyzer/metadata.json similarity index 100% rename from financial-doc-analyzer/metadata.json rename to ai/financial-doc-analyzer/metadata.json diff --git a/ibm/ibm-watson-language/README.md b/ai/ibm-watson-language/README.md similarity index 100% rename from ibm/ibm-watson-language/README.md rename to ai/ibm-watson-language/README.md diff --git a/ibm/ibm-watson-language/application.properties b/ai/ibm-watson-language/application.properties similarity index 100% rename from ibm/ibm-watson-language/application.properties rename to ai/ibm-watson-language/application.properties diff --git a/ibm/ibm-watson-language/comprehensive-analysis.camel.yaml b/ai/ibm-watson-language/comprehensive-analysis.camel.yaml similarity index 100% rename from ibm/ibm-watson-language/comprehensive-analysis.camel.yaml rename to ai/ibm-watson-language/comprehensive-analysis.camel.yaml diff --git a/ibm/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml b/ai/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml similarity index 100% rename from ibm/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml rename to ai/ibm-watson-language/ibm-watson-language-sink.kamelet.yaml diff --git a/ibm/ibm-watson-language/metadata.json b/ai/ibm-watson-language/metadata.json similarity index 100% rename from ibm/ibm-watson-language/metadata.json rename to ai/ibm-watson-language/metadata.json diff --git a/ibm/ibm-watson-language/sentiment-analysis.camel.yaml b/ai/ibm-watson-language/sentiment-analysis.camel.yaml similarity index 100% rename from ibm/ibm-watson-language/sentiment-analysis.camel.yaml rename to ai/ibm-watson-language/sentiment-analysis.camel.yaml diff --git a/ibm/ibm-watson-language/text-analysis-api.camel.yaml b/ai/ibm-watson-language/text-analysis-api.camel.yaml similarity index 100% rename from ibm/ibm-watson-language/text-analysis-api.camel.yaml rename to ai/ibm-watson-language/text-analysis-api.camel.yaml diff --git a/openai/pii-redaction/README.md b/ai/openai-pii-redaction/README.md similarity index 100% rename from openai/pii-redaction/README.md rename to ai/openai-pii-redaction/README.md diff --git a/openai/pii-redaction/application.properties b/ai/openai-pii-redaction/application.properties similarity index 100% rename from openai/pii-redaction/application.properties rename to ai/openai-pii-redaction/application.properties diff --git a/openai/pii-redaction/metadata.json b/ai/openai-pii-redaction/metadata.json similarity index 100% rename from openai/pii-redaction/metadata.json rename to ai/openai-pii-redaction/metadata.json diff --git a/openai/pii-redaction/pii-redaction.camel.yaml b/ai/openai-pii-redaction/pii-redaction.camel.yaml similarity index 100% rename from openai/pii-redaction/pii-redaction.camel.yaml rename to ai/openai-pii-redaction/pii-redaction.camel.yaml diff --git a/openai/pii-redaction/pii.schema.json b/ai/openai-pii-redaction/pii.schema.json similarity index 100% rename from openai/pii-redaction/pii.schema.json rename to ai/openai-pii-redaction/pii.schema.json diff --git a/smart-log-analyzer/.kaoto b/ai/smart-log-analyzer/.kaoto similarity index 100% rename from smart-log-analyzer/.kaoto rename to ai/smart-log-analyzer/.kaoto diff --git a/smart-log-analyzer/README.md b/ai/smart-log-analyzer/README.md similarity index 100% rename from smart-log-analyzer/README.md rename to ai/smart-log-analyzer/README.md diff --git a/smart-log-analyzer/analyzer/application-dev.properties b/ai/smart-log-analyzer/analyzer/application-dev.properties similarity index 100% rename from smart-log-analyzer/analyzer/application-dev.properties rename to ai/smart-log-analyzer/analyzer/application-dev.properties diff --git a/smart-log-analyzer/analyzer/error-analyzer.camel.yaml b/ai/smart-log-analyzer/analyzer/error-analyzer.camel.yaml similarity index 100% rename from smart-log-analyzer/analyzer/error-analyzer.camel.yaml rename to ai/smart-log-analyzer/analyzer/error-analyzer.camel.yaml diff --git a/smart-log-analyzer/containers/caches/infinispan-events-config.json b/ai/smart-log-analyzer/containers/caches/infinispan-events-config.json similarity index 100% rename from smart-log-analyzer/containers/caches/infinispan-events-config.json rename to ai/smart-log-analyzer/containers/caches/infinispan-events-config.json diff --git a/smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json b/ai/smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json similarity index 100% rename from smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json rename to ai/smart-log-analyzer/containers/caches/infinispan-events-to-process-config.json diff --git a/smart-log-analyzer/containers/docker-compose.yaml b/ai/smart-log-analyzer/containers/docker-compose.yaml similarity index 100% rename from smart-log-analyzer/containers/docker-compose.yaml rename to ai/smart-log-analyzer/containers/docker-compose.yaml diff --git a/smart-log-analyzer/containers/otel-collector-config.yaml b/ai/smart-log-analyzer/containers/otel-collector-config.yaml similarity index 100% rename from smart-log-analyzer/containers/otel-collector-config.yaml rename to ai/smart-log-analyzer/containers/otel-collector-config.yaml diff --git a/smart-log-analyzer/correlator/application-dev.properties b/ai/smart-log-analyzer/correlator/application-dev.properties similarity index 100% rename from smart-log-analyzer/correlator/application-dev.properties rename to ai/smart-log-analyzer/correlator/application-dev.properties diff --git a/smart-log-analyzer/correlator/correlated-log-schema.json b/ai/smart-log-analyzer/correlator/correlated-log-schema.json similarity index 100% rename from smart-log-analyzer/correlator/correlated-log-schema.json rename to ai/smart-log-analyzer/correlator/correlated-log-schema.json diff --git a/smart-log-analyzer/correlator/correlated-trace-schema.json b/ai/smart-log-analyzer/correlator/correlated-trace-schema.json similarity index 100% rename from smart-log-analyzer/correlator/correlated-trace-schema.json rename to ai/smart-log-analyzer/correlator/correlated-trace-schema.json diff --git a/smart-log-analyzer/correlator/infinispan.camel.yaml b/ai/smart-log-analyzer/correlator/infinispan.camel.yaml similarity index 100% rename from smart-log-analyzer/correlator/infinispan.camel.yaml rename to ai/smart-log-analyzer/correlator/infinispan.camel.yaml diff --git a/smart-log-analyzer/correlator/kafka-ca-cert.pem b/ai/smart-log-analyzer/correlator/kafka-ca-cert.pem similarity index 100% rename from smart-log-analyzer/correlator/kafka-ca-cert.pem rename to ai/smart-log-analyzer/correlator/kafka-ca-cert.pem diff --git a/smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl b/ai/smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl similarity index 100% rename from smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl rename to ai/smart-log-analyzer/correlator/kaoto-datamapper-4a94acc3.xsl diff --git a/smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl b/ai/smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl similarity index 100% rename from smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl rename to ai/smart-log-analyzer/correlator/kaoto-datamapper-8f5bb2dd.xsl diff --git a/smart-log-analyzer/correlator/logs-mapper.camel.yaml b/ai/smart-log-analyzer/correlator/logs-mapper.camel.yaml similarity index 100% rename from smart-log-analyzer/correlator/logs-mapper.camel.yaml rename to ai/smart-log-analyzer/correlator/logs-mapper.camel.yaml diff --git a/smart-log-analyzer/correlator/otel-log-record-schema.json b/ai/smart-log-analyzer/correlator/otel-log-record-schema.json similarity index 100% rename from smart-log-analyzer/correlator/otel-log-record-schema.json rename to ai/smart-log-analyzer/correlator/otel-log-record-schema.json diff --git a/smart-log-analyzer/correlator/otel-logs-schema.json b/ai/smart-log-analyzer/correlator/otel-logs-schema.json similarity index 100% rename from smart-log-analyzer/correlator/otel-logs-schema.json rename to ai/smart-log-analyzer/correlator/otel-logs-schema.json diff --git a/smart-log-analyzer/correlator/otel-span-schema.json b/ai/smart-log-analyzer/correlator/otel-span-schema.json similarity index 100% rename from smart-log-analyzer/correlator/otel-span-schema.json rename to ai/smart-log-analyzer/correlator/otel-span-schema.json diff --git a/smart-log-analyzer/correlator/otel-traces-schema.json b/ai/smart-log-analyzer/correlator/otel-traces-schema.json similarity index 100% rename from smart-log-analyzer/correlator/otel-traces-schema.json rename to ai/smart-log-analyzer/correlator/otel-traces-schema.json diff --git a/smart-log-analyzer/correlator/traces-mapper.camel.yaml b/ai/smart-log-analyzer/correlator/traces-mapper.camel.yaml similarity index 100% rename from smart-log-analyzer/correlator/traces-mapper.camel.yaml rename to ai/smart-log-analyzer/correlator/traces-mapper.camel.yaml diff --git a/smart-log-analyzer/first-iteration/analyzer.camel.yaml b/ai/smart-log-analyzer/first-iteration/analyzer.camel.yaml similarity index 100% rename from smart-log-analyzer/first-iteration/analyzer.camel.yaml rename to ai/smart-log-analyzer/first-iteration/analyzer.camel.yaml diff --git a/smart-log-analyzer/first-iteration/application.properties b/ai/smart-log-analyzer/first-iteration/application.properties similarity index 100% rename from smart-log-analyzer/first-iteration/application.properties rename to ai/smart-log-analyzer/first-iteration/application.properties diff --git a/smart-log-analyzer/first-iteration/load-generator.camel.yaml b/ai/smart-log-analyzer/first-iteration/load-generator.camel.yaml similarity index 100% rename from smart-log-analyzer/first-iteration/load-generator.camel.yaml rename to ai/smart-log-analyzer/first-iteration/load-generator.camel.yaml diff --git a/aws/aws-s3-event-based/test/citrus-application.properties b/ai/smart-log-analyzer/first-iteration/test/citrus-application.properties similarity index 100% rename from aws/aws-s3-event-based/test/citrus-application.properties rename to ai/smart-log-analyzer/first-iteration/test/citrus-application.properties diff --git a/smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml b/ai/smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml similarity index 100% rename from smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml rename to ai/smart-log-analyzer/first-iteration/test/first-iteration.citrus.it.yaml diff --git a/smart-log-analyzer/first-iteration/test/payload-error.json b/ai/smart-log-analyzer/first-iteration/test/payload-error.json similarity index 100% rename from smart-log-analyzer/first-iteration/test/payload-error.json rename to ai/smart-log-analyzer/first-iteration/test/payload-error.json diff --git a/smart-log-analyzer/first-iteration/test/payload-info.json b/ai/smart-log-analyzer/first-iteration/test/payload-info.json similarity index 100% rename from smart-log-analyzer/first-iteration/test/payload-info.json rename to ai/smart-log-analyzer/first-iteration/test/payload-info.json diff --git a/smart-log-analyzer/log-generator/agent.properties b/ai/smart-log-analyzer/log-generator/agent.properties similarity index 100% rename from smart-log-analyzer/log-generator/agent.properties rename to ai/smart-log-analyzer/log-generator/agent.properties diff --git a/smart-log-analyzer/log-generator/application-dev.properties b/ai/smart-log-analyzer/log-generator/application-dev.properties similarity index 100% rename from smart-log-analyzer/log-generator/application-dev.properties rename to ai/smart-log-analyzer/log-generator/application-dev.properties diff --git a/smart-log-analyzer/log-generator/log-generator.camel.yaml b/ai/smart-log-analyzer/log-generator/log-generator.camel.yaml similarity index 100% rename from smart-log-analyzer/log-generator/log-generator.camel.yaml rename to ai/smart-log-analyzer/log-generator/log-generator.camel.yaml diff --git a/smart-log-analyzer/log-generator/opentelemetry-javaagent.jar b/ai/smart-log-analyzer/log-generator/opentelemetry-javaagent.jar similarity index 100% rename from smart-log-analyzer/log-generator/opentelemetry-javaagent.jar rename to ai/smart-log-analyzer/log-generator/opentelemetry-javaagent.jar diff --git a/smart-log-analyzer/metadata.json b/ai/smart-log-analyzer/metadata.json similarity index 100% rename from smart-log-analyzer/metadata.json rename to ai/smart-log-analyzer/metadata.json diff --git a/smart-log-analyzer/ui-console/application-dev.properties b/ai/smart-log-analyzer/ui-console/application-dev.properties similarity index 100% rename from smart-log-analyzer/ui-console/application-dev.properties rename to ai/smart-log-analyzer/ui-console/application-dev.properties diff --git a/smart-log-analyzer/ui-console/index.html b/ai/smart-log-analyzer/ui-console/index.html similarity index 100% rename from smart-log-analyzer/ui-console/index.html rename to ai/smart-log-analyzer/ui-console/index.html diff --git a/smart-log-analyzer/ui-console/jms-file-storage.camel.yaml b/ai/smart-log-analyzer/ui-console/jms-file-storage.camel.yaml similarity index 100% rename from smart-log-analyzer/ui-console/jms-file-storage.camel.yaml rename to ai/smart-log-analyzer/ui-console/jms-file-storage.camel.yaml diff --git a/smart-log-analyzer/ui-console/rest-api.camel.yaml b/ai/smart-log-analyzer/ui-console/rest-api.camel.yaml similarity index 100% rename from smart-log-analyzer/ui-console/rest-api.camel.yaml rename to ai/smart-log-analyzer/ui-console/rest-api.camel.yaml diff --git a/camel-1-tribute/README.md b/beginner/camel-1-tribute/README.md similarity index 100% rename from camel-1-tribute/README.md rename to beginner/camel-1-tribute/README.md diff --git a/camel-1-tribute/application.properties b/beginner/camel-1-tribute/application.properties similarity index 100% rename from camel-1-tribute/application.properties rename to beginner/camel-1-tribute/application.properties diff --git a/camel-1-tribute/jms-to-file.camel.yaml b/beginner/camel-1-tribute/jms-to-file.camel.yaml similarity index 100% rename from camel-1-tribute/jms-to-file.camel.yaml rename to beginner/camel-1-tribute/jms-to-file.camel.yaml diff --git a/camel-1-tribute/metadata.json b/beginner/camel-1-tribute/metadata.json similarity index 100% rename from camel-1-tribute/metadata.json rename to beginner/camel-1-tribute/metadata.json diff --git a/cron-log/README.md b/beginner/cron-log/README.md similarity index 100% rename from cron-log/README.md rename to beginner/cron-log/README.md diff --git a/cron-log/application.properties b/beginner/cron-log/application.properties similarity index 100% rename from cron-log/application.properties rename to beginner/cron-log/application.properties diff --git a/cron-log/cron-log.camel.yaml b/beginner/cron-log/cron-log.camel.yaml similarity index 100% rename from cron-log/cron-log.camel.yaml rename to beginner/cron-log/cron-log.camel.yaml diff --git a/cron-log/metadata.json b/beginner/cron-log/metadata.json similarity index 100% rename from cron-log/metadata.json rename to beginner/cron-log/metadata.json diff --git a/rest-api/README.md b/beginner/rest-api/README.md similarity index 100% rename from rest-api/README.md rename to beginner/rest-api/README.md diff --git a/rest-api/application.properties b/beginner/rest-api/application.properties similarity index 100% rename from rest-api/application.properties rename to beginner/rest-api/application.properties diff --git a/rest-api/metadata.json b/beginner/rest-api/metadata.json similarity index 100% rename from rest-api/metadata.json rename to beginner/rest-api/metadata.json diff --git a/rest-api/rest-api.camel.yaml b/beginner/rest-api/rest-api.camel.yaml similarity index 100% rename from rest-api/rest-api.camel.yaml rename to beginner/rest-api/rest-api.camel.yaml diff --git a/routes/Greeter.java b/beginner/routes/Greeter.java similarity index 100% rename from routes/Greeter.java rename to beginner/routes/Greeter.java diff --git a/routes/README.md b/beginner/routes/README.md similarity index 100% rename from routes/README.md rename to beginner/routes/README.md diff --git a/routes/application.properties b/beginner/routes/application.properties similarity index 100% rename from routes/application.properties rename to beginner/routes/application.properties diff --git a/routes/beans.yaml b/beginner/routes/beans.yaml similarity index 100% rename from routes/beans.yaml rename to beginner/routes/beans.yaml diff --git a/routes/metadata.json b/beginner/routes/metadata.json similarity index 100% rename from routes/metadata.json rename to beginner/routes/metadata.json diff --git a/routes/routes.camel.yaml b/beginner/routes/routes.camel.yaml similarity index 100% rename from routes/routes.camel.yaml rename to beginner/routes/routes.camel.yaml diff --git a/timer-log/README.md b/beginner/timer-log/README.md similarity index 100% rename from timer-log/README.md rename to beginner/timer-log/README.md diff --git a/timer-log/application.properties b/beginner/timer-log/application.properties similarity index 100% rename from timer-log/application.properties rename to beginner/timer-log/application.properties diff --git a/timer-log/metadata.json b/beginner/timer-log/metadata.json similarity index 100% rename from timer-log/metadata.json rename to beginner/timer-log/metadata.json diff --git a/timer-log/timer-log.camel.yaml b/beginner/timer-log/timer-log.camel.yaml similarity index 100% rename from timer-log/timer-log.camel.yaml rename to beginner/timer-log/timer-log.camel.yaml diff --git a/tui-hello-world/README.md b/beginner/tui-hello-world/README.md similarity index 100% rename from tui-hello-world/README.md rename to beginner/tui-hello-world/README.md diff --git a/tui-hello-world/metadata.json b/beginner/tui-hello-world/metadata.json similarity index 100% rename from tui-hello-world/metadata.json rename to beginner/tui-hello-world/metadata.json diff --git a/tui-hello-world/tui-hello-world.yaml b/beginner/tui-hello-world/tui-hello-world.yaml similarity index 100% rename from tui-hello-world/tui-hello-world.yaml rename to beginner/tui-hello-world/tui-hello-world.yaml diff --git a/camel-jbang-example-catalog.json b/camel-jbang-example-catalog.json index a065576..bd1affb 100644 --- a/camel-jbang-example-catalog.json +++ b/camel-jbang-example-catalog.json @@ -1,13 +1,14 @@ [ { - "name": "artemis", - "title": "Apache ActiveMQ Artemis", - "description": "Setup connection factory to a remote Apache ActiveMQ Artemis messaging broker", - "level": "intermediate", + "name": "ai/docling-langchain4j-rag", + "title": "Document Analysis with Docling and LangChain4j RAG", + "description": "RAG workflow combining Docling document conversion with LangChain4j and Ollama", + "level": "advanced", "tags": [ - "messaging", - "jms", - "artemis" + "ai", + "rag", + "langchain4j", + "docling" ], "bundled": false, "requiresDocker": true, @@ -15,59 +16,112 @@ "files": [ "README.md", "application.properties", - "consumer.camel.yaml", - "producer.camel.yaml" + "docling-langchain4j-rag.yaml", + "sample.md" ], "infraServices": [ - "artemis" + "docling", + "ollama" ] }, { - "name": "aws/aws-s3-event-based", - "title": "AWS S3 CDC", - "description": "Consume S3 events using EventBridge and SQS for change data capture", + "name": "ai/financial-doc-analyzer", + "title": "Financial Document Analyzer", + "description": "Automated financial document analysis with Docling, LangChain4j, and market data", "level": "advanced", "tags": [ - "aws", - "s3", - "sqs", - "eventbridge", - "cloud" + "ai", + "langchain4j", + "docling", + "finance" + ], + "bundled": false, + "requiresDocker": true, + "hasCitrusTests": false, + "files": [ + "README.md", + "application.properties", + "examples/banking-sector-brief.pdf", + "examples/magnificent-seven-update.pdf", + "examples/semiconductor-sector-analysis.pdf", + "examples/tesla-q3-2024.pdf", + "financial-doc-analyzer.yaml" + ], + "infraServices": [ + "docling", + "ollama" + ] + }, + { + "name": "ai/openai-pii-redaction", + "title": "OpenAI PII Redaction", + "description": "Redact personal identifiable information from text using OpenAI-compatible LLMs", + "level": "advanced", + "tags": [ + "ai", + "openai", + "privacy", + "security" ], "bundled": false, "requiresDocker": false, - "hasCitrusTests": true, + "hasCitrusTests": false, "files": [ "README.md", "application.properties", - "aws-s3-cdc-log.camel.yaml", - "example-file.txt", - "policy-queue.json", - "terraform/main.tf" + "pii-redaction.camel.yaml", + "pii.schema.json" ] }, { - "name": "aws/aws-sqs", - "title": "AWS SQS Sink", - "description": "Push messages to AWS SQS queue via HTTP service", + "name": "ai/smart-log-analyzer", + "title": "Smart Log Analyzer", + "description": "Intelligent observability correlating OpenTelemetry logs and traces with LLM analysis", "level": "advanced", "tags": [ - "aws", - "sqs", - "http", - "cloud" + "ai", + "observability", + "opentelemetry", + "logging" ], "bundled": false, "requiresDocker": false, "hasCitrusTests": true, "files": [ "README.md", - "application.properties", - "http-to-aws-sqs.camel.yaml" + "analyzer/application-dev.properties", + "analyzer/error-analyzer.camel.yaml", + "containers/caches/infinispan-events-config.json", + "containers/caches/infinispan-events-to-process-config.json", + "containers/otel-collector-config.yaml", + "correlator/application-dev.properties", + "correlator/correlated-log-schema.json", + "correlator/correlated-trace-schema.json", + "correlator/infinispan.camel.yaml", + "correlator/kafka-ca-cert.pem", + "correlator/kaoto-datamapper-4a94acc3.xsl", + "correlator/kaoto-datamapper-8f5bb2dd.xsl", + "correlator/logs-mapper.camel.yaml", + "correlator/otel-log-record-schema.json", + "correlator/otel-logs-schema.json", + "correlator/otel-span-schema.json", + "correlator/otel-traces-schema.json", + "correlator/traces-mapper.camel.yaml", + "first-iteration/analyzer.camel.yaml", + "first-iteration/application.properties", + "first-iteration/load-generator.camel.yaml", + "log-generator/agent.properties", + "log-generator/application-dev.properties", + "log-generator/log-generator.camel.yaml", + "log-generator/opentelemetry-javaagent.jar", + "ui-console/application-dev.properties", + "ui-console/index.html", + "ui-console/jms-file-storage.camel.yaml", + "ui-console/rest-api.camel.yaml" ] }, { - "name": "camel-1-tribute", + "name": "beginner/camel-1-tribute", "title": "Camel 1.0 Tribute", "description": "A tribute to the very first Apache Camel example from 2007 - JMS to File", "level": "beginner", @@ -91,31 +145,73 @@ ] }, { - "name": "circuit-breaker", - "title": "Circuit Breaker", - "description": "Use the circuit breaker EIP for fault tolerance", + "name": "beginner/cron-log", + "title": "Cron Log", + "description": "Scheduled task that logs every 5 seconds", "level": "beginner", "tags": [ - "eip", - "resilience" + "beginner", + "timer", + "cron", + "log" ], "bundled": true, "requiresDocker": false, "hasCitrusTests": false, "files": [ "README.md", - "route.camel.yaml" + "application.properties", + "cron-log.camel.yaml" ] }, { - "name": "cron-log", - "title": "Cron Log", - "description": "Scheduled task that logs every 5 seconds", + "name": "beginner/rest-api", + "title": "REST API", + "description": "REST API with hello endpoints", + "level": "beginner", + "tags": [ + "beginner", + "rest", + "http" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "README.md", + "application.properties", + "rest-api.camel.yaml" + ] + }, + { + "name": "beginner/routes", + "title": "Routes", + "description": "Define routes in YAML with Java beans", + "level": "beginner", + "tags": [ + "beginner", + "yaml", + "bean" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "Greeter.java", + "README.md", + "application.properties", + "beans.yaml", + "routes.camel.yaml" + ] + }, + { + "name": "beginner/timer-log", + "title": "Timer Log", + "description": "Simple timer that logs a hello message every second", "level": "beginner", "tags": [ "beginner", "timer", - "cron", "log" ], "bundled": true, @@ -124,88 +220,167 @@ "files": [ "README.md", "application.properties", - "cron-log.camel.yaml" + "timer-log.camel.yaml" ] }, { - "name": "docling-langchain4j-rag", - "title": "Document Analysis with Docling and LangChain4j RAG", - "description": "RAG workflow combining Docling document conversion with LangChain4j and Ollama", + "name": "beginner/tui-hello-world", + "title": "TUI Hello World", + "description": "Say hello via TUI Send Message (F2) or CLI", + "level": "beginner", + "tags": [ + "beginner", + "direct", + "send", + "tui" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "README.md", + "tui-hello-world.yaml" + ] + }, + { + "name": "cloud/aws-s3-event-based", + "title": "AWS S3 CDC", + "description": "Consume S3 events using EventBridge and SQS for change data capture", "level": "advanced", "tags": [ - "ai", - "rag", - "langchain4j", - "docling" + "aws", + "s3", + "sqs", + "eventbridge", + "cloud" ], "bundled": false, - "requiresDocker": true, - "hasCitrusTests": false, + "requiresDocker": false, + "hasCitrusTests": true, "files": [ "README.md", "application.properties", - "docling-langchain4j-rag.yaml", - "sample.md" - ], - "infraServices": [ - "docling", - "ollama" + "aws-s3-cdc-log.camel.yaml", + "example-file.txt", + "policy-queue.json", + "terraform/main.tf" ] }, { - "name": "financial-doc-analyzer", - "title": "Financial Document Analyzer", - "description": "Automated financial document analysis with Docling, LangChain4j, and market data", + "name": "cloud/aws-sqs", + "title": "AWS SQS Sink", + "description": "Push messages to AWS SQS queue via HTTP service", "level": "advanced", "tags": [ - "ai", - "langchain4j", - "docling", - "finance" + "aws", + "sqs", + "http", + "cloud" ], "bundled": false, - "requiresDocker": true, - "hasCitrusTests": false, + "requiresDocker": false, + "hasCitrusTests": true, "files": [ "README.md", "application.properties", - "examples/banking-sector-brief.pdf", - "examples/magnificent-seven-update.pdf", - "examples/semiconductor-sector-analysis.pdf", - "examples/tesla-q3-2024.pdf", - "financial-doc-analyzer.yaml" - ], - "infraServices": [ - "docling", - "ollama" + "http-to-aws-sqs.camel.yaml" ] }, { - "name": "ftp", - "title": "ActiveMQ to FTP", - "description": "Integrate ActiveMQ messaging with an FTP server", + "name": "database/sql", + "title": "SQL Database", + "description": "Use a SQL database with Camel and Postgres", "level": "intermediate", "tags": [ - "messaging", - "ftp", - "activemq" + "database", + "sql", + "postgres" ], - "bundled": false, + "bundled": true, "requiresDocker": true, - "hasCitrusTests": true, + "hasCitrusTests": false, "files": [ "README.md", "application.properties", - "ftp.camel.yaml", - "jbang.properties" + "sql.camel.yaml" ], "infraServices": [ - "artemis", - "ftp" + "postgres" + ] + }, + { + "name": "eip/aggregator", + "title": "Aggregator", + "description": "Collect individual messages into a batch using the Aggregator EIP", + "level": "beginner", + "tags": [ + "eip", + "aggregator", + "batch" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "README.md", + "aggregator.camel.yaml" + ] + }, + { + "name": "eip/circuit-breaker", + "title": "Circuit Breaker", + "description": "Use the circuit breaker EIP for fault tolerance", + "level": "beginner", + "tags": [ + "eip", + "resilience" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "README.md", + "route.camel.yaml" + ] + }, + { + "name": "eip/content-based-router", + "title": "Content Based Router", + "description": "Route messages to different destinations based on message content using the Choice EIP", + "level": "beginner", + "tags": [ + "eip", + "choice", + "routing" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "README.md", + "content-based-router.camel.yaml" + ] + }, + { + "name": "eip/splitter", + "title": "Splitter", + "description": "Split a batch of items into individual messages for processing", + "level": "beginner", + "tags": [ + "eip", + "splitter", + "batch" + ], + "bundled": true, + "requiresDocker": false, + "hasCitrusTests": false, + "files": [ + "README.md", + "splitter.camel.yaml" ] }, { - "name": "groovy", + "name": "language/groovy", "title": "Groovy", "description": "Use Groovy with extra dependencies and content-based routing", "level": "beginner", @@ -224,15 +399,14 @@ ] }, { - "name": "keycloak-introspection-rest", - "title": "Keycloak Token Introspection REST API", - "description": "Secure REST APIs with Keycloak OAuth 2.0 token introspection", - "level": "advanced", + "name": "messaging/artemis", + "title": "Apache ActiveMQ Artemis", + "description": "Setup connection factory to a remote Apache ActiveMQ Artemis messaging broker", + "level": "intermediate", "tags": [ - "security", - "keycloak", - "rest", - "oauth" + "messaging", + "jms", + "artemis" ], "bundled": false, "requiresDocker": true, @@ -240,37 +414,63 @@ "files": [ "README.md", "application.properties", - "rest-api.camel.yaml" + "consumer.camel.yaml", + "producer.camel.yaml" ], "infraServices": [ - "keycloak" + "artemis" ] }, { - "name": "keycloak-security-rest", - "title": "Keycloak Security REST API", - "description": "Secure REST APIs with Keycloak authentication and authorization", - "level": "advanced", + "name": "messaging/ftp", + "title": "ActiveMQ to FTP", + "description": "Integrate ActiveMQ messaging with an FTP server", + "level": "intermediate", "tags": [ - "security", - "keycloak", - "rest", - "oauth" + "messaging", + "ftp", + "activemq" ], "bundled": false, "requiresDocker": true, - "hasCitrusTests": false, + "hasCitrusTests": true, "files": [ "README.md", "application.properties", - "rest-api.camel.yaml" + "ftp.camel.yaml", + "jbang.properties" ], "infraServices": [ - "keycloak" + "artemis", + "ftp" + ] + }, + { + "name": "messaging/mqtt", + "title": "MQTT", + "description": "Receive MQTT events from an external MQTT broker", + "level": "intermediate", + "tags": [ + "messaging", + "mqtt", + "iot" + ], + "bundled": false, + "requiresDocker": true, + "hasCitrusTests": true, + "files": [ + "README.md", + "application.properties", + "infra/mosquitto.conf", + "mqtt.camel.yaml", + "start.sh" + ], + "infraServices": [ + "mosquitto" ] }, { - "name": "memory-leak", + "name": "observability/memory-leak", "title": "Memory Leak", "description": "Simulates a memory leak for testing JFR Old Object Sample diagnostics", "level": "beginner", @@ -289,7 +489,7 @@ ] }, { - "name": "message-size", + "name": "observability/message-size", "title": "Message Size", "description": "Track message body and header sizes per endpoint", "level": "beginner", @@ -307,52 +507,30 @@ ] }, { - "name": "mqtt", - "title": "MQTT", - "description": "Receive MQTT events from an external MQTT broker", + "name": "observability/route-topology", + "title": "Route Topology", + "description": "Demonstrates inter-route topology with triggers, shared routes, and external systems", "level": "intermediate", "tags": [ - "messaging", - "mqtt", - "iot" + "topology", + "direct", + "kafka", + "timer" ], - "bundled": false, + "bundled": true, "requiresDocker": true, - "hasCitrusTests": true, + "hasCitrusTests": false, "files": [ "README.md", "application.properties", - "infra/mosquitto.conf", - "mqtt.camel.yaml", - "start.sh" + "route-topology.camel.yaml" ], "infraServices": [ - "mosquitto" - ] - }, - { - "name": "openai/pii-redaction", - "title": "OpenAI PII Redaction", - "description": "Redact personal identifiable information from text using OpenAI-compatible LLMs", - "level": "advanced", - "tags": [ - "ai", - "openai", - "privacy", - "security" - ], - "bundled": false, - "requiresDocker": false, - "hasCitrusTests": false, - "files": [ - "README.md", - "application.properties", - "pii-redaction.camel.yaml", - "pii.schema.json" + "kafka" ] }, { - "name": "openapi/client", + "name": "rest/openapi-client", "title": "OpenAPI Client", "description": "REST client generated from an OpenAPI specification", "level": "intermediate", @@ -373,7 +551,7 @@ ] }, { - "name": "openapi/server", + "name": "rest/openapi-server", "title": "OpenAPI Server", "description": "REST service implemented from an OpenAPI specification", "level": "intermediate", @@ -394,177 +572,53 @@ ] }, { - "name": "rest-api", - "title": "REST API", - "description": "REST API with hello endpoints", - "level": "beginner", + "name": "security/keycloak-introspection-rest", + "title": "Keycloak Token Introspection REST API", + "description": "Secure REST APIs with Keycloak OAuth 2.0 token introspection", + "level": "advanced", "tags": [ - "beginner", + "security", + "keycloak", "rest", - "http" - ], - "bundled": true, - "requiresDocker": false, - "hasCitrusTests": false, - "files": [ - "README.md", - "application.properties", - "rest-api.camel.yaml" - ] - }, - { - "name": "route-topology", - "title": "Route Topology", - "description": "Demonstrates inter-route topology with triggers, shared routes, and external systems", - "level": "intermediate", - "tags": [ - "topology", - "direct", - "kafka", - "timer" + "oauth" ], - "bundled": true, + "bundled": false, "requiresDocker": true, "hasCitrusTests": false, "files": [ "README.md", "application.properties", - "route-topology.camel.yaml" + "rest-api.camel.yaml" ], "infraServices": [ - "kafka" - ] - }, - { - "name": "routes", - "title": "Routes", - "description": "Define routes in YAML with Java beans", - "level": "beginner", - "tags": [ - "beginner", - "yaml", - "bean" - ], - "bundled": true, - "requiresDocker": false, - "hasCitrusTests": false, - "files": [ - "Greeter.java", - "README.md", - "application.properties", - "beans.yaml", - "routes.camel.yaml" + "keycloak" ] }, { - "name": "smart-log-analyzer", - "title": "Smart Log Analyzer", - "description": "Intelligent observability correlating OpenTelemetry logs and traces with LLM analysis", + "name": "security/keycloak-security-rest", + "title": "Keycloak Security REST API", + "description": "Secure REST APIs with Keycloak authentication and authorization", "level": "advanced", "tags": [ - "ai", - "observability", - "opentelemetry", - "logging" + "security", + "keycloak", + "rest", + "oauth" ], "bundled": false, - "requiresDocker": false, - "hasCitrusTests": true, - "files": [ - "README.md", - "analyzer/application-dev.properties", - "analyzer/error-analyzer.camel.yaml", - "containers/caches/infinispan-events-config.json", - "containers/caches/infinispan-events-to-process-config.json", - "containers/otel-collector-config.yaml", - "correlator/application-dev.properties", - "correlator/correlated-log-schema.json", - "correlator/correlated-trace-schema.json", - "correlator/infinispan.camel.yaml", - "correlator/kafka-ca-cert.pem", - "correlator/kaoto-datamapper-4a94acc3.xsl", - "correlator/kaoto-datamapper-8f5bb2dd.xsl", - "correlator/logs-mapper.camel.yaml", - "correlator/otel-log-record-schema.json", - "correlator/otel-logs-schema.json", - "correlator/otel-span-schema.json", - "correlator/otel-traces-schema.json", - "correlator/traces-mapper.camel.yaml", - "first-iteration/analyzer.camel.yaml", - "first-iteration/application.properties", - "first-iteration/load-generator.camel.yaml", - "log-generator/agent.properties", - "log-generator/application-dev.properties", - "log-generator/log-generator.camel.yaml", - "log-generator/opentelemetry-javaagent.jar", - "ui-console/application-dev.properties", - "ui-console/index.html", - "ui-console/jms-file-storage.camel.yaml", - "ui-console/rest-api.camel.yaml" - ] - }, - { - "name": "sql", - "title": "SQL Database", - "description": "Use a SQL database with Camel and Postgres", - "level": "intermediate", - "tags": [ - "database", - "sql", - "postgres" - ], - "bundled": true, "requiresDocker": true, "hasCitrusTests": false, "files": [ "README.md", "application.properties", - "sql.camel.yaml" + "rest-api.camel.yaml" ], "infraServices": [ - "postgres" - ] - }, - { - "name": "timer-log", - "title": "Timer Log", - "description": "Simple timer that logs a hello message every second", - "level": "beginner", - "tags": [ - "beginner", - "timer", - "log" - ], - "bundled": true, - "requiresDocker": false, - "hasCitrusTests": false, - "files": [ - "README.md", - "application.properties", - "timer-log.camel.yaml" - ] - }, - { - "name": "tui-hello-world", - "title": "TUI Hello World", - "description": "Say hello via TUI Send Message (F2) or CLI", - "level": "beginner", - "tags": [ - "beginner", - "direct", - "send", - "tui" - ], - "bundled": true, - "requiresDocker": false, - "hasCitrusTests": false, - "files": [ - "README.md", - "tui-hello-world.yaml" + "keycloak" ] }, { - "name": "xslt", + "name": "transformation/xslt", "title": "XSLT Transformation", "description": "Basic XML transformation using XSLT style sheets", "level": "beginner", diff --git a/aws/aws-s3-event-based/README.md b/cloud/aws-s3-event-based/README.md similarity index 100% rename from aws/aws-s3-event-based/README.md rename to cloud/aws-s3-event-based/README.md diff --git a/aws/aws-s3-event-based/application.properties b/cloud/aws-s3-event-based/application.properties similarity index 100% rename from aws/aws-s3-event-based/application.properties rename to cloud/aws-s3-event-based/application.properties diff --git a/aws/aws-s3-event-based/aws-s3-cdc-log.camel.yaml b/cloud/aws-s3-event-based/aws-s3-cdc-log.camel.yaml similarity index 100% rename from aws/aws-s3-event-based/aws-s3-cdc-log.camel.yaml rename to cloud/aws-s3-event-based/aws-s3-cdc-log.camel.yaml diff --git a/aws/aws-s3-event-based/example-file.txt b/cloud/aws-s3-event-based/example-file.txt similarity index 100% rename from aws/aws-s3-event-based/example-file.txt rename to cloud/aws-s3-event-based/example-file.txt diff --git a/aws/aws-s3-event-based/metadata.json b/cloud/aws-s3-event-based/metadata.json similarity index 100% rename from aws/aws-s3-event-based/metadata.json rename to cloud/aws-s3-event-based/metadata.json diff --git a/aws/aws-s3-event-based/policy-queue.json b/cloud/aws-s3-event-based/policy-queue.json similarity index 100% rename from aws/aws-s3-event-based/policy-queue.json rename to cloud/aws-s3-event-based/policy-queue.json diff --git a/aws/aws-s3-event-based/terraform/main.tf b/cloud/aws-s3-event-based/terraform/main.tf similarity index 100% rename from aws/aws-s3-event-based/terraform/main.tf rename to cloud/aws-s3-event-based/terraform/main.tf diff --git a/aws/aws-s3-event-based/test/amazonS3Client.groovy b/cloud/aws-s3-event-based/test/amazonS3Client.groovy similarity index 100% rename from aws/aws-s3-event-based/test/amazonS3Client.groovy rename to cloud/aws-s3-event-based/test/amazonS3Client.groovy diff --git a/aws/aws-s3-event-based/test/application.test.properties b/cloud/aws-s3-event-based/test/application.test.properties similarity index 100% rename from aws/aws-s3-event-based/test/application.test.properties rename to cloud/aws-s3-event-based/test/application.test.properties diff --git a/aws/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml b/cloud/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml similarity index 100% rename from aws/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml rename to cloud/aws-s3-event-based/test/aws-s3-cdc-log.citrus.it.yaml diff --git a/aws/aws-sqs/test/citrus-application.properties b/cloud/aws-s3-event-based/test/citrus-application.properties similarity index 100% rename from aws/aws-sqs/test/citrus-application.properties rename to cloud/aws-s3-event-based/test/citrus-application.properties diff --git a/aws/aws-sqs/README.md b/cloud/aws-sqs/README.md similarity index 100% rename from aws/aws-sqs/README.md rename to cloud/aws-sqs/README.md diff --git a/aws/aws-sqs/application.properties b/cloud/aws-sqs/application.properties similarity index 100% rename from aws/aws-sqs/application.properties rename to cloud/aws-sqs/application.properties diff --git a/aws/aws-sqs/http-to-aws-sqs.camel.yaml b/cloud/aws-sqs/http-to-aws-sqs.camel.yaml similarity index 100% rename from aws/aws-sqs/http-to-aws-sqs.camel.yaml rename to cloud/aws-sqs/http-to-aws-sqs.camel.yaml diff --git a/aws/aws-sqs/metadata.json b/cloud/aws-sqs/metadata.json similarity index 100% rename from aws/aws-sqs/metadata.json rename to cloud/aws-sqs/metadata.json diff --git a/aws/aws-sqs/test/amazonSQSClient.groovy b/cloud/aws-sqs/test/amazonSQSClient.groovy similarity index 100% rename from aws/aws-sqs/test/amazonSQSClient.groovy rename to cloud/aws-sqs/test/amazonSQSClient.groovy diff --git a/aws/aws-sqs/test/application.test.properties b/cloud/aws-sqs/test/application.test.properties similarity index 100% rename from aws/aws-sqs/test/application.test.properties rename to cloud/aws-sqs/test/application.test.properties diff --git a/edi-x12-as2/test/citrus-application.properties b/cloud/aws-sqs/test/citrus-application.properties similarity index 100% rename from edi-x12-as2/test/citrus-application.properties rename to cloud/aws-sqs/test/citrus-application.properties diff --git a/aws/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml b/cloud/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml similarity index 100% rename from aws/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml rename to cloud/aws-sqs/test/http-to-aws-sqs.citrus.it.yaml diff --git a/ibm/ibm-cos/README.md b/cloud/ibm-cos/README.md similarity index 100% rename from ibm/ibm-cos/README.md rename to cloud/ibm-cos/README.md diff --git a/ibm/ibm-cos/application.properties b/cloud/ibm-cos/application.properties similarity index 100% rename from ibm/ibm-cos/application.properties rename to cloud/ibm-cos/application.properties diff --git a/ibm/ibm-cos/ibm-cos-sink.kamelet.yaml b/cloud/ibm-cos/ibm-cos-sink.kamelet.yaml similarity index 100% rename from ibm/ibm-cos/ibm-cos-sink.kamelet.yaml rename to cloud/ibm-cos/ibm-cos-sink.kamelet.yaml diff --git a/ibm/ibm-cos/ibm-cos-source.kamelet.yaml b/cloud/ibm-cos/ibm-cos-source.kamelet.yaml similarity index 100% rename from ibm/ibm-cos/ibm-cos-source.kamelet.yaml rename to cloud/ibm-cos/ibm-cos-source.kamelet.yaml diff --git a/ibm/ibm-cos/ibm-cos-to-log.camel.yaml b/cloud/ibm-cos/ibm-cos-to-log.camel.yaml similarity index 100% rename from ibm/ibm-cos/ibm-cos-to-log.camel.yaml rename to cloud/ibm-cos/ibm-cos-to-log.camel.yaml diff --git a/ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml b/cloud/ibm-cos/kafka-to-ibm-cos.camel.yaml similarity index 100% rename from ibm/ibm-cos/kafka-to-ibm-cos.camel.yaml rename to cloud/ibm-cos/kafka-to-ibm-cos.camel.yaml diff --git a/ibm/ibm-cos/metadata.json b/cloud/ibm-cos/metadata.json similarity index 100% rename from ibm/ibm-cos/metadata.json rename to cloud/ibm-cos/metadata.json diff --git a/kubernetes/secrets/README.md b/cloud/kubernetes-secrets/README.md similarity index 100% rename from kubernetes/secrets/README.md rename to cloud/kubernetes-secrets/README.md diff --git a/kubernetes/secrets/application.properties b/cloud/kubernetes-secrets/application.properties similarity index 100% rename from kubernetes/secrets/application.properties rename to cloud/kubernetes-secrets/application.properties diff --git a/kubernetes/secrets/metadata.json b/cloud/kubernetes-secrets/metadata.json similarity index 100% rename from kubernetes/secrets/metadata.json rename to cloud/kubernetes-secrets/metadata.json diff --git a/kubernetes/secrets/news-service.camel.yaml b/cloud/kubernetes-secrets/news-service.camel.yaml similarity index 100% rename from kubernetes/secrets/news-service.camel.yaml rename to cloud/kubernetes-secrets/news-service.camel.yaml diff --git a/kubernetes/secrets/test/news-secret.properties b/cloud/kubernetes-secrets/test/news-secret.properties similarity index 100% rename from kubernetes/secrets/test/news-secret.properties rename to cloud/kubernetes-secrets/test/news-secret.properties diff --git a/kubernetes/secrets/test/news-service.citrus.it.yaml b/cloud/kubernetes-secrets/test/news-service.citrus.it.yaml similarity index 100% rename from kubernetes/secrets/test/news-service.citrus.it.yaml rename to cloud/kubernetes-secrets/test/news-service.citrus.it.yaml diff --git a/kubernetes/service/README.md b/cloud/kubernetes-service/README.md similarity index 100% rename from kubernetes/service/README.md rename to cloud/kubernetes-service/README.md diff --git a/kubernetes/service/metadata.json b/cloud/kubernetes-service/metadata.json similarity index 100% rename from kubernetes/service/metadata.json rename to cloud/kubernetes-service/metadata.json diff --git a/kubernetes/service/news-service.camel.yaml b/cloud/kubernetes-service/news-service.camel.yaml similarity index 100% rename from kubernetes/service/news-service.camel.yaml rename to cloud/kubernetes-service/news-service.camel.yaml diff --git a/kubernetes/service/test/news-service.citrus.it.yaml b/cloud/kubernetes-service/test/news-service.citrus.it.yaml similarity index 100% rename from kubernetes/service/test/news-service.citrus.it.yaml rename to cloud/kubernetes-service/test/news-service.citrus.it.yaml diff --git a/sql/README.md b/database/sql/README.md similarity index 100% rename from sql/README.md rename to database/sql/README.md diff --git a/sql/application.properties b/database/sql/application.properties similarity index 100% rename from sql/application.properties rename to database/sql/application.properties diff --git a/sql/compose.yaml b/database/sql/compose.yaml similarity index 100% rename from sql/compose.yaml rename to database/sql/compose.yaml diff --git a/sql/metadata.json b/database/sql/metadata.json similarity index 100% rename from sql/metadata.json rename to database/sql/metadata.json diff --git a/sql/sql.camel.yaml b/database/sql/sql.camel.yaml similarity index 100% rename from sql/sql.camel.yaml rename to database/sql/sql.camel.yaml diff --git a/eip/aggregator/README.md b/eip/aggregator/README.md new file mode 100644 index 0000000..2f66737 --- /dev/null +++ b/eip/aggregator/README.md @@ -0,0 +1,47 @@ +## Aggregator + +This example demonstrates the Aggregator EIP. + +Individual order messages are collected into batches of 5 using the Aggregator EIP. +The `StringAggregationStrategy` joins message bodies with a comma delimiter. + +A timer generates one order per second. The aggregator collects 5 orders before +releasing the batch, which is then logged as a single combined message. + +### Install JBang + +First install JBang according to https://www.jbang.dev + +When JBang is installed then you should be able to run from a shell: + +```sh +$ jbang --version +``` + +This will output the version of JBang. + +To run this example you can either install Camel on JBang via: + +```sh +$ jbang app install camel@apache/camel +``` + +Which allows to run Camel CLI with `camel` as shown below. + +### How to run + +You can run this example using: + +```sh +$ camel run * +``` + +### Help and contributions + +If you hit any problem using Camel or have some feedback, then please +[let us know](https://camel.apache.org/community/support/). + +We also love contributors, so +[get involved](https://camel.apache.org/community/contributing/) :-) + +The Camel riders! diff --git a/eip/aggregator/aggregator.camel.yaml b/eip/aggregator/aggregator.camel.yaml new file mode 100644 index 0000000..45a750c --- /dev/null +++ b/eip/aggregator/aggregator.camel.yaml @@ -0,0 +1,37 @@ +- beans: + - name: myAggregationStrategy + type: "#class:org.apache.camel.processor.aggregate.StringAggregationStrategy" + properties: + delimiter: ", " + +- route: + id: order-generator + from: + uri: timer + parameters: + timerName: orders + period: 1000 + steps: + - setBody: + expression: + simple: + expression: "Order-${exchangeProperty.CamelTimerCounter}" + - log: + message: "New: ${body}" + - to: + uri: direct:aggregate + +- route: + id: order-aggregator + from: + uri: direct:aggregate + steps: + - aggregate: + aggregationStrategy: "#bean:myAggregationStrategy" + correlationExpression: + constant: + expression: "true" + completionSize: 5 + steps: + - log: + message: "Batch of 5: ${body}" diff --git a/eip/aggregator/metadata.json b/eip/aggregator/metadata.json new file mode 100644 index 0000000..4b36284 --- /dev/null +++ b/eip/aggregator/metadata.json @@ -0,0 +1,11 @@ +{ + "title": "Aggregator", + "description": "Collect individual messages into a batch using the Aggregator EIP", + "tags": [ + "eip", + "aggregator", + "batch" + ], + "bundled": true, + "level": "beginner" +} diff --git a/circuit-breaker/README.md b/eip/circuit-breaker/README.md similarity index 100% rename from circuit-breaker/README.md rename to eip/circuit-breaker/README.md diff --git a/circuit-breaker/metadata.json b/eip/circuit-breaker/metadata.json similarity index 100% rename from circuit-breaker/metadata.json rename to eip/circuit-breaker/metadata.json diff --git a/circuit-breaker/route.camel.yaml b/eip/circuit-breaker/route.camel.yaml similarity index 100% rename from circuit-breaker/route.camel.yaml rename to eip/circuit-breaker/route.camel.yaml diff --git a/eip/content-based-router/README.md b/eip/content-based-router/README.md new file mode 100644 index 0000000..d030d8d --- /dev/null +++ b/eip/content-based-router/README.md @@ -0,0 +1,48 @@ +## Content Based Router + +This example demonstrates the Content Based Router EIP. + +A simulated temperature sensor generates random readings between 0 and 40. +The route uses the `choice` EIP to classify each reading: + +- **Hot** (>= 30): logged as an alert +- **Normal** (15-29): logged as normal +- **Cold** (< 15): logged as an alert + +### Install JBang + +First install JBang according to https://www.jbang.dev + +When JBang is installed then you should be able to run from a shell: + +```sh +$ jbang --version +``` + +This will output the version of JBang. + +To run this example you can either install Camel on JBang via: + +```sh +$ jbang app install camel@apache/camel +``` + +Which allows to run Camel CLI with `camel` as shown below. + +### How to run + +You can run this example using: + +```sh +$ camel run * +``` + +### Help and contributions + +If you hit any problem using Camel or have some feedback, then please +[let us know](https://camel.apache.org/community/support/). + +We also love contributors, so +[get involved](https://camel.apache.org/community/contributing/) :-) + +The Camel riders! diff --git a/eip/content-based-router/content-based-router.camel.yaml b/eip/content-based-router/content-based-router.camel.yaml new file mode 100644 index 0000000..698c2b1 --- /dev/null +++ b/eip/content-based-router/content-based-router.camel.yaml @@ -0,0 +1,45 @@ +- route: + id: sensor + from: + uri: timer + parameters: + timerName: sensor + period: 1000 + steps: + - setBody: + expression: + simple: + expression: "${random(0,40)}" + - convertBodyTo: + type: int + - choice: + when: + - simple: + expression: "${body} >= 30" + steps: + - setHeader: + name: level + expression: + constant: + expression: hot + - log: + message: "Hot alert: ${body} C" + - simple: + expression: "${body} >= 15" + steps: + - setHeader: + name: level + expression: + constant: + expression: normal + - log: + message: "Normal: ${body} C" + otherwise: + steps: + - setHeader: + name: level + expression: + constant: + expression: cold + - log: + message: "Cold alert: ${body} C" diff --git a/eip/content-based-router/metadata.json b/eip/content-based-router/metadata.json new file mode 100644 index 0000000..a47e924 --- /dev/null +++ b/eip/content-based-router/metadata.json @@ -0,0 +1,11 @@ +{ + "title": "Content Based Router", + "description": "Route messages to different destinations based on message content using the Choice EIP", + "tags": [ + "eip", + "choice", + "routing" + ], + "bundled": true, + "level": "beginner" +} diff --git a/eip/splitter/README.md b/eip/splitter/README.md new file mode 100644 index 0000000..ea673cc --- /dev/null +++ b/eip/splitter/README.md @@ -0,0 +1,47 @@ +## Splitter + +This example demonstrates the Splitter EIP. + +A batch of comma-separated product names is split into individual messages. +Each item is logged with its split index. + +The splitter processes each part of the message independently, which is useful +for breaking down bulk data into individual records for downstream processing. + +### Install JBang + +First install JBang according to https://www.jbang.dev + +When JBang is installed then you should be able to run from a shell: + +```sh +$ jbang --version +``` + +This will output the version of JBang. + +To run this example you can either install Camel on JBang via: + +```sh +$ jbang app install camel@apache/camel +``` + +Which allows to run Camel CLI with `camel` as shown below. + +### How to run + +You can run this example using: + +```sh +$ camel run * +``` + +### Help and contributions + +If you hit any problem using Camel or have some feedback, then please +[let us know](https://camel.apache.org/community/support/). + +We also love contributors, so +[get involved](https://camel.apache.org/community/contributing/) :-) + +The Camel riders! diff --git a/eip/splitter/metadata.json b/eip/splitter/metadata.json new file mode 100644 index 0000000..f27e080 --- /dev/null +++ b/eip/splitter/metadata.json @@ -0,0 +1,11 @@ +{ + "title": "Splitter", + "description": "Split a batch of items into individual messages for processing", + "tags": [ + "eip", + "splitter", + "batch" + ], + "bundled": true, + "level": "beginner" +} diff --git a/eip/splitter/splitter.camel.yaml b/eip/splitter/splitter.camel.yaml new file mode 100644 index 0000000..b87b5b4 --- /dev/null +++ b/eip/splitter/splitter.camel.yaml @@ -0,0 +1,22 @@ +- route: + id: order-splitter + from: + uri: timer + parameters: + timerName: orders + period: 5000 + repeatCount: 3 + steps: + - setBody: + expression: + constant: + expression: "Laptop,Phone,Tablet,Monitor,Keyboard" + - log: + message: "Received batch: ${body}" + - split: + expression: + tokenize: + token: "," + steps: + - log: + message: "Processing item ${headers.CamelSplitIndex}: ${body}" diff --git a/groovy/README.md b/language/groovy/README.md similarity index 100% rename from groovy/README.md rename to language/groovy/README.md diff --git a/groovy/application.properties b/language/groovy/application.properties similarity index 100% rename from groovy/application.properties rename to language/groovy/application.properties diff --git a/groovy/groovy.camel.yaml b/language/groovy/groovy.camel.yaml similarity index 100% rename from groovy/groovy.camel.yaml rename to language/groovy/groovy.camel.yaml diff --git a/groovy/metadata.json b/language/groovy/metadata.json similarity index 100% rename from groovy/metadata.json rename to language/groovy/metadata.json diff --git a/artemis/README.md b/messaging/artemis/README.md similarity index 100% rename from artemis/README.md rename to messaging/artemis/README.md diff --git a/artemis/application.properties b/messaging/artemis/application.properties similarity index 100% rename from artemis/application.properties rename to messaging/artemis/application.properties diff --git a/artemis/consumer.camel.yaml b/messaging/artemis/consumer.camel.yaml similarity index 100% rename from artemis/consumer.camel.yaml rename to messaging/artemis/consumer.camel.yaml diff --git a/artemis/metadata.json b/messaging/artemis/metadata.json similarity index 100% rename from artemis/metadata.json rename to messaging/artemis/metadata.json diff --git a/artemis/producer.camel.yaml b/messaging/artemis/producer.camel.yaml similarity index 100% rename from artemis/producer.camel.yaml rename to messaging/artemis/producer.camel.yaml diff --git a/ftp/README.md b/messaging/ftp/README.md similarity index 100% rename from ftp/README.md rename to messaging/ftp/README.md diff --git a/ftp/application.properties b/messaging/ftp/application.properties similarity index 100% rename from ftp/application.properties rename to messaging/ftp/application.properties diff --git a/ftp/compose.yaml b/messaging/ftp/compose.yaml similarity index 100% rename from ftp/compose.yaml rename to messaging/ftp/compose.yaml diff --git a/ftp/ftp-kaoto.png b/messaging/ftp/ftp-kaoto.png similarity index 100% rename from ftp/ftp-kaoto.png rename to messaging/ftp/ftp-kaoto.png diff --git a/ftp/ftp.camel.yaml b/messaging/ftp/ftp.camel.yaml similarity index 100% rename from ftp/ftp.camel.yaml rename to messaging/ftp/ftp.camel.yaml diff --git a/ftp/jbang.properties b/messaging/ftp/jbang.properties similarity index 100% rename from ftp/jbang.properties rename to messaging/ftp/jbang.properties diff --git a/ftp/metadata.json b/messaging/ftp/metadata.json similarity index 100% rename from ftp/metadata.json rename to messaging/ftp/metadata.json diff --git a/ftp/test/citrus-application.properties b/messaging/ftp/test/citrus-application.properties similarity index 100% rename from ftp/test/citrus-application.properties rename to messaging/ftp/test/citrus-application.properties diff --git a/ftp/test/ftp.citrus.it.yaml b/messaging/ftp/test/ftp.citrus.it.yaml similarity index 100% rename from ftp/test/ftp.citrus.it.yaml rename to messaging/ftp/test/ftp.citrus.it.yaml diff --git a/ftp/test/payload.xml b/messaging/ftp/test/payload.xml similarity index 100% rename from ftp/test/payload.xml rename to messaging/ftp/test/payload.xml diff --git a/mqtt/README.md b/messaging/mqtt/README.md similarity index 100% rename from mqtt/README.md rename to messaging/mqtt/README.md diff --git a/mqtt/application.properties b/messaging/mqtt/application.properties similarity index 100% rename from mqtt/application.properties rename to messaging/mqtt/application.properties diff --git a/mqtt/compose.yaml b/messaging/mqtt/compose.yaml similarity index 100% rename from mqtt/compose.yaml rename to messaging/mqtt/compose.yaml diff --git a/mqtt/infra/mosquitto.conf b/messaging/mqtt/infra/mosquitto.conf similarity index 100% rename from mqtt/infra/mosquitto.conf rename to messaging/mqtt/infra/mosquitto.conf diff --git a/mqtt/metadata.json b/messaging/mqtt/metadata.json similarity index 100% rename from mqtt/metadata.json rename to messaging/mqtt/metadata.json diff --git a/mqtt/mqtt-kaoto.png b/messaging/mqtt/mqtt-kaoto.png similarity index 100% rename from mqtt/mqtt-kaoto.png rename to messaging/mqtt/mqtt-kaoto.png diff --git a/mqtt/mqtt-karavan.png b/messaging/mqtt/mqtt-karavan.png similarity index 100% rename from mqtt/mqtt-karavan.png rename to messaging/mqtt/mqtt-karavan.png diff --git a/mqtt/mqtt.camel.yaml b/messaging/mqtt/mqtt.camel.yaml similarity index 100% rename from mqtt/mqtt.camel.yaml rename to messaging/mqtt/mqtt.camel.yaml diff --git a/mqtt/start.sh b/messaging/mqtt/start.sh similarity index 100% rename from mqtt/start.sh rename to messaging/mqtt/start.sh diff --git a/mqtt/test/citrus-application.properties b/messaging/mqtt/test/citrus-application.properties similarity index 100% rename from mqtt/test/citrus-application.properties rename to messaging/mqtt/test/citrus-application.properties diff --git a/mqtt/test/mqtt.citrus.it.yaml b/messaging/mqtt/test/mqtt.citrus.it.yaml similarity index 100% rename from mqtt/test/mqtt.citrus.it.yaml rename to messaging/mqtt/test/mqtt.citrus.it.yaml diff --git a/mqtt/test/payload-low.json b/messaging/mqtt/test/payload-low.json similarity index 100% rename from mqtt/test/payload-low.json rename to messaging/mqtt/test/payload-low.json diff --git a/mqtt/test/payload.json b/messaging/mqtt/test/payload.json similarity index 100% rename from mqtt/test/payload.json rename to messaging/mqtt/test/payload.json diff --git a/memory-leak/MemoryLeak.java b/observability/memory-leak/MemoryLeak.java similarity index 100% rename from memory-leak/MemoryLeak.java rename to observability/memory-leak/MemoryLeak.java diff --git a/memory-leak/README.md b/observability/memory-leak/README.md similarity index 100% rename from memory-leak/README.md rename to observability/memory-leak/README.md diff --git a/memory-leak/metadata.json b/observability/memory-leak/metadata.json similarity index 100% rename from memory-leak/metadata.json rename to observability/memory-leak/metadata.json diff --git a/message-size/README.md b/observability/message-size/README.md similarity index 100% rename from message-size/README.md rename to observability/message-size/README.md diff --git a/message-size/metadata.json b/observability/message-size/metadata.json similarity index 100% rename from message-size/metadata.json rename to observability/message-size/metadata.json diff --git a/message-size/orders.camel.yaml b/observability/message-size/orders.camel.yaml similarity index 100% rename from message-size/orders.camel.yaml rename to observability/message-size/orders.camel.yaml diff --git a/route-topology/README.md b/observability/route-topology/README.md similarity index 100% rename from route-topology/README.md rename to observability/route-topology/README.md diff --git a/route-topology/application.properties b/observability/route-topology/application.properties similarity index 100% rename from route-topology/application.properties rename to observability/route-topology/application.properties diff --git a/route-topology/metadata.json b/observability/route-topology/metadata.json similarity index 100% rename from route-topology/metadata.json rename to observability/route-topology/metadata.json diff --git a/route-topology/route-topology.camel.yaml b/observability/route-topology/route-topology.camel.yaml similarity index 100% rename from route-topology/route-topology.camel.yaml rename to observability/route-topology/route-topology.camel.yaml diff --git a/openapi/README.md b/openapi/README.md deleted file mode 100644 index ab32e3b..0000000 --- a/openapi/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# OpenAPI - -This example is using Camel leveraging OpenAPI specifications on both client and server side. - -Please see the individual examples for: - -* [client](client/README.md) -* [server](server/README.md) - -## Help and contributions - -If you hit any problem using Camel or have some feedback, then please -[let us know](https://camel.apache.org/community/support/). - -We also love contributors, so -[get involved](https://camel.apache.org/community/contributing/) :-) - -The Camel riders! diff --git a/openapi/client/README.md b/rest/openapi-client/README.md similarity index 100% rename from openapi/client/README.md rename to rest/openapi-client/README.md diff --git a/openapi/client/application.properties b/rest/openapi-client/application.properties similarity index 100% rename from openapi/client/application.properties rename to rest/openapi-client/application.properties diff --git a/openapi/client/examples/1001.json b/rest/openapi-client/examples/1001.json similarity index 100% rename from openapi/client/examples/1001.json rename to rest/openapi-client/examples/1001.json diff --git a/openapi/client/metadata.json b/rest/openapi-client/metadata.json similarity index 100% rename from openapi/client/metadata.json rename to rest/openapi-client/metadata.json diff --git a/openapi/client/petstore-api.json b/rest/openapi-client/petstore-api.json similarity index 100% rename from openapi/client/petstore-api.json rename to rest/openapi-client/petstore-api.json diff --git a/openapi/client/petstore-client.camel.yaml b/rest/openapi-client/petstore-client.camel.yaml similarity index 100% rename from openapi/client/petstore-client.camel.yaml rename to rest/openapi-client/petstore-client.camel.yaml diff --git a/openapi/client/test/citrus-application.properties b/rest/openapi-client/test/citrus-application.properties similarity index 100% rename from openapi/client/test/citrus-application.properties rename to rest/openapi-client/test/citrus-application.properties diff --git a/openapi/client/test/examples/1001.json b/rest/openapi-client/test/examples/1001.json similarity index 100% rename from openapi/client/test/examples/1001.json rename to rest/openapi-client/test/examples/1001.json diff --git a/openapi/client/test/petstore-api.json b/rest/openapi-client/test/petstore-api.json similarity index 100% rename from openapi/client/test/petstore-api.json rename to rest/openapi-client/test/petstore-api.json diff --git a/openapi/client/test/petstore-client.citrus.it.yaml b/rest/openapi-client/test/petstore-client.citrus.it.yaml similarity index 100% rename from openapi/client/test/petstore-client.citrus.it.yaml rename to rest/openapi-client/test/petstore-client.citrus.it.yaml diff --git a/openapi/client/test/petstoreServer.groovy b/rest/openapi-client/test/petstoreServer.groovy similarity index 100% rename from openapi/client/test/petstoreServer.groovy rename to rest/openapi-client/test/petstoreServer.groovy diff --git a/openapi/server/README.md b/rest/openapi-server/README.md similarity index 100% rename from openapi/server/README.md rename to rest/openapi-server/README.md diff --git a/openapi/server/application.properties b/rest/openapi-server/application.properties similarity index 100% rename from openapi/server/application.properties rename to rest/openapi-server/application.properties diff --git a/openapi/server/examples/pet/1000.json b/rest/openapi-server/examples/pet/1000.json similarity index 100% rename from openapi/server/examples/pet/1000.json rename to rest/openapi-server/examples/pet/1000.json diff --git a/openapi/server/metadata.json b/rest/openapi-server/metadata.json similarity index 100% rename from openapi/server/metadata.json rename to rest/openapi-server/metadata.json diff --git a/openapi/server/petstore-api.json b/rest/openapi-server/petstore-api.json similarity index 100% rename from openapi/server/petstore-api.json rename to rest/openapi-server/petstore-api.json diff --git a/openapi/server/petstore.camel.yaml b/rest/openapi-server/petstore.camel.yaml similarity index 100% rename from openapi/server/petstore.camel.yaml rename to rest/openapi-server/petstore.camel.yaml diff --git a/openapi/server/test/citrus-application.properties b/rest/openapi-server/test/citrus-application.properties similarity index 100% rename from openapi/server/test/citrus-application.properties rename to rest/openapi-server/test/citrus-application.properties diff --git a/openapi/server/test/examples/pet/1000.json b/rest/openapi-server/test/examples/pet/1000.json similarity index 100% rename from openapi/server/test/examples/pet/1000.json rename to rest/openapi-server/test/examples/pet/1000.json diff --git a/openapi/server/test/petstore-api.json b/rest/openapi-server/test/petstore-api.json similarity index 100% rename from openapi/server/test/petstore-api.json rename to rest/openapi-server/test/petstore-api.json diff --git a/openapi/server/test/petstore.citrus.it.yaml b/rest/openapi-server/test/petstore.citrus.it.yaml similarity index 100% rename from openapi/server/test/petstore.citrus.it.yaml rename to rest/openapi-server/test/petstore.citrus.it.yaml diff --git a/keycloak-introspection-rest/README.md b/security/keycloak-introspection-rest/README.md similarity index 100% rename from keycloak-introspection-rest/README.md rename to security/keycloak-introspection-rest/README.md diff --git a/keycloak-introspection-rest/application.properties b/security/keycloak-introspection-rest/application.properties similarity index 100% rename from keycloak-introspection-rest/application.properties rename to security/keycloak-introspection-rest/application.properties diff --git a/keycloak-introspection-rest/metadata.json b/security/keycloak-introspection-rest/metadata.json similarity index 100% rename from keycloak-introspection-rest/metadata.json rename to security/keycloak-introspection-rest/metadata.json diff --git a/keycloak-introspection-rest/rest-api.camel.yaml b/security/keycloak-introspection-rest/rest-api.camel.yaml similarity index 100% rename from keycloak-introspection-rest/rest-api.camel.yaml rename to security/keycloak-introspection-rest/rest-api.camel.yaml diff --git a/keycloak-ldap-migration/README.md b/security/keycloak-ldap-migration/README.md similarity index 100% rename from keycloak-ldap-migration/README.md rename to security/keycloak-ldap-migration/README.md diff --git a/keycloak-ldap-migration/application.properties b/security/keycloak-ldap-migration/application.properties similarity index 100% rename from keycloak-ldap-migration/application.properties rename to security/keycloak-ldap-migration/application.properties diff --git a/keycloak-ldap-migration/ldap-migration.camel.yaml b/security/keycloak-ldap-migration/ldap-migration.camel.yaml similarity index 100% rename from keycloak-ldap-migration/ldap-migration.camel.yaml rename to security/keycloak-ldap-migration/ldap-migration.camel.yaml diff --git a/keycloak-ldap-migration/metadata.json b/security/keycloak-ldap-migration/metadata.json similarity index 100% rename from keycloak-ldap-migration/metadata.json rename to security/keycloak-ldap-migration/metadata.json diff --git a/keycloak-ldap-migration/users.ldif b/security/keycloak-ldap-migration/users.ldif similarity index 100% rename from keycloak-ldap-migration/users.ldif rename to security/keycloak-ldap-migration/users.ldif diff --git a/keycloak-security-rest/README.md b/security/keycloak-security-rest/README.md similarity index 100% rename from keycloak-security-rest/README.md rename to security/keycloak-security-rest/README.md diff --git a/keycloak-security-rest/application.properties b/security/keycloak-security-rest/application.properties similarity index 100% rename from keycloak-security-rest/application.properties rename to security/keycloak-security-rest/application.properties diff --git a/keycloak-security-rest/metadata.json b/security/keycloak-security-rest/metadata.json similarity index 100% rename from keycloak-security-rest/metadata.json rename to security/keycloak-security-rest/metadata.json diff --git a/keycloak-security-rest/rest-api.camel.yaml b/security/keycloak-security-rest/rest-api.camel.yaml similarity index 100% rename from keycloak-security-rest/rest-api.camel.yaml rename to security/keycloak-security-rest/rest-api.camel.yaml diff --git a/ocsf/README.md b/security/ocsf/README.md similarity index 100% rename from ocsf/README.md rename to security/ocsf/README.md diff --git a/ocsf/application.properties b/security/ocsf/application.properties similarity index 100% rename from ocsf/application.properties rename to security/ocsf/application.properties diff --git a/ocsf/metadata.json b/security/ocsf/metadata.json similarity index 100% rename from ocsf/metadata.json rename to security/ocsf/metadata.json diff --git a/ocsf/ocsf.camel.yaml b/security/ocsf/ocsf.camel.yaml similarity index 100% rename from ocsf/ocsf.camel.yaml rename to security/ocsf/ocsf.camel.yaml diff --git a/ocsf/test/authentication-event.json b/security/ocsf/test/authentication-event.json similarity index 100% rename from ocsf/test/authentication-event.json rename to security/ocsf/test/authentication-event.json diff --git a/ocsf/test/authentication_1.json b/security/ocsf/test/authentication_1.json similarity index 100% rename from ocsf/test/authentication_1.json rename to security/ocsf/test/authentication_1.json diff --git a/ocsf/test/authentication_2.json b/security/ocsf/test/authentication_2.json similarity index 100% rename from ocsf/test/authentication_2.json rename to security/ocsf/test/authentication_2.json diff --git a/ocsf/test/detection-finding.json b/security/ocsf/test/detection-finding.json similarity index 100% rename from ocsf/test/detection-finding.json rename to security/ocsf/test/detection-finding.json diff --git a/ocsf/test/detection-finding_1.json b/security/ocsf/test/detection-finding_1.json similarity index 100% rename from ocsf/test/detection-finding_1.json rename to security/ocsf/test/detection-finding_1.json diff --git a/ocsf/test/detection-finding_2.json b/security/ocsf/test/detection-finding_2.json similarity index 100% rename from ocsf/test/detection-finding_2.json rename to security/ocsf/test/detection-finding_2.json diff --git a/ocsf/test/detection-finding_3.json b/security/ocsf/test/detection-finding_3.json similarity index 100% rename from ocsf/test/detection-finding_3.json rename to security/ocsf/test/detection-finding_3.json diff --git a/ocsf/test/detection-finding_4.json b/security/ocsf/test/detection-finding_4.json similarity index 100% rename from ocsf/test/detection-finding_4.json rename to security/ocsf/test/detection-finding_4.json diff --git a/ocsf/test/detection-finding_5.json b/security/ocsf/test/detection-finding_5.json similarity index 100% rename from ocsf/test/detection-finding_5.json rename to security/ocsf/test/detection-finding_5.json diff --git a/ocsf/test/detection-finding_6.json b/security/ocsf/test/detection-finding_6.json similarity index 100% rename from ocsf/test/detection-finding_6.json rename to security/ocsf/test/detection-finding_6.json diff --git a/ocsf/test/file-activity_1.json b/security/ocsf/test/file-activity_1.json similarity index 100% rename from ocsf/test/file-activity_1.json rename to security/ocsf/test/file-activity_1.json diff --git a/ocsf/test/network-activity_1.json b/security/ocsf/test/network-activity_1.json similarity index 100% rename from ocsf/test/network-activity_1.json rename to security/ocsf/test/network-activity_1.json diff --git a/ocsf/test/network-activity_2.json b/security/ocsf/test/network-activity_2.json similarity index 100% rename from ocsf/test/network-activity_2.json rename to security/ocsf/test/network-activity_2.json diff --git a/ocsf/test/process-activity_1.json b/security/ocsf/test/process-activity_1.json similarity index 100% rename from ocsf/test/process-activity_1.json rename to security/ocsf/test/process-activity_1.json diff --git a/ocsf/test/vulnerability-finding_1.json b/security/ocsf/test/vulnerability-finding_1.json similarity index 100% rename from ocsf/test/vulnerability-finding_1.json rename to security/ocsf/test/vulnerability-finding_1.json diff --git a/ocsf/test/vulnerability-finding_2.json b/security/ocsf/test/vulnerability-finding_2.json similarity index 100% rename from ocsf/test/vulnerability-finding_2.json rename to security/ocsf/test/vulnerability-finding_2.json diff --git a/pqc-document-signing/README.md b/security/pqc-document-signing/README.md similarity index 100% rename from pqc-document-signing/README.md rename to security/pqc-document-signing/README.md diff --git a/pqc-document-signing/application.properties b/security/pqc-document-signing/application.properties similarity index 100% rename from pqc-document-signing/application.properties rename to security/pqc-document-signing/application.properties diff --git a/pqc-document-signing/metadata.json b/security/pqc-document-signing/metadata.json similarity index 100% rename from pqc-document-signing/metadata.json rename to security/pqc-document-signing/metadata.json diff --git a/pqc-document-signing/pqc-document-signing.yaml b/security/pqc-document-signing/pqc-document-signing.yaml similarity index 100% rename from pqc-document-signing/pqc-document-signing.yaml rename to security/pqc-document-signing/pqc-document-signing.yaml diff --git a/pqc-secure-file-transfer/README.md b/security/pqc-secure-file-transfer/README.md similarity index 100% rename from pqc-secure-file-transfer/README.md rename to security/pqc-secure-file-transfer/README.md diff --git a/pqc-secure-file-transfer/application.properties b/security/pqc-secure-file-transfer/application.properties similarity index 100% rename from pqc-secure-file-transfer/application.properties rename to security/pqc-secure-file-transfer/application.properties diff --git a/pqc-secure-file-transfer/metadata.json b/security/pqc-secure-file-transfer/metadata.json similarity index 100% rename from pqc-secure-file-transfer/metadata.json rename to security/pqc-secure-file-transfer/metadata.json diff --git a/pqc-secure-file-transfer/pqc-secure-file-transfer.yaml b/security/pqc-secure-file-transfer/pqc-secure-file-transfer.yaml similarity index 100% rename from pqc-secure-file-transfer/pqc-secure-file-transfer.yaml rename to security/pqc-secure-file-transfer/pqc-secure-file-transfer.yaml diff --git a/edi-x12-as2/.gitignore b/transformation/edi-x12-as2/.gitignore similarity index 100% rename from edi-x12-as2/.gitignore rename to transformation/edi-x12-as2/.gitignore diff --git a/edi-x12-as2/README.md b/transformation/edi-x12-as2/README.md similarity index 100% rename from edi-x12-as2/README.md rename to transformation/edi-x12-as2/README.md diff --git a/edi-x12-as2/camel/App.java b/transformation/edi-x12-as2/camel/App.java similarity index 100% rename from edi-x12-as2/camel/App.java rename to transformation/edi-x12-as2/camel/App.java diff --git a/edi-x12-as2/camel/EmbeddedBroker.java b/transformation/edi-x12-as2/camel/EmbeddedBroker.java similarity index 100% rename from edi-x12-as2/camel/EmbeddedBroker.java rename to transformation/edi-x12-as2/camel/EmbeddedBroker.java diff --git a/edi-x12-as2/camel/InvalidPartnerException.java b/transformation/edi-x12-as2/camel/InvalidPartnerException.java similarity index 100% rename from edi-x12-as2/camel/InvalidPartnerException.java rename to transformation/edi-x12-as2/camel/InvalidPartnerException.java diff --git a/edi-x12-as2/camel/application.properties b/transformation/edi-x12-as2/camel/application.properties similarity index 100% rename from edi-x12-as2/camel/application.properties rename to transformation/edi-x12-as2/camel/application.properties diff --git a/edi-x12-as2/camel/broker.xml b/transformation/edi-x12-as2/camel/broker.xml similarity index 100% rename from edi-x12-as2/camel/broker.xml rename to transformation/edi-x12-as2/camel/broker.xml diff --git a/edi-x12-as2/camel/edi-x12-as2.camel.yaml b/transformation/edi-x12-as2/camel/edi-x12-as2.camel.yaml similarity index 100% rename from edi-x12-as2/camel/edi-x12-as2.camel.yaml rename to transformation/edi-x12-as2/camel/edi-x12-as2.camel.yaml diff --git a/edi-x12-as2/camel/fake.camel.yaml b/transformation/edi-x12-as2/camel/fake.camel.yaml similarity index 100% rename from edi-x12-as2/camel/fake.camel.yaml rename to transformation/edi-x12-as2/camel/fake.camel.yaml diff --git a/edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw b/transformation/edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw similarity index 100% rename from edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw rename to transformation/edi-x12-as2/edi-x12-as2-camel-smooks.excalidraw diff --git a/edi-x12-as2/edi-x12-as2-camel-smooks.png b/transformation/edi-x12-as2/edi-x12-as2-camel-smooks.png similarity index 100% rename from edi-x12-as2/edi-x12-as2-camel-smooks.png rename to transformation/edi-x12-as2/edi-x12-as2-camel-smooks.png diff --git a/edi-x12-as2/ftl/segment-id-attr.xml.ftl b/transformation/edi-x12-as2/ftl/segment-id-attr.xml.ftl similarity index 100% rename from edi-x12-as2/ftl/segment-id-attr.xml.ftl rename to transformation/edi-x12-as2/ftl/segment-id-attr.xml.ftl diff --git a/edi-x12-as2/ftl/x12-ack.xml.ftl b/transformation/edi-x12-as2/ftl/x12-ack.xml.ftl similarity index 100% rename from edi-x12-as2/ftl/x12-ack.xml.ftl rename to transformation/edi-x12-as2/ftl/x12-ack.xml.ftl diff --git a/edi-x12-as2/metadata.json b/transformation/edi-x12-as2/metadata.json similarity index 100% rename from edi-x12-as2/metadata.json rename to transformation/edi-x12-as2/metadata.json diff --git a/edi-x12-as2/smooks/gen-x12-ack-config.xml b/transformation/edi-x12-as2/smooks/gen-x12-ack-config.xml similarity index 100% rename from edi-x12-as2/smooks/gen-x12-ack-config.xml rename to transformation/edi-x12-as2/smooks/gen-x12-ack-config.xml diff --git a/edi-x12-as2/smooks/ingest-x12-config.xml b/transformation/edi-x12-as2/smooks/ingest-x12-config.xml similarity index 100% rename from edi-x12-as2/smooks/ingest-x12-config.xml rename to transformation/edi-x12-as2/smooks/ingest-x12-config.xml diff --git a/edi-x12-as2/test/application.test.properties b/transformation/edi-x12-as2/test/application.test.properties similarity index 100% rename from edi-x12-as2/test/application.test.properties rename to transformation/edi-x12-as2/test/application.test.properties diff --git a/smart-log-analyzer/first-iteration/test/citrus-application.properties b/transformation/edi-x12-as2/test/citrus-application.properties similarity index 100% rename from smart-log-analyzer/first-iteration/test/citrus-application.properties rename to transformation/edi-x12-as2/test/citrus-application.properties diff --git a/edi-x12-as2/test/compose.yaml b/transformation/edi-x12-as2/test/compose.yaml similarity index 100% rename from edi-x12-as2/test/compose.yaml rename to transformation/edi-x12-as2/test/compose.yaml diff --git a/edi-x12-as2/test/edi-x12-as2.citrus.it.yaml b/transformation/edi-x12-as2/test/edi-x12-as2.citrus.it.yaml similarity index 100% rename from edi-x12-as2/test/edi-x12-as2.citrus.it.yaml rename to transformation/edi-x12-as2/test/edi-x12-as2.citrus.it.yaml diff --git a/edi-x12-as2/test/payload.edi b/transformation/edi-x12-as2/test/payload.edi similarity index 100% rename from edi-x12-as2/test/payload.edi rename to transformation/edi-x12-as2/test/payload.edi diff --git a/xslt/README.md b/transformation/xslt/README.md similarity index 100% rename from xslt/README.md rename to transformation/xslt/README.md diff --git a/xslt/consumer.camel.yaml b/transformation/xslt/consumer.camel.yaml similarity index 100% rename from xslt/consumer.camel.yaml rename to transformation/xslt/consumer.camel.yaml diff --git a/xslt/input/account.xml b/transformation/xslt/input/account.xml similarity index 100% rename from xslt/input/account.xml rename to transformation/xslt/input/account.xml diff --git a/xslt/metadata.json b/transformation/xslt/metadata.json similarity index 100% rename from xslt/metadata.json rename to transformation/xslt/metadata.json diff --git a/xslt/stylesheet.xsl b/transformation/xslt/stylesheet.xsl similarity index 100% rename from xslt/stylesheet.xsl rename to transformation/xslt/stylesheet.xsl
