| = Camel Core |
| |
| [TIP] |
| ==== |
| This page is work in progress. The layering is probably not yet correct |
| ==== |
| |
| Camel-core is the basic module of apache camel. It contains the public |
| API and the Java DSL and several implementation packages. |
| |
| The most important packages are: |
| [width="100%",cols="20%,80%",options="header",] |
| |======================================================================= |
| |Package Name |Description |
| |
| |builder |The Camel Domain Specific Language for creating Routes, Predicates, |
| Expressions and Error Handlers |
| |
| |model |Contains the classes (*Type) that form the java DSL. The central class |
| is the RouteBuilder |
| |
| |language |Language APIs and plugins for Expressions and Predicates |
| |
| |component |Some simple components like bean or log. You will find most components |
| in the other camel modules |
| |
| |impl |Implementation classes for model and camel |
| |
| |processor |Processors to implement the Enterprise Integration Patterns |
| |
| |spi |Service provider interfaces. Strategy APIs for implementors to extend |
| Camel |
| |
| |camel |Base package for camel. Defintions like Message and CamelContext can be |
| found there |
| |======================================================================= |
| |
| [[Camel-Core-ArchitectureDiagram]] |
| Architecture Diagram |
| -------------------- |
| |
| The diagram shows the (relaxed) layering of the top level packages in |
| camel-core. Relaxed means that a layer may reference any layer below |
| it. |
| |
| image::architecture.png[image] |
| |
| [[Camel-Core-ArchitectureDiagramincludingcurrentviolations]] |
| Architecture Diagram including current violations |
| -------------------------------------------------- |
| |
| Each arrow upwards shows a violation in the layering. That means some |
| class inside the package references a class of a package above it. These |
| diagrams were built with an architecture tool called structure 101. We |
| have an offer from the manufacturer headway software to supply us with |
| licenses for all camel developers that are interested. If you want a |
| license please contact me (Christian Schneider chris at |
| die-schneider.net). I will then try to organize a license for you. + |
| image::architecture_incl_violations.png[image] |