Apache-camel-project
Apache Camel-プロジェクト
Mavenを使用してCamelプロジェクトをビルドします。 ただし、開発にはIntelliJ IDEを使用することをお勧めします。 このプロジェクトには、任意のIDEを使用できます。
新しいプロジェクトの作成
新しい Maven プロジェクトを作成し、次を指定します-
GroupId: Basket
ArtifactId: Basket
プロジェクトのデフォルトの場所を選択するか、選択したディレクトリを指定します。
依存関係の追加
Camelを使用するには、いくつかの依存関係を追加する必要があります。 依存関係は pom.xml に追加されます。 だからpom.xmlを開き、次の2つの依存関係を追加します-
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-stream</artifactId>
<version>2.20.0</version>
</dependency>
</dependencies>
注-アプリケーションには最低限の依存関係が必要です。 ライブラリからより多くのCamelコンポーネントを使用する場合、対応する依存関係をこのpom.xmlファイルに追加する必要があります。
Java DSLの作成
次に、フィルタリングおよびルーティングコードをJava DSLで記述します。 DistributeOrderDSL という新しいJavaクラスを作成します。 それに次のコードを追加します-
public class DistributeOrderDSL {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
try {
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:DistributeOrderDSL")
.split(xpath("//order[@product='soaps']/items")).to("stream:out");
//.to("file:src/main/resources/order/");
}
});
context.start();
ProducerTemplate orderProducerTemplate = context.createProducerTemplate();
InputStream orderInputStream = new FileInputStream(ClassLoader.getSystemClassLoader()
.getResource("order.xml").getFile());
orderProducerTemplate.sendBody("direct:DistributeOrderDSL", orderInputStream);
} finally {
context.stop();
}
}
}
*main* メソッドでは、最初に *DefaultCamelContext* クラスで提供されるデフォルトの実装をインスタンス化して *CamelContext* を作成します。
CamelContext context = new DefaultCamelContext();
次に、匿名 RouteBuilder インスタンスを作成してルートを追加します-
context.addRoutes(new RouteBuilder() {
*configure* メソッドをオーバーライドして、ルートを直接URI *DistributeOrderDSL* からシステムコンソールに追加します。 xpathクエリを使用してフィルタリングを提供します。
public void configure() throws Exception {
from("direct:DistributeOrderDSL")
.split(xpath("//order[@product = 'soaps']/items")).to("stream:out");
//.to("file:src/main/resources/order/");
}
ルートを追加した後、コンテキストを開始します-
context.start();
次に、直接URIを作成するためのコード- DistributeOrderDSL を追加します。
ProducerTemplate orderProducerTemplate = context.createProducerTemplate();
InputStream orderInputStream = new FileInputStream(ClassLoader.getSystemClassLoader()
.getResource("order.xml").getFile());
最後に、処理を開始します-
orderProducerTemplate.sendBody("direct:DistributeOrderDSL", orderInputStream);
これで、Java DSLコードが完成したら、アプリケーションをテストする前に残っていることは、プロジェクトに order.xml ファイルを追加することだけです。 この目的のために、「はじめに」の章に示されているサンプルXMLを使用できます。
試験結果
あなたがアプリケーションを実行すると、次の出力が表示されます-
<items>
<item>
<Brand>Cinthol</Brand>
<Type>Original</Type>
<Quantity>4</Quantity>
<Price>25</Price>
</item>
<item>
<Brand>Cinthol</Brand>
<Type>Lime</Type>
<Quantity>6</Quantity>
<Price>30</Price>
</item>
</items>
ここでは石鹸の注文のみがリストされていることに注意してください。 これをローカルファイルに保存する場合は、 stream.out 行をコメント化し、 configure メソッドで次の行のコメントを外します-
//.to("file:src/main/resources/order/");
次のセクションでは、CamelをSpringで使用する方法を学習します。