Package javax.jcr.observation

Examples of javax.jcr.observation.ObservationManager


    /**
     * 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 listeners =
                IteratorUtils.toList(manager.getRegisteredEventListeners());
            Iterator iterator = listeners.iterator();
            while (iterator.hasNext()) {
                EventListener listener = (EventListener) iterator.next();
                try {
                    manager.removeEventListener(listener);
                } catch (RepositoryException e) {
                    log.warn("Error removing event listener: " + listener, e);
                }
            }
        } catch (RepositoryException e) {
View Full Code Here


                systemSearchMgr = new SearchManager(repConfig.getSearchConfig(),
                        nsReg, ntReg, getWorkspaceInfo(wspName).itemStateMgr,
                        vMgr.getPersistenceManager(), SYSTEM_ROOT_NODE_ID, null, null);

                SystemSession defSysSession = getSystemSession(wspName);
                ObservationManager obsMgr = defSysSession.getWorkspace().getObservationManager();
                obsMgr.addEventListener(systemSearchMgr, Event.NODE_ADDED
                        | Event.NODE_REMOVED | Event.PROPERTY_ADDED
                        | Event.PROPERTY_CHANGED | Event.PROPERTY_REMOVED,
                        "/" + defSysSession.getJCRName(NameConstants.JCR_SYSTEM),
                        true, null, null, false);
            }
View Full Code Here

                // This session must not be released
                final Session session = getSessionFactory().getSystemSession(null, ws);
                final Workspace workspace = session.getWorkspace();

                ObservationManager observationManager = workspace.getObservationManager();
                for (DefaultEventListener listener : l) {
                    if (listener.getEventTypes() > 0) {
                        listener.setWorkspace(ws);
                        observationManager.addEventListener(listener, listener.getEventTypes(),
                                listener.getPath(), listener.isDeep(), listener.getUuids(),
                                listener.getNodeTypes(), false);
                    } else {
                        logger.info("Skipping listener {} as it has no event types configured.",
                                listener.getClass().getName());
View Full Code Here

        for (String ws : workspaces) {
            // This session must not be released
            final JCRSessionWrapper session = getSystemSession(null, ws);
            final Workspace workspace = session.getProviderSession(this).getWorkspace();

            ObservationManager observationManager = workspace.getObservationManager();
            JCRObservationManagerDispatcher listener = new JCRObservationManagerDispatcher();
            listener.setProvider(this);
            listener.setWorkspace(workspace.getName());
            observationManager.addEventListener(listener,
                    Event.NODE_ADDED + Event.NODE_REMOVED + Event.PROPERTY_ADDED + Event.PROPERTY_CHANGED + Event.PROPERTY_REMOVED + Event.NODE_MOVED,
                    "/", true, null, null, false);

            // The thread should always checks if the session is still alive and reconnect it if lost
            running = true;
View Full Code Here

            }
        };
    }

    public ObservationManager getObservationManager() throws UnsupportedRepositoryOperationException, RepositoryException {
        return new ObservationManager() {
            public void addEventListener(EventListener eventListener, int i, String s, boolean b, String[] strings, String[] strings1, boolean b1) throws RepositoryException {
                //To change body of implemented methods use File | Settings | File Templates.
            }

            public void removeEventListener(EventListener eventListener) throws RepositoryException {
View Full Code Here

     */
    private void registerSubscription(SubscriptionImpl subscription,
                                      ObservationResource resource) throws DavException {
        try {
            Session session = getRepositorySession(resource);
            ObservationManager oMgr = session.getWorkspace().getObservationManager();
            String itemPath = subscription.getLocator().getRepositoryPath();
            oMgr.addEventListener(subscription, subscription.getJcrEventTypes(),
                    itemPath, subscription.isDeep(),
                    subscription.getUuidFilters(),
                    subscription.getNodetypeNameFilters(),
                    subscription.isNoLocal());
        } catch (RepositoryException e) {
View Full Code Here

     * Test expiration of the lock
     */
    public void testLockExpiration() throws RepositoryException, NotExecutableException {
        lockedNode.unlock();

        ObservationManager obsMgr = superuser.getWorkspace().getObservationManager();
        EventResult listener = new EventResult(((JUnitTest) this).log);
        try {
            obsMgr.addEventListener(listener, Event.PROPERTY_REMOVED, lockedNode.getPath(), false, new String[0], new String[0], false);

            boolean lockPropRemoved = false;           
            long hint = 1;
            lock = lockMgr.lock(lockedNode.getPath(), isDeep(), isSessionScoped(), hint, null);
            // only test if timeout hint was respected.
            if (lock.getSecondsRemaining() <= 1) {
                Event[] evts = listener.getEvents(2000);
                for (int i = 0; i < evts.length; i++) {
                    if (evts[i].getType() == Event.PROPERTY_REMOVED &&
                            evts[i].getPath().endsWith(jcrLockOwner)) {
                        lockPropRemoved = true;
                        // lock property has been removed -> make sure lock has
                        // been released and lock.getSecondsRemaining behaves properly.
                        assertTrue("A released lock must return a negative number of seconds", lock.getSecondsRemaining() < 0);
                        assertFalse("If the timeout hint is respected the lock must be automatically released.", lock.isLive());
                        assertFalse("If the timeout hint is respected the lock must be automatically released.", lockedNode.isLocked());
                    }
                }
                if (!lockPropRemoved) {
                    fail("If the timeout hint is respected the lock must be automatically released.");
                }
            } else {
                throw new NotExecutableException("timeout hint was ignored.");
            }
        } finally {
            obsMgr.removeEventListener(listener);
        }
    }
View Full Code Here

        this.idFactory = idFactory;
        this.qValueFactory = qValueFactory;
        this.sessionInfo = sessionInfo;
        this.resolver = sessionInfo.getNamePathResolver();
        setFilters(filters);
        ObservationManager obsMgr = sessionInfo.getSession().getWorkspace().getObservationManager();
        obsMgr.addEventListener(this, EventSubscription.ALL_EVENTS,
                "/", true, null, null, true);
    }
View Full Code Here

    /**
     * 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) {
View Full Code Here

        // withdraw the READ privilege
        Privilege[] dnPrivs = privilegesFromName(Privilege.JCR_READ);
        withdrawPrivileges(path, dnPrivs, getRestrictions(superuser, path));

        // testUser registers a eventlistener for 'path
        ObservationManager obsMgr = testSession.getWorkspace().getObservationManager();
        EventResult listener = new EventResult(((JUnitTest) this).log);
        try {
            obsMgr.addEventListener(listener, Event.NODE_REMOVED, path, true, new String[0], new String[0], true);

            // superuser removes the node with childNPath in order to provoke
            // events being generated
            superuser.getItem(childNPath).remove();
            superuser.save();

            obsMgr.removeEventListener(listener);
            // since the testUser does not have read-permission on the removed
            // node, no corresponding event must be generated.
            Event[] evts = listener.getEvents(DEFAULT_WAIT_TIMEOUT);
            for (int i = 0; i < evts.length; i++) {
                if (evts[i].getType() == Event.NODE_REMOVED &&
                        evts[i].getPath().equals(childNPath)) {
                    fail("TestUser does not have READ permission below " + path + " -> events below must not show up.");
                }
            }
        } finally {
            obsMgr.removeEventListener(listener);
        }
    }
View Full Code Here

TOP

Related Classes of javax.jcr.observation.ObservationManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.