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
データベース表に登録されます。テーブルの構造は次のとおりです。