You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2014/11/21 15:51:52 UTC

svn commit: r1640924 [1/2] - in /sling/trunk/contrib/extensions/distribution: api/src/main/java/org/apache/sling/distribution/agent/ api/src/main/java/org/apache/sling/distribution/communication/ api/src/main/java/org/apache/sling/distribution/componen...

Author: tommaso
Date: Fri Nov 21 14:51:51 2014
New Revision: 1640924

URL: http://svn.apache.org/r1640924
Log:
SLING-4153 - improve javadoc, added distribution request state, minor fixes

Added:
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java
      - copied, changed from r1640691, sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java   (with props)
Modified:
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionAgent.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/SharedDistributionPackage.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueueProcessor.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/authentication/TransportAuthenticationProvider.java
    sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/trigger/DistributionTrigger.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/ErrorAwareQueueDispatchingStrategy.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/PriorityPathQueueDispatchingStrategy.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SingleQueueDispatchingStrategy.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackage.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackage.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentRootServlet.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/AdvancedHttpDistributionTransportHandler.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportHandler.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/RequestUtils.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageBuilderTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackageTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageBuilderTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackageTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/MultipleEndpointDistributionTransportHandlerTest.java
    sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportHandlerTest.java
    sling/trunk/contrib/extensions/distribution/it/src/main/resources/SLING-CONTENT/libs/test/install.author/org.apache.sling.distribution.component.impl.GenericDistributionComponentFactory-trigger-test-scheduled-event.json
    sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/triggers/ScheduledDistributionTriggerTest.java
    sling/trunk/contrib/extensions/distribution/sample/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/org.apache.sling.distribution.agent.impl.SimpleDistributionAgentFactory-publish-reverse.json

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionAgent.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionAgent.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/agent/DistributionAgent.java Fri Nov 21 14:51:51 2014
@@ -20,7 +20,6 @@ package org.apache.sling.distribution.ag
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import aQute.bnd.annotation.ProviderType;
 import org.apache.sling.api.resource.ResourceResolver;
