Hi Team,
In one of our application, the code contains org.apache.sling.event.EventUtil and in order to find a local event in a clustered environment it uses EventUtil.isLocal(event) method. Until version AEM 6.0 it was working fine as expected. But in AEM 6.2, the above has been deprecated.
Could you please suggest any alternatives for the same?, Thanks.
Regards,
Saran
Solved! Go to Solution.
Views
Replies
Total Likes
You could filter at the event handler level. If you're using annotations, add the filter line.
@Properties({ @Property(name = "event.topics", value = "com/mycompany/app/eventname", propertyPrivate = true),
@Property(name = EventConstants.EVENT_FILTER, value="(!(" + DEAConstants.PROPERTY_APPLICATION + "=*))")})
If the event is a local event, the PROPERTY_APPLICATION is not available. If it is available, it contains the application (Sling ID) of the instance where the event originated.
You could filter at the event handler level. If you're using annotations, add the filter line.
@Properties({ @Property(name = "event.topics", value = "com/mycompany/app/eventname", propertyPrivate = true),
@Property(name = EventConstants.EVENT_FILTER, value="(!(" + DEAConstants.PROPERTY_APPLICATION + "=*))")})
If the event is a local event, the PROPERTY_APPLICATION is not available. If it is available, it contains the application (Sling ID) of the instance where the event originated.
Hi Tony,
Thanks a lot for this solution. It will satisfy our needs. Many Thanks again.
Views
Replies
Total Likes
Hi Team,
Could you please let me know how to get the EVENT_FILTER value or PROPERTY_APPLICATION value?
Here is my code correct me if I am wrong
@Properties({ @Property(name = EventConstants.EVENT_TOPIC, value = {ReplicationAction.EVENT_TOPIC,AlertSender.JOB_TOPIC}, propertyPrivate = true),
@Property(name = EventConstants.EVENT_FILTER, value="(!(" + DEAConstants.PROPERTY_APPLICATION + "=*))")})
@Override
public void handleEvent(Event event) {
//String localevent = (String)event.getProperty("event.filter");-- commented
String localEvent=(String)event.getProperty(DEAConstants.PROPERTY_APPLICATION);
if(StringUtil.isBlank(localEvent)){
//JobUtil.processJob(event, this); -- Need to replace this method also please let me know how to use jobConsumer interface here
}
}
Views
Replies
Total Likes
Views
Likes
Replies