配置插件管理器

可在 wimconfig.xml 文件中定义插件管理器配置。

插件管理器配置包含以下两个部分来对主题订户注册插件管理器,然后将其与主题发射级关联。

TopicSubscriberList
TopicSubscriberList 定义主题订户列表。
TopicRegistrationList
TopicRegistrationList 定义主题发射器和主题发射器在各个点调用的主题订户列表。

使用此处显示的样本配置,以对通知订户(称为 JMSEventNotificationSubscriber)和两个修改订户(称为 ABCSoftgroupsSubscriber 和 XYZSoftgroupsSubscriber)注册虚拟成员管理器create() API 主题发射级。 此示例中,这两个修改订户还可注册虚拟成员管理器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 方法。 由于插件为修改订户,因此可更改返回的数据对象。 在 get() API 执行开始时,不会调用 preExit 方法,因为订户未向 preExit 方法注册。

定义订户后,请确保它们是 CLASSPATH 变量的一部分,或者将它们放入 WAS_HOME/lib 中,然后再启动 IBM® WebSphere® Application Server。