JBoss.orgCommunity Documentation

Chapter 75. Organization Listener

75.1. Overview
75.2. Writing your own listeners
75.2.1. UserEventListener
75.2.2. GroupEventListener
75.2.3. MembershipEventListener
75.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!