プラグイン・マネージャーの構成

wimconfig.xml ファイルでプラグイン・マネージャー構成を定義できます。

プラグイン・マネージャー構成は、次の 2 つのセクション (プラグイン・マネージャーにトピック・サブスクライバーを登録するセクションと、トピック・エミッターにトピック・サブスクライバーを登録するセクション) で構成されています。

TopicSubscriberList
TopicSubscriberList は、トピック・サブスクライバーのリストを定義します。
TopicRegistrationList
TopicRegistrationList は、トピック・エミッターと、トピック・エミッターがさまざまなポイントで呼び出すトピック・サブスクライバーのリストを定義します。

通知サブスクライバー JMSEventNotificationSubscriber と 2 つの変更サブスクライバー ABCSoftgroupsSubscriber および XYZSoftgroupsSubscriber を Virtual member manager の create() API トピック・エミッターに登録する構成の例を以下に示します。この例では、この 2 つの変更サブスクライバーが、Virtual member manager の get() API トピック・エミッターにも登録されます。

<config:topicSubscriberList>
  <config:topicSubscriber topicSubscriberName="JMSEventNotificationSubscriber" topicSubscriberType="NotificationSubscriber">
    <config:className>com.mycompany.JMSEventNotificationSubscriber</config:className>
  </config:topicSubscriber>			  
  <config:topicSubscriber topicSubscriberName="ABCSoftgroupsSubscriber" topicSubscriberType="ModificationSubscriber">
    <config:className>com.mycompany.ABCSoftgroupsSubscriber</config:className>
  </config:topicSubscriber>
  <config:topicSubscriber topicSubscriberName="XYZSoftgroupsSubscriber" topicSubscriberType="ModificationSubscriber">
    <config:className>com.mycompany.XYZSoftgroupsSubscriber</config:className>
  </config:topicSubscriber>
</config:topicSubscriberList>

<config:topicRegistrationList>
  <config:topicEmitter topicEmitterName="com.ibm.ws.wim.ProfileManager.create">
    <config:preExit>
      <config:notificationSubscriberList>
        <config:notificationSubscriber>
          <config:notificationSubscriberReference>JMSEventNotificationSubscriber</config:notificationSubscriberReference>
          <config:realmList>All</config:realmList>
        </config:notificationSubscriber>
      </config:notificationSubscriberList>
      <config:modificationSubscriberList>
        <config:modificationSubscriber>
          <config:modificationSubscriberReference>ABCSoftgroupsSubscriber</config:modificationSubscriberReference>
          <config:realmList>All</config:realmList>
        </config:modificationSubscriber>
        <config:modificationSubscriber>
          <config:modificationSubscriberReference>XYZSoftgroupsSubscriber</config:modificationSubscriberReference>
          <config:realmList>All</config:realmList>
        </config:modificationSubscriber>
      </config:modificationSubscriberList>
    </config:preExit>
    <config:postExit>
    </config:postExit>
  </config:topicEmitter>

  <config:topicEmitter topicEmitterName="com.ibm.ws.wim.ProfileManager.get">
    <config:preExit>
    </config:preExit>
    <config:postExit>
      <config:modificationSubscriberList>
        <config:modificationSubscriber>
          <config:modificationSubscriberReference>ABCSoftgroupsSubscriber</config:modificationSubscriberReference>
          <config:realmList>All</config:realmList>
        </config:modificationSubscriber>
        <config:modificationSubscriber>
          <config:modificationSubscriberReference>XYZSoftgroupsSubscriber</config:modificationSubscriberReference>
          <config:realmList>All</config:realmList>
        </config:modificationSubscriber>
      </config:modificationSubscriberList>
    </config:postExit>
  </config:topicEmitter>
</config:topicRegistrationList>

この例では、create() API の実行開始時に、JMSEventNotificationSubscriber プラグインの preExit メソッドが呼び出されます。プラグインは通知サブスクライバーであるため、データ・オブジェクトを変更できません。次に、ABCSoftgroupsSubscriber プラグインと XYZSoftgroupsSubscriber プラグインの preExit メソッドも呼び出されます。これらのプラグインは変更サブスクライバーであるため、データ・オブジェクトを変更できます。postExit メソッドにサブスクライバーが登録されていないため、create() API 実行終了時に postExit メソッドは呼び出されません。

また、get() API 呼び出しによる実行の完了後に、ABCSoftgroupsSubscriber プラグインおよび XYZSoftgroupsSubscriber プラグインの postExit メソッドが呼び出されます。これらのプラグインは変更サブスクライバーであるため、戻されるデータを変更することができます。preExit メソッドにサブスクライバーが登録されていないため、get() API の実行開始時に preExit メソッドは呼び出されません。

サブスクライバーを定義した後で、定義したサブスクライバーが CLASSPATH 変数に指定されていることを確認するか、またはこれらのサブスクライバーを WAS_HOME/lib に配置してから、IBM® WebSphere® Application Server を始動します。



利用条件 | フィードバック