第4章 Fuse スタンドアロン
4.1. サポートされるコンテナー リンクのコピーリンクがクリップボードにコピーされました!
Fuse スタンドアロン 7.3 は以下のランタイムコンテナーでサポートされます。
- Spring Boot (スタンドアロン)
- Apache Karaf
- Red Hat JBoss Enterprise Application Platform (JBoss EAP)
4.2. Fuse 7.3 の新機能 リンクのコピーリンクがクリップボードにコピーされました!
Fuse スタンドアロンのバージョン 7.3 の主な新機能は次のとおりです。
- Elytron クレデンシャルストアをサポートする新しい Karaf コンソールのコマンド
Karaf で Elytron クレデンシャルストアをサポートするために、以下の新しいコンソールコマンドが追加されました。
-
jasypt:list-algorithms -
jasypt:digest -
jasypt:encrypt -
jasypt:decrypt -
credential-store:create -
credential-store:list -
credential-store:store -
credential-store:remove
-
- Fuse on JBoss EAP の追加 Camel コンポーネント
以下の追加の Camel コンポーネントが Fuse on JBoss EAP (Wildfly Camel) でサポートされるようになりました。
-
camel-cmis -
camel-fhir -
camel-ganglia -
camel-ipfs -
camel-lra -
camel-pgevent -
camel-solr -
camel-tika -
camel-wordpress
-
- Fuse on JBoss EAP での Elytron を使用した camel-undertow コンシューマーエンドポイントのセキュア化のサポート
- Fuse 7.3 では、Fuse on JBoss EAP で Elytron セキュリティーを使用して Camel Undertow コンシューマーエンドポイントをセキュア化することが可能になりました。
4.3. テクノロジープレビューの機能 リンクのコピーリンクがクリップボードにコピーされました!
以下の Fuse スタンドアロンの機能は テクノロジープレビュー であるため、Fuse 7.3 ではサポートされません。
- Saga EIP
- Saga EIP (Enterprise Integration Pattern) はテクノロジープレビューの機能で、実稼働環境に適していない インメモリー Saga サービスのみが対象になります。LRA Saga サービスはサポートされません。詳細は『Apache Camel Development Guide』の「Saga EIP」を参照してください。
4.3.1. Camel LSP の Fuse Tooling サポート リンクのコピーリンクがクリップボードにコピーされました!
Fuse Tooling は、Camel LSP (Language Server Protocol) エクステンションや、Visual Studio Code、Eclipse IDE、および Eclipse Che のプラグインを使用して、Camel アプリケーションの開発でクロスプラットフォームおよびクロス IDE を提供します。
Visual Studio Code では、WSDL を Camel Rest DSL サポートに提供するエクステンションを追加することもできます。
注記: これらの機能は、デフォルトで Red Hat CodeReady Studio の Fuse Tooling に含まれています。
Visual Studio Code の機能
Language Support for Apache Camel エクステンションは、Camel URI の以下の機能を提供します。
XML DSL および Java DSL の場合:
- エディターは入力時に Camel コンポーネント、属性、および属性値のリストでコード補完を提供します。
- Camel コンポーネントにマウスオーバーすると、エディターにコンポーネントの簡単な説明が表示されます (Apache Camel component reference から)。
- ファイルを編集すると、エディターは Camel コードで Apache Camel 検証チェックを実行します。
XML DSL の場合のみ:
- VS Code の Outline パネルおよび Go > Go to Symbol in File ナビゲーションパネルで、Camel コンテキストおよびルートに移動できます。
-
エディターは入力時に
direct、direct VM、VM、およびSEDAコンポーネントの参照された ID に対し、コード補完を提供します。 -
開いているすべての Camel ファイルで
directおよびdirect VMコンポーネントの参照を見つけることができます。
WSDL 2 Camel Rest DSL エクステンション (wsdl2rest 実装) は、WSDL を Camel Rest DSL サポートに提供します。既存の WSDL ファイルを指定すると、このエクステンションを使用して REST スタイルのアクセスの Camel Rest DSL + CXF ソリューションを生成できます。WSDL ファイルは、ローカルファイルシステム上またはアクセス可能な Web URL から見つけることができます。
Language Support for Camel LSP および WSDL to Camel Rest DSL 機能にアクセスするには、以下のエクステンションを 1 つ以上追加します。
Apache Camel Extension Pack によって以下の VS Code エクステンションがインストールされます。
エクステンションを個別にインストールすることもできます。
詳細は、以下の README ファイルを参照してください。
- Apache Camel Extension Pack の README ファイル。
- Apache Camel Language Server Protocol for Visual Studio Code の README ファイル。
- WSDL to Camel Rest DSL の README ファイル。
Eclipse IDE 機能
Language Support for Apache Camel Eclipse プラグインは Camel URI に以下の機能を提供します。
XML DSL および Java DSL 両方の汎用 Eclipse テキストエディターの場合:
- エディターは入力時に Camel コンポーネント、属性、および属性値のリストでコード補完を提供します。
- Camel コンポーネントにマウスオーバーすると、エディターにコンポーネントの簡単な説明が表示されます (Apache Camel component reference から)。
Eclipse XML または Java エディターを使用する場合は、自動補完機能のみが提供されます。
Language Support for Apache Camel 機能にアクセスするには、Eclipse Marketplace から Eclipse プラグインをインストールします。詳細は、Apache Camel Language Server Protocol for Eclipse IDE の README file を参照してください。
Eclipse Che の機能
Eclipse Che 6 の Language Support for Apache Camel プラグインは、Camel URI および XML DSL のみに機能を提供します。
- エディターは入力時に Camel コンポーネント、属性、および属性値のリストでコード補完を提供します。
- Camel コンポーネントにマウスオーバーすると、エディターにコンポーネントの簡単な説明が表示されます (Apache Camel component reference から)。
- ファイルを保存すると、エディターによって Camel コードで Apache Camel 検証チェックが実行されます。
Eclipse Che 向けのこのプラグインをアクティベートするには、ワークスペースの設定を編集する必要があります。アクティベート方法の詳細は、Red Hat Developers のブログエントリー の「Use in OpenShift.io」を参照してください。
4.4. Fuse 7.3 の BOM ファイル リンクのコピーリンクがクリップボードにコピーされました!
サポートされる Fuse 7.3 アーティファクトを使用するために Maven プロジェクトを設定するには、本セクションで説明する BOM バージョンを使用してください。
4.4.1. 旧スタイルの BOM リンクのコピーリンクがクリップボードにコピーされました!
Fuse スタンドアロンアプリケーションをアップグレードして 7.3 の依存関係を使用するには、Maven の pom.xml を編集し、下表にある BOM と Maven プラグインのバージョンを変更します。
| コンテナータイプ | Maven BOM またはプラグインアーティファクト groupId/artifactId | Fuse 7.3 向けのバージョン | Fuse 7.3.1 向けのバージョン |
|---|---|---|---|
| Spring Boot |
|
|
|
|
|
|
| |
|
|
|
| |
| Apache Karaf |
|
|
|
|
|
|
| |
|
|
|
| |
| JBoss EAP |
|
|
|
4.4.2. 新スタイルの BOM リンクのコピーリンクがクリップボードにコピーされました!
Fuse スタンドアロンアプリケーションをアップグレードして 7.3 の依存関係を使用するには、Maven の pom.xml を編集し、下表にある BOM と Maven プラグインのバージョンを変更します。
| コンテナータイプ | Maven BOM またはプラグインアーティファクト groupId/artifactId | Fuse 7.3 向けのバージョン | Fuse 7.3.1 向けのバージョン |
|---|---|---|---|
| Spring Boot |
|
|
|
|
|
|
| |
|
|
|
| |
| Apache Karaf |
|
|
|
|
|
|
| |
| JBoss EAP |
|
|
|
新スタイルの BOM の使用に関する詳細は、『Migration Guide』の「Migrate Maven Projects」を参照してください。
4.5. 重要事項 リンクのコピーリンクがクリップボードにコピーされました!
Fuse スタンドアロンディストリビューションの Fuse 7.3 リリースにおける重要事項
- JBoss EAP 7.2 (JBoss EAP 7.1 から) を使用するようアップグレードされた Fuse on EAP
- Fuse 7.3 リリースは、JBoss Enterprise Application Platform (EAP) 7.2 コンテナーで実行されるようになりました (Fuse の前リリースの JBoss EAP 7.1 からアップグレード)。詳細は、『JBoss EAP 7.2.0 リリースノート』を参照してください。
- Apache Karaf での Servlet API 4.0 (Java EE 8 から) および Undertow 2.0 へのアップグレード
Fuse 7.3 は、Servlet API 3.1 (Java EE 7 から) ではなく Servlet API 4.0 (Java EE 8 から) を使用するようアップグレードされました。Servlet API 4.0 は Servlet API 3.1 と後方互換性があり、Karaf コンテナーに特定の変更が加えられたため、このアップグレードによるアプリケーションの移行リスクは小さくなります。以下に、Karaf ベースのアプリケーションを移行するときに注意すべき点を示します。
- Undertow 2 サーバーはより新しい Servlet API 4.0 の実装です。
-
Karaf ユーザーまたは管理者の観点からでは、
etc/undertow.xmlまたはetc/org.ops4j.pax.web.cfg設定ファイルに何も変更はありません。この設定はすべて同じです。 開発者の観点から見ると、Servlet API 4.0 によってマイナーな変更が導入されています。
-
javax.servlet.http.HttpServletRequestまた、javax.servlet.http.HttpServletResponseインターフェースには新たなメソッドがいくつかありますが、defaultとしてマーク付けされています。そのため、開発者がこれらのインターフェースを実装しても問題はありません。どのような場合でも、これらのインターフェースの実装が必要になるのはまれです (サードパーティーライブラリーによって実装される可能性はあります)。 -
javax.servlet.ServletContextインターフェースには、defaultでない新しいメソッドがいくつか追加されました。このインターフェースのバージョン 3.1 を実装するアプリケーションコードがある可能性は低く、また Fuse アプリケーションで新しいメソッドの 1 つを呼び出してjava.lang.AbstractMethodError例外がスローされる可能性も低くなります。すべての Fuse コンポーネント (Camel、CXF、pax-web を含む) には新しいメソッドが適切に実装されています (必要な場合)。
-
潜在的に最も大きな影響は OSGi 制約に関連するものです (インポートパッケージ ↔ エクスポートパッケージ)。Karaf コンテナーの Fuse ディストリビューションでは、依存関係を指定したのがバージョン 3.1 か 4.0 のどちらであっても、アプリケーションが Servlet API 4.0 JAR を使用するよう Karaf コンテナーを変更すると問題が解決します。Servlet API 4.0 は 後方互換性があり、3.1 の代わりに使用する場合のリスクはありません。技術的な詳細は以下を続けてお読みください。
Fuse 7.3 は、
mvn:javax.servlet/javax.servlet-api/4.0.1バンドルにアタッチする Fuse 固有のフラグメントバンドル (mvn:org.jboss.fuse.modules/fuse-servlet-compatibility/7.3.0.fuse-730xxx) である Servlet API フラグメントバンドルを提供するようになりました。karaf@root()> la|grep Servlet 42 │ Active │ 30 │ 4.0.0 │ Java Servlet API, Fragments: 191 191 │ Resolved │ 35 │ 7.3.0.fuse-730076 │ Red Hat Fuse :: Modules :: Servlet Compatibility, Hosts: 42
karaf@root()> la|grep Servlet 42 │ Active │ 30 │ 4.0.0 │ Java Servlet API, Fragments: 191 191 │ Resolved │ 35 │ 7.3.0.fuse-730076 │ Red Hat Fuse :: Modules :: Servlet Compatibility, Hosts: 42Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Fuse :: Modules :: Servlet Compatibilityバンドルの役割は、Servlet API 4.0 バンドルのマニフェストを拡張することのみであるため、他のバンドルはすべて Servlet API のバージョンが 4.0 および 3.1 であることを認識できます。