|
この章では、SPI の実装は VCR にサポートする機能をエクスポーズする方法について説明します。この章では、以下のトピックについて説明します。
SPI の実装は、VCR に対してサポートする機能をエクスポーズする。たとえば、SPI 実装は、どのメソッドをサポートするか、Node 作成をサポートするかどうかを報告します。これにより、VCR と VCR クライアント コードは、SPI 実装の機能に基づく動作をカスタマイズします。以下の 3 つの機能タイプがあります。
メソッド機能は、インタフェース内のメソッドを示します。これらは以下の機能でエクスポーズされます。
機能は、Repository.getCapabilitySupport()でエクスポーズされます。CM 機能は、複数のメソッドにまがたる場合があります。たとえば、NodeFeatureCapability.NodeUpdate は複数のメソッドに影響を与え、ノードを更新する一般的な機能を示します。
リポジトリ定義機能は省略可能 な SPI 実装固有の機能です。これらの機能が Repository.getRepositoryDefinedCapabilities() でエクスポーズされます。基底のリポジトリのさまざまな (通常ダイナミック) 機能を特定の SPI 実装に対する VCR クライアント コードに報告します。たとえば、SPI 実装は大文字と小文字を区別しないでソートを実行していることをクライアントコードに報告するために SPI 実装を使用できます。基本的な SPI 実装はこの機能を使用しません。
メソッドと機能の場合、VCR は使用可能な一連の機能を SPI に渡します。SPI 実装は、渡した各機能に対して機能サポート (サポートするまたはサポートしない) を報告する必要があります。SPI 実装は、渡した機能のみを報告する必要があります。渡した機能以外の機能が存在する場合、実装はそれらの機能に対してリポジトリ定義機能を使用する必要があります。
リポジトリ定義機能の場合、VCR はリポジトリのリポジトリ定義機能および関連付けられたサポート レベルを確認します。
Repository.getCapabilitySupport(…)- SPI 実装の機能サポートの報告方法を定義します。リポジトリは、「RepositoryConfigOpsV1」などの省略可能なリポジトリ操作インタフェースを実装する場合、これらのインタフェースでの各メソッドに対して「MethodCapability」を報告する必要があります。Ticket.getCapabilitySupport(…)」- Ticket は、「NodeOpsV1」などの省略可能な Ticket 操作インタフェースを実装する場合、これらのインタフェースでの各メソッドに対して「MethodCapability」を報告する必要があります。Repository.getRepositoryDefinedCapabilities() – SPI 実装のリポジトリ定義機能の報告方法を定義します。
WebLogic Portal にある SPI モデルを使用して、SPI インタフェースの異なるバージョンでの VCR および SPI 実装を実行できます。たとえば、VCR は NodeOpsV3 を使用でき、SPI 実装を NodeOpsV2 に書き込みできます。この柔軟性があるため、SPI は、既存の SPI 実装を中断することなく実装にかかる時間を拡張することができ、追加の機能性をエクスポーズする追加のインターフェースを導入できます。SPI バージョン番号は WebLogic Portal 製品バージョンに関係なく、インタフェースを変更する度にインクリメントされます。
| 注意 : | SPI インタフェース バージョンは WebLogic Portal でリリースされた後は変更できません。変更すると、バージョンを実装するいずれかの SPI 実装が途切れることがあります。 |
RepositoryConfigOpsV1 などの省略可能なリポジトリ操作インタフェースの場合、および NodeOpsV1 などの省略可能な Ticket 操作インタフェースの場合、バージョン インタフェースが存在します。SPI 実装を作成する場合、SPI 実装の特定のバージョンに対して実装を書き込みます。
たとえば、WebLogic Portal v11 が NodeOpsV1、ObjectClassOpsV1 および ObjectClassOpsV2 (他のバージョンの中で) を含むとして、NodeOpsV1 および ObjectClassOpsV2 (最新バージョン) を実装するために WebLogic Portal v11 に対して SPI 実装を書き込みます。一定期間の後に、NodeOpsV1、NodeOpsV2、ObjectClassOpsV1、ObjectClassOpsV2 および ObjectClassOpsV3 を含む WebLogic Portal v12 を使用する場合、以前のバージョンで構築された SPI 実装は適切に動作します。
| ヒント : | SPI 実装に対して、インタフェースの最新バージョンを使用する必要があります。一定期間後に、SPI インターフェース バージョンは非推奨となり削除されるため、最新バージョンを使用することをお勧めします。 |
インターフェースのすべてのメソッドを実装する必要はありません。たとえば、NodeOpsV1 では単一のメソッドのみを実装することができます。
一部の SPI 実装のメソッドは実装するインタフェース バージョンを報告します。たとえば、Repository.getAllInterfaces() および Ticket.getAllInterfaces() は、SPIRepositoryInterfaces.REPOSITORY_CONFIG_OPS_V1 や SPITicketInterfaces.NODE_OPS_V1 インタフェース バージョン とキーがある Map<String, ISPIMarker> を返します。
| 注意 : | SPI の実装と SPI JAR のバージョン SPI インタフェースクラスをバンドルする必要はありません。それらは WebLogic Portal に含まれています。 |
|