Skip to content

Instantly share code, notes, and snippets.

@aanchalsikka
Last active January 24, 2020 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aanchalsikka/ed32abfae0b1c2a311c0a29764654604 to your computer and use it in GitHub Desktop.
Save aanchalsikka/ed32abfae0b1c2a311c0a29764654604 to your computer and use it in GitHub Desktop.
package blog.techrevel.listeners;
import java.util.List;
import org.apache.sling.api.resource.observation.ResourceChange;
import org.apache.sling.api.resource.observation.ResourceChangeListener;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.metatype.annotations.Designate;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Component(service = ResourceChangeListener.class, property = { ResourceChangeListener.PATHS + "=" + "/content",
ResourceChangeListener.CHANGES + "=" + "ADDED", ResourceChangeListener.CHANGES + "=" + "REMOVED",
ResourceChangeListener.CHANGES + "=" + "CHANGED"
})
@Designate(ocd = DynamicPathListener.Config.class)
public class DynamicPathListener implements ResourceChangeListener {
public static final Logger LOGGER = LoggerFactory.getLogger(DynamicPathListener.class);
@ObjectClassDefinition(name = "Dynamic Path Listener Config")
public @interface Config {
@AttributeDefinition(name = "Path")
String resource_paths() default "/content";
}
@Override
public void onChange(List<ResourceChange> changeList) {
for (ResourceChange change : changeList) {
LOGGER.info(change.getPath());
LOGGER.info(change.getType().name());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment