Search code examples
osgiaemsling

How to get page's content info before replication(DELETE)?


In CQ5, I need to collect some info from page properties and child nodes properties befor replication(delete) occurs

If i implement EventHandler:

@Component(immediate = true)
@Service
@Property(name = EventConstants.EVENT_TOPIC, value = ReplicationAction.EVENT_TOPIC)
public class RedisVideoUpdaterService implements EventHandler {
..................

    public void handleEvent(Event event) {            

    ReplicationAction action = ReplicationAction.fromEvent(event);
    ReplicationActionType actionType = action.getType();

    if (actionType.equals(ReplicationActionType.DELETE)) {
        //process data collecting
    }

...............

After handelEvent triggered there page is already deleted.

If i implement Preprocessor

@Component(immediate = true)
@Service
public class RedisVideoUpdaterService implements Preprocessor{
..................

   public void preprocess(ReplicationAction action, ReplicationOptions replicationOptions) throws ReplicationException {         

    ReplicationActionType actionType = action.getType();

    if (actionType.equals(ReplicationActionType.DELETE)) {
        //process data collecting
    }

...............

preprocess method is not triggered at all on delete action.

Both cases are OK for actiovation/deactivation.

How can I process page before it have been deleted?


Solution

  • As I noticed. Preppocessor triggered on delete only for activated pages. This behaviour is ok for me.