This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.distribution.api-0.1.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-api.git
commit 7b41092e054c6eb99e3f5a05fefd00dd79e9320b Author: Tommaso Teofili <[email protected]> AuthorDate: Thu Nov 20 13:20:13 2014 +0000 SLING-4145, SLING-4190 - dispatching strategy returning item states instead of boolean, removed explicit time from request, status in response is now a message git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/distribution/api@1640737 13f79535-47bb-0310-9956-ffa450edef68 --- .../distribution/communication/DistributionRequest.java | 6 +----- .../distribution/communication/DistributionResponse.java | 14 ++++++++------ .../queue/DistributionQueueDispatchingStrategy.java | 16 +++++++++++----- .../distribution/queue/DistributionQueueItemState.java | 16 ++++++++++++---- 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java b/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java index fbb5df2..878b633 100644 --- a/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java +++ b/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java @@ -33,11 +33,7 @@ public class DistributionRequest { private final String[] paths; public DistributionRequest(@Nonnull DistributionActionType action, @Nonnull String... paths) { - this(System.currentTimeMillis(), action, paths); - } - - public DistributionRequest(long time, @Nonnull DistributionActionType action, @Nonnull String... paths) { - this.time = time; + this.time = System.currentTimeMillis(); this.action = action; this.paths = paths; } diff --git a/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java b/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java index 817895b..61ba84d 100644 --- a/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java +++ b/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java @@ -18,17 +18,19 @@ */ package org.apache.sling.distribution.communication; +import com.sun.istack.internal.Nullable; + /** * A distribution response */ public class DistributionResponse { - private final String status; + private final String message; private final boolean successful; - public DistributionResponse(String status, boolean successful) { - this.status = status; + public DistributionResponse(boolean successful, @Nullable String message) { this.successful = successful; + this.message = message; } public boolean isSuccessful() { @@ -37,11 +39,11 @@ public class DistributionResponse { @Override public String toString() { - return "{\"success\":" + isSuccessful() + ", \"status\":\"" + getStatus() + "\"}"; + return "{\"success\":" + isSuccessful() + ", \"message\":\"" + getMessage() + "\"}"; } - public String getStatus() { - return status != null ? status : "done nothing"; + public String getMessage() { + return message != null ? message : "done nothing"; } } diff --git a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java index c00202f..79a0f1f 100644 --- a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java +++ b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueDispatchingStrategy.java @@ -27,7 +27,11 @@ import org.apache.sling.distribution.packaging.DistributionPackage; /** * a {@link DistributionQueueDispatchingStrategy} implements an algorithm for dispatching - * {@link org.apache.sling.distribution.packaging.DistributionPackage}s among the available queues + * {@link org.apache.sling.distribution.packaging.DistributionPackage}s among the available queues. + * <p/> + * Usually a {@link org.apache.sling.distribution.packaging.DistributionPackage} will be dispatched to a single {@link org.apache.sling.distribution.queue.DistributionQueue} + * but it would also be possible to dispatch the same package to multiple queues, resulting in obtaining multiple states + * (one for each queue) for a certain package. */ @ConsumerType public interface DistributionQueueDispatchingStrategy extends DistributionComponent { @@ -37,16 +41,18 @@ public interface DistributionQueueDispatchingStrategy extends DistributionCompon * synchronously distribute a {@link org.apache.sling.distribution.packaging.DistributionPackage} * to one or more {@link DistributionQueue}s provided by the given {@link DistributionQueueProvider} * - * @param distributionPackage a {@link org.apache.sling.distribution.packaging.DistributionPackage} to distribute - * @param queueProvider the {@link DistributionQueueProvider} used to provide the queues to be used for the given package - * @return <code>true</code> if addition was successful, <code>false</code> otherwise + * @param distributionPackage a {@link org.apache.sling.distribution.packaging.DistributionPackage} to distribute + * @param queueProvider the {@link DistributionQueueProvider} used to provide the queues to be used for the given package + * @return an {@link java.lang.Iterable} of {@link org.apache.sling.distribution.queue.DistributionQueueItemState}s representing + * the states of the {@link org.apache.sling.distribution.queue.DistributionQueueItem}s added to one or more {@link org.apache.sling.distribution.queue.DistributionQueue}s * @throws DistributionQueueException if any internal error happens during distribution */ - boolean add(@Nonnull DistributionPackage distributionPackage, @Nonnull DistributionQueueProvider queueProvider) throws DistributionQueueException; + Iterable<DistributionQueueItemState> add(@Nonnull DistributionPackage distributionPackage, @Nonnull DistributionQueueProvider queueProvider) throws DistributionQueueException; /** * Returns the queue names available for this strategy. + * * @return a list of queue names */ @Nonnull diff --git a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItemState.java b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItemState.java index afdb0ac..f742e32 100644 --- a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItemState.java +++ b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItemState.java @@ -32,15 +32,17 @@ public class DistributionQueueItemState { private final Calendar entered; - public DistributionQueueItemState(Calendar entered, ItemState state, int attempts) { + private final String queueName; + public DistributionQueueItemState(Calendar entered, ItemState state, int attempts, String queueName) { this.entered = entered; this.state = state; this.attempts = attempts; + this.queueName = queueName; } - public DistributionQueueItemState(ItemState state) { - this(Calendar.getInstance(), state, 0); + public DistributionQueueItemState(ItemState state, String queueName) { + this(Calendar.getInstance(), state, 0, queueName); } public boolean isSuccessful() { @@ -55,15 +57,21 @@ public class DistributionQueueItemState { return state; } + public String getQueueName() { + return queueName; + } + @Override public String toString() { - return "{\"attempts\":\"" + attempts + "\",\"" + "successful\":\"" + isSuccessful() + "\",\"" + "state\":\"" + state + "\"}"; + return "{\"attempts\":\"" + attempts + "\",\"" + "successful\":\"" + isSuccessful() + "\",\"" + "state\":\"" + state + + "\",\"" + "queueName\":\"" + queueName + "\"}"; } public Calendar getEntered() { return entered; } + public enum ItemState { QUEUED, // waiting in queue after adding or for restart after failing ACTIVE, // job is currently in processing -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
