JBoss.orgCommunity Documentation

Chapter 64. Organization Listener

64.1. Overview
64.2. Writing your own listeners
64.2.1. UserEventListener
64.2.2. GroupEventListener
64.2.3. MembershipEventListener
64.3. Registering your listeners

The Organization Service provides a mechanism to receive notifications when :

  • a User is created, deleted or modified

  • a Group is created, deleted or modified

  • a Membership is created or removed

This mechanism is very useful to cascade some actions when the organization model is modified. For example, it is currently used to :

  • initialize the personal portal pages

  • initialize the personal calendars, address books and mail accounts in CS

  • create drives and personal areas in ECM

To implement your own listener you just need to write extend some existing listener classes. These classes define hooks that are invoked before or after operations are performed on organization model.

Registering the listeners is then achieved by using the ExoContainer plugin mechanism. Learn more about it on the Service Configuration for Beginners article.

To effectively register organization service's listeners you simply need to use the <>addListenerPlugin</> seer injector.

So, the easiest way to register your listeners is to pack them into a .jar and create a configuration file into it under mylisteners.jar!/conf/portal/configuration.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<configuration>
 <external-component-plugins>
  <target-component>org.exoplatform.services.organization.OrganizationService</target-component>
   <component-plugin>
    <name>myuserplugin</name>
    <set-method>addListenerPlugin</set-method>
    <type>org.example.MyUserListener</type>
    <description></description>      
   </component-plugin>
   <component-plugin>
    <name>mygroupplugin</name>
    <set-method>addListenerPlugin</set-method>
    <type>org.example.MyGroupListener</type>
    <description></description>      
   </component-plugin>
   <component-plugin>
    <name>mymembershipplugin</name>
    <set-method>addListenerPlugin</set-method>
    <type>org.example.MyMembershipListener</type>
    <description></description>      
   </component-plugin>
  </external-component-plugins>
<configuration>

Now, simply deploy the jar under $TOMCAT_HOME/lib and your listeners are ready!