Apache Camelは、主にエンタープライズ統合の課題の解決を容易にするフレームワークです。そのコアでは、ルーティングエンジンエンジンビルダーと考えることができます。本質的には、ルート経由でシステム(エンドポイント)を接続することができます。これらのルートは、任意のデータ型のメッセージを受け入れます。
Apache Camelフレームワークには、スプリッタ、アグリゲータ、コンテンツベースのルーティングなどのEIP(エンタープライズ統合パターン)の完全なセットも含まれています。このフレームワークは、Javaアプリケーションのさまざまなスタンドアロン、WildFlyやTomcatなどのさまざまなアプリケーションサーバー、または完全なエンタープライズサービスバスに展開できるため、統合フレームワークとみなすことができます。
フレームワークを使い始めるには、次のいずれかの方法でプロジェクトに追加する必要があります。
CamelのDSL(Domain Specific Language)は、Camelを他の統合フレームワークから凌駕する機能の1つです。他のいくつかのフレームワークは、通常XMLファイルの形式でDSLの概念も備えていますが、DSLは常にカスタムベースの言語でした。
Camelは、Java、Scala、Groovy、XMLなどのプログラミング言語で複数のDSLを提供しています。
たとえば、以下のリストに示すように、単純なファイルコピールートをさまざまな方法で実行できます
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>
スカラDSL
from "file:data/inbox" -> "file:data/out"
必要なCamelの依存関係の追加に関する詳細な手順。
Apache Camelをアプリケーションに組み込む最も一般的な方法の1つは、Mavenの依存関係を使用することです。以下の依存関係ブロックを追加することで、MavenはCamelのライブラリと依存関係を解決します。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.17.3</version>
</dependency>
Apache Camelをアプリケーションに組み込むもう一つの一般的な方法は、Gradle依存関係を使用する方法です。以下の依存関係行を追加するだけで、GradleはCamelライブラリとその依存関係をインポートします。
// https://mvnrepository.com/artifact/org.apache.camel/camel-core
compile group: 'org.apache.camel', name: 'camel-core', version: '2.17.3'
Camel 2.15以降、Apache CamelのSpring Boot依存性を利用できるようになりました。このCamelライブラリとの違いは、それが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>