@Activate protected void activate(ComponentContext context) { try{ final String path="/content/dam/"; Session session = repository.loginAdministrative(repository.getDefaultWorkspace()); observationManager = session.getWorkspace().getObservationManager(); observationManager.addEventListener(this, Event.PROPERTY_REMOVED, path, true, null, null, true); checkOutProperty = OsgiUtil.toString(context.getProperties() .get(ASSET_LOCK_PROPNAME_UPDATE), ASSET_LOCK_PROPNAME_DEFAULT); if (session != null && session.isLive()) { session.save(); } } catch (RepositoryException e) { if(LOG.isErrorEnabled()){ LOG.error("Error Occured in activate method of Property Removed Listener class:" + e.getMessage()); } }catch (Exception e) { if(LOG.isErrorEnabled()){ LOG.error("Error Occured in activate method of Property Removed Listener class:"+e.getMessage()); } } } @Deactivate protected void deactivate(ComponentContext componentContext) { try { if (observationManager != null) { observationManager.removeEventListener(this); } } catch (RepositoryException e) { if(LOG.isErrorEnabled()){ LOG.error("Error Occured " + e); } } catch (Exception e) { if(LOG.isErrorEnabled()){ LOG.error(e.getMessage()); } } }
Regards,
D
Solved! Go to Solution.
Views
Replies
Total Likes
Hi,
to actually use JCR observation the session, in which you register the listener, must be alive and active. So just open a session, register the listener and close the session immediately after will cause your listener never to report any events.
See [1] for an example.
kind regards,
Jörg
[1] https://cqdump.wordpress.com/2012/11/13/cq-coding-patterns-sling-vs-jcr-part-2/
Views
Replies
Total Likes
Hi,
to actually use JCR observation the session, in which you register the listener, must be alive and active. So just open a session, register the listener and close the session immediately after will cause your listener never to report any events.
See [1] for an example.
kind regards,
Jörg
[1] https://cqdump.wordpress.com/2012/11/13/cq-coding-patterns-sling-vs-jcr-part-2/
Views
Replies
Total Likes
Best practice would be to logout in the activate method itself having finally block for the try block so that you dont have to wait till the deactivation of the component.
Views
Replies
Total Likes
Thanks Jorg ! Your blogs on coding pattern JCR Vs Sling was very helpful.
I am not sure but any update or follow-up article on CRUD operation support withing Sling would be really great !!
Views
Replies
Total Likes
Views
Likes
Replies