Package javax.jcr.observation

Examples of javax.jcr.observation.EventListener


    /**
     * Tests if {@link javax.jcr.observation.ObservationManager#getRegisteredEventListeners()}
     * returns the correct listeners after an remove event listener.
     */
    public void testRemoveEventListener() throws RepositoryException {
        EventListener listener1 = new EventResult(log);
        EventListener listener2 = new EventResult(log);
        addEventListener(listener1);
        addEventListener(listener2);

        EventListener[] listeners = toArray(obsMgr.getRegisteredEventListeners());
        assertEquals("Wrong number of event listeners.", 2, listeners.length);
View Full Code Here


            Node node = (Node)item;
            Element udElem = updateInfo.getUpdateElement();
            boolean removeExisting = DomUtil.hasChildElement(udElem, XML_REMOVEEXISTING, NAMESPACE);

            // register eventListener in order to be able to report the modified resources.
            EventListener el = new EListener(updateInfo.getPropertyNameSet(), ms);
            registerEventListener(el, node.getPath());

            // perform the update/restore according to the update info
            if (updateInfo.getVersionHref() != null) {
                String[] hrefs = updateInfo.getVersionHref();
View Full Code Here

        try {
            Element udElem = updateInfo.getUpdateElement();
            boolean removeExisting = DomUtil.hasChildElement(udElem, ItemResourceConstants.XML_REMOVEEXISTING, ItemResourceConstants.NAMESPACE);

            // register eventListener in order to be able to report the modified resources.
            EventListener el = new EListener(updateInfo.getPropertyNameSet(), ms);
            registerEventListener(el, session.getRootNode().getPath());

            String[] hrefs = updateInfo.getVersionHref();
            if (hrefs == null || hrefs.length < 1) {
                throw new DavException(DavServletResponse.SC_BAD_REQUEST, "Invalid update request body: at least a single version href must be specified.");
View Full Code Here

            throw new IllegalArgumentException("timeout must be >= 0");
        }

        Session session = lockable.getSession();

        EventListener listener = null;
        try {
            // check whether the lockable can be locked at all
            String mix = session.getNamespacePrefix(MIX);
            if (!lockable.isNodeType(mix + ":lockable")) {
                throw new IllegalArgumentException("Node is not lockable");
            }

            Lock lock = tryLock(lockable, isDeep, timeout, isSessionScoped);
            if (lock != null) {
                return runAndUnlock(lock);
            }

            if (timeout == 0) {
                return TIMED_OUT;
            }

            long timelimit;
            if (timeout == Long.MAX_VALUE) {
                timelimit = Long.MAX_VALUE;
            } else {
                timelimit = System.currentTimeMillis() + timeout;
            }

            // node is locked by other session -> register event listener if possible
            if (isObservationSupported(session)) {
                ObservationManager om = session.getWorkspace().getObservationManager();
                listener = new EventListener() {
                    public void onEvent(EventIterator events) {
                        synchronized (Locked.this) {
                            Locked.this.notify();
                        }
                    }
View Full Code Here

     */
    public void dispose() {
        try {
            EventListenerIterator it = getRegisteredEventListeners();
            while (it.hasNext()) {
                EventListener l = it.nextEventListener();
                log.debug("removing EventListener: " + l);
                removeEventListener(l);
            }
        } catch (RepositoryException e) {
            log.error("Internal error: Unable to dispose ObservationManager.", e);
View Full Code Here

        Session session = lockable.getSession();
        NamePathResolver resolver = new DefaultNamePathResolver(session);

        Lock lock;
        EventListener listener = null;
        try {
            // check whether the lockable can be locked at all
            if (!lockable.isNodeType(resolver.getJCRName(NameConstants.MIX_LOCKABLE))) {
                throw new IllegalArgumentException("Node is not lockable");
            }

            lock = tryLock(lockable, isDeep);
            if (lock != null) {
                return runAndUnlock(lock);
            }

            if (timeout == 0) {
                return TIMED_OUT;
            }

            long timelimit;
            if (timeout == Long.MAX_VALUE) {
                timelimit = Long.MAX_VALUE;
            } else {
                timelimit = System.currentTimeMillis() + timeout;
            }

            // node is locked by other session -> register event listener if possible
            if (isObservationSupported(session)) {
                ObservationManager om = session.getWorkspace().getObservationManager();
                listener = new EventListener() {
                    public void onEvent(EventIterator events) {
                        synchronized (this) {
                            this.notify();
                        }
                    }
View Full Code Here

    protected void afterEventDelivery() {
        // do nothing
    }

    public EventListener getTrackedListener() {
        return new EventListener() {
            @Override
            public void onEvent(EventIterator events) {
                eventDeliveries.incrementAndGet();
                long start = nanoTime();
                try {
View Full Code Here

            throw new IllegalArgumentException("timeout must be >= 0");
        }

        Session session = lockable.getSession();

        EventListener listener = null;
        try {
            // check whether the lockable can be locked at all
            String mix = session.getNamespacePrefix(MIX);
            if (!lockable.isNodeType(mix + ":lockable")) {
                throw new IllegalArgumentException("Node is not lockable");
            }

            Lock lock = tryLock(lockable, isDeep, timeout, isSessionScoped);
            if (lock != null) {
                return runAndUnlock(lock);
            }

            if (timeout == 0) {
                return TIMED_OUT;
            }

            long timelimit;
            if (timeout == Long.MAX_VALUE) {
                timelimit = Long.MAX_VALUE;
            } else {
                timelimit = System.currentTimeMillis() + timeout;
            }

            // node is locked by other session -> register event listener if possible
            if (isObservationSupported(session)) {
                ObservationManager om = session.getWorkspace().getObservationManager();
                listener = new EventListener() {
                    public void onEvent(EventIterator events) {
                        synchronized (Locked.this) {
                            Locked.this.notify();
                        }
                    }
View Full Code Here

        final List<Event> failedEvents = new ArrayList<Event>();
        final AtomicReference<CountDownLatch> eventCount = new AtomicReference<CountDownLatch>();
        final Session observingSession = createAnonymousSession();
        try {
            ObservationManager obsMgr = observingSession.getWorkspace().getObservationManager();
            obsMgr.addEventListener(new EventListener() {
                    @Override
                    public void onEvent(EventIterator events) {
                        while (events.hasNext()) {
                            Event event = events.nextEvent();
                            try {
View Full Code Here

        final AtomicReference<CountDownLatch> eventCount = new AtomicReference<CountDownLatch>();

        final Session observingSession = createAnonymousSession();
        try {
            ObservationManager obsMgr = observingSession.getWorkspace().getObservationManager();
            obsMgr.addEventListener(new EventListener() {
                    @Override
                    public void onEvent(EventIterator events) {
                        while (events.hasNext()) {
                            Event event = events.nextEvent();
                            try {
View Full Code Here

TOP

Related Classes of javax.jcr.observation.EventListener

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.