@@ -39,9 +38,9 @@ import org.apache.sling.distribution.que
 @ProviderType
 public interface DistributionAgent extends DistributionComponent {
 
-
     /**
      * retrieves the names of the queues for this agent.
+     *
      * @return the list of queue names
      */
     @Nonnull
@@ -51,17 +50,25 @@ public interface DistributionAgent exten
      * get the agent queue with the given name
      *
      * @param name a queue name
-     * @return a {@link org.apache.sling.distribution.queue.DistributionQueue} with the given name bound to this agent, if it exists, <code>null</code> otherwise
+     * @return a {@link org.apache.sling.distribution.queue.DistributionQueue} with the given name bound to this agent, if it exists,
+     * {@code null} otherwise
      * @throws DistributionAgentException if an error occurs in retrieving the queue
      */
     @CheckForNull
     DistributionQueue getQueue(@Nonnull String name) throws DistributionAgentException;
 
     /**
-     * executes a {@link org.apache.sling.distribution.communication.DistributionRequest}
+     * Perform a {@link org.apache.sling.distribution.communication.DistributionRequest} to distribute content from a source
+     * instance to a target instance.
+     * The content to be sent will be assembled according to the information contained in the request.
+     * A {@link org.apache.sling.distribution.communication.DistributionResponse} holding the {@link org.apache.sling.distribution.communication.DistributionRequestState}
+     * of the provided request will be returned.
+     * Synchronous {@link org.apache.sling.distribution.agent.DistributionAgent}s will usally block until the execution has finished
+     * while asynchronous agents will usually return the response as soon as the content to be distributed has been assembled
+     * and scheduled for distribution.
      *
      * @param distributionRequest the distribution request
-     * @param resourceResolver   the resource resolver used for authenticating the request,
+     * @param resourceResolver    the resource resolver used for authenticating the request,
      * @return a {@link org.apache.sling.distribution.communication.DistributionResponse}
      * @throws DistributionAgentException if any error happens during the execution of the request or if the authentication fails
      */

Copied: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java (from r1640691, sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java)
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java?p2=sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java&p1=sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java&r1=1640691&r2=1640924&rev=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionActionType.java Fri Nov 21 14:51:51 2014
@@ -18,57 +18,43 @@
  */
 package org.apache.sling.distribution.communication;
 
+import javax.annotation.CheckForNull;
+
 /**
- * The type of a specific distribution action, used to decide what to do with specific distribution
- * items / requests.
+ * The action type tied to a specific {@link org.apache.sling.distribution.communication.DistributionRequest}, used to decide how
+ * the distribution content should be aggregated.
+ * <p/>
+ * {@code ADD} requests can for example lead to the creation of a package of resources to be persisted on the target instance.
+ * {@code DELETE} requests can for example lead to the creation of a "command package" to be sent to the target instance
+ * to actually remove the resources specified in {@link DistributionRequest#getPaths()}.
+ * {@code PULL} requests can for example lead to the creation of a "command package" that will trigger fetching of content
+ * from the target instance.
  */
 public enum DistributionActionType {
 
     /**
-     * Content is added
-     */
-    ADD("Add"),
-
-    /**
-     * Content is deleted
-     */
-    DELETE("Delete"),
-
-    /**
-     * Content is polled
+     * Action type for adding content
      */
-    POLL("Poll");
+    ADD,
 
     /**
-     * internal human readable name
+     * Action type for deleting content
      */
-    private final String name;
+    DELETE,
 
     /**
-     * Create a type
-     *
-     * @param name name
+     * Action type for pulling content
      */
-    private DistributionActionType(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Returns the human readable type name of this type.
-     *
-     * @return the name
-     */
-    public String getName() {
-        return name;
-    }
+    PULL;
 
     /**
      * Creates an action type for the given name. if the name cannot be mapped to a enum type or if
-     * it's <code>null</code>, <code>null</code> is returned.
+     * it's {@code null}, {@code null} is returned.
      *
      * @param n the name
-     * @return the type or <code>null</code>
+     * @return the type or {@code null}
      */
+    @CheckForNull
     public static DistributionActionType fromName(String n) {
         if (n == null) {
             return null;

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequest.java Fri Nov 21 14:51:51 2014
@@ -22,24 +22,25 @@ import javax.annotation.Nonnull;
 import java.util.Arrays;
 
 /**
- * A distribution request
+ * A {@link org.apache.sling.distribution.communication.DistributionRequest} represents the need from the caller to have
+ * some content being distributed from a source instance to a target instance.
  */
-public class DistributionRequest {
+public final class DistributionRequest {
 
     private final long time;
 
-    private final DistributionActionType action;
+    private final DistributionActionType actionType;
 
     private final String[] paths;
 
-    public DistributionRequest(@Nonnull DistributionActionType action, @Nonnull String... paths) {
+    public DistributionRequest(@Nonnull DistributionActionType actionType, @Nonnull String... paths) {
         this.time = System.currentTimeMillis();
-        this.action = action;
+        this.actionType = actionType;
         this.paths = paths;
     }
 
     /**
-     * get the time this distribution request was created
+     * get the time this distribution request was created as a {@code long} returned by {@code System#currentTimeMillis}.
      *
      * @return the distribution request creation time as returned by {@code System#currentTimeMillis}
      */
@@ -50,10 +51,10 @@ public class DistributionRequest {
     /**
      * get the {@link DistributionActionType} associated with this request
      *
-     * @return the action as a {@link org.apache.sling.distribution.communication.DistributionActionType}
+     * @return the type of actionType for request as a {@link DistributionActionType}
      */
     public DistributionActionType getActionType() {
-        return action;
+        return actionType;
     }
 
     /**
@@ -69,7 +70,7 @@ public class DistributionRequest {
     public String toString() {
         return "DistributionRequest{" +
                 "time=" + time +
-                ", action=" + action +
+                ", actionType=" + actionType +
                 ", paths=" + Arrays.toString(paths) +
                 '}';
     }

Added: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java?rev=1640924&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java (added)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java Fri Nov 21 14:51:51 2014
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.distribution.communication;
+
+/**
+ * The different states a {@link org.apache.sling.distribution.communication.DistributionRequest} can have during its lifecycle.
+ * Allowed transitions of {@link org.apache.sling.distribution.communication.DistributionRequestState} for a certain
+ * {@link org.apache.sling.distribution.communication.DistributionRequest} are:
+ * {@code #SUCCEEDED} -> ø
+ * {@code #FAILED} -> ø
+ * {@code #ACCEPTED} -> {@code #FAILED}
+ * {@code #ACCEPTED} -> {@code #SUCCEEDED}
+ * <p/>
+ * {@link org.apache.sling.distribution.communication.DistributionRequest}s against synchronous {@link org.apache.sling.distribution.agent.DistributionAgent}s
+ * will only results in {@code #SUCCEEDED} or {@code #FAILED} {@link org.apache.sling.distribution.communication.DistributionRequestState}s
+ * while requests against asynchronous agents can result in any of {@code #SUCCEEDED}, {@code #FAILED} or {@code #ACCEPTED} states.
+ */
+public enum DistributionRequestState {
+
+    /**
+     * A {@link org.apache.sling.distribution.communication.DistributionRequest} has succeeded when the content has been
+     * successfully distributed (created, transported and persisted) from the source instance to the target instance.
+     */
+    SUCCEEDED,
+
+    /**
+     * A {@link org.apache.sling.distribution.communication.DistributionRequest} has failed when the content cannot be
+     * successfully distributed from the source instance to target instance, this means the request execution failed during
+     * one of: creation, transport, persistence.
+     */
+    FAILED,
+
+    /**
+     * A {@link org.apache.sling.distribution.communication.DistributionRequest} has been accepted when the content to be
+     * distributed has been successfully created, but not yet either transported or persisted correctly to the target instance.
+     */
+    ACCEPTED
+
+}

Propchange: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java Fri Nov 21 14:51:51 2014
@@ -18,32 +18,37 @@
  */
 package org.apache.sling.distribution.communication;
 
-import com.sun.istack.internal.Nullable;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
- * A distribution response
+ * A {@link org.apache.sling.distribution.communication.DistributionResponse} represents the outcome of a
+ * {@link org.apache.sling.distribution.communication.DistributionRequest} as handled by a certain {@link org.apache.sling.distribution.agent.DistributionAgent}.
+ * Such a response will include the {@link org.apache.sling.distribution.communication.DistributionRequestState state} of
+ * the {@link org.apache.sling.distribution.communication.DistributionRequest request} and optionally a message for more
+ * verbose information about the outcome of the request.
  */
 public class DistributionResponse {
 
+    private final DistributionRequestState state;
     private final String message;
-    private final boolean successful;
 
-    public DistributionResponse(boolean successful, @Nullable String message) {
-        this.successful = successful;
+    public DistributionResponse(@Nonnull DistributionRequestState state, @Nullable String message) {
+        this.state = state;
         this.message = message;
     }
 
-    public boolean isSuccessful() {
-        return successful;
+    public DistributionRequestState getState() {
+        return state;
     }
 
-    @Override
-    public String toString() {
-        return "{\"success\":" + isSuccessful() + ", \"message\":\"" + getMessage() + "\"}";
+    public String getMessage() {
+        return message != null ? message : "";
     }
 
-    public String getMessage() {
-        return message != null ? message : "done nothing";
+    @Override
+    public String toString() {
+        return "{\"state\":" + state + ", \"message\":\"" + message + "\"}";
     }
 
 }

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java Fri Nov 21 14:51:51 2014
@@ -43,7 +43,7 @@ public interface DistributionComponentFa
      * @param <ComponentType>   the actual type of the {@link DistributionComponent}
      *                          to be created
      * @param subComponentFactory   the factory to be called for creating sub components
-     * @return a {@link DistributionComponent} of the specified type initialized with given properties or <code>null</code>
+     * @return a {@link DistributionComponent} of the specified type initialized with given properties or {@code null}
      * if that could not be created
      */
     @CheckForNull

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java Fri Nov 21 14:51:51 2014
@@ -32,14 +32,14 @@ public interface DistributionComponentPr
 
     /**
      * Retrieves an already existing component by name.
-     * If <code>null</code> is passed as componentName then a default component is returned.
+     * If {@code null} is passed as componentName then a default component is returned.
      *
      * @param type            the {@link java.lang.Class} of the component to be retrieved
      * @param componentName   the component name
      * @param <ComponentType> the actual type of the {@link DistributionComponent}
      *                        to be retrieved
      * @return the {@link DistributionComponent} of the specified type,
-     * with the specified name, or <code>null</code> if such a {@link DistributionComponent}
+     * with the specified name, or {@code null} if such a {@link DistributionComponent}
      * doesn't exist
      */
     @CheckForNull

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java Fri Nov 21 14:51:51 2014
@@ -53,7 +53,7 @@ public interface DistributionPackage {
      * @return the action
      */
     @Nonnull
-    String getAction();
+    String getActionType();
 
     /**
      * get the type of package
@@ -85,7 +85,6 @@ public interface DistributionPackage {
      */
     void delete();
 
-
     /**
      * gets an additional info holder for this package.
      * The additional info object contains control information rather than content information.

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java Fri Nov 21 14:51:51 2014
@@ -42,7 +42,7 @@ public interface DistributionPackageExpo
      *
      * @param resourceResolver   - the resource resolver used to export the packages
      * @param distributionRequest - the request containing the information about which content is to be exported
-     * @return a <code>List</code> of {@link DistributionPackage}s
+     * @return a {@link java.util.List} of {@link DistributionPackage}s
      */
     @Nonnull
     List<DistributionPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest) throws DistributionPackageExportException;
@@ -52,7 +52,7 @@ public interface DistributionPackageExpo
      *
      * @param resourceResolver     - the resource resolver use to obtain the package.
      * @param distributionPackageId - the id of the package to be retrieved
-     * @return a {@link DistributionPackage} if available, <code>null</code> otherwise
+     * @return a {@link DistributionPackage} if available, {@code null} otherwise
      */
     @CheckForNull
     DistributionPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String distributionPackageId);

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java Fri Nov 21 14:51:51 2014
@@ -38,7 +38,7 @@ public interface DistributionPackageImpo
      *
      * @param resourceResolver   - the resource resolver used to import the resources
      * @param distributionPackage - the package to be imported
-     * @return <code>true</code> if the import succeeded, <code>false</code> otherwise
+     * @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;

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java Fri Nov 21 14:51:51 2014
@@ -19,20 +19,23 @@
 
 package org.apache.sling.distribution.packaging;
 
+import javax.annotation.CheckForNull;
+import java.net.URI;
 
 /**
  * Additional information about a package.
  * Additional information is optional and components should expect every piece of it to be null.
  */
-public class DistributionPackageInfo {
+public final class DistributionPackageInfo {
 
-    private String origin;
+    private URI origin;
 
     /**
      * retrieves the origin of the package.
      * @return the package origin
      */
-    public String getOrigin() {
+    @CheckForNull
+    public URI getOrigin() {
         return origin;
     }
 
@@ -40,7 +43,7 @@ public class DistributionPackageInfo {
      * sets the origin of the package.
      * @param origin the originating instance of this package
      */
-    public void setOrigin(String origin) {
+    public void setOrigin(URI origin) {
         this.origin = origin;
     }
 

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/SharedDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/SharedDistributionPackage.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/SharedDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/packaging/SharedDistributionPackage.java Fri Nov 21 14:51:51 2014
@@ -36,7 +36,7 @@ public interface SharedDistributionPacka
 
     /**
      * release a reference to this package and decrease the reference count.
-     * when no more references are hold the package <code>delete</code> method is called.
+     * when no more references are hold the package {@code DistributionPackage#delete} method is called.
      */
     void release(@Nonnull String holderName);
 

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java Fri Nov 21 14:51:51 2014
@@ -33,7 +33,7 @@ public interface DistributionQueue {
     /**
      * get this queue name
      *
-     * @return queue name as a <code>String</code>
+     * @return the queue name
      */
     @Nonnull
     String getName();
@@ -42,8 +42,8 @@ public interface DistributionQueue {
      * add a distribution item to this queue
      *
      * @param item a distribution item representing the package to distribute
-     * @return <code>true</code> if the distribution item was added correctly to the queue,
-     * <code>false</code otherwise
+     * @return {@code true} if the distribution item was added correctly to the queue,
+     * {@code false} otherwise
      */
     boolean add(@Nonnull DistributionQueueItem item);
 
@@ -61,7 +61,7 @@ public interface DistributionQueue {
     /**
      * get the first item (FIFO wise, the next to be processed) into the queue
      *
-     * @return the first item into the queue or <code>null</code> if the queue is empty
+     * @return the first item into the queue or {@code null} if the queue is empty
      */
     @CheckForNull
     DistributionQueueItem getHead();
@@ -69,7 +69,7 @@ public interface DistributionQueue {
     /**
      * check if the queue is empty
      *
-     * @return <code>true</code> if the queue is empty, <code>false</code> otherwise
+     * @return {@code true} if the queue is empty, {@code false} otherwise
      */
     boolean isEmpty();
 
@@ -78,7 +78,7 @@ public interface DistributionQueue {
      *
      * @param queueItemSelector represents the criteria to filter queue items.
      *                          if null is passed then all items are returned.
-     * @return a <code>Iterable</code> of {@link DistributionQueueItem}s
+     * @return a {@link java.lang.Iterable} of {@link DistributionQueueItem}s
      */
     @Nonnull
     Iterable<DistributionQueueItem> getItems(@Nullable DistributionQueueItemSelector queueItemSelector);
@@ -86,7 +86,7 @@ public interface DistributionQueue {
     /**
      * remove an item from the queue by specifying its id
      *
-     * @param id <code>String</code> representing an item's identifier
+     * @param id an item's identifier
      */
     void remove(@Nonnull String id);
 }

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueueProcessor.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueueProcessor.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueueProcessor.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/queue/DistributionQueueProcessor.java Fri Nov 21 14:51:51 2014
@@ -29,11 +29,11 @@ import aQute.bnd.annotation.ConsumerType
 public interface DistributionQueueProcessor {
 
     /**
-     * Process an item from a certain <code>distributionQueue</code>
+     * Process an item from a certain {@link org.apache.sling.distribution.queue.DistributionQueue}
      *
-     * @param queueName            the name of the <code>distributionQueue</code> to be processed
-     * @param distributionQueueItem the <code>distributionQueueItem</code> to be processed
-     * @return <code>true</code> if the item was successfully processed, <code>false</code> otherwise
+     * @param queueName            the name of the {@link org.apache.sling.distribution.queue.DistributionQueue} to be processed
+     * @param distributionQueueItem the {@link org.apache.sling.distribution.queue.DistributionQueueItem} to be processed
+     * @return {@code true} if the item was successfully processed, {@code false} otherwise
      */
     public boolean process(@Nonnull String queueName, @Nonnull DistributionQueueItem distributionQueueItem);
 }

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/authentication/TransportAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/authentication/TransportAuthenticationProvider.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/authentication/TransportAuthenticationProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/authentication/TransportAuthenticationProvider.java Fri Nov 21 14:51:51 2014
@@ -35,7 +35,7 @@ public interface TransportAuthentication
      * Check if this provider is able to authenticate objects belonging to given 'authenticable' class.
      *
      * @param authenticable class of objects to be authenticated
-     * @return <code>true</code> if this provider can check authentication on instances of this class, <code>false</code>
+     * @return {@code true} if this provider can check authentication on instances of this class, {@code false}
      * otherwise
      */
     boolean canAuthenticate(Class<A> authenticable);

Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/trigger/DistributionTrigger.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/trigger/DistributionTrigger.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/trigger/DistributionTrigger.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/trigger/DistributionTrigger.java Fri Nov 21 14:51:51 2014
@@ -26,7 +26,7 @@ import org.apache.sling.distribution.com
 /**
  * A {@link DistributionTrigger} is responsible to trigger
  * {@link org.apache.sling.distribution.communication.DistributionRequest}s upon certain 'events' (e.g. Sling / Jcr events,
- * periodic polling, etc.).
+ * periodic pulling, etc.).
  * A {@link DistributionTrigger} is meant to be stateless so that more than one
  * {@link DistributionRequestHandler} can be registered into the same trigger.
  */

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java Fri Nov 21 14:51:51 2014
@@ -37,6 +37,7 @@ import org.apache.sling.distribution.age
 import org.apache.sling.distribution.agent.DistributionAgentException;
 import org.apache.sling.distribution.agent.DistributionRequestAuthorizationStrategy;
 import org.apache.sling.distribution.communication.DistributionRequest;
+import org.apache.sling.distribution.communication.DistributionRequestState;
 import org.apache.sling.distribution.communication.DistributionResponse;
 import org.apache.sling.distribution.component.ManagedDistributionComponent;
 import org.apache.sling.distribution.event.DistributionEventType;
@@ -60,6 +61,8 @@ import org.apache.sling.distribution.tri
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.sling.distribution.queue.DistributionQueueItemState.ItemState;
+
 /**
  * Basic implementation of a {@link org.apache.sling.distribution.agent.DistributionAgent}
  */
@@ -98,7 +101,6 @@ public class SimpleDistributionAgent imp
                                    ResourceResolverFactory resourceResolverFactory,
                                    List<DistributionTrigger> triggers) {
 
-
         // check configuration is valid
         if (name == null
                 || distributionPackageImporter == null
@@ -139,7 +141,6 @@ public class SimpleDistributionAgent imp
     public DistributionResponse execute(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest)
             throws DistributionAgentException {
 
-
         ResourceResolver agentResourceResolver = null;
 
         try {
@@ -179,7 +180,6 @@ public class SimpleDistributionAgent imp
         Collection<DistributionResponse> distributionResponses = new LinkedList<DistributionResponse>();
         log.info("scheduling distribution of package {}", distributionPackage);
 
-
         // dispatch the distribution package to the queue distribution handler
         try {
             Iterable<DistributionQueueItemState> states = queueDistributionStrategy.add(distributionPackage, queueProvider);
@@ -189,16 +189,49 @@ public class SimpleDistributionAgent imp
                 properties.put("distribution.agent.name", name);
                 distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_QUEUED, properties);
 
-                distributionResponses.add(new DistributionResponse(state.isSuccessful(), state.getItemState().toString()));
+                DistributionRequestState requestState = getRequestStateFromQueueState(state.getItemState());
+                distributionResponses.add(new DistributionResponse(requestState, state.getItemState().toString()));
             }
         } catch (Exception e) {
             log.error("an error happened during dispatching items to the queue(s)", e);
-            distributionResponses.add(new DistributionResponse(false, e.toString()));
+            distributionResponses.add(new DistributionResponse(DistributionRequestState.FAILED, e.toString()));
         }
 
         return distributionResponses;
     }
 
+    /* Convert the state of a certain item in the queue into a request state */
+    private DistributionRequestState getRequestStateFromQueueState(ItemState itemState) {
+        DistributionRequestState requestState;
+        switch (itemState) {
+            case QUEUED:
+                requestState = DistributionRequestState.ACCEPTED;
+                break;
+            case ACTIVE:
+                requestState = DistributionRequestState.ACCEPTED;
+                break;
+            case SUCCEEDED:
+                requestState = DistributionRequestState.SUCCEEDED;
+                break;
+            case STOPPED:
+                requestState = DistributionRequestState.FAILED;
+                break;
+            case GIVEN_UP:
+                requestState = DistributionRequestState.FAILED;
+                break;
+            case ERROR:
+                requestState = DistributionRequestState.FAILED;
+                break;
+            case DROPPED:
+                requestState = DistributionRequestState.FAILED;
+                break;
+            default:
+                requestState = DistributionRequestState.FAILED;
+                break;
+        }
+        return requestState;
+    }
+
     @Nonnull
     public Iterable<String> getQueueNames() {
         return queueDistributionStrategy.getQueueNames();
@@ -362,36 +395,59 @@ public class SimpleDistributionAgent imp
 
     private class CompositeDistributionResponse extends DistributionResponse {
 
-        private boolean successful;
+        private DistributionRequestState state;
 
-        private String status;
+        private String message;
 
         public CompositeDistributionResponse(List<DistributionResponse> distributionResponses) {
-            super(false, null);
+            super(DistributionRequestState.FAILED, null);
             if (distributionResponses.isEmpty()) {
-                successful = false;
-                status = "empty response";
+                state = DistributionRequestState.FAILED;
+                message = "empty response";
             } else {
-                successful = true;
-                StringBuilder statusBuilder = new StringBuilder("[");
+                state = DistributionRequestState.SUCCEEDED;
+                StringBuilder messageBuilder = new StringBuilder("[");
                 for (DistributionResponse response : distributionResponses) {
-                    successful &= response.isSuccessful();
-                    statusBuilder.append(response.getMessage()).append(", ");
+                    state = aggregatedState(state, response.getState());
+                    messageBuilder.append(response.getMessage()).append(", ");
                 }
-                int lof = statusBuilder.lastIndexOf(", ");
-                statusBuilder.replace(lof, lof + 2, "]");
-                status = statusBuilder.toString();
+                int lof = messageBuilder.lastIndexOf(", ");
+                messageBuilder.replace(lof, lof + 2, "]");
+                message = messageBuilder.toString();
             }
         }
 
         @Override
-        public boolean isSuccessful() {
-            return successful;
+        public DistributionRequestState getState() {
+            return state;
         }
 
         @Override
         public String getMessage() {
-            return status;
+            return message;
+        }
+    }
+
+    /* Provide the aggregated state of two {@link org.apache.sling.distribution.communication.DistributionRequestState}s */
+    private DistributionRequestState aggregatedState(DistributionRequestState first, DistributionRequestState second) {
+        DistributionRequestState aggregatedState;
+        switch (second) {
+            case SUCCEEDED:
+                aggregatedState = first;
+                break;
+            case FAILED:
+                aggregatedState = DistributionRequestState.FAILED;
+                break;
+            case ACCEPTED:
+                if (first.equals(DistributionRequestState.SUCCEEDED)) {
+                    aggregatedState = DistributionRequestState.ACCEPTED;
+                } else {
+                    aggregatedState = first;
+                }
+                break;
+            default:
+                aggregatedState = DistributionRequestState.FAILED;
         }
+        return aggregatedState;
     }
 }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java Fri Nov 21 14:51:51 2014
@@ -19,7 +19,6 @@
 package org.apache.sling.distribution.component.impl;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -37,7 +36,6 @@ import org.apache.sling.distribution.age
 import org.apache.sling.distribution.communication.DistributionActionType;
 import org.apache.sling.distribution.component.DistributionComponent;
 import org.apache.sling.distribution.component.DistributionComponentFactory;
-import org.apache.sling.distribution.component.DistributionComponentProvider;
 import org.apache.sling.distribution.event.impl.DistributionEventFactory;
 import org.apache.sling.distribution.packaging.DistributionPackageExporter;
 import org.apache.sling.distribution.packaging.DistributionPackageImporter;
@@ -221,9 +219,9 @@ public class DefaultDistributionComponen
 
             String[] endpoints = PropertiesUtil.toStringArray(properties.get(PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS), new String[0]);
             String endpointStrategyName = PropertiesUtil.toString(properties.get(PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY), "One");
-            int pollItems = PropertiesUtil.toInteger(properties.get(PACKAGE_EXPORTER_REMOTE_PROPERTY_POLL_ITEMS), Integer.MAX_VALUE);
+            int pullItems = PropertiesUtil.toInteger(properties.get(PACKAGE_EXPORTER_REMOTE_PROPERTY_PULL_ITEMS), Integer.MAX_VALUE);
 
-            return new RemoteDistributionPackageExporter(packageBuilder, authenticationProvider, endpoints, endpointStrategyName, pollItems);
+            return new RemoteDistributionPackageExporter(packageBuilder, authenticationProvider, endpoints, endpointStrategyName, pullItems);
         } else if (PACKAGE_EXPORTER_AGENT.equals(factory)) {
             Map<String, Object> builderProperties = extractMap(COMPONENT_PACKAGE_BUILDER, properties);
             DistributionPackageBuilder packageBuilder = createBuilder(builderProperties);
@@ -334,7 +332,7 @@ public class DefaultDistributionComponen
 
             return new ResourceEventDistributionTrigger(path, bundleContext);
         } else if (TRIGGER_SCHEDULED_EVENT.equals(factory)) {
-            String action = PropertiesUtil.toString(properties.get(TRIGGER_SCHEDULED_EVENT_PROPERTY_ACTION), DistributionActionType.POLL.name());
+            String action = PropertiesUtil.toString(properties.get(TRIGGER_SCHEDULED_EVENT_PROPERTY_ACTION), DistributionActionType.PULL.name());
             String path = PropertiesUtil.toString(properties.get(TRIGGER_SCHEDULED_EVENT_PROPERTY_PATH), "/");
             int interval = PropertiesUtil.toInteger(properties.get(TRIGGER_SCHEDULED_EVENT_PROPERTY_SECONDS), 30);
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java Fri Nov 21 14:51:51 2014
@@ -124,9 +124,9 @@ public final class DefaultDistributionCo
     public static final String PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY = "endpoints.strategy";
 
     /**
-     * no. of items to poll property
+     * no. of items to pull property
      */
-    public static final String PACKAGE_EXPORTER_REMOTE_PROPERTY_POLL_ITEMS = "poll.items";
+    public static final String PACKAGE_EXPORTER_REMOTE_PROPERTY_PULL_ITEMS = "pull.items";
 
     /**
      * package exporter's agent property

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java Fri Nov 21 14:51:51 2014
@@ -48,7 +48,7 @@ public class RemoteDistributionPackageEx
                                              TransportAuthenticationProvider transportAuthenticationProvider,
                                              String[] endpoints,
                                              String transportEndpointStrategyName,
-                                             int pollItems) {
+                                             int pullItems) {
         if (packageBuilder == null) {
             throw new IllegalArgumentException("packageBuilder is required");
         }
@@ -62,7 +62,7 @@ public class RemoteDistributionPackageEx
         for (String endpoint : endpoints) {
             if (endpoint != null && endpoint.length() > 0) {
                 transportHandlers.add(new SimpleHttpDistributionTransportHandler(transportAuthenticationProvider,
-                        new DistributionEndpoint(endpoint), packageBuilder, pollItems));
+                        new DistributionEndpoint(endpoint), packageBuilder, pullItems));
             }
         }
         transportHandler = new MultipleEndpointDistributionTransportHandler(transportHandlers,

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java Fri Nov 21 14:51:51 2014
@@ -76,8 +76,8 @@ public class RemoteDistributionPackageEx
     @Property(cardinality = 100)
     public static final String ENDPOINTS = DefaultDistributionComponentFactoryConstants.PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS;
 
-    @Property(name = "poll items", description = "number of subsequent poll requests to make", intValue = 1)
-    public static final String POLL_ITEMS = "poll.items";
+    @Property(name = "pull items", description = "number of subsequent pull requests to make", intValue = 1)
+    public static final String PULL_ITEMS = "pull.items";
 
     @Property(options = {
             @PropertyOption(name = "All",

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Fri Nov 21 14:51:51 2014
@@ -73,7 +73,7 @@ public class LocalDistributionPackageImp
                 log.info("Distribution package read and installed for path(s) {}", Arrays.toString(distributionPackage.getPaths()));
 
                 Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
-                dictionary.put("distribution.action", distributionPackage.getAction());
+                dictionary.put("distribution.action", distributionPackage.getActionType());
                 dictionary.put("distribution.path", distributionPackage.getPaths());
                 distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_INSTALLED, dictionary);
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/ErrorAwareQueueDispatchingStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/ErrorAwareQueueDispatchingStrategy.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/ErrorAwareQueueDispatchingStrategy.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/ErrorAwareQueueDispatchingStrategy.java Fri Nov 21 14:51:51 2014
@@ -125,7 +125,7 @@ public class ErrorAwareQueueDispatchingS
     private DistributionQueueItem getItem(DistributionPackage distributionPackage) {
         DistributionQueueItem distributionQueueItem = new DistributionQueueItem(distributionPackage.getId(),
                 distributionPackage.getPaths(),
-                distributionPackage.getAction(),
+                distributionPackage.getActionType(),
                 distributionPackage.getType(),
                 distributionPackage.getInfo());
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/PriorityPathQueueDispatchingStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/PriorityPathQueueDispatchingStrategy.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/PriorityPathQueueDispatchingStrategy.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/PriorityPathQueueDispatchingStrategy.java Fri Nov 21 14:51:51 2014
@@ -98,7 +98,7 @@ public class PriorityPathQueueDispatchin
     private DistributionQueueItem getItem(DistributionPackage distributionPackage) {
         DistributionQueueItem distributionQueueItem = new DistributionQueueItem(distributionPackage.getId(),
                 distributionPackage.getPaths(),
-                distributionPackage.getAction(),
+                distributionPackage.getActionType(),
                 distributionPackage.getType(),
                 distributionPackage.getInfo());
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SingleQueueDispatchingStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SingleQueueDispatchingStrategy.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SingleQueueDispatchingStrategy.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SingleQueueDispatchingStrategy.java Fri Nov 21 14:51:51 2014
@@ -59,7 +59,7 @@ public class SingleQueueDispatchingStrat
     private DistributionQueueItem getItem(DistributionPackage distributionPackage) {
         DistributionQueueItem distributionQueueItem = new DistributionQueueItem(distributionPackage.getId(),
                 distributionPackage.getPaths(),
-                distributionPackage.getAction(),
+                distributionPackage.getActionType(),
                 distributionPackage.getType(),
                 distributionPackage.getInfo());
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java Fri Nov 21 14:51:51 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.distribution.queue.impl.jobhandling;
 
+import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -39,7 +40,7 @@ public class JobHandlingUtils {
 
     public static DistributionQueueItem getPackage(final Job job) {
         DistributionPackageInfo packageInfo = new DistributionPackageInfo();
-        packageInfo.setOrigin((String) job.getProperty(ORIGIN));
+        packageInfo.setOrigin((URI) job.getProperty(ORIGIN));
 
         return new DistributionQueueItem((String) job.getProperty(ID),
                 (String[]) job.getProperty(PATHS),

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java Fri Nov 21 14:51:51 2014
@@ -66,7 +66,7 @@ public abstract class AbstractDistributi
             distributionPackage = createPackageForAdd(resourceResolver, request);
         } else if (DistributionActionType.DELETE.equals(request.getActionType())) {
             distributionPackage = new VoidDistributionPackage(request, type);
-        } else if (DistributionActionType.POLL.equals(request.getActionType())) {
+        } else if (DistributionActionType.PULL.equals(request.getActionType())) {
             distributionPackage = new VoidDistributionPackage(request, type);
         } else {
             throw new DistributionPackageBuildingException("unknown action type "
@@ -74,7 +74,7 @@ public abstract class AbstractDistributi
         }
         if (distributionPackage != null && distributionEventFactory != null) {
             Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
-            dictionary.put("distribution.action", distributionPackage.getAction());
+            dictionary.put("distribution.action", distributionPackage.getActionType());
             dictionary.put("distribution.path", distributionPackage.getPaths());
             distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_CREATED, dictionary);
         }
@@ -109,7 +109,7 @@ public abstract class AbstractDistributi
     }
 
     public boolean installPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionPackageReadingException {
-        DistributionActionType actionType = DistributionActionType.fromName(distributionPackage.getAction());
+        DistributionActionType actionType = DistributionActionType.fromName(distributionPackage.getActionType());
         boolean installed;
         if (DistributionActionType.DELETE.equals(actionType)) {
             installed = installDeletePackage(resourceResolver, distributionPackage);
@@ -119,7 +119,7 @@ public abstract class AbstractDistributi
 
         if (installed && distributionEventFactory != null) {
             Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
-            dictionary.put("distribution.action", distributionPackage.getAction());
+            dictionary.put("distribution.action", distributionPackage.getActionType());
             dictionary.put("distribution.path", distributionPackage.getPaths());
             distributionEventFactory.generateEvent(DistributionEventType.PACKAGE_INSTALLED, dictionary);
         }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackage.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackage.java Fri Nov 21 14:51:51 2014
@@ -92,8 +92,8 @@ public class ResourceSharedDistributionP
     }
 
     @Nonnull
-    public String getAction() {
-        return distributionPackage.getAction();
+    public String getActionType() {
+        return distributionPackage.getActionType();
     }
 
     @Nonnull

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java Fri Nov 21 14:51:51 2014
@@ -123,7 +123,7 @@ public class ResourceSharedDistributionP
 
         Map<String, Object> properties = new HashMap<String, Object>();
         properties.put(PN_ORIGINAL_ID, distributionPackage.getId());
-        properties.put(PN_ORIGINAL_ACTION, distributionPackage.getAction());
+        properties.put(PN_ORIGINAL_ACTION, distributionPackage.getActionType());
         properties.put(PN_ORIGINAL_PATHS, distributionPackage.getPaths());
 
         Resource resource = ResourceUtil.getOrCreateResource(resourceResolver, packagePath, "sling:Folder", "sling:Folder", false);

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/VoidDistributionPackage.java Fri Nov 21 14:51:51 2014
@@ -119,7 +119,7 @@ public class VoidDistributionPackage ext
     }
 
     @Nonnull
-    public String getAction() {
+    public String getActionType() {
         return action;
     }
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackage.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultDistributionPackage.java Fri Nov 21 14:51:51 2014
@@ -95,7 +95,7 @@ public class FileVaultDistributionPackag
     }
 
     @Nonnull
-    public String getAction() {
+    public String getActionType() {
         return action;
     }
 

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentRootServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentRootServlet.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentRootServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentRootServlet.java Fri Nov 21 14:51:51 2014
@@ -58,7 +58,6 @@ public class DistributionAgentRootServle
 
         DistributionActionType action = DistributionActionType.fromName(a);
 
-
         DistributionRequest distributionRequest = new DistributionRequest(action, paths);
 
         ResourceResolver resourceResolver = request.getResourceResolver();

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java Fri Nov 21 14:51:51 2014
@@ -20,9 +20,6 @@ package org.apache.sling.distribution.se
 
 import javax.servlet.ServletException;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
 
 import org.apache.felix.scr.annotations.sling.SlingServlet;
 import org.apache.sling.api.SlingHttpServletRequest;
@@ -33,7 +30,6 @@ import org.apache.sling.distribution.age
 import org.apache.sling.distribution.agent.DistributionAgentException;
 import org.apache.sling.distribution.communication.DistributionRequest;
 import org.apache.sling.distribution.communication.DistributionResponse;
-import org.apache.sling.distribution.queue.DistributionQueueItemState.ItemState;
 import org.apache.sling.distribution.resources.DistributionConstants;
 import org.apache.sling.distribution.util.RequestUtils;
 import org.slf4j.Logger;
@@ -55,6 +51,8 @@ public class DistributionAgentServlet ex
 
         DistributionRequest distributionRequest = RequestUtils.fromServletRequest(request);
 
+        log.debug("distribution request : {}", distributionRequest);
+
         DistributionAgent agent = request.getResource().adaptTo(DistributionAgent.class);
 
         ResourceResolver resourceResolver = request.getResourceResolver();
@@ -62,26 +60,20 @@ public class DistributionAgentServlet ex
         if (agent != null) {
             try {
                 DistributionResponse distributionResponse = agent.execute(resourceResolver, distributionRequest);
-                if (distributionResponse.isSuccessful()) {
-                    if (ItemState.SUCCEEDED.toString().equals(distributionResponse.getMessage())) {
+                switch (distributionResponse.getState()) {
+                    case SUCCEEDED:
                         response.setStatus(200);
-                    }
-                    if (ItemState.QUEUED.toString().equals(distributionResponse.getMessage())
-                            || ItemState.ACTIVE.toString().equals(
-                            distributionResponse.getMessage())) {
-                        response.setStatus(202);
-                    }
-
-                }
-                else {
-                    if (ItemState.DROPPED.toString().equals(distributionResponse.getMessage())) {
-                        response.setStatus(404);
-                    } else {
+                        break;
+                    case FAILED:
                         response.setStatus(400);
-                    }
+                        break;
+                    case ACCEPTED:
+                        response.setStatus(202);
+                        break;
                 }
-
                 response.getWriter().append(distributionResponse.toString());
+
+                log.debug("distribution response : {}", distributionResponse);
             } catch (DistributionAgentException e) {
                 response.setStatus(503);
                 response.getWriter().append("{\"error\" : \"").append(e.toString()).append("\"}");
@@ -93,12 +85,4 @@ public class DistributionAgentServlet ex
         }
     }
 
-    String[] toStringArray(Enumeration<String> e) {
-        List<String> l = new ArrayList<String>();
-        while (e.hasMoreElements()) {
-            l.add(e.nextElement());
-        }
-
-        return l.toArray(new String[l.size()]);
-    }
 }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/AdvancedHttpDistributionTransportHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/AdvancedHttpDistributionTransportHandler.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/AdvancedHttpDistributionTransportHandler.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/AdvancedHttpDistributionTransportHandler.java Fri Nov 21 14:51:51 2014
@@ -147,7 +147,7 @@ public class AdvancedHttpDistributionTra
         Request req = Request.Post(distributionEndpoint.getUri()).useExpectContinue();
 
         if (useCustomHeaders) {
-            String[] customizedHeaders = getCustomizedHeaders(customHeaders, distributionPackage.getAction(), distributionPackage.getPaths());
+            String[] customizedHeaders = getCustomizedHeaders(customHeaders, distributionPackage.getActionType(), distributionPackage.getPaths());
             for (String header : customizedHeaders) {
                 addHeader(req, header);
             }

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportHandler.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportHandler.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportHandler.java Fri Nov 21 14:51:51 2014
@@ -77,12 +77,12 @@ public class SimpleHttpDistributionTrans
     public void deliverPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionTransportException {
         String hostAndPort = getHostAndPort(distributionEndpoint.getUri());
 
-        if (hostAndPort.equals(distributionPackage.getInfo().getOrigin())) {
+        URI packageOrigin = distributionPackage.getInfo().getOrigin();
+        if (packageOrigin != null && hostAndPort.equals(getHostAndPort(packageOrigin))) {
             log.info("skipping distribution of package {} to same origin {}", distributionPackage.getId(), hostAndPort);
             return;
         }
 
-
         log.info("delivering package {} to {} using auth {}", new Object[]{
                         distributionPackage.getId(),
                         distributionEndpoint.getUri(),
@@ -128,7 +128,7 @@ public class SimpleHttpDistributionTrans
 
     @Nonnull
     public List<DistributionPackage> retrievePackages(@Nonnull final ResourceResolver resourceResolver, @Nonnull final DistributionRequest distributionRequest) throws DistributionTransportException {
-        log.debug("polling from {}", distributionEndpoint.getUri());
+        log.debug("pulling from {}", distributionEndpoint.getUri());
 
         try {
             URI distributionURI = RequestUtils.appendDistributionRequest(distributionEndpoint.getUri(), distributionRequest);
@@ -149,30 +149,29 @@ public class SimpleHttpDistributionTrans
             HttpResponse httpResponse;
             try {
 
-                int polls = 0;
+                int pulls = 0;
                 while ((httpResponse = executor.execute(req).returnResponse())
                         .getStatusLine().getStatusCode() == 200
-                        && polls < maxNumberOfPackages) {
+                        && pulls < maxNumberOfPackages) {
                     HttpEntity entity = httpResponse.getEntity();
                     if (entity != null) {
                         final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, entity.getContent());
                         if (responsePackage != null) {
-                            String origin = getHostAndPort(distributionURI);
-                            responsePackage.getInfo().setOrigin(origin);
+                            responsePackage.getInfo().setOrigin(distributionURI);
                             result.add(responsePackage);
                         }
                         else {
                             log.warn("responsePackage is null");
                         }
 
-                        polls++;
+                        pulls++;
                     } else {
                         log.info("");
                         break;
                     }
                 }
 
-                log.info("polled {} packages from {}", polls, distributionEndpoint.getUri());
+                log.info("pulled {} packages from {}", pulls, distributionEndpoint.getUri());
 
             } catch (HttpHostConnectException e) {
                 log.info("could not connect to {} - skipping", distributionEndpoint.getUri());

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java Fri Nov 21 14:51:51 2014
@@ -124,8 +124,8 @@ public class RemoteEventDistributionTrig
             decoder.read(buffer);
             log.debug("content {} received {},{}", new Object[]{buffer, decoder, ioctrl});
 
-            // TODO : currently it always triggers poll request on /, should this be configurable?
-            DistributionRequest distributionRequest = new DistributionRequest(DistributionActionType.POLL, "/");
+            // TODO : currently it always triggers pull request on /, should this be configurable?
+            DistributionRequest distributionRequest = new DistributionRequest(DistributionActionType.PULL, "/");
             handler.handle(distributionRequest);
             log.info("distribution request to agent {} sent ({} {})", new Object[]{
                     handler,

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/RequestUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/RequestUtils.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/RequestUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/RequestUtils.java Fri Nov 21 14:51:51 2014
@@ -41,7 +41,7 @@ public class RequestUtils {
 
     public static URI appendDistributionRequest(URI uri, DistributionRequest distributionRequest) throws URISyntaxException {
         URIBuilder uriBuilder = new URIBuilder(uri);
-        uriBuilder.addParameter(DistributionParameter.ACTION.toString(), distributionRequest.getActionType().getName());
+        uriBuilder.addParameter(DistributionParameter.ACTION.toString(), distributionRequest.getActionType().name());
         for (String path : distributionRequest.getPaths()) {
             uriBuilder.addParameter(DistributionParameter.PATH.toString(), path);
         }

Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java Fri Nov 21 14:51:51 2014
@@ -19,7 +19,6 @@
 package org.apache.sling.distribution.agent.impl;
 
 import java.util.Arrays;
-import java.util.Iterator;
 
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;

Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java?rev=1640924&r1=1640923&r2=1640924&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java Fri Nov 21 14:51:51 2014
@@ -21,6 +21,7 @@ package org.apache.sling.distribution.pa
 import java.util.List;
 
 import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.distribution.communication.DistributionActionType;
 import org.apache.sling.distribution.communication.DistributionRequest;
 import org.apache.sling.distribution.packaging.DistributionPackage;
 import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
@@ -40,7 +41,7 @@ public class LocalDistributionPackageExp
         DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class);
         LocalDistributionPackageExporter localdistributionPackageExporter = new LocalDistributionPackageExporter(packageBuilder);
         ResourceResolver resourceResolver = mock(ResourceResolver.class);
-        DistributionRequest distributionRequest = mock(DistributionRequest.class);
+        DistributionRequest distributionRequest = new DistributionRequest(DistributionActionType.ADD, "/");
         List<DistributionPackage> distributionPackages = localdistributionPackageExporter.exportPackages(resourceResolver, distributionRequest);
         assertNotNull(distributionPackages);
         assertTrue(distributionPackages.isEmpty());