package com.day.cq.wcm.apps.geometrixx.impl; import java.util.Arrays; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.observation.EventIterator; import javax.jcr.observation.EventListener; import javax.jcr.observation.ObservationManager; import org.apache.sling.jcr.api.SlingRepository; import org.osgi.service.component.ComponentContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** DeleteEventListner * * @scr.service * * @scr.component * immediate="true" * metatype="false" * * @scr.property * name="service.description" * value="A sample from Day" * * @scr.property * name="service.vendor" * value="Day" * */ public class DeleteEventListner implements EventListener{ private Logger log = LoggerFactory.getLogger(getClass()); /** @scr.reference */ private SlingRepository repository; private Session session; private ObservationManager observationManager; protected void activate(ComponentContext context) throws Exception { session = repository.loginAdministrative(null); // Listen for changes to our orders if (repository.getDescriptor(Repository.OPTION_OBSERVATION_SUPPORTED).equals("true")) { observationManager = session.getWorkspace().getObservationManager(); final String[] types = { "cq:page","dam:Asset" }; final String path = "/content"; observationManager.addEventListener(this, javax.jcr.observation.Event.NODE_REMOVED, path, true, null, null, false); log.error("Observing property changes to {} nodes under {}", Arrays.asList(types), path); }
} public void onEvent(EventIterator itr) { // TODO Auto-generated method stub while(itr.hasNext()){ try { javax.jcr.observation.Event event = itr.nextEvent(); String path = event.getPath(); String userId = event.getUserID(); log.error("user "+userId+" is deleting"+path);
} catch (RepositoryException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
} } |