3 import javax
.jcr
.RepositoryException
;
4 import javax
.jcr
.Session
;
5 import javax
.jcr
.observation
.Event
;
6 import javax
.jcr
.observation
.EventIterator
;
7 import javax
.jcr
.observation
.EventListener
;
8 import javax
.jcr
.observation
.ObservationManager
;
10 import org
.apache
.commons
.logging
.Log
;
11 import org
.apache
.commons
.logging
.LogFactory
;
13 /** To be overridden */
14 public class DefaultJcrListener
implements EventListener
{
15 private final static Log log
= LogFactory
.getLog(DefaultJcrListener
.class);
16 private Session session
;
17 private String path
= "/";
18 private Boolean deep
= true;
22 addEventListener(session().getWorkspace().getObservationManager());
23 if (log
.isDebugEnabled())
24 log
.debug("Registered JCR event listener on " + path
);
25 } catch (RepositoryException e
) {
26 throw new JcrException("Cannot register event listener", e
);
32 session().getWorkspace().getObservationManager()
33 .removeEventListener(this);
34 if (log
.isDebugEnabled())
35 log
.debug("Unregistered JCR event listener on " + path
);
36 } catch (RepositoryException e
) {
37 throw new JcrException("Cannot unregister event listener", e
);
41 /** Default is listen to all events */
42 protected Integer
getEvents() {
43 return Event
.NODE_ADDED
| Event
.NODE_REMOVED
| Event
.PROPERTY_ADDED
44 | Event
.PROPERTY_CHANGED
| Event
.PROPERTY_REMOVED
;
47 /** To be overidden */
48 public void onEvent(EventIterator events
) {
49 while (events
.hasNext()) {
50 Event event
= events
.nextEvent();
55 /** To be overidden */
56 protected void addEventListener(ObservationManager observationManager
)
57 throws RepositoryException
{
58 observationManager
.addEventListener(this, getEvents(), path
, deep
,
62 private Session
session() {
66 public void setPath(String path
) {
70 public void setDeep(Boolean deep
) {
74 public void setSession(Session session
) {
75 this.session
= session
;