Red Hat build of Apache Camel for Spring Boot のリリースノート
Red Hat build of Apache Camel の新機能
概要
第1章 Red Hat build of Apache Camel for Spring Boot 4.10 リリースノート
1.1. Red Hat build of Apache Camel for Spring Boot の機能
Red Hat build of Apache Camel for Spring Boot では、多くの Camel コンポーネントの Camel とスターターの自動設定を提供する Spring Boot の Camel サポートが導入されています。Camel コンテキストの独自の自動設定は、Spring コンテキストで使用可能な Camel ルートを自動検出し、主要な Camel ユーティリティー (プロデューサーテンプレート、コンシューマーテンプレート、型コンバーターなど) を Bean として登録します。
1.2. Red Hat build of Apache Camel for Spring Boot でサポートされているプラットフォーム、設定、データベース、エクステンション
- Red Hat build of Apache Camel for Spring Boot でサポートされているプラットフォーム、設定、およびデータベースの詳細は、カスタマーポータルの サポートされる構成 ページを参照してください (ログインが必要です)。
- Red Hat build of Apache Camel for Spring Boot エクステンションのリストは、Red Hat build of Apache Camel for Spring Boot リファレンス を参照してください (ログインが必要です)。
1.3. javax から jakarta へのパッケージ名前空間の変更
Java EE は Eclipse Foundation に移行し、Jakarta EE が設立されました。Jakarta EE 9 以降、すべての EE API に使用されるパッケージは jakarta.*
に変更されました。
ドキュメント内のコードスニペットは jakarta.*
名前空間を使用するように更新されています。ただし、お客様のアプリケーションは注意してご確認いただく必要があります。
この変更は、Java SE に含まれる javax パッケージには影響しません。
アプリケーションを EE 10 に移行する場合は、次のことを行う必要があります。
-
import ステートメントまたはその他のソースコードにおける EE API クラスの使用を
javax
パッケージからjakarta
に更新します。 -
名前が
javax.
で始まる EE 指定のシステムプロパティーまたはその他の設定プロパティーを、jakarta.
で始まるものに変更します。 -
META-INF/services/jakarta.[rest_of_name]
名前形式を使用して、実装 EE インターフェイスを使用するアプリケーション内の実装クラス、またはjava.util.ServiceLoader
メカニズムでブートストラップされる抽象クラスを識別します。
1.3.1. 移行ツール
- ソースコードの移行: How to use Red Hat Migration Toolkit for Auto-Migration of an Application to the Jakarta EE 10 Namespace
- バイトコード変換: ソースコードの移行が可能ではない場合は、オープンソースの Eclipse Transformer
関連情報
1.4. Red Hat build of Apache Camel for Spring Boot に関する重要事項
1.4.1. IBM Power および IBM Z のサポート
Red Hat build of Camel Spring Boot が IBM Power および IBM Z でサポートされるようになりました。
1.4.2. snowdrop groupId の変更
snowdrop groupId が me.snowdrop
から dev.snowdrop
に変更されます。それに応じて pom.xml
ファイルを更新する必要があります。
1.4.3. AWS Secret Manager コンポーネントスターターの Secret Refresh 機能で Camel コンテキストの自動リロードを使用する
Automatic Camel context reloading on Secret Refresh 使用するには、UI 経由または PutSecretValue
操作を使用した API 呼び出し経由でシークレットの更新を実行する必要があります。Camel 経由で updateSecret を実行しても、Camel コンテキストのリロードはトリガーされません。
1.5. Red Hat build of Apache Camel for Spring Boot ビルドの修正された問題
次のセクションでは、Red Hat build of Apache Camel for Spring Boot で解決された問題を記載します。
1.5.1. Red Hat build of Apache Camel for Spring Boot バージョン 4.10 で修正された問題
以下のセクションでは、Red Hat build of Apache Camel for Spring Boot バージョン 4.10 で解決された問題をリストします。
問題 | 説明 |
---|---|
camel-graphql のサポートを追加 | |
プレーン CXF SOAP シナリオのサポート | |
Kamelets と Pipes のサポートを追加 | |
ヘッダー置換による <toD> の奇妙な動作 | |
jaxws:client のアドレスプレースホルダーが XML で設定されている場合に解決されない | |
Redshift kamelet: DataSource の設定に失敗する | |
camel-platform-http-starter は restConfiguration のすべての機能を実装していない | |
camel-jaxb - JaxbDataFormat ignoreJAXBElement はデフォルトで true | |
Spring Security を使用して Camel の Route Security の実装例を作成する | |
[Doc] OCP 上の Java ランタイムの "lib/" ディレクトリーに SAP JCo および SAP IDoc ライブラリーをインストールする手順が不足している | |
サポートコンポーネント camel-observability-services | |
CamelLivenessStateHealthIndicator ログに必要な追加情報 | |
camel-kubernetes における javax の依存関係 | |
サポートコンポーネント camel-ssh | |
camel-infinispan-starter は、最新の製品化された JDG では動作しない | |
サポートコンポーネント camel-smooks | |
依存関係 org.apache.camel/camel-console によりビルド時間が長くなる | |
Red Hat build of Apache Camel BOM には UPSTREAM Artemis BOM が含まれる | |
EIP: endChoice() はネストされた選択肢の親を取得できない | |
strimzi クイックスタート/Kubernetes プロファイルを削除する | |
[CAMEL-22001]camel-core - Kamelet と EIP は交換変数を伝播する必要がある | |
kamelets: Bean が見つからないため、camel のエクスポートが失敗する | |
[AWS-Kinesis] KCL Consumer モード使用時の kinesisClient Bean のエラー | |
jbang export を実行すると、java.lang.ClassNotFoundException: org.apache.camel.kamelets.catalog.KameletsCatalog が発生します。 | |
Kamelet ExtractField が間違った Camel ExtractField クラスを参照する | |
MongoDB のバージョンが正しく配置されない | |
CVE-2025-1948 jetty-http2-common: Jetty HTTP/2 ヘッダーリストサイズの脆弱性 | |
CAMEL-21828 のバックポート: 小文字モードでフィルター処理を行う際の DefaultHeaderFilterStrategy の修正 | |
CAMEL-21876 のバックポート: Undertow ヘッダーフィルターストラテジー: フィルターも考慮するように対応 | |
Camel CLI の export コマンドで製品バージョンが処理されない |
1.6. Red Hat build of Apache Camel for Spring Boot の API の変更
次のセクションでは、Red Hat build of Apache Camel for Spring Boot に関する既知の問題を記載します。
1.6.1. Red Hat build of Apache Camel for Spring Boot バージョン 4.10.3 の API の変更
- CSB-6748 メソッド
AttachmentMessage.getAttachments()
戻り値が変更されました -
AttachmentMessage.getAttachments()
メソッドを使用すると、添付ファイルがない場合には null 値ではなく空のリストが返されます。
1.7. Red Hat build of Apache Camel for Spring Boot の既知の問題
次のセクションでは、Red Hat build of Apache Camel for Spring Boot に関する既知の問題を記載します。
1.7.1. Red Hat build of Apache Camel for Spring Boot バージョン 4.10.3 の既知の問題
- CSB-6748 メソッド
AttachmentMessage.getAttachments()
戻り値が変更されました -
AttachmentMessage.getAttachments()
メソッドを使用すると、添付ファイルがある場合に null 値ではなく空のリストが返されます。
1.7.2. Red Hat build of Apache Camel for Spring Boot バージョン 4.8.3 の既知の問題
- CSB-6437 CXF opentelemetry - RHEL9 上の異なる http 要求から同じトレース ID を使用します
-
この問題は、RHEL 9 プラットフォーム上にカスタムトレース設定を持つ CXF および OpenTelemetry でのみ発生します。カスタム opentelemetry トレーサーが定義された CXF および opentelemetry の場合、複数の要求を呼び出すと、トレース ID が Camel ルートで再利用されるようです。その結果、各 http 要求に対して 1 つの新しいトレース ID が作成されるのではなく、各 http 要求の既存のトレースに新しいスパンが追加されます。回避策としては、次の例に示すように、
ContextPropagators
をW3CTraceContextPropagator
に明示的に定義します。
@Bean ContextPropagators contextPropagators() { // return ContextPropagators.create(TextMapPropagator.composite(W3CBaggagePropagator.getInstance())); return ContextPropagators.create(W3CTraceContextPropagator.getInstance()); }
@Bean
ContextPropagators contextPropagators() {
// return ContextPropagators.create(TextMapPropagator.composite(W3CBaggagePropagator.getInstance()));
return ContextPropagators.create(W3CTraceContextPropagator.getInstance());
}
1.7.3. Red Hat build of Apache Camel for Spring Boot バージョン 4.8.0 で既知の問題
- CSB-4318 spring.boot.actuator.autoconfigure が依存関係にないと、Openshift Maven プラグインを使用して OCP にデプロイできない
Jkube Maven プラグインは、次の条件を使用して、アプリケーションがヘルスエンドポイントを公開しているかどうかを確認します (
SpringBootHealthCheckEnricher
を使用)。両方のクラスはクラスパス内にあります。-
org.springframework.boot.actuate.health.HealthIndicator
-
org.springframework.web.context.support.GenericWebApplicationContext
-
ただし、actuator の設定がなければ、/actuator/health
は公開されません。これにより、JKube によって設定された readiness/liveness プローブ (両方とも上記のエンドポイントを使用) とアプリケーションが公開している内容との間に不一致が生じます。
この誤った設定により、エンドポイントに対するプローブの呼び出しが設定されていないため、生成された Pod が準備完了ステータスにならないため、OpenShift Container Platform でのデプロイメント設定が失敗します。したがって、JKube (openshift-maven-plugin) を使用してデプロイされる OpenShift Container Platform 上でアプリケーションを動作させるには、依存関係に Web と actuator の両方の自動設定が必要です。
次の例は、Web および actuator の自動設定を設定する方法を示しています。
例
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
以下のようにアーキタイプを更新します。次のアーキタイプから構築されたアプリケーションは、JKube を使用して正しくデプロイされます。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
この問題は、上記の依存関係のいずれかが欠落しているカスタムアプリケーションに影響します。