Apache Camel è un framework che facilita principalmente la risoluzione delle sfide di integrazione aziendale. Al suo centro può essere pensato come un costruttore di motori di routing. In sostanza, consente di connettere i sistemi (endpoint) tramite percorsi. Questi percorsi accettano messaggi che possono essere di qualsiasi tipo di dati.
Il framework Apache Camel contiene anche un set completo di EIP (modelli di integrazione aziendale) come splitter, aggregatori, routing basato sul contenuto e così via. Poiché il framework può essere implementato in varie applicazioni Java standalone, in vari server applicativi come WildFly e Tomcat o su un bus di servizio aziendale completo può essere visto come un framework di integrazione.
Per iniziare con il framework è necessario aggiungerlo a un progetto utilizzando uno dei seguenti metodi:
Camel's DSL (Domain Specific Language) è una delle caratteristiche che rende Camel straordinario rispetto ad altri framework di integrazione. Mentre alcuni altri framework dispongono anche di un concetto DSL, in genere sotto forma di file XML, in questi casi il DSL era sempre un linguaggio personalizzato.
Camel offre più DSL in linguaggi di programmazione come Java, Scala, Groovy e in XML.
Ad esempio, un semplice percorso di copia dei file può essere eseguito in vari modi, come mostrato nell'elenco seguente
DSL Java
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"
Istruzioni dettagliate sull'aggiunta delle dipendenze Camel richieste.
Uno dei modi più comuni per includere Apache Camel nella tua applicazione è attraverso una dipendenza Maven. Aggiungendo il blocco delle dipendenze sotto, Maven risolverà le librerie e le dipendenze Camel per te.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.17.3</version>
</dependency>
Un altro modo comune per includere Apache Camel nella tua applicazione è attraverso una dipendenza Gradle. Aggiungi semplicemente la linea di dipendenza qui sotto e Gradle importerà la libreria Camel e le sue dipendenze per te.
// https://mvnrepository.com/artifact/org.apache.camel/camel-core
compile group: 'org.apache.camel', name: 'camel-core', version: '2.17.3'
A partire da Camel 2.15, ora puoi sfruttare la dipendenza Spring Boot di Apache Camel. La differenza con questa libreria Camel è che fornisce una configurazione automatica supponente, incluso il rilevamento automatico delle rotte 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>