Stardust/Knowledge Base/Java API/IWorklistMonitor Example
< Stardust | Knowledge Base | Java API
The IWorklistMonitor service provider interface can be used to execute custom code when item are added to or removed from a workflow participant's worklist. Typically this SPI is used to implement push notification to users (UI alerts, email, ...) or other systems.
To use this interface you need to:
- Implement the IWorklistMonitor interface as shown below.
- Create a text file named org.eclipse.stardust.engine.core.spi.monitoring.IWorklistMonitor. The file contents needs to be the fully qualified name of your implementation class, e.g. org.eclipse.stardust.example.WorklistInterceptor .
- Place the file into the META-INF/services folder of the jar that will contain your implementation class
Note: you can also try to create a separate jar file, that contains only the above folder and use it as described in Stardust Forum thread [1]
Use this interface with caution! We do not recommend to use this functionality to constantly synchronize the worklists into another system. To maintain the worklists in two systems is a bad architectural design typically resulting from shortcuts taken. It usually leads to problems further down the road.
package org.eclipse.stardust.example; import org.eclipse.stardust.engine.api.model.IParticipant; import org.eclipse.stardust.engine.core.runtime.beans.IActivityInstance; import org.eclipse.stardust.engine.core.spi.monitoring.IWorklistMonitor; public class WorklistInterceptor implements IWorklistMonitor { @Override public void addedToWorklist(IParticipant arg0, IActivityInstance arg1) { System.out.println("ADDED TO WORKLIST: " + arg0.getId() + " Activity OID: " + arg1.getOID()); } @Override public void removedFromWorklist(IParticipant arg0, IActivityInstance arg1) { System.out.println("REMOVED FROM WORKLIST: " + arg0.getId() + " Activity OID: "+ arg1.getOID()); } }