Apache Camel es un marco que facilita principalmente la resolución de desafíos de integración empresarial. En su núcleo se puede considerar como un generador de motores de enrutamiento. En esencia, le permite conectar sistemas (puntos finales) a través de rutas. Estas rutas aceptan mensajes que pueden ser de cualquier tipo de datos.
El marco de Apache Camel también contiene un conjunto completo de EIP (patrones de integración empresarial) como divisor, agregadores, enrutamiento basado en contenido, etc. Dado que el marco se puede implementar en varias aplicaciones independientes en Java, en varios servidores de aplicaciones como WildFly y Tomcat o en un bus de servicios empresariales de pleno derecho, se puede ver como un marco de integración.
Para comenzar con el marco, debe agregarlo a un proyecto usando uno de los siguientes métodos:
El DSL (lenguaje específico del dominio) de Camel es una de las características que hace que Camel sobresalga de otros marcos de integración. Si bien otros marcos también incluyen un concepto de DSL, generalmente en forma de un archivo XML, en estos casos, el DSL siempre fue un lenguaje personalizado.
Camel ofrece múltiples DSL en lenguajes de programación como Java, Scala, Groovy y en XML.
Por ejemplo, una ruta de copia de archivos simple se puede hacer de varias maneras como se muestra en la lista a continuación
Java DSL
from("file:data/in").to("file:data/out");
Blueprint / Spring DSL (XML)
<route>
<from uri="file:data/inbox"/>
<to uri="file:data/out"/>
</route>
Scala DSL
from "file:data/inbox" -> "file:data/out"
Instrucciones detalladas para agregar las dependencias de Camel requeridas.
Una de las formas más comunes de incluir Apache Camel en su aplicación es a través de una dependencia de Maven. Al agregar el bloque de dependencia a continuación, Maven resolverá las bibliotecas y dependencias de Camel por usted.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.17.3</version>
</dependency>
Otra forma común de incluir Apache Camel en su aplicación es a través de una dependencia de Gradle. Simplemente agregue la línea de dependencia a continuación y Gradle importará la biblioteca Camel y sus dependencias por usted.
// https://mvnrepository.com/artifact/org.apache.camel/camel-core
compile group: 'org.apache.camel', name: 'camel-core', version: '2.17.3'
A partir de Camel 2.15, ahora puede aprovechar la dependencia Spring Boot de Apache Camel. La diferencia con esta biblioteca de Camel es que proporciona una configuración automática de opinión, incluida la detección automática de rutas de Camel.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot</artifactId>
<version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>