JBoss.orgCommunity Documentation
Now, you have a nice procesor, so need to hook it to the system. At runtime, the processors can be attached to ActivityManager via the addProcessor(ActivityProcessor) method.
But there is also a component plugin hooked for it: public void addProcessorPlugin(BaseActivityProcessorPlugin plugin).
So, to make your processor easy to hook, you simply need to let him extend the BaseActivityProcessorPlugin.
public class SmileyProcessor extends BaseActivityProcessorPlugin {
String smiley = "<img src='/images/smiley.gif'/>";
public SmileyProcessor(InitParams params) {
super(params);
}
public void processActivity(Activity activity) {
String title = activity.getTitle();
activity.setTitle(title.replaceAll(":-\)", smiley));
}
}
It will have the additional benefit to make the priority field configurable, so you do not need to implement getPriorty().
Then your processor can be configured as a component plugin like this:
<external-component-plugins>
<target-component>org.exoplatform.social.core.activitystream.ActivityManager</target-component>
<component-plugin>
<name>SmileyProcessor</name>
<set-method>addProcessorPlugin</set-method>
<type>org.example.SmileyProcessor</type>
<init-params>
<value-param>
<name>priority</name>
<description>priority of this processor (lower are executed first)</description>
<value>2</value>
</value-param>
</init-params>
</component-plugin>
</external-component-plugins>
Restart, then place the smiley images on the server and you should see something like that: