Hi,
I am trying to invoke event handler after page activation. Event handler is invoking for all activation's(like image,file and page) but I need to invoke handler when I activate pages from specific paths. I am using OSGI annotations not felix. Below is my code snippet
@component(immediate = true, service = EventHandler.class, property = {
EventConstants.EVENT_TOPIC + "=" + ReplicationAction.EVENT_TOPIC,
EventConstants.EVENT_FILTER + "(" + ReplicationAction.PROPERTY_PATH + "=/content/mypage/*)"
})
public class SimpleDSComponent implements Runnable, EventHandler {
private Logger log = LoggerFactory.getLogger(this.getClass());
public void handleEvent(Event event) {
String n[] = event.getPropertyNames();
log.info("Replication action: {} on {}", event.getProperty(ReplicationAction.PROPERTY_TYPE), event.getProperty(ReplicationAction.PROPERTY_PATH));
// log.info("Event occurred: {}", event.getProperty(WorkflowEvent.EVENT_TYPE));
log.info("Event properties: ");
for(String s : n) {
log.info(s + " = " + event.getProperty(s));
}
ReplicationAction action = ReplicationAction.fromEvent(event);
if(action != null) {
log.info("Replication action {} occured on {} ", action.getType().getName(), action.getPath());
}
log.info("");
}
When I use event filter handler is not invoking for any activation. I am suspecting event filter definition is wrong.
Can you please help me out how can I write filter with multiple paths.
Thanks,
Sathish
Solved! Go to Solution.
Views
Replies
Total Likes
Hi,
It should work, I tried with below, it worked for me
https://github.com/arunpatidar02/aem63app-repo/blob/master/java/ReplicationEvent2.java
Views
Replies
Total Likes
Try once by replacing EventConstants.EVENT_FILTER + "(" + ReplicationAction.PROPERTY_PATH + "=/content/mypage/*)"
to
EventConstants.EVENT_FILTER + "=(" + ReplicationAction.PROPERTY_PATH + "=/content/mypage/*)"
or
EventConstants.EVENT_FILTER + "=(" + SlingConstants.PROPERTY_PATH) + "=/content/mypage/*)"
Regards
Albin I
Hi,
It should work, I tried with below, it worked for me
https://github.com/arunpatidar02/aem63app-repo/blob/master/java/ReplicationEvent2.java
Views
Replies
Total Likes
Hi Arun,
Thank you for your Reply.
Now handler is activating but it is activating for all pages and images irrespective of path. How can I restrict it.
@component(immediate = true, service = EventHandler.class, property = {
EventConstants.EVENT_TOPIC + "=" + ReplicationAction.EVENT_TOPIC,
EventConstants.EVENT_FILTER + "path=/content/mypage/en/help/*"
})
Thanks,
Sathish
Views
Replies
Total Likes
Hi, I have just updated the code with correct path filter
e.g.
EventConstants.EVENT_FILTER + "=(paths=/content/mypage/en/help/*)"
Views
Replies
Total Likes
Views
Replies
Total Likes