2.2. Blueprint XML DSL ルートの移行
Blueprint XML ルート定義を Fuse アプリケーションから CEQ に移行するには、camel-quarkus-xml-io-dsl エクステンションを使用し、Fuse アプリケーションのルート定義を CEQ アプリケーションに直接コピーします。次に、必要な依存関係を CEQ pom.xml ファイルに追加し、application.properties ファイル内の CEQ 設定を更新する必要があります。
CEQ は Camel 3 をサポートしますが、Fuse 7 は Camel 2 をサポートします。
Red Hat Fuse 7 アプリケーションを CEQ に移行する際の Camel のアップグレードに関する詳細は、Apache Camel の移行 を参照してください。
Camel Quarkus での Bean の使用の詳細は、Red Hat build of Apache Camel for Quarkus を使用したアプリケーションの開発 ガイドの CDI および Camel Bean コンポーネント セクションを参照してください。
2.2.1. XML-IO-DSL の制限事項 リンクのコピーリンクがクリップボードにコピーされました!
camel-quarkus-xml-io-dsl エクステンションを使用すると、Blueprint XML ルート定義の CEQ への移行を支援できます。
camel-quarkus-xml-io-dsl エクステンションは、次の <camelContext> サブ要素のみをサポートします。
- routeTemplates
- templatedRoutes
- rests
- routes
- routeConfigurations
Blueprint XML は camel-quarkus-xml-io-dsl エクステンションでサポートされていない他の Bean 定義をサポートしているため、Blueprint XML ルート定義に含まれる他の Bean 定義を書き直す必要が生じる場合があります。
すべての要素 (XML IO DSL) をそれぞれ別のファイルで定義する必要があります。たとえば、これは Blueprint XML ルート定義の簡単な例です。
次のファイルで定義されているように、XML IO DSL を使用して、この Blueprint XML ルート定義を CEQ に移行できます。
src/main/resources/routes/camel-rests.xml
src/main/resources/routes/camel-routes.xml
<routes xmlns="http://camel.apache.org/schema/spring">
<route>
<from ..../>
</route>
</routes>
<routes xmlns="http://camel.apache.org/schema/spring">
<route>
<from ..../>
</route>
</routes>
<restConfiguration> など、サポートされていない他の要素を定義するには、Java DSL を使用する必要があります。たとえば、次のように、camel-rests.xml ファイルで定義されたルートビルダーを使用します。
src/main/resources/routes/camel-rests.xml
2.2.2. Blueprint XML DSL ルート移行の例 リンクのコピーリンクがクリップボードにコピーされました!
XML IO DSL エクステンションの使用に関する詳細は、「Red Hat build of Apache Camel for Quarkus エクステンション」の XML IO DSL ドキュメントを参照してください。
この例では、Blueprint XML ルート定義を CEQ アプリケーションの camel-routes.xml という名前のファイルにコピーして、Fuse アプリケーションから新しい CEQ アプリケーションにコンテンツベースのルート定義を移行しています。
手順
Web サイト
code.quarkus.redhat.comを使用して、この例で使用する次のエクステンションを選択します。- camel-quarkus-xml-io-dsl
- camel-quarkus-file
- camel-quarkus-xpath
- Generate your application を選択して選択内容を確認し、生成されたプロジェクトを含むアーカイブのダウンロードリンクが記載されたオーバーレイ画面を表示します。
- Download the ZIP を選択して、生成されたプロジェクトファイルを含むアーカイブをマシンに保存します。
- アーカイブの内容をデプロイメントします。
直前の手順で生成されたプロジェクトファイルの展開先ディレクトリーに移動します。
cd <directory_name>
$ cd <directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
src/main/resources/routes/ディレクトリーにcamel-routes.xmlという名前のファイルを作成します。 次の例
blueprint-example.xmlの<route>要素とサブ要素をcamel-routes.xmlファイルにコピーします。blueprint-example.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow camel-routes.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow application.propertiesを修正します。# Camel # camel.context.name = camel-quarkus-xml-io-dsl-example camel.main.routes-include-pattern = file:src/main/resources/routes/camel-routes.xml
# Camel # camel.context.name = camel-quarkus-xml-io-dsl-example camel.main.routes-include-pattern = file:src/main/resources/routes/camel-routes.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow CEQ アプリケーションをコンパイルします。
mvn clean compile quarkus:dev
mvn clean compile quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドでは、プロジェクトのコンパイル、アプリケーションの起動、Quarkus ツールでのワークスペースの変更監視などを行います。プロジェクトの変更は自動的に実行中のアプリケーションに適用されます。