I have an requirement like whenever a property called "dxmlLastCreatedVersion" of an asset is getting changed a listener should listen the event .I am using the below code kindly hv a look and let me know is this the correct way get an event for a node property change. It is working for all property change under /content/dam/sample this path ,but it should work only specific property change.
@8220494(immediate = true,
service = ResourceChangeListener.class,
property = {
ResourceChangeListener.PATHS + "=" + "/content/dam/sample",
ResourceChangeListener.CHANGES + "=" + "CHANGED",
ResourceChangeListener.PROPERTY_NAMES_HINT + "=dxmlLastCreatedVersion"
})
public class PropertyChangeListener implements ResourceChangeListener {
private static final Logger LOG = LoggerFactory.getLogger(PropertyChangeListener.class);
@3214626
private ResourceResolverService rr;
@9944223
public void onChange(List<ResourceChange> lists) {
ResourceResolver resourceResolver = null;
try {
resourceResolver = rr.getResourceResolver();
for (ResourceChange resourceChange : lists) {
String resourcepath = resourceChange.getPath();
LOG.info("******* RESOURCE PATH *******"+ resourcepath);
Resource resource = resourceResolver.getResource(resourcepath);
LOG.info("******* RESOURCE NAME *******"+ resource.getName());
}
} catch (LoginException e) {
e.printStackTrace();
}
}
}