ApacheCamel-プロジェクト

Mavenを使用してCamelプロジェクトを構築します。ただし、開発にはIntelliJIDEを使用することをお勧めします。このプロジェクトには、任意の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>

Note−アプリケーションには最小限の依存関係が必要です。ライブラリからより多くのCamelコンポーネントを使用する場合、対応する依存関係をこのpom.xmlファイルに追加する必要があります。

JavaDSLの作成

次に、フィルタリングとルーティングのコードをJavaDSLで記述します。と呼ばれる新しいJavaクラスを作成しますDistributeOrderDSL。次のコードを追加します-

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 メソッド、最初に作成します CamelContext で提供されるデフォルトの実装をインスタンス化することによって DefaultCamelContext クラス。

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/");

次のセクションでは、SpringでCamelを使用する方法を学習します。