第2章 新機能および改良された機能
2.1. Java EE 8
Java EE 8 のサポート
JBoss EAP 7.2 には、以下の Java EE 8 標準のサポートが含まれています。
Java EE 8 のセキュリティーサポート
Java EE 8 には、認証およびアイデンティティーストアの移植可能なプラグインインターフェースである JSR 375 のサポートと、プログラムによるセキュリティーのアクセスポイントを提供する新しい injectable-type
SecurityContext
インターフェースのサポートが含まれます。これらの API に組み込まれた実装を使用するか、カスタム実装を定義することができます。
JBoss EAP 7.2 は JSR 375 をサポートするようになりました。
2.2. セキュリティー
Red Hat シングルサインオンによる JBoss EAP 管理コンソールのセキュア化
Red Hat シングルサインオンを設定して、JBoss EAP 管理コンソールの認証を管理できるようになりました。
詳細は、『How to Configure Server Security』の「Secure the Management Console with Red Hat Single Sign-On」を参照してください。
SSL の必要時にサーバーが非 SSL IIOP ソケットをブロック
IIOP サブシステムで server-requires-ssl
属性が true
に設定されている場合、サーバーが SSL でないソケットへの接続をブロックするようになりました。
BouncyCastle プロバイダーを使用した FIPS 140-2 対応の暗号化
elytron
サブシステムを使用すると、BouncyCastle プロバイダーを使用して JBoss EAP の FIPS 対応インスタンスを設定できます。完全な手順は『How to Configure Server Security』の「Enable FIPS 140-2 Cryptography for SSL/TLS Using BouncyCastle」を参照してください。
BouncyCastle プロバイダーを使用した FIPS 140-2 対応クレデンシャルストアの定義
BouncyCastle プロバイダーを使用して、FIPS 対応のクレデンシャルストアを取得できます。これらのクレデンシャルストアは、以下の方法のいずれかを使用して定義できます。
-
elytron
サブシステムから直接クレデンシャルストアを定義する手順は、「Define a FIPS 140-2 Compliant Credential Store Using the BouncyCastle Providers」を参照してください。 - WildFly Elytron ツールを使用してクレデンシャルストアをオフラインで定義する手順は、「Create and Modify Credential Stores Offline with the WildFly Elytron Tool」を参照してください。
CLI セキュリティーコマンドを使用した管理インターフェースの SASL 認証の有効化
security enable-sasl-management
CLI コマンドを使用して、SASL 認証を管理インターフェースに対して有効にできるようになりました。このコマンドは、認証の設定に必要で存在しないリソースをすべて作成します。
詳細は、『How to Configure Server Security』の「Enable SASL Authentication for the Management Interfaces Using the CLI Security Command」を参照してください。
CLI セキュリティーコマンドを使用した HTTP認証の有効化
security
CLI コマンドを使用して、Undertow セキュリティードメインおよび管理インターフェースに対して HTTP 認証を有効化できるようになりました。
-
Undertow セキュリティードメインの場合は
security enable-http-auth-http-server
CLI コマンドを使用します。 -
管理インターフェースの場合は
security enable-http-auth-management
CLI コマンドを使用します。
詳細は、『How to Configure Server Security』の「Enable HTTP Authentication for Applications Using the CLI Security Command」と「Enable HTTP Authentication for the Management Interfaces Using the CLI Security Command」を参照してください。
2.3. サーバー管理
Git を使用した設定データの管理
Git を使用してサーバー設定データ、プロパティーファイル、およびデプロイメントを管理および永続化できるようになりました。これにより、バージョン履歴を管理できるだけでなく、1 つ以上の Git リポジトリーを使用して複数のサーバーおよびノード全体でサーバーやアプリケーションの設定を共有することができます。この機能は、デフォルトの設定ディレクトリーレイアウトを使用するスタンドアロンサーバーでのみ動作します。
詳細は『Configuration Guide』の「Using Git to Manage Configuration Data」を参照してください。
サーバーグループの Kill Servers 操作
管理対象ドメインのサーバーグループに kill-servers
操作を使用できるようになりました。これは、問題によってサーバーグループのすべてのサーバーがハングする場合に便利な操作で、各サーバーに kill
操作を実行しなくても、一度にすべてのサーバープロセスを kill することができます。
2.4. 管理 CLI
キーボード操作ショートカット
管理 CLI コマンドの編集時にキーボードのショートカットを使用できるようになりました。使用するキーボードのショートカットは、ご使用のプラットフォームに応じて異なります。サポートされるショートカットのリストは、『管理 CLI ガイド』の「キーボード操作ショートカットの使用」を参照してください。
HTTP 管理 API の出力の生成
echo-dmr
コマンドは、1 つの行に内容を表示する新しい --compact
引数を提供します。管理 CLI 起動の引数である --output-json
と使用すると、HTTP 管理 API によって直接消費される出力を生成することができます。
管理 CLI 出力のスクロール
管理 CLI の出力がターミナルウインドウよりも長い場合に、コンソール内部を直接スクロールできるようになりました。スクロールホイール、矢印キー、PgUp
、PgDn
、Home
、および End
キーを使用して出力内を移動できます。
Windows では、この機能は Windows Server 2016 より使用可能です。他のオペレーティングシステムでは問題はありません。
管理 CLI 出力の検索
管理 CLI で複数ページの出力を検索できるようになりました。詳細は『管理 CLI ガイド』の「複数ページの出力の検索』を参照してください。
CLI のカラー出力
管理 CLI を設定して、ログメッセージの出力タイプに応じて CLI ログをカラーで出力できるようになりました。使用可能な色やカラー出力を有効または無効にする方法に関する詳細は、『管理 CLI ガイド』の「管理 CLI の設定」を参照してください。
進化したヘルプ
管理 CLI の help
機能がアップデートされ、ヘルプ情報へのアクセスが容易になりました。help
コマンドにタブ補完を使用できるようになり、管理 CLI 操作とコマンド動作のヘルプ情報も表示できるようになりました。
管理 CLI help
コマンドの使用に関する詳細は、『管理 CLI ガイド』を参照してください。
必須属性の表示
管理 CLI でタブ補完を使用すると、現在の操作で必要な属性に *
が付きます。
/subsystem=naming/binding=test:add( [TAB] ! class module binding-type* environment type cache lookup value
上記の例では、/subsystem=naming/binding=test:add(
の入力後に Tab を押すと使用可能な属性が表示され、この操作で必要な属性は binding-type
であることが示されます。
複数ページの出力の表示
管理 CLI を対話モードで実行し、操作によって複数のページが出力される場合、コマンドプロセッサーは最初のページの最後で画面を停止します。これにより、出力を 1 行または 1 ページごとに確認することができます。複数のページが出力されると、出力の最後に --More(NNN%)--
という行のテキストが表示されます。
管理 CLI コマンドの実行時に 複数のページが出力された場合は、『管理 CLI ガイド』で使用できるオプションを確認してください。
for-done 制御フローの使用
管理 CLI で for-done
制御フローを使用すると、操作から返されたコレクションでイテレートを行い、コレクションの各項目にコマンドを実行することができます。
詳細は、『管理 CLI ガイド』の「for-done 制御フローの使用」を参照してください。
JSON 形式の操作応答の出力
管理 CLI を設定して、操作応答を純粋な JSON 形式で出力することができます。これには、EAP_HOME/bin/jboss-cli.xml
ファイルで output-json
要素を true
に設定するか、管理 CLI の起動時に --output-json
を渡します。デフォルトでは、操作応答は DMR 形式で表示されます。
出力のリダイレクト
管理 CLI 操作からターミナルに出力する代わりに、以下の演算子を使用して出力をリダイレクトすることができます。
-
>
: 出力をファイルシステムのファイルに書き込みます。 -
>>
: 出力をファイルシステムのファイルに追加します。 -
|
: 出力をgrep
コマンドにリダイレクトして出力の検索を行います。
詳細は、『管理 CLI ガイド』の「出力のリダイレクト」参照してください。
統一された deployment コマンド
管理 CLI の deployment
コマンドを使用すると、統一されたインターフェースを使用してデプロイメントを管理でき、デプロイメントのデプロイ、アンデプロイ、有効化、無効化、またはデプロイメントに関する情報の表示を行うことができます。
詳細は、『Configuration Guide』の「Deploy an Application to a Standalone Server Using the Management CLI」および「Deploy an Application in a Managed Domain Using the Management CLI」を参照してください。
2.5. 管理コンソール
トポロジービュー
管理対象ドメインでは、ドメインのホスト、サーバーグループ、およびサーバーの概要と、各サーバーの状態を確認できるようになりました。これには、Runtime タブから Topology を選択します。
Breadcrumb バー
リソースを表示するときに上部にある Breadcrumb バーを使用できます。このバーを使用するとリソースの切り替えが容易になります。Breadcrumb バーから別のウインドウにリソースを開くこともでき、エキスパートモードに切り替えて管理モデルを閲覧することもできます。
ナビゲーションの改良
本リリースには、JBoss EAP のリソースをナビゲートするための新しいインターフェースが導入されました。矢印キーを使用して、リソースファインダーを移動でき、頻繁に使用する項目をリストの上部に固定することができます。また、迅速な検索のために絞り込みを行ったり、プレビューからリソースの主な属性を確認することもできます。
デプロイメントの改良
本リリースでは、管理コンソールを利用したアプリケーションのデプロイおよび管理のサポートが追加されました。ドラッグアンドドロップによるデプロイメントの追加または置換、デプロイメントコンテンツの閲覧によるテキストおよびイメージのプレビュー、デプロイメントのダウンロード、および展開形式のデプロイメントの作成を実行できます。
管理コンソールの SSL ウィザードの有効化
管理コンソールによって使用される、HTTP 管理インターフェースの SSL を有効にするためのウィザードが導入されました。このウィザードを使用すると、任意で相互認証のトラストストアを作成でき、以下のキーストアのシナリオを選択できます。
- 証明書ストアを作成し、自己署名証明書を生成する。
- 証明書ストアはすでにファイルシステムにあるが、キーストアの設定がない。
- 有効な証明書ストアを使用するキーストアの設定が存在する。
スタンドアロンサーバーでウィザードにアクセスするには、Runtime タブを選択し、該当するサーバーの 表示 をクリックします。HTTP 管理インターフェース を選択し、SSL の有効化 ボタンをクリックします。
管理対象ドメインでウィザードにアクセスするには、Runtime タブを選択し、ホスト をクリックします。該当するホストを選択して 表示
Undertow HTTPS リスナーの SSL ウィザードの有効化
Undertow HTTPS リスナーの SSL を有効にするためのウィザードが導入されました。このウィザードを使用すると、任意で相互認証のトラストストアを作成でき、以下のキーストアのシナリオを選択できます。
- 証明書ストアを作成し、自己署名証明書を生成する (管理対象ドメインでは使用不可)。
- 証明書ストアはすでにファイルシステムにあるが、キーストアの設定がない。
- 有効な証明書ストアを使用するキーストアの設定が存在する。
スタンドアロンサーバーでウィザードにアクセスするには、 Configuration タブをクリックし、Subsystems
管理対象ドメインサーバーでウィザードにアクセスするには、 Configuration タブをクリックし、Profile→ Web (Undertow)
ロギングプロファイルの設定
管理コンソールを使用して、logging
サブシステムでロギングプロファイルを設定できるようになりました。
Security Manager サブシステムの設定
管理コンソールからの security-manager
サブシステムの設定がサポートされるようになりました。
Elytron コンポーネントの設定
管理コンソールを使用した以下の Elytron コンポーネントの設定がサポートされるようになりました。
- マップされたロールマッパー
- 認証局アカウント
- カスタムのセキュリティーイベントリスナー
また、管理コンソールの Runtime タブから認証局アカウントのアカウントキーを作成、非アクティベート、更新、および変更できるようになりました。
セッションの詳細表示
管理コンソールを使用してデプロイメントの詳細なセッション情報を表示できるようになりました。
Runtime タブから該当するサーバーを選択し、Web (Undertow)
アクティブなセッションの無効化
管理コンソールを使用してデプロイメントのアクティブなセッションを無効化できるようになりました。
Runtime タブで該当するサーバーを選択し、Web(Undertow)
散在 (scattered) キャッシュの設定
本リリースでは、infinispan
サブシステムのキャッシュ設定内で設定できる散在 (scattered) キャッシュが導入されました。
さらに、散在 (scattered) キャッシュは hotrod
キャッシュストアの使用をサポートします。
その他のサブシステム設定
以下のサブシステムは、Configuration タブで使用できるその他の設定オプションのために追加または改良されました。
- MicroProfile Config SmallRye
- EJB
- Infinispan
- JGroups
- JMX
- Messaging (ActiveMQ)
- Resource Adapters
- Security (Legacy)
- Web (Undertow)
追加のサブシステム監視サポート
本リリースでは、Runtime タブで使用できる、以下のサブシステムの新規または改良された監視サポートが提供されます。
- Batch (JBeret)
- Datasources
- JNDI
- EJB
- IO
- JAX-RS
- Messaging (ActiveMQ)
- Transaction
- Web (Undertow)
- Webservices
2.6. Web Server
Undertow バイトバッファープール
Undertow バイトバッファープールを使用してプールされた NIO ByteBuffer
インスタンスを割り当てできるようになりました。すべてのリスナーにバイトバッファープールがあり、異なるバッファープールやワーカーを各リスナーに使用できます。バイトバッファープールはサーバーインスタンス間で共有することができます。
詳細は、『Configuration Guide』の「Configuring Byte Buffer Pools」を参照してください。
デフォルトのクッキーバージョンの設定
Undertow は、アプリケーションによって作成されたクッキーに使用するデフォルトのクッキーバージョンの設定方法を提供するようになりました。新しいdefault-cookie-version
属性に関する情報は、『Configuration Guide』の「servlet-container
Attributes」を参照してください。
URL でエスケープ処理されていない文字を使用可能
Undertow を設定して、エスケープ処理されていない文字を URL で使用できるようになりました。これには、HTTP、HTTPS、および AJP リスナーに対して allow-unescaped-characters-in-url
属性を設定します。この属性が true
に設定されていると、リスナーはエスケープ処理されていない ASCII でない文字が含まれる URL を処理します。false
に設定されている場合、リスナーはエスケープ処理されていない ASCII でない文字が含まれる URL を HTTP Bad Request 400
応答コードで拒否します。
listener 属性に関する詳細は、『Configuration Guide』の「Server Attributes」を参照してください。
PROXY プロトコル
Undertow は、The PROXY protocol Versions 1 & 2 仕様で定義されている PROXY プロトコルバージョン 1 をサポートするようになりました。このオプションはデフォルトで無効になっており、同じプロトコルをサポートするロードバランサーの背後のリスナーのみに対して有効にする必要があります。これは、Undertow HTTP および HTTPS リスナー上の新しい proxy-protocol
属性を使用して設定されます。
listener 属性に関する詳細は、『Configuration Guide』の「Server Attributes」を参照してください。
Forwarded HTTP 拡張
JBoss EAP 7.2 には、RFC 7239 を実装する Forwarded
ハンドラーが導入され、リバースプロキシー背後のサーバーがヘッダー内のピアおよびローカルアドレスを受信できるようになりました。
通常、このハンドラーはリバースプロキシーで有効になっている X-Forwarded-*
ヘッダーと使用してはなりません。そのため、このハンドラーを使用するか、Undertow リスナーの proxy-address-forwarding
属性を有効にする必要があります。
セッションマネージャーの操作
/deployment=DEPLOYMENT_NAME/subsystem=undertow
で 管理 CLI から使用できるようになった、詳細なセッション情報を取得する操作は次のとおりです。
-
get-session-attribute
: セッションの特定の属性を返します。 -
get-session-creation-time
: セッション作成時間を ISO-8601 形式で取得します。 -
get-session-creation-time-millis
: UNIX エポックからセッション作成までの時間をミリ秒単位で取得します。 -
get-session-last-accessed-time
: セッションが最後にアクセスされた時間を ISO-8601 形式で取得します。 -
get-session-last-accessed-time-millis
: UNIX エポックからセッション最終アクセスまでの時間をミリ秒単位で取得します。 -
list-session-attribute-names
: session 属性名を表示します。 -
list-session-attributes
: セッションのすべての属性を表示します。 -
list-sessions
: アクティブなセッションをすべて表示します。
2.7. IO
新しい worker 属性
以前のリリースの JBoss EAP では、コアスレッドサイズは常に最大スレッドサイズと同じでした。そのため、task-keepalive
属性が設定された場合でもスレッドが停止しませんでした。本リリースでは、task-core-threads
属性を使用してコアスレッドプールのスレッド数を個別に設定できるようになったため、keepalive 設定が想定どおり動作するようになりました。
詳細は、JBoss EAP 『Configuration Guide』の「Configuring a Worker」および「IO Subsystem Attributes」を参照してください。
2.8. ロギング
ソケットログハンドラー
ソケットログハンドラーを設定して、ログメッセージを TCP または UDP ソケット上でリモートロギングサーバーへ送信できるようになりました。
詳細は、『Configuration Guide』の「Configure a Socket Log Handler」を参照してください。
JSON および XML フォーマッター
JSON および XML ログフォーマッターを使用してログメッセージを JSON または XML 形式に変換できます。
詳細は『Configuration Guide』の「Log Formatters」を参照してください。
2.9. トランザクション
新しい maximum-timeout トランザクションマネージャー属性
これまで、トランザクションタイムアウトを無制限のタイムアウトを意味する 0
に設定すると、トランザクションマネージャーはトランザクションタイムアウトの実際の値として Integer.MAX_VALUE
を使用しました。最大整数値によって問題が発生することがあったため、トランザクションタイムアウト値の上限がより低くなりました。
新しい設定可能な属性である maximum-timeout
が transactions
サブシステムに追加されました。このデフォルト値は 31536000
秒 (365日) です。トランザクションに無制限のタイムアウトを設定すると、トランザクションマネージャーは maximum-timeout
の値を使用するようになり、WARN
メッセージで動作がログに記録されることを通知するようになりました。
2.10. Datasources
JDBC ドライバーのデータソースクラスプロパティーの取得
datasource-class-info
ランタイム属性は、JDBC ドライバーのデータソースクラスに設定できるデータソース接続プロパティーのリストを提供します。管理コンソールを使用して XA データソースを追加または編集する場合や、非 XA データソースを編集する場合、properties フィールドはこのプロパティーのリストを候補として提供します。
JDBC ドライバーは、表示されるプロパティーに対して設定された driver-datasource-class-name
または driver-xa-datasource-class-name
とともに作成されている必要があります。管理対象ドメインでプロパティーを表示するには、JDBC ドライバーが含まれるプロファイルに、実行中のサーバーがある必要があります。
詳細は『Configuration Guide』の「Datasource Attributes 」の表を参照してください。
2.11. EJB
HTTP/HTTPS 上の EJB および JNDI と HTTP ロードバランサー
リクエストが直接 HTTP リクエストにマップされるよう HTTP プロトコルを使用して EJB および JNDI 呼び出しを実行する機能が JBoss EAP 7.2 では完全サポートされるようになりました。また、EJB を HTTP ロードバランサー上で実行できます。詳細は『Developing EJB Applications』の「EJB Invocation Over HTTP」を参照してください。
コンテキストデータの EJBが クライアントへの返信
EJBClientInterceptor
は、org.jboss.ejb.client.EJBClientInvocationContext#addReturnedContextDataKey(String key)
を呼び出してサーバー側の呼び出しコンテキストから特定のデータをリクエストすることができます。要求したデータがコンテキストデータマップの提供されるキー以下に存在する場合、クライアントに送信されます。
2.12. JSF
JSF デプロイメントでの DOCTYPE 宣言の拒否
管理 CLI を使用して、JSF デプロイメントの DOCTYPE
宣言を拒否することができます。
詳細は『Configuration Guide』の「Disallowing DOCTYPE Declarations」を参照してください。
2.13. Hibernate
Hibernate ORM 5.1 から Hibernate ORM 5.3 へのアップグレード
JBoss EAP 7.2 には Hibernate ORM 5.3 が含まれるようになりました。Hibernate ORM 5.3 には、Java 8 JDK を使用して構築され、実行時に Java 8 JRE を必要とした Hibernate ORM 5.2 の変更が含まれています。また、Hibernate ORM 5.3 には JPA 2.2 仕様のサポートも追加されています。この仕様に準拠するための変更やその他の改善内容が含まれています。
Hibernate ORM 5.2 および 5.3 で導入された機能に関する詳細と、アプリケーションを Hibernate ORM 5.1 から Hibernate ORM 5.3 に移行するために必要な事柄については、JBoss EAP『移行ガイド』の「Hibernate ORM 5.1 から Hibernate ORM 5.3 への移行」を参照してください。
Hibernate Validator 5.3.x から Hibernate Validator 6.0.x へのアップグレード
JBoss EAP 7.2 には、JSR 380: Bean Validation 2.0 のリファレンス実装である Hibernate Validator 6.0.x が含まれています。
詳細は、JBoss EAP『開発ガイド』の「Bean Validation」を参照してください。
2.14. クラスタリング
改良された execute メソッドによって使用される CompletableFuture
本リリースでは、新しい Java EE 8 の CompletableFuture
インターフェースを利用するために CommandDispatcher
非同期メソッドが改良されました。これにより、CommandDispatcher
のコンシューマーはディスパッチしたコマンドの非ブロッキング処理を実装できます。
非推奨となったメソッド | 新たな推奨メソッド |
---|---|
executeOnNode |
executeOnMember |
executeOnCluster |
executeOnGroup |
submitOnNode |
executeOnMember |
submitOnCluster |
executeOnGroup |
詳細は、『開発ガイド』の「クラスタリングサービスのパブリック API」を参照してください。
2.15. Infinispan
HotRod クライアントインジェクション
@Resource
JNDI インジェクションを使用して、HotRod クライアントをインジェクトし、リモート JDG クラスターに接続することができます。
詳細は、『Configuration Guide』の「Externalize HTTP Sessions to JBoss Data Grid」を参照してください。
非ブロッキングの初期状態遷移
状態遷移が完了するまで待たなくても、キャッシュが即座に利用可能になります。これは、キャッシュの timeout
属性を 0
に設定し、バックグラウンド操作にてキャッシュの状態を受信できるようにすると実現できます。
詳細は『Configuration Guide』の「State Transfer」を参照してください。
散在 (scattered) キャッシュモード
infinispan
サブシステムは散在 (scattered) キャッシュモードをサポートするようになりました。散在 (scattered) モードは、一貫したハッシュアルゴリズムを使用して所有者を判断する分散モードと似ています。しかし、所有者は 2 人のメンバーに限定され、オリジネーター (指定のセッションのリクエストを受信するノード) は常にロックを調整する所有者やキャッシュエントリーのアップデートを想定します。散在 (scattered) モードで使用されるキャッシュ書き込みアルゴリズムは、書き込み操作の結果が単一の RPC 呼び出しになることを保証します。これにより、競合の可能性を下げ、クラスタートポロジーの変更後にパフォーマンスを向上することが可能になります。
詳細は『Configuration Guide』の「Clustering Modes」を参照してください。
リモートキャッシュストアを使用した HTTP セッションの外部化
HTTP セッションを JBoss Data Grid に外部化する新しいメソッドが本リリースに含まれています。このメソッドは、セキュリティーのためにクライアント SSL コンテキストが定義されている JBoss EAP の infinispan
サブシステムにあるリモートキャッシュコンテナーを利用します。
管理 CLI および管理コンソールからリモートキャッシュコンテナーを設定できます。
詳細は、『Configuration Guide』の「Externalize HTTP Sessions to JBoss Data Grid」を参照してください。
2.16. Web サービス
JSON バインディングの Java API
RESTEasy は JSON-B と JSON-P の両方をサポートします。仕様によると、JsonValue
とそのサブタイプを除き、すべてのタイプのエンティティーで、JSON-B のエンティティープロバイダーの優先度は JSON-P のエンティティープロバイダーよりも高くなります。
resteasy-json-binding-provider
モジュールからの JsonBindingProvider
は、JSON-B のサポートを提供します。JAX-RS 2.1 の要件を満たすため、JsonBindingProvider
プロバイダーの優先度は、Jackson ペイロードなどの JSON ペイロードを処理する他のプロバイダーよりも高くなります。後方互換性を維持するには、resteasy.preferJacksonOverJsonB
コンテキストプロパティーを true
に設定し、現在のデプロイメントのJsonBindingProvider
設定を無効にします。
詳細は、JBoss EAP『Developing Web Services Applications』の「Java API for JSON Binding」を参照してください。
非同期 HTTP リクエストの処理
RESTEasy のデフォルトの非同期エンジン実装クラスは ApacheHttpAsyncClient4Engine
です。ResteasyClientBuilder
クラスで useAsyncHttpEngine
メソッドを呼び出すと、非同期エンジンをアクティブなエンジンとして設定できます。
詳細は、JBoss EAP『Developing Web Services Applications』の「Asynchronous NIO Request Processing」を参照してください。
カスタム RESTEasy アノテーション
バイトコードにパラメーター名が追加されたため、@PathParam
、@QueryParam
、@FormParam
、@CookieParam
、@HeaderParam
、および@MatrixParam
アノテーションでパラメーター名を指定する必要がなくなりました。これには、任意の value パラメーターを持つ異なるパッケージで、同じ名前を持つ新しいアノテーションに切り替える必要があります。
詳細は、JBoss EAP『Developing Web Services Applications』の「Custom RESTEasy Annotations」を参照してください。
ParamConverter 機能の拡張
JAX-RS セマンティックでは、ParamConverter
は各オブジェクトを表す単一の文字列を変換します。RESTEasy はセマンティックを拡張して、ParamConverter
が複数オブジェクトの文字列表現を解析できるようにし、List<T>
、Set<T>
、SortedSet<T>
、アレイ、またはその他の複数値のデータ構造の生成を可能にします。
詳細は、JBoss EAP『Developing Web Services Applications』の「Extending the Functionality of the ParamConverter」を参照してください。
リソースメソッドアルゴリズムの切り替え
3.0.25.Final より前の RESTEasy 3.0.x バージョンで使用されたリソースメソッド一致アルゴリズムでバグが見つかりました。このバグにより、リクエストの応答時に RESTEasy は余分なリソースメソッドを返しました。詳細は『移行ガイド 』の「JAX-RS および RESTEasy のアプリケーションの変更 」を参照してください。
RESTEasy サービスプロバイダーインターフェース
JBoss EAP は、ResourceBuilder
を使用して作成されるリソースクラスメタデータを編集するための RESTEasy サービスプロバイダーインターフェース (SPI) を提供するようになりました。ResourceClassProcessor
インターフェースの実装によって、メタデータ生成のカスタマイズが可能になります。
RESTEasy SPI に関する詳細は、JBoss EAP『Developing Web Services Applications』の「RESTEasy SPI to Modify Resource Metadata」を参照してください。
HTTP リダイレクトの JAX-RS クライアントサポート
Apache HttpClient
をベースとする JAX-RS ClientHttpEngine
実装 は HTTP リダイレクトをサポートします。詳細は『Developing Web Services Applications』の「HTTP Redirect」を参照してください。
2.17. メッセージング
IBM MQ リソースアダプター
本リリースの JBoss EAP は以下の構成でテストされています。
- IBM MQ 8.0.0.10 リソースアダプターは IBM MQ 8.0.0.x ブローカーに対してテストされました。バージョンが 8.0.0.0 から 8.0.0.9 までの IBM MQ リソースアダプターはサポートされません。
- IBM MQ 9.0.0.4 リソースアダプターは IBM MQ 9.0.0.x ブローカーに対してテストされました。バージョンが 9.0.0.0 から 9.0.0.3 までの IBM MQ リソースアダプターはサポートされません。
IBM MQ リソースアダプターに関する詳細は、JBoss EAP『Configuring Messaging』の「Deploying the IBM MQ Resource Adapter」を参照してください。
JDBC データベースを使用したメッセージングジャーナルの永続化
本リリースの JBoss EAP では、現在サポートされている Oracle 12c データベースの他に、JDBC を使用してメッセージを永続化する場合に IBM DB2 Enterprise データベースをサポートします。
メッセージング JDBC 永続ストアの HA トポロジーのサポート
本リリースの JBoss EAP では、メッセージング JDBC 永続ストアの HA トポロジーをサポートします。詳細は、JBoss EAP『Configuring Messaging』の「Configuring HA for Messaging JDBC Persistence Store」を参照してください。
リモート Red Hat AMQ 7 メッセージングブローカーへの接続の簡略化
リモート Red Hat AMQ 7 メッセージングブローカーへ接続するのに、JBoss EAP の埋め込みメッセージングブローカーが必要なくなりました。リモート Red Hat AMQ ブローカーに直接接続するために必要なリソースは messaging-activemq
サブシステムで定義できます。
統合された Artemis リソースアダプターを使用した Red Hat AMQ への接続
統合された Artemis リソースアダプターを設定し、JBoss EAP 7.2 アプリケーションの JMS プロバイダーとなる Red Hat AMQ 7 のリモートインストールへ接続することができます。これにより、JBoss EAP がリモート Red Hat AMQ 7 サーバーのクライアントになることができます。
詳細は、JBoss EAP『Configuring Messaging』の「Configuring the Artemis Resource Adapter to Connect to Red Hat JBoss AMQ 7」を参照してください。
2.18. OpenShift
JBoss EAP でネイティブに統合された KUBE_PING
これまで、KUBE_PING
JGroups ディスカバリープロトコルは JBoss EAP OpenShift イメージにのみ実装されました。KUBE_PING
は JBoss EAP にネイティブ実装されるようになったため、独自のカスタムコンテナーイメージを作成するユーザーはクラスター化されたアプリケーションでネイティブの KUBE_PING
を使用できるようになりました。KUBE_PING
の使用に関する詳細は、『Getting Started with JBoss EAP for OpenShift Container Platform』の「Clustering reference」を参照してください。
2.19. モジュール
事前定義されたモジュール
すべての JBoss モジュール API が含まれる org.jboss.modules
は事前定義されたモジュールのセットで、デフォルトのモジュールローダーを使用する場合に JBoss EAP 7.2 でサポートされます。この特別なモジュールは常に利用可能で、JBoss Modules によって提供されます。Java 9 以上で提供される標準の Java Platform Module System (JPMS) モジュールも標準の名前で利用可能です。JDK 8 を使用する場合、JDK 9 モジュールは JBoss Module によってエミュレートされます。
詳細は『Configuration Guide』の「Predefined Modules」を参照してください。
2.20. クイックスタートおよび BOM
アプリケーションの開発に使用可能な JBoss EAP BOM
Java EE 8 のアップデートに伴い、JBoss EAP Maven BOM ファイルのアーティファクト ID が変更になりました。以下の表は、本リリースでアプリケーションの開発に使用できる Maven BOM を表しています。
BOM アーティファクト ID | ユースケース |
---|---|
jboss-eap-javaee8 |
JBoss EAP Java EE 8 API および追加の JBoss EAP API JAR をサポート。 |
jboss-eap-javaee8-with-spring4 |
|
jboss-eap-javaee8-with-tools |
|
アプリケーション開発で使用できる BOM に関する詳細は、『開発ガイド』の「プロジェクト依存関係の管理」を参照してください。