JCR中的观察机制

阅读更多
JCR提供观察机制, 目的是在Item变化时(包括节点和属性),客户可以得到通知,从而作出相应的反应. JCR专门有一个包: javax.jcr.observation. 它包含5个接口:
  1. Event: 事件,支持5种事件类型: 节点的增加和删除,属性的增加,删除和改变. 事件类有三个方法,分别是getPath()返回和这个事件相连的项目(可能是节点,也可能是属性)的绝对路径,getType()返回事件类型,getUserID()返回和这个事件相连的用户ID字符串(通过引起这个事件的会话的getUserID方法)
  2. EventIterator, 事件的Iterator
  3. EventListener, 事件监听器. 通过观察管理器来注册事件监听器, 事件监听器是异步的,只有事件发生并且事务已经提交了,事件监听器才能看见事件.当然事件监听器能否看见事件还取决于它注册的会话和是否有足够的相应的权限. 需要注意的是监听器的范围是每个Workspace,而不是整个仓库.他们仅仅接受他们注册的Workspace内发生的事件.当一个持久性的变化发生时,仓库调用每个监听器的onEvent方法, 注意每个监听器可以有过滤器来决定监听何种事件. 这个方法通过EventIterator对象接受到事件通知. EventIterator对象包含一系列事件(当然也要过滤),描述了对整个Workspace作出的持久性变化.
  4. ObservationManager观察管理器: 这个最重要. 通过Workspace.getObservationManager()方法从Workspace对象处获得观察管理器.通过ObservationManager添加,删除事件监听器.

你可能感兴趣的:(项目管理)