WebCenter Sitesのイベント・フレームワークによって、開発者は、WebCenter Sites内の特定のイベントに対して実行するカスタム・ビジネス・ロジックを記述できます。カスタム・ビジネス・ロジックは、事前定義済のインタフェースを実装するクラスパスに、Javaクラスの形式で実装する必要があります。このチュートリアルでは、リスナーの作成手順について説明します。
この章では、イベント・リスナーの作成手順について説明します。この章は、次の項で構成されています。
WebCenter Sitesでは現在、アセット・イベントおよびパブリッシュ・イベントの2つのイベント・タイプがサポートされています。
アセット・イベントは、ユーザーまたはプログラムのいずれかによってアセットが追加、変更または削除された際に発生するイベントです。このイベントの発生時、構成済の一連のイベントがイベント・フレームワークによって参照および実行されます。
パブリッシュ・イベントは、パブリッシュ・プロセスの各手順でリアルタイム・パブリッシュ・フレームワークが生成するイベントです。この機能は、システム監視(SNMPなど)やその他のハウスキーピング・プロセスの促進を目的としています。
この項の内容は、次のとおりです。
アセット・リスナーでは、AssetEventListenerを拡張して、アセットの変更が通知されるようにする必要があります。WebCenter Sitesには、AbstractAssetEventListenerという便利なベース・クラスが用意されています。このクラスから拡張することで、イベントにつながる特定タイプのアクション(追加/変更/削除)が認識しやすくなります。
次のサンプル・コードでは、カスタム・アセット・リスナーを実装しています。アセットIDを出力しているだけですが、カスタム・ビジネス・ロジックをプラグインする方法を簡単に理解できます。
package com.mycompany
public final class CustomAssetEventListener extends AbstractAssetEventListener
{
public void assetAdded(AssetId id)
{
System.out.println("Asset " + id + " added");
}
public void assetUpdated(AssetId id)
{
System.out.println("Asset " + id + " added");
}
public void assetDeleted(AssetId id)
{
System.out.println("Asset " + id + " added");
}
}
アセット・イベント・リスナーはアセット操作の発生後に起動され、データのコミット前には起動されません。
|
注意: WebCenter Sitesは、検索の索引付けに使用する標準リスナーを実装した状態で出荷されます。変更または削除は行わないでください。 |
アセット・イベント・リスナーは、AssetListener_regデータベース表に登録されます。テーブルの構造は次のとおりです。
この項の内容は、次のとおりです。
パブリッシュ・リスナーはPublishingEventListenerを実装する必要があります。リスナーに渡されるPublishingEventは、起動の要因となった特定のイベントを示します。
次の例は、pubsession IDをコンソールに出力するカスタム実装を示しています。
package com.mycompany;
public class CustomPublishingEventListener implements PublishingEventListener
{
public void onEvent( PublishingEvent event ) throws EventException
{
System.out.println( "Publishing event fired for pubsession: " + event.getPubSessionId());
System.out.println( "Publishing task : " + event.getTaskName());
System.out.println( "Status of the task : " + event.getStatus());
System.out.println( "Message associated with the task : " + event.getMessage() );
}
}
パブリッシュは複数のタスク(データ収集、パッケージ化、転送など)で構成され、それぞれがイベントを生成します。PublishingEventクラスは、パブリッシュ・タスクのイベントを表します。実装では、前述のようにイベントからタスクおよびそのステータスを問い合せることができます。
次の状態になった場合に、各タスクでイベントが生成されます。
STARTED
DONE
CANCELLED
SUBTASK_FINISHED
FAILED
パブリッシュ・イベント・リスナーは、FW_PublishingEventRegistryデータベース表に登録されます。テーブルの構造は次のとおりです。