本文整理了Java中javax.jcr.observation.ObservationManager
类的一些代码示例,展示了ObservationManager
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ObservationManager
类的具体详情如下:
包路径:javax.jcr.observation.ObservationManager
类名称:ObservationManager
[英]The ObservationManager object.
Acquired via javax.jcr.Workspace#getObservationManager()
. Allows for the registration and deregistration of event listeners.
[中]ObservationManager对象。
通过javax.jcr.Workspace#getObservationManager()
获得。允许注册和注销事件侦听器。
代码示例来源:origin: org.apache.sling/org.apache.sling.commons.testing
public EventHelper(Session s) throws RepositoryException {
session = s;
final int eventTypes = Event.NODE_ADDED | Event.NODE_REMOVED;
final boolean isDeep = true;
final boolean noLocal = false;
session.getWorkspace().getObservationManager().addEventListener(
this, eventTypes, "/" + WAIT_NODE_FOLDER, isDeep, null, null, noLocal);
if(session.getRootNode().hasNode(WAIT_NODE_FOLDER)) {
waitNodeFolder = session.getRootNode().getNode(WAIT_NODE_FOLDER);
} else {
waitNodeFolder = session.getRootNode().addNode(WAIT_NODE_FOLDER, "nt:unstructured");
}
session.save();
}
代码示例来源:origin: apache/jackrabbit
/**
* Tests if events are only created for a sub tree of the workspace.
*/
public void testPath() throws RepositoryException {
EventResult listener = new EventResult(log);
obsMgr.addEventListener(listener, Event.NODE_ADDED, testRoot + "/" + nodeName1, true, null, null, false);
Node n = testRootNode.addNode(nodeName1, testNodeType);
n.addNode(nodeName2, testNodeType);
testRootNode.getSession().save();
Event[] events = listener.getEvents(DEFAULT_WAIT_TIMEOUT);
obsMgr.removeEventListener(listener);
checkNodeAdded(events, new String[]{nodeName1 + "/" + nodeName2}, null);
}
代码示例来源:origin: org.onehippo.cms7/hippo-repository-engine
public void logNodeTypeRegistryLastModifiedEvent(final String userData) {
try {
final Node autoExportConfigNode = monitorSession.getNode(autoExportConfig.getConfigPath());
monitorSession.refresh(false);
ObservationManager observationManager = monitorSession.getWorkspace().getObservationManager();
observationManager.setUserData(userData);
try {
if (autoExportConfigNode.hasProperty(AutoExportConstants.CONFIG_NTR_LAST_MODIFIED_PROPERTY_NAME)) {
autoExportConfigNode.getProperty(AutoExportConstants.CONFIG_NTR_LAST_MODIFIED_PROPERTY_NAME).remove();
}
autoExportConfigNode.setProperty(AutoExportConstants.CONFIG_NTR_LAST_MODIFIED_PROPERTY_NAME, System.currentTimeMillis());
monitorSession.save();
AutoExportServiceImpl.log.debug("journal logging changed nodetype prefix(es): [{}]",userData);
} finally {
observationManager.setUserData(null);
}
} catch (RepositoryException e) {
AutoExportServiceImpl.log.error("Failed to generate journal event for NodeTypeRegistry change.", e);
}
}
代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core
/**
* Utility method that removes all registered event listeners.
*/
private void removeRegisteredEventListeners() {
try {
ObservationManager manager = getWorkspace().getObservationManager();
// Use a copy to avoid modifying the set of registered listeners
// while iterating over it
Collection<EventListener> listeners =
IteratorUtils.toList(manager.getRegisteredEventListeners());
for (EventListener listener : listeners) {
try {
manager.removeEventListener(listener);
} catch (RepositoryException e) {
log.warn("Error removing event listener: " + listener, e);
}
}
} catch (RepositoryException e) {
log.warn("Error removing event listeners", e);
}
}
代码示例来源:origin: org.onehippo.cms7/hippo-cms-engine
void subscribe(JcrListener listener, Node node) throws RepositoryException {
synchronized (upstream) {
Session session = node.getSession();
String uuid = node.getProperty(HippoNodeType.HIPPO_DOCBASE).getString();
String[] uuids = {uuid};
if ("hippofacnav:facetnavigation".equals(node.getPrimaryNodeType().getName())) {
uuids = uuid.split(",\\s*");
}
UpstreamEntry entry = new UpstreamEntry();
entry.listener = listener;
entry.rootListeners = new LinkedList<FacetRootListener>();
upstream.add(entry);
ObservationManager obMgr = session.getWorkspace().getObservationManager();
for (String id : uuids) {
try {
String docbase = session.getNodeByIdentifier(id).getPath();
// CMS7-5568: facet navigation can have multiple docbases.
FacetRootListener rootListener = new FacetRootListener(node.getPath(), session.getUserID(), listener);
obMgr.addEventListener(rootListener, Event.NODE_ADDED | Event.NODE_REMOVED | Event.PROPERTY_CHANGED, docbase, true,
null, null, false);
entry.rootListeners.add(rootListener);
} catch (ItemNotFoundException e) {
log.warn("The {} property of facet node {} refers to a non-existing UUID '{}'",
new Object[]{HippoNodeType.HIPPO_DOCBASE, node.getPath(), uuid});
}
}
}
}
代码示例来源:origin: apache/jackrabbit-oak
Node testNode = session.getRootNode().addNode(testNodeName);
testNode.setProperty("foo", "bar");
testNode.setProperty("foo2", "bar0");
session.save();
ObservationManager observationManager = observingSession.getWorkspace().getObservationManager();
observationManager.addEventListener(listener, PROPERTY_CHANGED, testNodePath, true, null, null, false);
代码示例来源:origin: apache/jackrabbit
public void testRenameEventHandling() throws RepositoryException {
Session s = getHelper().getSuperuserSession();
ObservationManager mgr = s.getWorkspace().getObservationManager();
EventResult result = new EventResult(log);
try {
mgr.addEventListener(result, Event.PERSIST|Event.NODE_ADDED|Event.NODE_MOVED|Event.NODE_REMOVED, testRootNode.getPath(), true, null, null, false);
NodeIterator it = testRootNode.getNodes();
Node n = it.nextNode();
String name = n.getName();
JackrabbitNode node = (JackrabbitNode) n;
node.rename(name.toUpperCase());
superuser.save();
boolean foundMove = false;
for (Event event : result.getEvents(5000)) {
if (Event.NODE_MOVED == event.getType()) {
foundMove = true;
break;
}
}
if (!foundMove) {
fail("Expected NODE_MOVED event upon renaming a node.");
}
} finally {
mgr.removeEventListener(result);
s.logout();
}
}
代码示例来源:origin: org.apache.jackrabbit/jackrabbit-core
Listener(GarbageCollector gc, Session session)
throws UnsupportedRepositoryOperationException,
RepositoryException {
this.gc = gc;
this.session = session;
Workspace ws = session.getWorkspace();
manager = ws.getObservationManager();
manager.addEventListener(this, Event.NODE_MOVED, "/", true, null,
null, false);
}
代码示例来源:origin: ModeShape/modeshape
session.getWorkspace()
.getObservationManager()
.addEventListener(listener, Event.NODE_ADDED, null, true, null, null, false);
session2.getWorkspace().getObservationManager().setUserData(userData);
Node addedNode = session2.getRootNode().addNode("node1", UNSTRUCTURED);
session2.save();
+ addedNode.getPath(),
containsPath(listener, addedNode.getPath()));
代码示例来源:origin: ModeShape/modeshape
.getWorkspace()
.getObservationManager()
.addEventListener(listener, ALL_EVENTS, "/folder1", true, null, new String[] { "nt:unstructured" }, false);
Session writerSession = repository().login();
String nodeName = "node" + i;
writerSession.getNode("/folder1").addNode(nodeName);
writerSession.save();
writerSession.logout();
txMgr.commit();
listenerSession.getWorkspace().getObservationManager().removeEventListener(listener);
listenerSession.logout();
代码示例来源:origin: apache/jackrabbit-oak
@Test
public void uuidFilter() throws RepositoryException, InterruptedException, ExecutionException {
ExpectationListener listener = new ExpectationListener();
observationManager.addEventListener(listener, ALL_EVENTS, "/", true,
new String[]{test_uuid}, null, false);
try {
Node nonRefNode = getNode(TEST_PATH);
Node refNode = nonRefNode.getNode(REFERENCEABLE_NODE);
nonRefNode.addNode("n");
listener.expect(refNode.addNode("r").getPath(), NODE_ADDED);
getAdminSession().save();
List<Expectation> missing = listener.getMissing(TIME_OUT, TimeUnit.SECONDS);
assertTrue("Missing events: " + missing, missing.isEmpty());
List<Event> unexpected = listener.getUnexpected();
assertTrue("Unexpected events: " + unexpected, unexpected.isEmpty());
}
finally {
observationManager.removeEventListener(listener);
}
}
代码示例来源:origin: apache/jackrabbit
Node n1 = testRootNode.addNode(nodeName1);
n1.addMixin(mixVersionable);
testRootNode.save();
ObservationManager obsMgr = s.getWorkspace().getObservationManager();
obsMgr.addEventListener(listener, Event.NODE_ADDED, "/", true,
null, null, false);
Version v = n1.checkin();
obsMgr.removeEventListener(listener);
assertTrue("missing 'node removed': " + frozenPath, paths.contains(frozenPath));
} finally {
s.logout();
代码示例来源:origin: org.onehippo.cms7/hippo-repository-engine
public UpdaterExecutor(Node updaterNode, final Session session) throws Exception {
this.session = session;
this.background = session.impersonate(new SimpleCredentials("system", new char[] {}));
final String logLevel = JcrUtils.getStringProperty(updaterNode, HippoNodeType.HIPPOSYS_LOGLEVEL, null);
report = new UpdaterExecutionReport(logLevel);
try {
updaterInfo = new UpdaterInfo(updaterNode);
} catch (Exception e) {
// log to report only: client needs to know about this but caller needs to do exception handling
report.getLogger().error("Cannot run updater: " + e.getClass().getName() + ": " + e.getMessage());
throw e;
} finally {
// we need to get node instance from our own session in order to save changes
updaterNode = session.getNodeByIdentifier(updaterNode.getIdentifier());
saveReport(updaterNode);
}
session.getWorkspace().getObservationManager().addEventListener(this, PROPERTY_EVENTS, updaterNode.getPath(), false, null, null, true);
}
代码示例来源:origin: ModeShape/modeshape
@FixFor( "MODE-1370" )
@Test
public void shouldReceiveUserDataWithEventWhenObservationSessionIsSameThatMadeChange() throws Exception {
// register listener
SimpleListener listener = addListener(1, Event.NODE_ADDED, null, false, null, null, false);
// add node
Node addedNode = getRoot().addNode("node1", UNSTRUCTURED);
// Add user-data to the observation manager ...
String userData = "my user data";
getRoot().getSession().getWorkspace().getObservationManager().setUserData(userData);
save();
// event handling
listener.waitForEvents();
removeListener(listener);
// tests
checkResults(listener);
assertTrue("Path for added node is wrong: actual=" + listener.getEvents().get(0).getPath() + ", expected="
+ addedNode.getPath(),
containsPath(listener, addedNode.getPath()));
// Now check the userdata in the events ...
for (Event event : listener.events) {
String eventUserData = event.getUserData();
assertThat(eventUserData, is(userData));
}
// Now check the userdata ...
assertThat(listener.userData.size(), is(not(0)));
for (String receivedUserData : listener.userData) {
assertThat(receivedUserData, is(userData));
}
}
代码示例来源:origin: org.apache.sling/org.apache.sling.commons.testing
/**
* Remove the event listener from the observation listener.
*/
public void dispose() {
try {
session.getWorkspace().getObservationManager().removeEventListener(this);
} catch (RepositoryException e) {
}
}
}
代码示例来源:origin: apache/jackrabbit-oak
@Test
public void testRename() throws RepositoryException, ExecutionException, InterruptedException {
Node testNode = getNode(TEST_PATH);
Session session = testNode.getSession();
Node nodeA = testNode.addNode("a");
String parentPath = testNode.getPath();
session.save();
assumeTrue(nodeA instanceof JackrabbitNode);
ExpectationListener listener = new ExpectationListener();
observationManager.addEventListener(listener, NODE_MOVED, "/", true, null, null, false);
((JackrabbitNode) nodeA).rename("b");
listener.expectMove(parentPath + "/a", parentPath + "/b");
session.save();
List<Expectation> missing = listener.getMissing(TIME_OUT, TimeUnit.SECONDS);
assertTrue("Missing events: " + missing, missing.isEmpty());
List<Event> unexpected = listener.getUnexpected();
assertTrue("Unexpected events: " + unexpected, unexpected.isEmpty());
}
代码示例来源:origin: apache/jackrabbit-oak
@Test
public void removeSubtree() throws RepositoryException, ExecutionException, InterruptedException {
Node n = getNode(TEST_PATH);
n.addNode("a").addNode("b").addNode("c");
getAdminSession().save();
ExpectationListener listener = new ExpectationListener();
observationManager.addEventListener(listener, ALL_EVENTS, "/", true, null, null, false);
listener.expectRemove(n.getNode("a")).remove();
getAdminSession().save();
List<Expectation> missing = listener.getMissing(TIME_OUT, TimeUnit.SECONDS);
assertTrue("Missing events: " + missing, missing.isEmpty());
List<Event> unexpected = listener.getUnexpected();
assertTrue("Unexpected events: " + unexpected, unexpected.isEmpty());
}
代码示例来源:origin: apache/jackrabbit
public void testIsDeepTrue() throws RepositoryException {
Node n1 = testRootNode.addNode(nodeName1);
Node n2 = n1.addNode(nodeName2);
journal = obsMgr.getEventJournal();
skipToNow();
superuser.save();
checkJournal(new String[]{n1.getPath(), n2.getPath()}, new String[0]);
}
代码示例来源:origin: org.onehippo.cms7/hippo-cms-engine
private void subscribe() throws RepositoryException {
if (!isvirtual) {
ObservationManager obMgr = session.getWorkspace().getObservationManager();
String[] uuid = null;
if (uuids != null) {
uuid = uuids.toArray(new String[uuids.size()]);
obMgr.addEventListener(this, eventTypes, path, isDeep, uuid, nodeTypes, noLocal);
for (Node node = root; node.getDepth() > 0; ) {
if (JcrHelper.isVirtualRoot(node)) {
fro.subscribe(this, node);
break;
node = node.getParent();
listenerPath = root.getPath();
cmsEventDispatcherService.subscribe(listenerPath, this);
} catch (PathNotFoundException pnfe) {
代码示例来源:origin: apache/jackrabbit
public void setUserData(String userData) throws RepositoryException {
session.getWorkspace().getObservationManager().setUserData(userData);
}
}
内容来源于网络,如有侵权,请联系作者删除!