jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Klimetschek <aklim...@day.com>
Subject Re: Declarative way of registering Event Listeners
Date Tue, 26 May 2009 12:19:13 GMT
On Tue, May 26, 2009 at 2:03 AM, ASTI Araza, Ariel D.
<ADAraza@ayalasystems.com> wrote:
> I've been searching the Jackrabbit documentation and I couldn't find anything that answers
my question. I am using the jackrabbit webapp and I don't want to subclass, or modify existing
jackrabbit classes just to insert code that register my own event listener to observe repository
changes like addition, modifications, removal, etc. In the WEB-INF/config.xml I saw <iomanager>
and <propertymanager> registration but there's unfortunately not anything that looks
like event listeners registration.

No, there is no declarative way to do so, because it is part of the
JCR API (iomanager and co. are Jackrabbit-specific extensions that
have to be run at startup) and most importantly, it requires a
session, which in turn requires you to log in with a certain user.

How you do this depends on your application framework, because in most
cases you want that eventlistener to be started in a long-running
component (the session needs to stay open as long as you want to
receive events). Then you "only" have to call
session.getWorkspace().getObservationManager().registerEventListener
[1].

[1] http://day.com/maven/jsr170/javadocs/jcr-1.0/javax/jcr/observation/ObservationManager.html#addEventListener(javax.jcr.observation.EventListener,%20int,%20java.lang.String,%20boolean,%20java.lang.String[],%20java.lang.String[],%20boolean)

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetschek@day.com

Mime
View raw message