import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; import org.apache.sling.api.resource.LoginException; import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.api.resource.ValueMap; import org.apache.sling.jcr.api.SlingRepository; import org.osgi.service.event.Event; import org.osgi.service.event.EventHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.day.cq.replication.ReplicationAction; import com.day.cq.replication.ReplicationActionType; import com.day.cq.replication.ReplicationException;
import com.day.cq.replication.Replicator; /** * This is an example listener that listens for replication events and * logs a message. */ @Component(metatype = false, immediate = true) @Service(value={EventHandler.class}) @Property(name="event.topics",value= {ReplicationAction.EVENT_TOPIC})public class ReplicationEventListener implements EventHandler { private static final Logger log = LoggerFactory.getLogger(ReplicationEventListener.class);
public void handleEvent(Event event) { String n[] = event.getPropertyNames(); log.info(""); log.info("Replication action: {} on {}", event.getProperty(ReplicationAction.PROPERTY_TYPE), event.getProperty(ReplicationAction.PROPERTY_PATH)); log.info("Replication user: {}", event.getProperty(ReplicationAction.PROPERTY_USER_ID)); 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(""); } }
|