1.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 のアップグレードに関する情報を提供します。
1.3.1. Java バージョン リンクのコピーリンクがクリップボードにコピーされました!
Camel 3 は Java 17 および Java 11 をサポートしますが、Java 8 はサポートしていません。
1.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 では サポート対象外 となっています。
1.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 を引き続き使用できるため、移行は必要ありません。
1.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
1.3.4. アプリケーションごとの複数の CamelContext のサポート削除 リンクのコピーリンクがクリップボードにコピーされました!
複数の CamelContext のサポートが削除され、デプロイごとに 1 つの CamelContext のみが推奨およびサポートされるようになりました。そのため、@EndpointInject、@Produce、@Consume などのさまざまな Camel アノテーションの context 属性が削除されました。
1.3.5. 非推奨の API とコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.x の非推奨の API とコンポーネントはすべて Camel 3 で削除されました。
1.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 に依存しており、機能しなくなったため削除されました。
1.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になりました。
1.3.6. Camel コンポーネントの変更 リンクのコピーリンクがクリップボードにコピーされました!
1.3.6.1. Mock コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
mock コンポーネントは camel-core から移動しました。このため、アサーション句ビルダー の多くのメソッドが削除されています。
1.3.6.2. ActiveMQ リンクのコピーリンクがクリップボードにコピーされました!
activemq-camel コンポーネントを使用している場合は、コンポーネント名が org.apache.activemq.camel.component.ActiveMQComponent から org.apache.camel.component.activemq.ActiveMQComponent に変更になった camel-activemq コンポーネントを使用するように移行する必要があります。
1.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
これらのコンポーネントに特定の依存関係を追加することを推奨します。
1.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 を選択します。
1.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 に置かれるようになりました。
1.3.6.5. FHIR リンクのコピーリンクがクリップボードにコピーされました!
camel-fhir コンポーネントでは、hapi-fhir 依存関係が 4.1.0 にアップグレードされました。デフォルトの FHIR バージョンが R4 に変更になりました。したがって、DSTU3 が必要な場合は、明示的に設定する必要があります。
1.3.6.6. Kafka リンクのコピーリンクがクリップボードにコピーされました!
camel-kafka コンポーネントでは、オプション bridgeEndpoint と circularTopicDetection が削除されました。これは、このコンポーネントが Camel 2.x のブリッジングのように機能するようになり、不要になったためです。つまり、camel-kafka はエンドポイント uri からトピックにメッセージを送信します。これをオーバーライドするには、新しいトピックで KafkaConstants.OVERRIDE_TOPIC ヘッダーを使用します。詳細は、camel-kafka コンポーネントのドキュメントを参照してください。
1.3.6.7. Telegram リンクのコピーリンクがクリップボードにコピーされました!
camel-telegram コンポーネントでは、認可トークンが uri-path からクエリーパラメーターに移動しました。以下に例を示します。
telegram:bots/myTokenHere
telegram:bots/myTokenHere
移動後は次のようになります。
telegram:bots?authorizationToken=myTokenHere
telegram:bots?authorizationToken=myTokenHere
1.3.6.8. JMX リンクのコピーリンクがクリップボードにコピーされました!
camel-core のみを依存関係として使用して Camel スタンドアロンを実行し、JMX を初期設定で有効にする場合は、camel-management を依存関係として追加する必要があります。
ManagedCamelContext を使用するには、次のように CamelContext からこのエクステンションを取得する必要があります。
ManagedCamelContext managed = camelContext.getExtension(ManagedCamelContext.class);
ManagedCamelContext managed = camelContext.getExtension(ManagedCamelContext.class);
1.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 でのみサポートされています。
1.3.6.10. XML DSL の移行 リンクのコピーリンクがクリップボードにコピーされました!
XML DSL が若干変更になりました。
カスタムロードバランサーの EIP が <custom> から <customLoadBalancer> に変更になりました。
XMLSecurity データ形式では、<secureXML> タグの keyOrTrustStoreParametersId 属性の名称が keyOrTrustStoreParametersRef に変更されました。
<zipFile> データ形式が <zipfile> に名前が変更になりました。
1.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 を参照してください。