/** * Start the observation by listening to JCR {@link Event}s. */ @Override public void startObservation() { if (getItemModel().getObject() == null) { log.info("skipping observation for null node"); return; } if (getItemModel().getRelativePath() == null) { listener = new JcrEventListener(context, Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED | Event.PROPERTY_REMOVED | Event.NODE_MOVED, "/", true, new String[] { getItemModel().getUuid() }, null); } else { listener = new JcrEventListener(context, Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED | Event.PROPERTY_REMOVED | Event.NODE_MOVED, getItemModel().getPath(), false, null, null); } listener.start(); }