Package org.apache.sling.replication.queue

Examples of org.apache.sling.replication.queue.ReplicationQueueItemState


    }

    @Nonnull
    public ReplicationQueueItemState getStatus(@Nonnull ReplicationQueueItem replicationPackage)
            throws ReplicationQueueException {
        ReplicationQueueItemState itemStatus = new ReplicationQueueItemState();
        try {
            Map<String, Object> properties = JobHandlingUtils.createIdProperties(replicationPackage.getId());
            Job job = jobManager.getJob(topic, properties);
            if (job != null) {
                itemStatus.setAttempts(job.getRetryCount());
                itemStatus.setItemState(ItemState.valueOf(job.getJobState().toString()));
                itemStatus.setEntered(job.getCreated());
                log.info("status of job {} is {}", job.getId(), job.getJobState());
            } else {
                itemStatus.setItemState(ItemState.DROPPED);
            }
        } catch (Exception e) {
            throw new ReplicationQueueException("unable to retrieve the queue status", e);
        }
        return itemStatus;
View Full Code Here


    public String getName() {
        return name;
    }

    public boolean add(@Nonnull ReplicationQueueItem item) {
        ReplicationQueueItemState status = new ReplicationQueueItemState();
        boolean result = false;
        try {
            result = queue.offer(item, 10, TimeUnit.SECONDS);
            status.setEntered(Calendar.getInstance());
        } catch (InterruptedException e) {
            log.error("cannot add an item to the queue", e);
            status.setSuccessful(false);
        } finally {
            statusMap.put(item, status);
        }
        return result;
    }
View Full Code Here

        return result;
    }

    @Nonnull
    public ReplicationQueueItemState getStatus(@Nonnull ReplicationQueueItem replicationPackage) {
        ReplicationQueueItemState status = statusMap.get(replicationPackage);
        if (queue.contains(replicationPackage)) {
            status.setItemState(ItemState.QUEUED);
        } else {
            status.setItemState(ItemState.SUCCEEDED);
        }
        return status;
    }
View Full Code Here

    }

    public ReplicationQueueItem getHead() {
        ReplicationQueueItem element = queue.peek();
        if (element != null) {
            ReplicationQueueItemState replicationQueueItemStatus = statusMap.get(element);
            replicationQueueItemStatus.setAttempts(replicationQueueItemStatus.getAttempts() + 1);
        }
        return element;
    }
View Full Code Here

        when(pkg.getId()).thenReturn("id");
        assertTrue(queue.add(pkg));
        assertFalse(queue.isEmpty());
        queue.remove(pkg.getId());
        assertTrue(queue.isEmpty());
        ReplicationQueueItemState status = queue.getStatus(pkg);
        assertNotNull(status);
        assertTrue(status.isSuccessful());
    }
View Full Code Here

        assertFalse(queue.isEmpty());
        assertEquals(pkg, queue.getHead());
        assertFalse(queue.isEmpty());
        queue.remove(pkg.getId());
        assertTrue(queue.isEmpty());
        ReplicationQueueItemState status = queue.getStatus(pkg);
        assertNotNull(status);
        assertTrue(status.isSuccessful());
        assertEquals(1, status.getAttempts());
    }
View Full Code Here

                                          ReplicationQueueProvider queueProvider) throws ReplicationQueueException {
        ReplicationQueue defaultQueue = queueProvider.getDefaultQueue(agent);
        // get first item in the queue with its status
        ReplicationQueueItem firstItem = defaultQueue.getHead();
        if (firstItem != null) {
            ReplicationQueueItemState status = defaultQueue.getStatus(firstItem);
            // if item is still in the queue after a max no. of attempts, move it to the error queue
            int attempts = status.getAttempts();
            Calendar entered = status.getEntered();
            log.info("item {} entered {} was attempted {} times", new Object[]{firstItem, entered, attempts});
            if (attempts > attemptsThreshold || (entered != null && Calendar.getInstance().getTimeInMillis() - entered.getTimeInMillis() > timeThreshold)) {
                if (ERROR.equals(stuckQueueHandling)) {
                    log.warn("item {} moved to the error queue", firstItem);
View Full Code Here

            for (ReplicationQueueProvider replicationQueueProvider : replicationQueueProviders) {
                for (ReplicationQueue q : replicationQueueProvider.getAllQueues())
                    try {
                        ReplicationQueueItem item = q.getHead();
                        if (item != null) {
                            ReplicationQueueItemState status = q.getStatus(item);
                            if (status.getAttempts() <= numberOfRetriesAllowed) {
                                resultLog.debug("Queue: [{}], first item: [{}], number of retries: {}", q.getName(), item.getId(), status.getAttempts());
                            } else {
                                // the no. of attempts is higher than the configured threshold
                                resultLog.warn("Queue: [{}], first item: [{}], number of retries: {}, expected number of retries <= {}",
                                        q.getName(), item.getId(), status.getAttempts(), numberOfRetriesAllowed);
                                failures.put(q.getName(), status.getAttempts());
                            }
                        } else {
                            resultLog.debug("No items in queue [{}]", q.getName());
                        }
View Full Code Here

        ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
        ReplicationQueue queue = mock(ReplicationQueue.class);
        ReplicationQueueItem queueItem = mock(ReplicationQueueItem.class);
        when(queueProvider.getDefaultQueue("agentName")).thenReturn(queue);
        when(queue.add(queueItem)).thenReturn(true);
        ReplicationQueueItemState state = mock(ReplicationQueueItemState.class);
        when(state.isSuccessful()).thenReturn(false);
        when(queue.getStatus(queueItem)).thenReturn(state);
        boolean returnedState = singleQueueDistributionStrategy.add("agentName", replicationPackage, queueProvider);
        assertFalse(returnedState);
    }
View Full Code Here

        ReplicationQueueHealthCheck replicationQueueHealthCheck = new ReplicationQueueHealthCheck();

        replicationQueueHealthCheck.activate(Collections.<String, Object>emptyMap());
        ReplicationQueue queue = mock(ReplicationQueue.class);
        ReplicationQueueItem item = mock(ReplicationQueueItem.class);
        ReplicationQueueItemState status = mock(ReplicationQueueItemState.class);
        when(status.getAttempts()).thenReturn(1);
        when(queue.getStatus(item)).thenReturn(status);
        when(queue.getHead()).thenReturn(item);
        ReplicationQueueProvider replicationQueueProvider = mock(ReplicationQueueProvider.class);
        Collection<ReplicationQueue> providers = new LinkedList<ReplicationQueue>();
        providers.add(queue);
View Full Code Here

TOP

Related Classes of org.apache.sling.replication.queue.ReplicationQueueItemState

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.