リリース間アプリケーションの開発
リリース間クラス・ロード・サポートを提供するのは、Content Engine Java API のみです。 このサポートは、Content Engine .NET API および Process Engine API には組み込まれていません。
リリース間アプリケーションは、以下の要件を満たしている必要があります。
- アプリケーションは、Content Platform Engine サーバーのバージョン 5.2.1 以上に組み込まれている Content Engine Java API JAR ファイルである Jace.jar を使用して実行される必要があります。 この API は表示可能 API と呼ばれ、アプリケーションを開始し、バージョン 5.2.1 以上のすべての Content Platform Engine サーバーに接続するために使用されます。
- Content Platform Engine サーバーの他のバージョンに接続するためには、アプリケーションは、サーバー・バージョンごとに別個の Connection オブジェクトをインスタンス化し、そのサーバー・バージョンに適した Jace.jar ファイルを使用するように各 Connection オブジェクトを構成する必要があります。Jace.jar のこのような他のコピーは、実装 APIと呼ばれ、サーバーに適した実装クラスがこれらのコピーからロードされます。
例えば、アプリケーションが (サーバーのバージョン 5.2.1 に加えて) 5.0 および 5.1 にも接続する場合、バージョン 5.0 および 5.1 の Connection オブジェクトは、5.0 および 5.1 サーバーに組み込まれている Jace.jar ファイルを使用するように構成される必要があります。
実装 API は、タイプ CONNECTION_IMPLEMENTATION_API_LOCATION、CONNECTION_IMPLEMENTATION_API_LOCATIONS、および CONNECTION_IMPLEMENTATION_API_URLS の ConfigurationParameter インスタンスで指定されます。
CONNECTION_IMPLEMENTATION_API_LOCATION パラメーターは、Connection オブジェクトの単一の Jace.jar ファイルを直接指定します。このパラメーターは他の実装構成パラメーターとともには使用されません。
CONNECTION_IMPLEMENTATION_API_LOCATIONS パラメーターと CONNECTION_IMPLEMENTATION_API_URLS パラメーターは、Jace.jar ファイルへのパスに Connection URL をマップするために、組み合わせて使用されます。これにより、Connection オブジェクトは、それに適した実装 API に自動的に関連付けられます。
以下のコード例は、ConfigurationParameter.CONNECTION_IMPLEMENTATION_API_URLS と ConfigurationParameter.CONNECTION_IMPLEMENTATION_API_LOCATIONS を使用して、Jace.jar ファイルへのロケーションに Connection URL を関連付ける方法を示しています。両方とも、キーと値のペアのリストを提供します。ConfigurationParameter.CONNECTION_IMPLEMENTATION_API_URLS では、キーは Content Platform Engine 接続 URL であり、値は Content Platform Engine リリース番号です (この例のための架空の値です)。ConfigurationParameter.CONNECTION_IMPLEMENTATION_API_LOCATIONS では、キーは Content Platform Engine リリース番号であり、値はそのリリースの Jace.jar へのパスです。
CRCL はこの 2 つのパラメーターを一緒に使用して、Content Platform Engine Connection URL と実装 API 用の Jace.jar のコピーとの間の多対 1 マップを作成しを作成します。Connection オブジェクトで、URL は、対応する実装 API JAR ファイルを検索するために使用されます。 CRCL は Content Platform Engine 接続の値を JAR ファイルのロケーションのキーと突き合わせます。以下の例では、CRCL は URL http://svr1:9080/wsi/FNCEWS40SOAP/ を /my/vault/Jace-6.0.2.3.jar と突き合わせ、URL iiop://svr2:2809/FileNet/Engine を /my/vault/7.11.0.0/Jace.jar と突き合わせます。
JAR ロケーションと一致できない URL、またはキーと値のマッピングに存在しない URL が含まれている Connection は、表示可能 API の使用にフォールバックします。
...
String urlMapping = "~http://svr1:9080/wsi/FNCEWS40SOAP/ ~ 6.0.2.3" +
"~iiop://svr2:2809/FileNet/Engine ~ 7.11.0.0";
String pathMapping = "^6.0.2.3 ^ /my/vault/Jace-6.0.2.3.jar" +
"^7.11.0.0 ^ /my/vault/7.11.0.0/Jace.jar";
ConfigurationParameters parameters = new ConfigurationParameters();
parameters.setParameter(ConfigurationParameter.CONNECTION_IMPLEMENTATION_API_URLS, urlMapping);
parameters.setParameter(ConfigurationParameter.CONNECTION_IMPLEMENTATION_API_LOCATIONS, pathMapping);
この例を続行するために、クライアントは 2 つの Connection オブジェクトを作成します。1 つは Content Platform Engine リリース 6.0.2.3 用で、1 つは Content Platform Engine リリース 7.11.0.0 用です。それぞれの Connection は ConfigurationParameters オブジェクトとともに構成され、該当する実装 JAR に URL をマップします。それぞれの Connection では、CRCL はサーバーに適した実装クラスをロードします。
crcl.connectToSvr1(parameters);
crcl.connectToSvr2(parameters);
// Connect to svr1.
public void connectToSvr1(ConfigurationParameters parameters)
{
svr1Conn = Factory.Connection.getConnection(<svr1Uri>, parameters);
Subject subject = UserContext.createSubject(svr1Conn, <username>, <password>, <jaasStanza>);
UserContext.get().pushSubject(subject);
try
{
// do work on svr1
}
finally
{
UserContext.get().popSubject();
}
}
// Connect to svr2.
public void connectToSvr2(ConfigurationParameters parameters)
{
svr2Conn = Factory.Connection.getConnection(<svr2Uri>, parameters);
Subject subject = UserContext.createSubject(svr2Conn, <username>, <password>, <jaasStanza>);
UserContext.get().pushSubject(subject);
try
{
// do work on svr2
}
finally
{
UserContext.get().popSubject();
}
}