É possível definir a configuração do gerenciador de plug-in no arquivo wimconfig.xml.
A configuração do gerenciador de plug-in consiste nas duas seguintes seções para registrar assinantes de tópico no gerenciador de plug-in e, em seguida, associá-los aos emissores de tópico.
Use a configuração de amostra apresentada aqui para registrar um assinante de notificação chamado JMSEventNotificationSubscriber e dois assinantes de modificação chamados ABCSoftgroupsSubscriber e XYZSoftgroupsSubscriber no emissor de tópico da API create() do gerenciador de membro virtual. Esses dois assinantes de modificação também são registrados no emissor de tópico da API get() do gerenciador de membro virtual neste exemplo.
<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>
Neste exemplo, quando a API create() inicia a execução, o método preExit para o plug-in JMSEventNotificationSubscriber é chamado. O plug-in não pode alterar o objeto de dados porque ele é um assinante de notificação. Então, os métodos preExit para o plug-in ABCSoftgroupsSubscriber e o plug-in XYZSoftgroupsSubscriber também são chamados. Esses plug-ins são assinantes de modificação, de modo que podem alterar o objeto de dados. O método postExit não é chamado no final da execução da API create(), porque os assinantes não são registrados no método postExit.
Além disso, depois que a chamada da API get() conclui a execução, os métodos postExit para os plug-ins ABCSoftgroupsSubscriber e XYZSoftgroupsSubscriber são chamados. Os plug-ins podem alterar o objeto de dados retornado porque eles são assinantes de modificação. O método preExit não é chamado no início da execução da API get(), porque os assinantes não são registrados no método preExit.
Após a definição dos assinantes, assegure-se de que eles façam parte da variável CLASSPATH ou coloque-os em WAS_HOME/lib antes de iniciar o IBM® WebSphere Application Server.