Camel の開発ツール - Camel JBang (Camel CLI) のご紹介 (1)

レッドハットのソリューションアーキテクトの森です。

Red Hat build of Apache Camel(旧 Red Hat Fuse)では、開発のためのツールをいくつかご用意しています。

今回は、効率よくプロトタイピングを行うことができる、Camel JBang (Camel CLI) についてご紹介をします。 Camel JBangを使用すると、シンプルなスクリプトファイルを使用してCamelルートを実行できます。


事前準備

以下のものをインストールしておきます。

  • JBang
  • Camel JBang (Camel CLI)

JBangのインストールについては、こちらを参照ください。

JBangがインストールされていれば、以下のコマンドで Camel JBang をインストールすることができます。 既にApache Camelを使用している方は、Camelと同じバージョンを指定してください。(ここでは 4.8.2 を指定しています)

jbang app install -Dcamel.jbang.version=4.8.2 camel@apache/camel

インストールが完了すると、camel version で JBang と Camel JBang のバージョンが確認できます。

  • 出力例
% camel version
JBang version: 0.122.0
Camel JBang version: 4.8.2

Camel JBang の主なコマンドについて

以下にCamel JBangの基本的なコマンドを示します。(私がよく使うもの)

コマンド 内容
init Camel の 基本的な ルート を作成する
run 指定したCamelスクリプトファイルを実行
version インストールされているCamel JBangのバージョンを表示
help 使用可能なコマンドの一覧とその説明を表示
export CamelプロジェクトをMavenプロジェクトとしてエクスポート
transform route CamelのDSLの形式変換(YAML ↔︎ XML)
ps ローカルで実行している Camel を監視する
stop ローカルで実行中の Camel を停止する
debug Camel ルート のデバッグを行う

その他のコマンドや詳細については、camel --help を確認するか、Camel JBang のドキュメントを確認してみてください。


Camel JBang を使ってみる

Camel ルート の作成と実行

camel init コマンドを使用して、新しい基本 ルート を作成できます。 ファイル形式は *.java*.yaml*.xml などが指定可能です。

例えば、YAML DSL形式の ルート を作成するには、以下のようにします。

camel init sample.yaml

サンプルルートを含むファイルを sample.yaml(現在のディレクトリに)作成します。

YAML DSL形式の ルート であれば、VSCodeの拡張機能として提供しているGUIエディタの Kaoto で編集をすることができます。

marketplace.visualstudio.com

このサンプルルートは、以下のような動作を定義しています。

  • Timerコンポーネントの使用:

from 句に Camel の Timer コンポーネントが設定されています。 これは、定期的にイベントを発生させることができます。 parameters セクションで period: "1000" が設定されており、これはタイマーが毎秒(1000ミリ秒)ごとにメッセージを生成することを意味します。

  • 処理ステップの定義:

steps セクションでは、メッセージの生成とログへの出力が定義されています。

setBody: このステップでは、メッセージの本文を設定しています。ここでは "Hello Camel from ${routeId}" という文字列を使用しており、${routeId} はこのルートのIDに動的に置き換えられます。

log: 設定したメッセージ本文をログに出力しています。 ${body} は現在のメッセージ本文を参照しており、これにより前の setBody で設定された文字列がログとして出力されます。

Camel ルート を Camel JBang で実行するには、次のコマンドを実行します。

camel run sample.yaml

Camel Quarkus, Camel Springboot へのエクスポート

camel export --runtime=quarkus コマンドは、現在のCamel JBangファイルを、Mavenベースの Quarkus プロジェクトにエクスポートします。

例えば、Maven の groupId: com.fooartifactId: acme 及び、version: 1.0-SNAPSHOT で Quarkus にエクスポートするには、次のコマンドを実行します。

camel export <files> --runtime=quarkus --gav=com.foo:acme:1.0-SNAPSHOT --directory=./myproject

必要な依存関係などは pom.xml に含まれているので、Camel Quarkus としてすぐに動かすこともできます。

cd myproject
mvn quarkus:dev

同様に、Spring Boot のプロジェクトにエクスポートする場合は、--runtime=spring-boot と指定してください。

camel export <files> --runtime=spring-boot --gav=com.foo:acme:1.0-SNAPSHOT --directory=./myproject

おわりに

いかがでしょうか?

Camel JBang を使うことで、Apache Camelのインテグレーションの開発がより効率よく行うことができるようになります。

次回は、Camel JBang の Kubernetes Plugin を使って、プロトタイプを OpenShift にデプロイする方法をご紹介します。

Red Hat build of Apache Camel に関して興味がある・もう少し詳しい内容が聞きたい、などありましたら、是非弊社までお問合せ頂ければと思います。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。