====== Apache Camel ====== https://camel.apache.org/ Apache Camel is an Open Source Integration framework based on known [[https://camel.apache.org/components/4.0.x/eips/enterprise-integration-patterns.html|Enterprise Integration Patterns (EIP)]]. EIPs implemented by Camel are described in a well known [[https://www.enterpriseintegrationpatterns.com/|Enterprise Integration Patterns book]]. * Camel empowers you to define routing and mediation rules in a DSL (e.g. Java, XML, YAML etc) * Camel uses URIs to work with any kind of transport or messaging model (e.g. HTTP, Kafka, JMS ...) * as well as pluggable Components and DataFormat options * Camel has * support for BeanBinding * integration with some popular frameworks (like Spring) * support for unit testing of routes ===== Camel documentation ===== * [[Apache Camel User Manual]] * My summary of [[https://camel.apache.org/manual/index.html|Apache Camel User manual]] * [[https://camel.apache.org/components/4.0.x/index.html|Components]] * [[https://camel.apache.org/components/4.0.x/dataformats/index.html|Data formats]] * [[https://camel.apache.org/components/4.0.x/dataformats/csv-dataformat.html|CSV]] * [[https://github.com/apache/camel/blob/main/components/camel-csv/src/main/docs/csv-dataformat.adoc|JavaDoc zum CSV Format]] (?) * Properties * [[https://camel.apache.org/components/4.0.x/properties-component.html|Properties Component]] * [[https://camel.apache.org/manual/property-binding.html|Property Binding in Camel]] * [[https://camel.apache.org/manual/using-propertyplaceholder.html|How to use Camel property placeholders]] * Examples * [[https://github.com/CamelCookbook/camel-cookbook-examples|Apache Camel Developer's Cookbook, 2nd Edition Samples]] * a little bit outdated, but still usable. * [[http://www.masterspringboot.com/camel/transforming-csv-to-java-objects-using-camel/|Transforming CSV to Java Objects using Camel]] (with Bindy) ===== Camel related projects ===== * Apache Kameleon -> https://kameleon.dev/#/standalone * A project generator for Apache Camel. It generates maven-based Java project with preconfigured Apache Camel runtime and selected components/extensions. * The simplest way to generate a new Camel project. * On Github: https://github.com/apache/camel-kameleon * Apache Karavan -> https://github.com/apache/camel-karavan * UI ("designer") to handle Camel routes etc. * Karavan can run as * web application * VS Code extension * Eclipse Che plugin * Runs generated code with * JBang ("standard" way) * after the export the code can run with * Quarkus * Spring Boot * If Karavan is installed in Kubernetes * as web application * -> export to git * -> Tekton pipelines * Misc links * https://camel.apache.org/blog/2023/01/karavan-intro/