You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:28:45 UTC

[sling-org-apache-sling-distribution-api] 11/41: SLING-4145, SLING-4190 - dispatching strategy returning item states instead of boolean, removed explicit time from request, status in response is now a message

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 <to...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.