import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; import org.apache.sling.jcr.api.SlingRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.day.cq.replication.Preprocessor; import com.day.cq.replication.ReplicationAction; import com.day.cq.replication.ReplicationActionType; import com.day.cq.replication.ReplicationException; import com.day.cq.replication.ReplicationOptions; /** * Class to create publish date property after activating a event page for very first time * @author yogeshupadhyay * */ @Component(metatype = false, immediate = true, label = "Event heading End Date Chnange Listner", description="This component will listen to change in event end date node") @Service(value = {Preprocessor.class }) public class EventReplicationListner implements Preprocessor { private static final Logger log = LoggerFactory.getLogger(EventReplicationListner.class); @Reference private SlingRepository repository;
public void preprocess(ReplicationAction action, ReplicationOptions arg1) throws ReplicationException { if(action != null && action.getType().equals(ReplicationActionType.ACTIVATE)) { String path = action.getPath(); if(null!=path){ Session session = null; try { session = repository.loginAdministrative(null); Node node = session.getNode(path); //Do your stuff session.save(); } } } catch (RepositoryException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if(session!=null){ session.logout(); session=null; } }
} }
} } |