Fuse 7 アプリケーションの Red Hat build of Apache Camel for Quarkus への移行
Fuse 7 アプリケーションの Red Hat build of Apache Camel for Quarkus への移行
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Fuse 7 アプリケーションの Red Hat build of Apache Camel for Quarkus への移行の概要 リンクのコピーリンクがクリップボードにコピーされました!
Fuse
Red Hat Fuse は、Apache Camel や Apache Karaf などのオープンソースコミュニティーに基づくアジャイル統合ソリューションです。Red Hat Fuse は軽量かつ柔軟性のある統合プラットフォームで、オンプレミスのクラウドの迅速な統合を可能にします。
Red Hat Fuse は、次の 3 つの異なるランタイムを使用して実行できます。
- OSGi アプリケーションをサポートする Karaf
- Spring Boot
- JBoss EAP (Enterprise Application Platform)
Red Hat build of Apache Camel for Quarkus
Red Hat build of Apache Camel for Quarkus は、Apache Camel とその膨大なコンポーネントライブラリーの統合機能を Quarkus ランタイムに提供します。Red Hat build of Camel Quarkus は、多くの Camel コンポーネントに Quarkus エクステンションを提供します。
Camel Quarkus は、Camel 3 に追加された多くのパフォーマンス上の改善点を活用します。これにより、メモリーフットプリントが削減され、リフレクションへの依存が減り、起動時間が短縮されます。
Red Hat build of Apache Camel for Quarkus アプリケーションでは、Java DSL を使用して Camel ルートを定義するため、Fuse アプリケーションで使用する Camel ルートを CEQ に移行できます。
Camel on EAP
OSGI 依存関係管理の概念に従う Karaf と、JEE 仕様に従う EAP は、コンテナー化されたアプリケーションの採用によって影響を受けるアプリケーションサーバーです。
コンテナーは、アプリケーションをパッケージ化するための主要な方法として出現しました。その結果、デプロイメント、スケーリング、クラスタリング、負荷分散を含むアプリケーション管理の役割が、アプリケーションサーバーから Kubernetes を使用したコンテナーオーケストレーションに移りました。
EAP は Red Hat Openshift で引き続きサポートされますが、Camel 3 は EAP サーバーではサポートされなくなりました。したがって、EAP サーバー上で Fuse 7 アプリケーションを実行している場合は、アプリケーションを Red Hat Build of Apache Camel for Spring Boot または Red Hat build of Apache Camel for Quarkus に移行することを検討する必要があります。その際には、移行プロセスを利用して、モノリスアーキテクチャーからマイクロサービスアーキテクチャーへのアプリケーションの再設計、または部分的な再設計を検討することを推奨します。
Openshift を使用しない場合は、Spring Boot および Quarkus 用にアプリケーションをデプロイする際には RHEL 仮想マシンが引き続き有効なアプローチであり、Quarkus はネイティブコンパイル機能のメリットも享受します。このようなプラットフォーム上でマイクロサービスアーキテクチャーの管理をサポートするツールを評価することが重要です。
Red Hat は、Red Hat Ansible for Middleware コレクション を使用し、Ansible を通じてこの機能を提供します。
1.1. 標準的な移行パス リンクのコピーリンクがクリップボードにコピーされました!
1.1.1. XML パス リンクのコピーリンクがクリップボードにコピーされました!
Spring XML または Blueprint XML で記述された Fuse アプリケーションは、XML ベースのフレーバーに移行する必要があり、Spring Boot または Quarkus ランタイムのどちらかをターゲットにできます (移行手順はどちらも同じです)。
1.1.2. Java パス リンクのコピーリンクがクリップボードにコピーされました!
Java DSL で記述された Fuse アプリケーションは Java ベースのフレーバーに移行する必要があり、移行手順は同じままで Spring Boot または Quarkus ランタイムのいずれかをターゲットにできます。
1.2. アーキテクチャーの変更 リンクのコピーリンクがクリップボードにコピーされました!
Openshift は Fabric8 に代わって Fuse 6 ユーザーのランタイムプラットフォームとなり、Fuse アプリケーションの移行における推奨ターゲットになります。
アプリケーションを移行するときは、次のアーキテクチャーの変更を考慮する必要があります。
- Fuse 6 アプリケーションが Fabric8 サービスディスカバリーに依存していた場合は、OpenShift で Camel 3 を実行するときに Kubernetes Service Discovery を使用する必要があります。
- Fuse 6 アプリケーションが OSGi バンドル設定に依存している場合は、OpenShift で Camel 3 を実行するときに Kubernetes ConfigMaps と Secret を使用する必要があります。
- アプリケーションがファイルベースのルート定義を使用している場合は、OpenShift で Camel 3 を実行するときに AWS S3 テクノロジーの使用を検討してください。
- アプリケーションが標準のファイルシステムを使用している場合は、結果として得られる Spring Boot または Quarkus アプリケーションを Openshift プラットフォームではなく標準の RHEL 仮想マシンにデプロイする必要があります。
- SSL 要件を処理する Openshift Router へのインバウンド HTTPS 接続の委譲。
- Hystrix 機能の Service Mesh への委譲。
第2章 Camel ルートを Fuse 7 から Red Hat build of Apache Camel for Quarkus に移行する リンクのコピーリンクがクリップボードにコピーされました!
Java DSL、XML IO DSL、または YAML を使用して、Red Hat build of Apache Camel for Quarkus アプリケーションで Camel ルートを定義できます。
2.1. Java DSL ルート移行の例 リンクのコピーリンクがクリップボードにコピーされました!
既存のルート定義を Red Hat build of Apache Camel for Quarkus アプリケーションに直接コピーし、必要な依存関係を Red Hat build of Apache Camel for Quarkus pom.xml ファイルに追加することで、Java DSL ルート定義を Fuse アプリケーションから CEQ に移行できます。
この例では、Java DSL ルートを CEQ アプリケーションの Routes.java という名前のファイルにコピーすることにより、コンテンツベースのルート定義を Fuse 7 アプリケーションから新しい CEQ アプリケーションに移行します。
手順
Web サイト
code.quarkus.redhat.comを使用して、この例に必要なエクステンションを選択します。- camel-quarkus-file
- camel-quarkus-xpath
直前の手順で生成されたプロジェクトファイルの展開先ディレクトリーに移動します。
cd <directory_name>
$ cd <directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
src/main/java/org/acme/サブフォルダーにRoutes.javaという名前のファイルを作成します。 次の例のように、Fuse アプリケーションから
Routes.javaにルート定義を追加します。Copy 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 ツールでのワークスペースの変更監視などを行います。プロジェクトの変更は自動的に実行中のアプリケーションに適用されます。
2.2. Blueprint XML DSL ルートの移行 リンクのコピーリンクがクリップボードにコピーされました!
Blueprint XML ルート定義を Fuse アプリケーションから CEQ に移行するには、camel-quarkus-xml-io-dsl エクステンションを使用し、Fuse アプリケーションのルート定義を Red Hat build of Apache Camel for Quarkus アプリケーションに直接コピーします。次に、必要な依存関係を Red Hat build of Apache Camel for Quarkus pom.xml ファイルに追加し、application.properties ファイル内の Red Hat build of Apache Camel for Quarkus の設定を更新する必要があります。
Red Hat build of Apache Camel for Quarkus は Camel バージョン 4 をサポートしますが、Fuse 7 は Camel バージョン 2 をサポートします。
Red Hat Fuse 7 アプリケーションを CEQ に移行する際の 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 ツールでのワークスペースの変更監視などを行います。プロジェクトの変更は自動的に実行中のアプリケーションに適用されます。
第3章 Apache Camel の移行 リンクのコピーリンクがクリップボードにコピーされました!
3.1. Camel 移行ガイドについて リンクのコピーリンクがクリップボードにコピーされました!
このガイドでは、アプリケーションを移行するときに考慮する必要がある Apache Camel コンポーネントの変更について詳しく説明します。また、次の変更に関する情報を提供します。
- サポートされる Java バージョン
- Apache Camel コンポーネントと非推奨コンポーネントの変更
- API と非推奨 API の変更
- EIP の更新
- トレースとヘルスチェックの更新
3.2. Apache Camel 4 への移行 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Apache Camel アプリケーションをバージョン 3.20 以降から 4.0 に移行するのに役立つ情報を提供します。
個々のバージョンについては、以下を参照してください。
Apache Camel Quarkus のアップグレード方法については、以下を参照してください。
3.2.1. Java バージョン リンクのコピーリンクがクリップボードにコピーされました!
Apache Camel 4 は Java 17 をサポートします。Java 11 のサポートは終了します。
3.2.2. 削除されたコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
次のコンポーネントが削除されました。
| コンポーネント | 代替コンポーネント |
|---|---|
| camel-any23 | none |
| camel-atlasmap | none |
| camel-atmos | none |
| camel-caffeine-lrucache | camel-cache、camel-ignite、camel-infinispan |
| camel-cdi | camel-spring-boot、camel-quarkus |
| camel-corda | none |
| camel-directvm | camel-direct |
| camel-dozer | camel-mapstruct |
| camel-elasticsearch-rest | camel-elasticsearch |
| camel-gora | none |
| camel-hbase | none |
| camel-hyperledger-aries | none |
| camel-iota | none |
| camel-ipfs | none |
| camel-jbpm | none |
| camel-jclouds | none |
| camel-johnzon | camel-jackson、camel-fastjson、camel-gson |
| camel-microprofile-metrics | camel-micrometer、camel-opentelemetry |
| camel-milo | none |
| camel-opentracing | camel-micrometer、camel-opentelemetry |
| camel-rabbitmq | spring-rabbitmq-component |
| camel-rest-swagger | camel-openapi-rest |
| camel-restdsl-swagger-plugin | camel-restdsl-openapi-plugin |
| camel-resteasy | camel-cxf、camel-rest |
| camel-solr | none |
| camel-spark | none |
| camel-spring-integration | none |
| camel-swagger-java | camel-openapi-java |
| camel-websocket | camel-vertx-websocket |
| camel-websocket-jsr356 | camel-vertx-websocket |
| camel-vertx-kafka | camel-kafka |
| camel-vm | camel-seda |
| camel-weka | none |
| camel-xstream | camel-jacksonxml |
| camel-zipkin | camel-micrometer、camel-opentelemetry |
3.2.3. ロギング リンクのコピーリンクがクリップボードにコピーされました!
Camel 4 では、ロギングファサード API slf4j-api が 1.7 から 2.0 にアップグレードされました。
3.2.4. JUnit 4 リンクのコピーリンクがクリップボードにコピーされました!
JUnit 4.x ベースの camel-test モジュールはすべて削除されました。テストモジュールはすべて JUnit 5 を使用するようになりました。
3.2.5. API の変更 リンクのコピーリンクがクリップボードにコピーされました!
次の API は非推奨となり、バージョン 4 から削除されました。
-
org.apache.camel.ExchangePatternからInOptionalOutを削除しました。 -
getEndpointMap()メソッドをCamelContextから削除しました。 -
@FallbackConverterを削除しました。代わりに@Converter(fallback = true)を使用する必要があります。 -
@EndpointInject、@Produce、および@Consumeのuri属性を削除しました。代わりにvalue(デフォルト) を使用する必要があります。たとえば、@Produce(uri = "kafka:cheese")は、@Produce("kafka:cheese")に変更する必要があります。 -
@UriEndpointのlabelを削除しました。代わりにcategoryを使用する必要があります。 -
ProducerTemplateのすべてのasyncCallbackメソッドを削除しました。代わりにasyncSendまたはasyncRequestを使用してください。 -
org.apache.camel.spi.OnCamelContextStartを削除しました。代わりにorg.apache.camel.spi.OnCamelContextStartingを使用してください。 -
org.apache.camel.spi.OnCamelContextStopを削除しました。代わりにorg.apache.camel.spi.OnCamelContextStoppingを使用してください。 -
org.apache.camel.ExtendedCamelContextをorg.apache.camel.CamelContextから分離しました。 -
org.apache.camel.CamelContextのadapt()をgetCamelContextExtensionに置き換えました。 -
org.apache.camel.Exchangeからorg.apache.camel.ExtendedExchangeを分離しました。 -
org.apache.camel.ExtendedExchangeのadapt()をgetExchangeExtensionに置き換えました。 -
Exchange の障害処理ステータスが、
ExchangePropertyKey.FAILURE_HANDLEDとして定義されたプロパティーから、`isFailureHandled()` メソッドを介してアクセスできる ExtendedExchange のメンバーに移動しました。 -
org.apache.camel.util.concurrent.ThreadPoolRejectedPolicyからDiscardとDiscardOldestを削除しました。 -
org.apache.camel.builder.SimpleBuilderを削除しました。これは主に、Camel の内部で、場合によっては Java DSL とともに使用されていました。 -
org.apache.camel.support.IntrospectionSupportを、内部使用専用とするためにcamel-core-engineに移動しました。エンドユーザーは代わりにorg.apache.camel.spi.BeanInspectionを使用する必要があります。 -
org.apache.camel.catalog.CamelCatalogからarchetypeCatalogAsXmlメソッドを削除しました。 -
org.apache.camel.health.HealthCheckメソッドisLivenessが、デフォルトでtrueではなくfalseになりました。 -
org.apache.camel.StreamCacheにpositionメソッドを追加しました。 -
インターフェイス
org.apache.camel.main.Listenerのconfigureメソッドを削除しました。 -
org.apache.camel.support.EventNotifierSupport抽象クラスがCamelContextAwareを実装するようになりました。 -
CamelContextのdumpRoutesのタイプが、booleanからStringに変更され、xml または yaml のいずれかを指定できるようになりました。
org.apache.camel.support.PluginHelper を使用すると、以前 Camel v3 で CamelContext から直接利用できたさまざまなエクステンションやコンテキストプラグインに簡単にアクセスできます。
3.2.6. EIP の変更 リンクのコピーリンクがクリップボードにコピーされました!
-
各 EIP の
<description>のlang属性を削除しました。 -
InOnlyおよびInOutEIP を削除しました。代わりに、使用するエクスチェンジパターンを指定できるSetExchangePatternまたはToを使用してください。
3.2.6.1. エンリッチポーリング EIP リンクのコピーリンクがクリップボードにコピーされました!
ポーリングされるエンドポイント URI が、他のすべての EIP と同様に、Exchange のプロパティーとして (キー CamelToEndpoint とともに) 保存されるようになりました。これは URI がメッセージヘッダーとして保存される前に実行されます。
3.2.6.2. CircuitBreaker EIP リンクのコピーリンクがクリップボードにコピーされました!
camel-resilience4j の次のオプションが、誤りにより、属性として定義されていませんでした。
| オプション |
| bulkheadEnabled |
| bulkheadMaxConcurrentCalls |
| bulkheadMaxWaitDuration |
| timeoutEnabled |
| timeoutExecutorService |
| timeoutDuration |
| timeoutCancelRunningFuture |
これらのオプションは YAML DSL では公開されませんでした。XML DSL では以下から移行する必要があります。
代わりに次の属性を使用してください。
<circuitBreaker>
<resilience4jConfiguration timeoutEnabled="true" timeoutDuration="2000"/>
...
</circuitBreaker>
<circuitBreaker>
<resilience4jConfiguration timeoutEnabled="true" timeoutDuration="2000"/>
...
</circuitBreaker>
3.2.7. XML DSL リンクのコピーリンクがクリップボードにコピーされました!
ルートまたはノードに説明を設定する <description> が要素から属性に変更されました。
例
<route id="myRoute" description="Something that this route do"> <from uri="kafka:cheese"/> ... </route>
<route id="myRoute" description="Something that this route do">
<from uri="kafka:cheese"/>
...
</route>
3.2.8. 型コンバーター リンクのコピーリンクがクリップボードにコピーされました!
String → java.io.File コンバーターは削除されました。
3.2.9. トレーシング リンクのコピーリンクがクリップボードにコピーされました!
Tracer および Backlog Tracer に、Rest DSL、ルートテンプレート、または Kamelet によって作成されたルートからの内部トレースイベントが含まれなくなりました。これをオンにするには、トレーサーで traceTemplates=true を設定します。
Backlog Tracer が強化され、メッセージヘッダー (およびストリーミングタイプ) をトレースするように 修正 されました。以前は InputStream タイプのヘッダーがトレースされていませんでしたが、現在はトレース対象に含まれます。そのため、ヘッダーストリームを最後に配置し、その後ヘッダーをログに記録すると、ヘッダー値が空であると表示される可能性があります。
3.2.10. UseOriginalMessage / UseOriginalBody リンクのコピーリンクがクリップボードにコピーされました!
useOriginalMessage または useOriginalBody が OnException、OnCompletion またはエラーハンドラーで有効になっている場合、元のメッセージボディーが防御的にコピーされ、アクセス時にボディーを再読み取りできるように、可能な場合は StreamCache に変換されます。以前は、元のボディーが StreamCache に変換されなかったため、ボディーを読み取れなかったり、ストリームが閉じられたりする可能性がありました。
3.2.11. Camel の正常性 リンクのコピーリンクがクリップボードにコピーされました!
ヘルスチェックは、デフォルトですぐに使用できる readiness チェックのみになりました。Camel は、CamelContextCheck を readiness チェックと liveness チェックの両方の形で提供するため、すぐに使用できる状態のチェックがそれぞれ少なくとも 1 つあります。デフォルトでは、コンシューマーベースのヘルスチェックのみが有効になっています。
3.2.11.1. プロデューサーのヘルスチェック リンクのコピーリンクがクリップボードにコピーされました!
オプション camel.health.components-enabled の名前が camel.health.producers-enabled に変更されました。
一部のコンポーネント (特に AWS) は、プロデューサーのヘルスチェックも提供します。Camel 3.x では、これらのヘルスチェックは正しく機能せず、ソースで無効になっています。Camel 4 でもこの動作を継続するために、プロデューサーベースのヘルスチェックは無効になっています。
camel-kafka には、Camel 3 で機能していたプロデューサーベースのヘルスチェックが付属しています。そのため、Camel 4 でのこの変更により、このヘルスチェックが無効になることに注意してください。
application.properties などでプロデューサーのヘルスチェックをグローバルに有効にする 必要があります。
camel.health.producers-enabled = true
camel.health.producers-enabled = true
3.2.12. JMX リンクのコピーリンクがクリップボードにコピーされました!
Camel のプロセッサー MBean のツリーに、doCatch および doFinally の MBean も含まれるようになりました。
ManagedChoiceMBean の名前が、choiceStatistics から extendInformation に変更されました。ManagedFailoverLoadBalancerMBean の名前が、exceptionStatistics から extendInformation に変更されました。
CamelContextMBean と CamelRouteMBean から、メソッド dumpRouteAsXml(boolean resolvePlaceholders, boolean resolveDelegateEndpoints) が削除されました。
3.2.13. YAML DSL リンクのコピーリンクがクリップボードにコピーされました!
route の子として steps を持つことができる下位互換性モード (Camel 3.14 以前) が削除されました。
新しい構文は次のとおりです。
- route:
from:
uri: "direct:info"
steps:
- log: "message"
- route:
from:
uri: "direct:info"
steps:
- log: "message"
3.2.14. バックログのトレース リンクのコピーリンクがクリップボードにコピーされました!
オプション backlogTracing=true が自動的に有効になり、起動時にトレーサーが開始するようになりました。以前のバージョンでは、トレーサーは利用可能になるだけで、後で手動で有効にする必要がありました。backlogTracingStandby=true を設定すると、古い動作を実現できます。
次のクラスを、camel-management-api JAR の org.apache.camel.api.management.mbean.BacklogTracerEventMessage から、camel-api JAR の org.apache.camel.spi.BacklogTracerEventMessage に移動します。
org.apache.camel.impl.debugger.DefaultBacklogTracerEventMessage が、トレースされたメッセージに関する追加の詳細を備えたインターフェイス org.apache.camel.spi.BacklogTracerEventMessage にリファクタリングされました。たとえば、Camel は入力メッセージと出力メッセージ (InOut の場合) を含む 最初 と 最後 のトレースをキャプチャーするようになりました。
3.2.15. XML シリアライゼーション リンクのコピーリンクがクリップボードにコピーされました!
ModelToXMLDumper を使用したデフォルトの XML シリアライザーが改善され、camel-jaxb の JAXB ベースの XML シリアライザーではなく、camel-xml-io モジュールにある生成された XML シリアライザーを使用するようになりました。
3.2.16. OpenAPI Maven プラグイン リンクのコピーリンクがクリップボードにコピーされました!
Camel-restdsl-openapi-plugin Maven プラグインは、生成された Rest DSL コードのデフォルトの REST コンポーネントとして、Quarkus でそのまま使用できる優れたデフォルトである platform-http を使用するようになりました。
3.2.17. コンポーネントの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.2.17.1. カテゴリー リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.Category の列挙型の数が 83 から 37 に削減されました。つまり、削除された値を使用しているカスタムコンポーネントに、残りの値の 1 つを指定する必要があります。これは、Camel コミュニティー内のすべてのコンポーネントのカテゴリーの数を整理するために行われました。
3.2.17.2. camel-openapi-rest-dsl-generator リンクのコピーリンクがクリップボードにコピーされました!
この DSL ジェネレーターでは、基礎となるモデルクラス (apicurio-data-models) が 1.1.27 から 2.0.3 に更新されました。
3.2.17.3. camel-atom リンクのコピーリンクがクリップボードにコピーされました!
camel-atom コンポーネントのサードパーティーの Atom クライアントが、Apache Abdera から RSSReader に変更されました。これにより、フィードオブジェクトが org.apache.abdera.model.Feed から com.apptasticsoftware.rssreader.Item に変更されました。
3.2.17.4. camel-azure-cosmosdb リンクのコピーリンクがクリップボードにコピーされました!
itemPartitionKey が更新されました。これは PartitionKey ではなく String になりました。詳細は、CAMEL-19222 を参照してください。
3.2.17.5. camel-bean リンクのコピーリンクがクリップボードにコピーされました!
method オプションを使用して特定のメソッドを参照し、"bean:myBean?method=foo(com.foo.MyOrder, true)" などのパラメーターの型と値を使用する場合、すべてのクラス型が .class 構文を使用する必要があります。つまり、com.foo.MyOrder は com.foo.MyOrder.class にする必要があります。
例
"bean:myBean?method=foo(com.foo.MyOrder.class, true)"
"bean:myBean?method=foo(com.foo.MyOrder.class, true)"
これは、String、int などの Java 型にも当てはまります。
"bean:myBean?method=bar(String.class, int.class)"
"bean:myBean?method=bar(String.class, int.class)"
3.2.17.6. camel-box リンクのコピーリンクがクリップボードにコピーされました!
Box Java SDK v2 から v4 にアップグレードされ、メソッドのシグネチャーがいくつか変更されました。ファイルのサムネイルを取得するメソッドは利用できなくなりました。
3.2.17.7. camel-caffeine リンクのコピーリンクがクリップボードにコピーされました!
keyType パラメーターが削除されました。キャッシュのキーは String 型のみになりました。詳細は、CAMEL-18877 を参照してください。
3.2.17.8. camel-fhir リンクのコピーリンクがクリップボードにコピーされました!
基盤となる hapi-fir ライブラリーが 4.2.0 から 6.2.4 にアップグレードされました。Delete API メソッドのみが変更され、org.hl7.fhir.instance.model.api.IBaseOperationOutcome ではなく ca.uhn.fhir.rest.api.MethodOutcome を返すようになりました。基礎となる変更の詳細なリストについては、hapi-fhir を参照してください (Camel では hapi-fhir クライアントのみが使用されます)。
3.2.17.9. camel-google リンクのコピーリンクがクリップボードにコピーされました!
API ベースのコンポーネント camel-google-drive、camel-google-calendar、camel-google-sheets、および camel-google-mail が、Google Java SDK v1 から v2 および最新の API リビジョンにアップグレードされました。camel-google-drive と camel-google-sheets では、API メソッドがいくつか変更されていますが、その他は以前と同じです。
3.2.17.10. camel-http リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Apache HttpComponents v5 を使用するようにアップグレードされました。これは、基礎となるクライアントの設定方法に影響を与えます。当初の 3 つのタイムアウト (connectionRequestTimeout、connectTimeout、および socketTimeout) ではなく、4 つの異なるタイムアウト (connectionRequestTimeout、connectTimeout、soTimeout、および responseTimeout) があります。これらの一部のデフォルト値が変更されているため、ドキュメントで詳細を参照してください。
HttpClient の可能な設定パラメーターから socketTimeout が削除されていることに注意してください。代わりに responseTimeout を使用してください。
最後に、オプション soTimeout と SocketConfig に含まれるパラメーターには、接頭辞として httpConnection を付ける必要があります。HttpClientBuilder および RequestConfig に定義されているパラメーターを含む残りのパラメーターには、以前のように接頭辞として httpClient を付ける必要があります。
3.2.17.11. camel-http-common リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.http.common.HttpBinding の API が、再利用しやすいようにわずかに変更されました。parseBody メソッドが、入力パラメーターとして HttpServletRequest を受け取るようになりました。また、すべての HttpMessage が汎用の Message タイプに変更されました。
3.2.17.12. camel-kubernetes リンクのコピーリンクがクリップボードにコピーされました!
io.fabric8:kubernetes-client ライブラリーがアップグレードされ、一部の非推奨の API 使用法が削除されました。以前、replace という接頭辞が付けられていた操作に、update という接頭辞が付けられるようになりました。
たとえば、replaceConfigMap は updateConfigMap になり、replacePod は updatePod になりました。KubernetesOperations クラスの対応する定数の名前も変更されました。REPLACE_CONFIGMAP_OPERATION は UPDATE_CONFIGMAP_OPERATION に、REPLACE_POD_OPERATION は UPDATE_POD_OPERATION になりました。
3.2.17.13. camel-web3j リンクのコピーリンクがクリップボードにコピーされました!
Camel-web3j は、web3j JAR を 3.x から 5.0 にアップグレードしました。これには多くの API 変更が含まれるため、以前の API 呼び出しの一部は提供されなくなりました。
3.2.17.14. camel-main リンクのコピーリンクがクリップボードにコピーされました!
次の定数は、BaseMainSupport / Main から MainConstants に移動されました。
| 以前の名前 | 新しい名前 |
|---|---|
| Main.DEFAULT_PROPERTY_PLACEHOLDER_LOCATION | MainConstants.DEFAULT_PROPERTY_PLACEHOLDER_LOCATION |
| Main.INITIAL_PROPERTIES_LOCATION | MainConstants.INITIAL_PROPERTIES_LOCATION |
| Main.OVERRIDE_PROPERTIES_LOCATION | MainConstants.OVERRIDE_PROPERTIES_LOCATION |
| Main.PROPERTY_PLACEHOLDER_LOCATION | MainConstants.PROPERTY_PLACEHOLDER_LOCATION |
3.2.17.15. camel-micrometer リンクのコピーリンクがクリップボードにコピーされました!
メトリクスの名前が、Micrometer の命名規則に従って変更されました。
| 以前の名前 | 新しい名前 |
| CamelExchangeEventNotifier | camel.exchange.event.notifier |
| CamelExchangesFailed | camel.exchanges.failed |
| CamelExchangesFailuresHandled | camel.exchanges.failures.handled |
| CamelExchangesInflight | camel.exchanges.external.redeliveries |
| CamelExchangesSucceeded | camel.exchanges.succeeded |
| CamelExchangesTotal | camel.exchanges.total |
| CamelMessageHistory | camel.message.history |
| CamelRoutePolicy | camel.route.policy |
| CamelRoutePolicyLongTask | camel.route.policy.long.task |
| CamelRoutesAdded | camel.routes.added |
| CamelRoutesRunning | camel.routes.running |
3.2.17.16. camel-jbang リンクのコピーリンクがクリップボードにコピーされました!
コマンド camel dependencies の名前が camel dependency に変更されました。
Camel JBang では、init および run ゴールの -dir パラメーターの名前が変更され、他のすべてのオプションと同様に 2 つのダッシュ --dir が必要になりました。
camel stop コマンドは、デフォルトで実行中のすべてのインテグレーションを停止します (オプション --all は削除されました)。
プレースホルダー置換 が、$name 構文ではなく #name を使用するように変更されました。
3.2.17.17. camel-openapi-java リンクのコピーリンクがクリップボードにコピーされました!
camel-openapi-java コンポーネントが、io.apicurio.datamodels ではなく io.swagger.v3 ライブラリーを使用するように変更されました。その結果、パブリックメソッド org.apache.camel.openapi.RestOpenApiReader.read() の戻り値の型が、io.apicurio.datamodels.openapi.models.OasDocument ではなく io.swagger.v3.oas.models.OpenAPI になりました。OpenAPI 2.0 (swagger) 仕様が解析されると、swagger パーサーによって OpenAPI 3.0.x に自動的にアップグレードされます。このバージョンでは、OpenAPI 3.1.x 仕様もサポートされています。
3.2.17.18. camel-optaplanner リンクのコピーリンクがクリップボードにコピーされました!
camel-optaplanner コンポーネントは、SolverManager を 使用するように変更されました。Camel 3 で SoverManager を使用していた場合、ルートにブール値 useSolverManager は不要になりました。非推奨の ProblemFactChange は、ProblemChange に置き換えられました。
新しい URI パスは次のとおりです。
from("optaplanner:myProblemName")
.to("...")
from("optaplanner:myProblemName")
.to("...")
Optaplanner SolverManager は、2 つの方法で渡すことができます。
- #parameter として
- ヘッダーとして
Quarkus 上で Camel-optaplanner を実行する場合は、Quarkus の方法を使用して SolverManager を作成します。
以下のコードに示すように、XML 設定ファイルを指定することで、従来の Camel Optaplanner ルートを移行できます。これにより、Camel Optaplanner が従来のルートの SolverManager を作成できるようになります。
Optaplanner Routes XML 設定ファイルを指定する
from("optaplanner:myProblemName?configFile=PATH/TO/CONFIG.FILE.xml")
.to("...")
from("optaplanner:myProblemName?configFile=PATH/TO/CONFIG.FILE.xml")
.to("...")
- 注記
- Solver Daemon ソリューションは、SolverManager を使用するように移行する必要があります。
3.2.17.19. camel-platform-http-vertx リンクのコピーリンクがクリップボードにコピーされました!
ルートまたはコンシューマーが一時停止している場合、http ステータス 404 ではなく 503 が返されるようになりました。
3.2.17.20. camel-salesforce リンクのコピーリンクがクリップボードにコピーされました!
生成された DTO の Blob フィールドのプロパティー名に 'Url' が付加されなくなりました。たとえば、ContentVersionUrl プロパティーは ContentVersion になりました。
3.2.17.21. camel-slack リンクのコピーリンクがクリップボードにコピーされました!
Slack によって頻繁にレートが制限されるのを避けるために、slack コンシューマーのデフォルトの遅延が 0.5 秒から 10 秒に変更されました。
3.2.17.22. camel-micrometer-starter リンクのコピーリンクがクリップボードにコピーされました!
uri タグが (デフォルトで) 動的ではなく静的になりました。動的値を持つ URI が原因で、非常に多くのタグが生成される可能性があるためです。これは、camel.metrics.uriTagDynamic=true を設定することで再度有効にできます。
3.2.17.23. camel-platform-http-starter リンクのコピーリンクがクリップボードにコピーされました!
platform-http-starter は、camel-servlet ではなく、Spring HTTP サーバーを直接使用するように変更されました。したがって、すべての HTTP エンドポイントに、サーブレットのコンテキストパス (デフォルトは camel) が接頭辞として付けられなくなりました。
以下に例を示します。
HTTP エンドポイント
from("platform-http:myservice")
.to("...")
from("platform-http:myservice")
.to("...")
コンテキストパスは使用されていないため、http://localhost:8080/myservice を使用してエンドポイントを呼び出すことができます。
platform-http-starter を Rest DSL とともに使用することもできます。
ルートまたはコンシューマーが一時停止している場合、http ステータス 404 ではなく 503 が返されるようになりました。
3.2.17.24. camel-twitter リンクのコピーリンクがクリップボードにコピーされました!
camel-twitter コンポーネントは、Twitter4j バージョン 4.1.2 を使用するように更新されました。これに伴い、いくつかのクラスで使用される パッケージ が移動されました。Twit ステータスなどの特定の Twitter 関連データにアクセスする場合は、使用するパッケージを twitter4j.Status から twitter4j.v1.Status に更新する必要があります。
3.3. Apache Camel 3 への移行 リンクのコピーリンクがクリップボードにコピーされました!
このガイドでは、Red Hat Fuse 7 から Camel 3 への移行に関する情報を提供します。
Fuse 7 と Camel 3 の間には、モジュール化や XML スキーマの変更など、コンポーネントに重要な違いがあります。詳細は、各コンポーネントのセクションを参照してください。
Red Hat build of Apache Camel for Quarkus は、Camel バージョン 4 をサポートします。このセクションでは、Red Hat Fuse 7 アプリケーションを Camel バージョン 3 を備えた Red Hat build of Apache Camel for Quarkus に移行する場合の、Camel のアップグレードに関する情報を提供します。
3.3.1. Java バージョン リンクのコピーリンクがクリップボードにコピーされました!
Camel 3 は Java 17 および Java 11 をサポートしますが、Java 8 はサポートしていません。
3.3.1.1. JDK 11 で JAXB を削除 リンクのコピーリンクがクリップボードにコピーされました!
Java 11 では、JAXB モジュールが JDK から 削除 されたため、Maven の依存関係として追加する必要があります (XML DSL または camel-jaxb コンポーネントを使用する場合などに JAXB を使用する場合)。
Java Platform Standard Edition 11 Development Kit (JDK 11) は、リリースバージョン Camel 3.x で 非推奨 となり、リリースバージョン 4.x では サポート対象外 となっています。
3.3.2. camel-core のモジュール化 リンクのコピーリンクがクリップボードにコピーされました!
Camel 3.x では、camel-core は次のように多くの JAR に分割されています。
- camel-api
- camel-base
- camel-caffeine-lrucache
- camel-cloud
- camel-core
- camel-jaxp
- camel-main
- camel-management-api
- camel-management
- camel-support
- camel-util
- camel-util-json
Apache Camel の Maven ユーザーは、camel-main を除くすべてのモジュールに対する推移的な依存関係を持つ依存関係 camel-core を引き続き使用できるため、移行は必要ありません。
3.3.3. コンポーネントのモジュール化 リンクのコピーリンクがクリップボードにコピーされました!
Camel 3.x では、camel-core コンポーネントの一部が個別のコンポーネントに移動されました。
- camel-attachments
- camel-bean
- camel-browse
- camel-controlbus
- camel-dataformat
- camel-dataset
- camel-direct
- camel-directvm
- camel-file
- camel-language
- camel-log
- camel-mock
- camel-ref
- camel-rest
- camel-saga
- camel-scheduler
- camel-seda
- camel-stub
- camel-timer
- camel-validator
- camel-vm
- camel-xpath
- camel-xslt
- camel-xslt-saxon
- camel-zip-deflater
3.3.4. アプリケーションごとの複数の CamelContext のサポート削除 リンクのコピーリンクがクリップボードにコピーされました!
複数の CamelContext のサポートが削除され、デプロイごとに 1 つの CamelContext のみが推奨およびサポートされるようになりました。そのため、@EndpointInject、@Produce、@Consume などのさまざまな Camel アノテーションの context 属性が削除されました。
3.3.5. 非推奨の API とコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.x の非推奨の API とコンポーネントはすべて Camel 3 で削除されました。
3.3.5.1. 削除されたコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.x の非推奨コンポーネントは、Camel 3.x ですべて削除されます。
camel-http,camel-hdfs,camel-mina,camel-mongodb,camel-netty,camel-netty-http,camel-quartz,camel-restlet,camel-rx,camel-jibx,camel-boonデータ形式 ,camel-linkedin- Linkedin API は、サポート対象外 となりました。
camel-zookeeper-
コンポーネントルートポリシー機能は削除されました。代わりに
ZooKeeperClusterServiceまたはcamel-zookeeper-masterを使用してください。 camel-jetty-
producerはサポート対象外となりました (削除されました)。代わりに、camel-httpコンポーネントを使用してください。 twitter-streaming- 非推奨の Twitter Streaming API に依存しており、機能しなくなったため削除されました。
3.3.5.2. コンポーネントの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
次のコンポーネントは、Camel 3.x で名前が変更されました。
camel-microprofile-metrics-
名前が
camel-micrometerに変更されました。 test-
名前が
dataset-testに変更され、camel-coreからcamel-datasetJAR に移動されました。 http4-
名前が
httpに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.http4からorg.apache.camel.component.httpに変更されました。サポートされているスキームは、現在httpとhttpsのみです。 hdfs2-
名前が
hdfsに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.hdfs2からorg.apache.camel.component.hdfsに変更されました。サポートされるスキームはhdfsになりました。 mina2-
名前が
minaに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.mina2からorg.apache.camel.component.minaに変更されました。サポートされるスキームはminaになりました。 mongodb3-
名前が
mongodbに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.mongodb3からorg.apache.camel.component.mongodbに変更されました。サポートされるスキームはmongodbになりました。 netty4-http-
名前が
netty-httpに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.netty4.httpからorg.apache.camel.component.netty.httpに変更されました。サポートされるスキームはnetty-httpになりました。 netty4-
名前が
nettyに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.netty4からorg.apache.camel.component.nettyに変更されました。サポートされるスキームはnettyになりました。 quartz2-
名前が
quartzに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.quartz2からorg.apache.camel.component.quartzに変更されました。サポートされているスキームはQuartzになりました。 rxjava2-
名前が
rxjavaに変更され、対応するコンポーネントパッケージの名前もorg.apache.camel.component.rxjava2からorg.apache.camel.component.rxjavaに変更されました。 camel-jetty9-
名前が
camel-jettyに変更されました。サポートされているスキームはjettyになりました。
3.3.6. Camel コンポーネントの変更 リンクのコピーリンクがクリップボードにコピーされました!
3.3.6.1. Mock コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
mock コンポーネントは camel-core から移動しました。このため、アサーション句ビルダー の多くのメソッドが削除されています。
3.3.6.2. ActiveMQ リンクのコピーリンクがクリップボードにコピーされました!
activemq-camel コンポーネントを使用している場合は、コンポーネント名が org.apache.activemq.camel.component.ActiveMQComponent から org.apache.camel.component.activemq.ActiveMQComponent に変更になった camel-activemq コンポーネントを使用するように移行する必要があります。
3.3.6.3. AWS リンクのコピーリンクがクリップボードにコピーされました!
コンポーネント camel-aws が複数のコンポーネントに分割されました。
- camel-aws-cw
- camel-aws-ddb (ddb と ddbstreams コンポーネントの両方を含む)
- camel-aws-ec2
- camel-aws-iam
- camel-aws-kinesis (kinesis と kinesis-firehose コンポーネントの両方を含む)
- camel-aws-kms
- camel-aws-lambda
- camel-aws-mq
- camel-aws-s3
- camel-aws-sdb
- camel-aws-ses
- camel-aws-sns
- camel-aws-sqs
- camel-aws-swf
これらのコンポーネントに特定の依存関係を追加することを推奨します。
3.3.6.4. Camel CXF リンクのコピーリンクがクリップボードにコピーされました!
camel-cxf JAR は、SOAP と REST に分割されました。camel-cxf から移行する場合は、次のリストから特定の JAR を選択することが推奨されます。
-
camel-cxf-soap -
camel-cxf-rest -
camel-cxf-transport
たとえば、SOAP に CXF を使用していた場合は、Camel-cxf から移行する際に camel-cxf-soap と camel-cxf-transport を選択します。
3.3.6.4.1. Camel CXF の名前空間の変更 リンクのコピーリンクがクリップボードにコピーされました!
camel-cxf XML XSD スキーマも名前空間が変更になりました。
| 古い名前空間 | 新しい名前空間 |
|---|---|
camel-cxf SOAP コンポーネントは新しい jaxws サブパッケージに移動しました。つまり、org.apache.camel.component.cxf が org.apache.camel.component.cxf.jaws になりました。たとえば、CxfComponent クラスは org.apache.camel.component.cxf.jaxws に置かれるようになりました。
3.3.6.5. FHIR リンクのコピーリンクがクリップボードにコピーされました!
camel-fhir コンポーネントでは、hapi-fhir 依存関係が 4.1.0 にアップグレードされました。デフォルトの FHIR バージョンが R4 に変更になりました。したがって、DSTU3 が必要な場合は、明示的に設定する必要があります。
3.3.6.6. Kafka リンクのコピーリンクがクリップボードにコピーされました!
camel-kafka コンポーネントでは、オプション bridgeEndpoint と circularTopicDetection が削除されました。これは、このコンポーネントが Camel 2.x のブリッジングのように機能するようになり、不要になったためです。つまり、camel-kafka はエンドポイント uri からトピックにメッセージを送信します。これをオーバーライドするには、新しいトピックで KafkaConstants.OVERRIDE_TOPIC ヘッダーを使用します。詳細は、camel-kafka コンポーネントのドキュメントを参照してください。
3.3.6.7. Telegram リンクのコピーリンクがクリップボードにコピーされました!
camel-telegram コンポーネントでは、認可トークンが uri-path からクエリーパラメーターに移動しました。以下に例を示します。
telegram:bots/myTokenHere
telegram:bots/myTokenHere
移動後は次のようになります。
telegram:bots?authorizationToken=myTokenHere
telegram:bots?authorizationToken=myTokenHere
3.3.6.8. JMX リンクのコピーリンクがクリップボードにコピーされました!
camel-core のみを依存関係として使用して Camel スタンドアロンを実行し、JMX を初期設定で有効にする場合は、camel-management を依存関係として追加する必要があります。
ManagedCamelContext を使用するには、次のように CamelContext からこのエクステンションを取得する必要があります。
ManagedCamelContext managed = camelContext.getExtension(ManagedCamelContext.class);
ManagedCamelContext managed = camelContext.getExtension(ManagedCamelContext.class);
3.3.6.9. XSLT リンクのコピーリンクがクリップボードにコピーされました!
XSLT コンポーネントは、camel-core から camel-xslt および camel-xslt-saxon に移動しました。JDK の XSTL エンジン (Xalan) を使う場合は camel-xslt、Saxon を使う場合は camel-xslt-saxon というように分けられています。そのため、Camel エンドポイント URI のコンポーネント名には、xslt および xslt-saxon を使用する必要があります。XSLT 集約ストラテジーを使用している場合は、Saxon のサポートのために org.apache.camel.component.xslt.saxon.XsltSaxonAggregationStrategy を使用します。また、xslt ビルダーを使用する場合は、Saxon のサポートのために org.apache.camel.component.xslt.saxon.XsltSaxonBuilder を使用します。なお、allowStax は JDK の XSLT ではサポートされておらず、camel-xslt-saxon でのみサポートされています。
3.3.6.10. XML DSL の移行 リンクのコピーリンクがクリップボードにコピーされました!
XML DSL が若干変更になりました。
カスタムロードバランサーの EIP が <custom> から <customLoadBalancer> に変更になりました。
XMLSecurity データ形式では、<secureXML> タグの keyOrTrustStoreParametersId 属性の名称が keyOrTrustStoreParametersRef に変更されました。
<zipFile> データ形式が <zipfile> に名前が変更になりました。
3.3.7. Camel Maven プラグインの移行 リンクのコピーリンクがクリップボードにコピーされました!
camel-maven-plugin は 2 つの Maven プラグインに分割されました。
camel-maven-plugin-
camel-maven-plugin には
runゴールがあります。これは、Camel アプリケーションをスタンドアロンですばやく実行することを目的としたものです。詳細は、https://camel.apache.org/manual/camel-maven-plugin.html を参照してください。 camel-report-maven-plugin-
camel-report-maven-pluginには、Camel エンドポイント URI の検証やルートカバレッジレポートなど、Camel プロジェクトのレポートの生成に使用されるvalidateゴールやroute-coverageゴールがあります。詳細は、https://camel.apache.org/manual/camel-report-maven-plugin.html を参照してください。
第4章 Camel Quarkus プロジェクトの移行 リンクのコピーリンクがクリップボードにコピーされました!
4.1. プロジェクトを最新の Quarkus バージョンに更新する リンクのコピーリンクがクリップボードにコピーされました!
Maven を使用して、プロジェクトを最新の Quarkus バージョンに更新およびアップグレードすることが推奨されます。
Hibernate ORM または Hibernate Reactive を使用するプロジェクトについては、Hibernate ORM 5 to 6 migration クイックリファレンスを確認してください。次の更新コマンドは、このガイドのサブセットのみカバーしています。
4.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 約 30 分
-
JAV_HOMEが適切に設定された状態でインストールされた JDK - Apache Maven 3.8.6
- オプションで使用する場合は Quarkus CLI
- Camel Quarkus バージョン 2.13 以降をベースとするプロジェクト。
4.1.2. Maven を使用して更新する リンクのコピーリンクがクリップボードにコピーされました!
- Quarkus Getting Started ガイドの Quarkus エクステンションレジストリークライアントの設定 セクションで説明されているとおり、エクステンションレジストリークライアントを設定します。
Maven を使用して更新します。
プロジェクトディレクトリーに移動し、プロジェクトを最新のストリームに更新します。
- Quarkus Maven プラグインのバージョンが、サポートされている最新の Red Hat build of Quarkus バージョンと一致していることを確認してください。
次のコマンドを使用して更新を実行します。
mvn io.quarkus.platform:quarkus-maven-plugin:3.5.2:update -N
mvn io.quarkus.platform:quarkus-maven-plugin:3.5.2:update -NCopy to Clipboard Copied! Toggle word wrap Toggle overflow マルチモジュールプロジェクト の場合は、次のコマンドを使用します。
find . -type f -name "pom.xml" -execdir sh -c 'mvn io.quarkus.platform:quarkus-maven-plugin:3.5.2:update -N' \;
find . -type f -name "pom.xml" -execdir sh -c 'mvn io.quarkus.platform:quarkus-maven-plugin:3.5.2:update -N' \;Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション
デフォルトでは、このコマンドは最新の現行バージョンに更新します。最新の現行バージョンではなく特定のストリームに更新するには、このコマンドに stream オプションを追加し、その後にバージョンを追加します (例:
--Dstream=3.2)。注記マルチモジュールプロジェクトを更新すると、更新ツールが
<packaging>pom</packaging>を使用してモジュールを更新できないため、多くのエラーが表示される場合があります。そのようなモジュールが存在する場合 (通常は複数のバージョンが含まれています)、手動で更新します。
- 考えられる指示の更新コマンド出力を分析し、必要に応じて提案されたタスクを実行します。
- diff ツールを使用してすべての変更を検査します。
- 更新コマンドで更新されなかった項目については、移行ガイドを確認してください。プロジェクトにそのような項目がある場合は、これらのトピックでアドバイスされている追加の手順を実行ます。
- 実稼働環境にデプロイする前に、プロジェクトがエラーなくビルドされ、すべてのテストが合格し、アプリケーションが求められるとおりに機能することを確認します。
更新後の Quarkus アプリケーションを実稼働環境にデプロイする前に、以下を確認します。
- プロジェクトはエラーなしでビルドされる。
- すべてのテストに合格する。
- アプリケーションが求められるとおりに機能する。