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:48 UTC

[sling-org-apache-sling-distribution-api] 14/41: SLING-4153 - Queue#remove returns the removed item, Importer#importPackage returns void

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 8af85bbbc0be5f14c353432a57edb35c15116a89
Author: Tommaso Teofili <to...@apache.org>
AuthorDate: Mon Nov 24 11:31:15 2014 +0000

    SLING-4153 - Queue#remove returns the removed item, Importer#importPackage returns void
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/distribution/api@1641370 13f79535-47bb-0310-9956-ffa450edef68
---
 .../distribution/event/DistributionEventType.java     |  2 +-
 .../distribution/packaging/DistributionPackage.java   |  3 +--
 .../packaging/DistributionPackageExporter.java        | 19 ++++++++++++++-----
 .../packaging/DistributionPackageImporter.java        |  5 ++---
 .../packaging/DistributionPackageInfo.java            | 10 ++++++++++
 .../sling/distribution/queue/DistributionQueue.java   |  3 ++-
 .../distribution/queue/DistributionQueueItem.java     |  9 +++++++++
 7 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java b/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
index 442bb6e..3042c94 100644
--- a/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
+++ b/src/main/java/org/apache/sling/distribution/event/DistributionEventType.java
@@ -66,7 +66,7 @@ public enum DistributionEventType {
     /**
      * common event topic base for distribution events
      */
-    public static final String EVENT_TOPIC = "org/apache/sling/distribution/event";
+    public static final String EVENT_TOPIC = "org/apache/sling/distribution";
 
     /**
      * get the event topic for this event type
diff --git a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java
index 9aca4e8..ec661f2 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java
@@ -66,8 +66,7 @@ public interface DistributionPackage {
      * gets an additional info holder for this package.
      * The additional info object contains control information rather than content information.
      * For example info.origin can be used to skip distributing back to the originating endpoint.
-     * It should not be be serialized between instances as its main purpose is to allow
-     * inter component communication on the same instance.
+     *
      * @return the associated metadata to this package
      */
     @Nonnull
diff --git a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java
index 25ec006..8525abf 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java
@@ -32,6 +32,10 @@ import org.apache.sling.distribution.component.DistributionComponent;
  * A {@link DistributionPackageExporter ) is responsible of exporting
  * {@link DistributionPackage }s to be then imported by a {@link org.apache.sling.distribution.agent.DistributionAgent }
  * (via a {@link DistributionPackageImporter }).
+ * <p/>
+ * Exporting a {@link org.apache.sling.distribution.packaging.DistributionPackage} means obtaining that package by either
+ * directly creating it by bundling local Sling resources together or retrieving it from a remote endpoint, e.g. by
+ * executing an HTTP request to another Sling instance exposing already created packages (for remotely changed resources).
  */
 @ConsumerType
 public interface DistributionPackageExporter extends DistributionComponent {
@@ -40,18 +44,23 @@ public interface DistributionPackageExporter extends DistributionComponent {
      * Exports the {@link DistributionPackage}s built from the
      * passed {@link org.apache.sling.distribution.communication.DistributionRequest}.
      *
-     * @param resourceResolver   - the resource resolver used to export the packages
-     * @param distributionRequest - the request containing the information about which content is to be exported
+     * @param resourceResolver    - the resource resolver used to export the packages, for example a 'local' exporter
+     *                            will use the resource resolver to read the content and assemble the binary in a certain
+     *                            location in the repository while a 'remote' exporter will use the resolver just to
+     *                            store the binary of the remotely fetched packages in the repository.
+     * @param distributionRequest - the request containing the needed information for content to be exported
      * @return a {@link java.util.List} of {@link DistributionPackage}s
      */
     @Nonnull
     List<DistributionPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest) throws DistributionPackageExportException;
 
     /**
-     * Retrieves a {@link DistributionPackage} given its 'id', if it already exists.
+     * Retrieves a {@link DistributionPackage} given its identifier, if it already exists.
+     * This will be used for example to get already created (and cached) packages that were not yet distributed to the
+     * target instance.
      *
-     * @param resourceResolver     - the resource resolver use to obtain the package.
-     * @param distributionPackageId - the id of the package to be retrieved
+     * @param resourceResolver      - the resource resolver use to obtain the package.
+     * @param distributionPackageId - the {@link DistributionPackage#getId() id of the package} to be retrieved
      * @return a {@link DistributionPackage} if available, {@code null} otherwise
      */
     @CheckForNull
diff --git a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java
index 9dfafba..46b4092 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java
@@ -36,12 +36,11 @@ public interface DistributionPackageImporter extends DistributionComponent {
     /**
      * Imports the given distribution package into the underlying system
      *
-     * @param resourceResolver   - the resource resolver used to import the resources
+     * @param resourceResolver    - the resource resolver used to import the resources
      * @param distributionPackage - the package to be imported
-     * @return {@code true} if the import succeeded, {@code false} otherwise
      * @throws DistributionPackageImportException if any error occurs during import
      */
-    boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionPackageImportException;
+    void importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionPackageImportException;
 
     /**
      * Tries to convert an {@link java.io.InputStream} to a {@link DistributionPackage} and then imports it into the underlying system
diff --git a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
index 31d62ea..c5b55ee 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
@@ -20,6 +20,7 @@ package org.apache.sling.distribution.packaging;
 
 import javax.annotation.CheckForNull;
 import java.net.URI;
+import java.util.Arrays;
 
 import org.apache.sling.distribution.communication.DistributionRequestType;
 
@@ -102,4 +103,13 @@ public final class DistributionPackageInfo {
             this.setRequestType(packageInfo.getRequestType());
         }
     }
+
+    @Override
+    public String toString() {
+        return "DistributionPackageInfo{" +
+                "origin=" + origin +
+                ", requestType=" + requestType +
+                ", paths=" + Arrays.toString(paths) +
+                '}';
+    }
 }
diff --git a/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java b/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java
index 7e62c1c..62bd838 100644
--- a/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java
+++ b/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java
@@ -87,6 +87,7 @@ public interface DistributionQueue {
      * remove an item from the queue by specifying its id
      *
      * @param id an item's identifier
+     * @return the removed item, or {@code null} if no item could be removed
      */
-    void remove(@Nonnull String id);
+    DistributionQueueItem remove(@Nonnull String id);
 }
diff --git a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
index f9cacf3..bca8db9 100644
--- a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
+++ b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
@@ -57,4 +57,13 @@ public class DistributionQueueItem {
     public DistributionPackageInfo getPackageInfo() {
         return packageInfo;
     }
+
+    @Override
+    public String toString() {
+        return "DistributionQueueItem{" +
+                "id='" + id + '\'' +
+                ", type='" + type + '\'' +
+                ", packageInfo=" + packageInfo +
+                '}';
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.