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/10/29 10:35:29 UTC

svn commit: r1635078 [1/2] - in /sling/trunk/contrib/extensions/replication/core: ./ src/main/java/org/apache/sling/replication/agent/ src/main/java/org/apache/sling/replication/agent/impl/ src/main/java/org/apache/sling/replication/communication/ src/...

Author: tommaso
Date: Wed Oct 29 09:35:28 2014
New Revision: 1635078

URL: http://svn.apache.org/r1635078
Log:
SLING-4106 - added jsr305 support

Modified:
    sling/trunk/contrib/extensions/replication/core/pom.xml
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationAgent.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationResponse.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/GenericReplicationComponentFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/ReplicationEventFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/impl/DefaultReplicationEventFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackage.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageInfo.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/SharedReplicationPackage.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RepositoryReplicationPackageImporter.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueue.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueDistributionStrategy.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueItem.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProcessor.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/AbstractReplicationQueueProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/ErrorAwareQueueDistributionStrategy.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/PriorityPathDistributionStrategy.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/SingleQueueDistributionStrategy.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/jobhandling/JobHandlingReplicationQueue.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/jobhandling/JobHandlingReplicationQueueProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/simple/SimpleReplicationQueue.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/impl/simple/SimpleReplicationQueueProvider.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/ReplicationPackageBuilder.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/AbstractReplicationPackage.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/AbstractReplicationPackageBuilder.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/ResourceSharedReplicationPackage.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/ResourceSharedReplicationPackageBuilder.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/VoidReplicationPackage.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/VoidReplicationPackageBuilder.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/serialization/impl/vlt/FileVaultReplicationPackage.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/ReplicationTransportHandler.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/AdvancedHttpReplicationTransportHandler.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/MultipleEndpointReplicationTransportHandler.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/ReplicationRequestHandler.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/ReplicationTrigger.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/AbstractJcrEventTrigger.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/ChainReplicateReplicationTrigger.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/RemoteEventReplicationTrigger.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTrigger.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/trigger/impl/ScheduledReplicationTrigger.java
    sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/util/ReplicationJcrUtils.java

Modified: sling/trunk/contrib/extensions/replication/core/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/pom.xml?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/pom.xml (original)
+++ sling/trunk/contrib/extensions/replication/core/pom.xml Wed Oct 29 09:35:28 2014
@@ -227,6 +227,12 @@
             <version>2.4</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+            <version>2.0.0</version>
+            <scope>provided</scope>
+        </dependency>
 
     </dependencies>
     <reporting>

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationAgent.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationAgent.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationAgent.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,10 @@
  */
 package org.apache.sling.replication.agent;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.communication.ReplicationResponse;
@@ -38,9 +42,10 @@ public interface ReplicationAgent extend
      *
      * @param name a queue name
      * @return a {@link ReplicationQueue} with the given name bound to this agent, if it exists, <code>null</code> otherwise
-     * @throws ReplicationAgentException
+     * @throws ReplicationAgentException if an error occurs in retrieving the queue
      */
-    ReplicationQueue getQueue(String name) throws ReplicationAgentException;
+    @CheckForNull
+    ReplicationQueue getQueue(@Nullable String name) throws ReplicationAgentException;
 
     /**
      * executes a {@link ReplicationRequest}
@@ -50,6 +55,7 @@ public interface ReplicationAgent extend
      * @return a {@link ReplicationResponse}
      * @throws ReplicationAgentException if any error happens during the execution of the request or if the authentication fails
      */
-    ReplicationResponse execute(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationAgentException;
+    @Nonnull
+    ReplicationResponse execute(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationAgentException;
 
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.replication.agent;
 
+import javax.annotation.Nonnull;
+
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.component.ReplicationComponent;
@@ -34,6 +36,6 @@ public interface ReplicationRequestAutho
      * @throws ReplicationRequestAuthorizationException if the {@link org.apache.sling.api.resource.ResourceResolver} is
      *                                                  not authorized to execute the given {@link org.apache.sling.replication.communication.ReplicationRequest}
      */
-    void checkPermission(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationRequestAuthorizationException;
+    void checkPermission(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationRequestAuthorizationException;
 
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/CoordinatingReplicationAgentFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.agent.impl;
 
+import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Dictionary;
@@ -191,7 +192,7 @@ public class CoordinatingReplicationAgen
 
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(ReplicationQueueProvider.class)) {
             return (ComponentType) queueProvider;
         } else if (type.isAssignableFrom(ReplicationQueueDistributionStrategy.class)) {

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.agent.impl;
 
+import javax.annotation.Nonnull;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.security.AccessControlManager;
@@ -41,7 +42,7 @@ public class PrivilegeReplicationRequest
         this.jcrPrivilege = jcrPrivilege;
     }
 
-    public void checkPermission(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationRequestAuthorizationException {
+    public void checkPermission(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationRequestAuthorizationException {
         Session session = resourceResolver.adaptTo(Session.class);
 
         try {

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgent.java Wed Oct 29 09:35:28 2014
@@ -18,10 +18,12 @@
  */
 package org.apache.sling.replication.agent.impl;
 
+import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Dictionary;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -50,7 +52,6 @@ import org.apache.sling.replication.queu
 import org.apache.sling.replication.queue.ReplicationQueueProcessor;
 import org.apache.sling.replication.queue.ReplicationQueueProvider;
 import org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
-import org.apache.sling.replication.serialization.ReplicationPackageReadingException;
 import org.apache.sling.replication.trigger.ReplicationRequestHandler;
 import org.apache.sling.replication.trigger.ReplicationTrigger;
 import org.apache.sling.replication.trigger.ReplicationTriggerException;
@@ -132,11 +133,11 @@ public class SimpleReplicationAgent impl
         this.triggers = triggers == null ? new ArrayList<ReplicationTrigger>() : triggers;
     }
 
-    public ReplicationResponse execute(ResourceResolver resourceResolver, ReplicationRequest replicationRequest)
+    @Nonnull
+    public ReplicationResponse execute(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest)
             throws ReplicationAgentException {
 
 
-
         ResourceResolver agentResourceResolver = null;
 
         try {
@@ -144,15 +145,11 @@ public class SimpleReplicationAgent impl
 
             replicationRequestAuthorizationStrategy.checkPermission(resourceResolver, replicationRequest);
 
-
-            List<ReplicationPackage> replicationPackages = buildPackages(agentResourceResolver, replicationRequest);
-
-            return schedule(agentResourceResolver, replicationPackages);
+            return scheduleImport(exportPackages(agentResourceResolver, replicationRequest));
         } catch (Exception e) {
             log.error("Error executing replication request {}", replicationRequest, e);
             throw new ReplicationAgentException(e);
-        }
-        finally {
+        } finally {
             ungetAgentResourceResolver(agentResourceResolver);
 
         }
@@ -164,28 +161,22 @@ public class SimpleReplicationAgent impl
     }
 
 
-    private List<ReplicationPackage> buildPackages(ResourceResolver agentResourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
-        List<ReplicationPackage> replicationPackages = replicationPackageExporter.exportPackages(agentResourceResolver, replicationRequest);
+    private List<ReplicationPackage> exportPackages(ResourceResolver agentResourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
 
-        return replicationPackages;
+        return replicationPackageExporter.exportPackages(agentResourceResolver, replicationRequest);
     }
 
-    private ReplicationResponse schedule(ResourceResolver agentResourceResolver, List<ReplicationPackage> replicationPackages) {
-        // TODO : create a composite replication response otherwise only the last response will be returned
-        ReplicationResponse replicationResponse = new ReplicationResponse();
+    private ReplicationResponse scheduleImport(List<ReplicationPackage> replicationPackages) {
+        List<ReplicationResponse> replicationResponses = new LinkedList<ReplicationResponse>();
 
         for (ReplicationPackage replicationPackage : replicationPackages) {
-            ReplicationResponse currentReplicationResponse = schedule(replicationPackage);
-
-            replicationResponse.setSuccessful(currentReplicationResponse.isSuccessful());
-            replicationResponse.setStatus(currentReplicationResponse.getStatus());
+            replicationResponses.add(schedule(replicationPackage));
         }
-
-        return replicationResponse;
+        return replicationResponses.size() == 1 ? replicationResponses.get(0) : new CompositeReplicationResponse(replicationResponses);
     }
 
     private ReplicationResponse schedule(ReplicationPackage replicationPackage) {
-        ReplicationResponse replicationResponse = new ReplicationResponse();
+        ReplicationResponse replicationResponse;
         log.info("scheduling replication of package {}", replicationPackage);
 
         ReplicationQueueItem replicationQueueItem = new ReplicationQueueItem(replicationPackage.getId(),
@@ -205,16 +196,13 @@ public class SimpleReplicationAgent impl
             replicationEventFactory.generateEvent(ReplicationEventType.PACKAGE_QUEUED, properties);
 
             if (state != null) {
-                replicationResponse.setStatus(state.getItemState().toString());
-                replicationResponse.setSuccessful(state.isSuccessful());
+                replicationResponse = new ReplicationResponse(state.getItemState().toString(), state.isSuccessful());
             } else {
-                replicationResponse.setStatus(ReplicationQueueItemState.ItemState.ERROR.toString());
-                replicationResponse.setSuccessful(false);
+                replicationResponse = new ReplicationResponse(ReplicationQueueItemState.ItemState.ERROR.toString(), false);
             }
         } catch (Exception e) {
             log.error("an error happened during queue processing", e);
-
-            replicationResponse.setSuccessful(false);
+            replicationResponse = new ReplicationResponse(e.toString(), false);
         }
 
         return replicationResponse;
@@ -334,7 +322,7 @@ public class SimpleReplicationAgent impl
     }
 
     class PackageQueueProcessor implements ReplicationQueueProcessor {
-        public boolean process(String queueName, ReplicationQueueItem packageInfo) {
+        public boolean process(@Nonnull String queueName, @Nonnull ReplicationQueueItem packageInfo) {
             log.info("running package queue processor for queue {}", queueName);
             return processQueue(packageInfo);
         }
@@ -347,7 +335,7 @@ public class SimpleReplicationAgent impl
             this.agent = agent;
         }
 
-        public void handle(ReplicationRequest request) {
+        public void handle(@Nonnull ReplicationRequest request) {
             ResourceResolver agentResourceResolver = null;
             try {
                 agentResourceResolver = getAgentResourceResolver();
@@ -356,10 +344,44 @@ public class SimpleReplicationAgent impl
                 log.error("Error executing handler", e);
             } catch (LoginException e) {
                 log.error("Cannot obtain resource resolver");
-            }
-            finally {
+            } finally {
                 ungetAgentResourceResolver(agentResourceResolver);
             }
         }
     }
+
+    private class CompositeReplicationResponse extends ReplicationResponse {
+
+        private boolean successful;
+
+        private String status;
+
+        public CompositeReplicationResponse(List<ReplicationResponse> replicationResponses) {
+            super("", false);
+            if (replicationResponses.isEmpty()) {
+                successful = false;
+                status = "empty response";
+            } else {
+                successful = true;
+                StringBuilder statusBuilder = new StringBuilder("[");
+                for (ReplicationResponse response : replicationResponses) {
+                    successful &= response.isSuccessful();
+                    statusBuilder.append(response.getStatus()).append(", ");
+                }
+                int lof = statusBuilder.lastIndexOf(", ");
+                statusBuilder.replace(lof, lof + 2, "]");
+                status = statusBuilder.toString();
+            }
+        }
+
+        @Override
+        public boolean isSuccessful() {
+            return successful;
+        }
+
+        @Override
+        public String getStatus() {
+            return status;
+        }
+    }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.agent.impl;
 
+import javax.annotation.Nonnull;
 import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.Map;
@@ -171,7 +172,7 @@ public class SimpleReplicationAgentFacto
 
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(ReplicationQueueProvider.class)) {
             return (ComponentType) queueProvider;
         }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationRequest.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.communication;
 
+import javax.annotation.Nonnull;
 import java.util.Arrays;
 
 /**
@@ -31,11 +32,11 @@ public class ReplicationRequest {
 
     private final String[] paths;
 
-    public ReplicationRequest(ReplicationActionType action, String[] paths) {
+    public ReplicationRequest(@Nonnull ReplicationActionType action, @Nonnull String[] paths) {
         this(System.currentTimeMillis(), action, paths);
     }
 
-    public ReplicationRequest(long time, ReplicationActionType action, String... paths) {
+    public ReplicationRequest(long time, @Nonnull ReplicationActionType action, @Nonnull String... paths) {
         this.time = time;
         this.action = action;
         this.paths = paths;

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationResponse.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationResponse.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationResponse.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationResponse.java Wed Oct 29 09:35:28 2014
@@ -22,28 +22,27 @@ package org.apache.sling.replication.com
  * A replication response
  */
 public class ReplicationResponse {
+
+    private final String status;
     private boolean successful;
 
-    private String status;
+    public ReplicationResponse(String status, boolean successful) {
+        this.status = status;
+        this.successful = successful;
+    }
 
     public boolean isSuccessful() {
         return successful;
     }
 
-    public void setSuccessful(boolean successful) {
-        this.successful = successful;
-    }
-
     @Override
     public String toString() {
-        return "{\"success\":" + successful + ", \"status\":\"" + status + "\"}";
+        return "{\"success\":" + isSuccessful() + ", \"status\":\"" + getStatus() + "\"}";
     }
 
     public String getStatus() {
         return status != null ? status : "done nothing";
     }
 
-    public void setStatus(String status) {
-        this.status = status;
-    }
+
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,9 @@
  */
 package org.apache.sling.replication.component;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import java.util.Map;
 
 /**
@@ -281,9 +284,11 @@ public interface ReplicationComponentFac
      *                          wire additional required {@link ReplicationComponent}s
      * @param <ComponentType>   the actual type of the {@link ReplicationComponent}
      *                          to be created
-     * @return a {@link ReplicationComponent} of the specified type initialized with given properties
+     * @return a {@link ReplicationComponent} of the specified type initialized with given properties or <code>null</code>
+     * if that could not be created
      */
-    <ComponentType extends ReplicationComponent> ComponentType createComponent(java.lang.Class<ComponentType> type,
-                                                  Map<String, Object> properties,
-                                                  ReplicationComponentProvider componentProvider);
+    @CheckForNull
+    <ComponentType extends ReplicationComponent> ComponentType createComponent(@Nonnull java.lang.Class<ComponentType> type,
+                                                                               @Nonnull Map<String, Object> properties,
+                                                                               @Nullable ReplicationComponentProvider componentProvider);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentProvider.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/ReplicationComponentProvider.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,9 @@
  */
 package org.apache.sling.replication.component;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
 /**
  * provider for already existing {@link ReplicationComponent}s
  */
@@ -35,6 +38,7 @@ public interface ReplicationComponentPro
      * with the specified name, or <code>null</code> if such a {@link ReplicationComponent}
      * doesn't exist
      */
-    <ComponentType extends ReplicationComponent> ComponentType getComponent(java.lang.Class<ComponentType> type,
-                                                                            String componentName);
+    @CheckForNull
+    <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull java.lang.Class<ComponentType> type,
+                                                                            @Nonnull String componentName);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.replication.component.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -108,8 +110,9 @@ public class DefaultReplicationComponent
         this.bundleContext = bundleContext;
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType createComponent(Class<ComponentType> type, Map<String, Object> properties,
-                                                         ReplicationComponentProvider componentProvider) {
+    public <ComponentType extends ReplicationComponent> ComponentType createComponent(@Nonnull Class<ComponentType> type,
+                                                                                      @Nonnull Map<String, Object> properties,
+                                                         @Nullable ReplicationComponentProvider componentProvider) {
 
         if (componentProvider == null) {
             componentProvider = this;
@@ -128,10 +131,9 @@ public class DefaultReplicationComponent
             }
         }
         catch (IllegalArgumentException e) {
-            log.debug("Cannot create component", e);
+            log.warn("Cannot create component of type {} with properties {}", new Object[]{type, properties}, e);
         }
 
-
         return null;
     }
 
@@ -373,7 +375,7 @@ public class DefaultReplicationComponent
         return result;
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         return null;
     }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentProvider.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/DefaultReplicationComponentProvider.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.component.impl;
 
+import javax.annotation.Nonnull;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -69,7 +70,7 @@ public class DefaultReplicationComponent
     Map<String, ReplicationPackageExporter> replicationPackageExporterMap = new ConcurrentHashMap<String, ReplicationPackageExporter>();
     private BundleContext bundleContext;
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(ReplicationPackageExporter.class)) {
             return (ComponentType) replicationPackageExporterMap.get(componentName);
         } else if (type.isAssignableFrom(ReplicationPackageImporter.class)) {

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/GenericReplicationComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/GenericReplicationComponentFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/GenericReplicationComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/component/impl/GenericReplicationComponentFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.component.impl;
 
+import javax.annotation.Nonnull;
 import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Hashtable;
@@ -182,7 +183,7 @@ public class GenericReplicationComponent
         refresh();
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(TransportAuthenticationProvider.class)) {
             return (ComponentType) transportAuthenticationProvider;
         }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/ReplicationEventFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/ReplicationEventFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/ReplicationEventFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/ReplicationEventFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.event;
 
+import javax.annotation.Nonnull;
 import java.util.Dictionary;
 
 /**
@@ -31,5 +32,5 @@ public interface ReplicationEventFactory
      * @param replicationEventType the type of event to be generated
      * @param properties           a dictionary of properties to be attached to the event
      */
-    void generateEvent(ReplicationEventType replicationEventType, Dictionary<?, ?> properties);
+    void generateEvent(@Nonnull ReplicationEventType replicationEventType, @Nonnull Dictionary<?, ?> properties);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/impl/DefaultReplicationEventFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/impl/DefaultReplicationEventFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/impl/DefaultReplicationEventFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/event/impl/DefaultReplicationEventFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.event.impl;
 
+import javax.annotation.Nonnull;
 import java.util.Dictionary;
 
 import org.apache.felix.scr.annotations.Component;
@@ -42,7 +43,7 @@ public class DefaultReplicationEventFact
     @Reference
     private EventAdmin eventAdmin;
 
-    public void generateEvent(ReplicationEventType replicationEventType, Dictionary<?, ?> properties) {
+    public void generateEvent(@Nonnull ReplicationEventType replicationEventType, @Nonnull Dictionary<?, ?> properties) {
         ReplicationEvent replicationEvent = new ReplicationEvent(replicationEventType, properties);
         eventAdmin.postEvent(replicationEvent);
         log.debug("replication event posted {}", replicationEvent);

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackage.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackage.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackage.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging;
 
+import javax.annotation.Nonnull;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Serializable;
@@ -33,6 +34,7 @@ public interface ReplicationPackage exte
      *
      * @return the package id
      */
+    @Nonnull
     String getId();
 
     /**
@@ -40,6 +42,7 @@ public interface ReplicationPackage exte
      *
      * @return an array of paths
      */
+    @Nonnull
     String[] getPaths();
 
     /**
@@ -47,6 +50,7 @@ public interface ReplicationPackage exte
      *
      * @return the action
      */
+    @Nonnull
     String getAction();
 
     /**
@@ -54,6 +58,7 @@ public interface ReplicationPackage exte
      *
      * @return the package type
      */
+    @Nonnull
     String getType();
 
     /**
@@ -63,6 +68,7 @@ public interface ReplicationPackage exte
      * @return an {@link InputStream}
      * @throws IOException
      */
+    @Nonnull
     InputStream createInputStream() throws IOException;
 
     /**
@@ -84,8 +90,9 @@ public interface ReplicationPackage exte
      * For example info.origin can be used to skip replicating 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
+     * @return the associated metadata to this package
      */
+    @Nonnull
     ReplicationPackageInfo getInfo();
 
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporter.java Wed Oct 29 09:35:28 2014
@@ -19,6 +19,8 @@
 package org.apache.sling.replication.packaging;
 
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
 import java.util.List;
 
 import org.apache.sling.api.resource.ResourceResolver;
@@ -37,18 +39,20 @@ public interface ReplicationPackageExpor
      * Exports the {@link org.apache.sling.replication.packaging.ReplicationPackage}s built from the
      * passed {@link org.apache.sling.replication.communication.ReplicationRequest}.
      *
-     * @param resourceResolver - the resource resolver used to export the packages
+     * @param resourceResolver   - the resource resolver used to export the packages
      * @param replicationRequest - the request containing the information about which content is to be exported
      * @return a <code>List</code> of {@link org.apache.sling.replication.packaging.ReplicationPackage}s
      */
-    List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException;
+    @Nonnull
+    List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException;
 
     /**
      * Retrieves a {@link org.apache.sling.replication.packaging.ReplicationPackage} given its 'id', if it already exists.
      *
-     * @param resourceResolver - the resource resolver use to obtain the package.
+     * @param resourceResolver     - the resource resolver use to obtain the package.
      * @param replicationPackageId - the id of the package to be retrieved
      * @return a {@link org.apache.sling.replication.packaging.ReplicationPackage} if available, <code>null</code> otherwise
      */
-    ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId);
+    @CheckForNull
+    ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageImporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageImporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.replication.packaging;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
 import java.io.InputStream;
 
 import org.apache.sling.api.resource.ResourceResolver;
@@ -36,7 +38,7 @@ public interface ReplicationPackageImpor
      * @param replicationPackage - the package to be imported
      * @return <code>true</code> if the import succeeded, <code>false</code> otherwise
      */
-    boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) throws ReplicationPackageImportException;
+    boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) throws ReplicationPackageImportException;
 
     /**
      * Uploads a stream and tries to convert it to a {@link ReplicationPackage} this importer can import
@@ -46,6 +48,7 @@ public interface ReplicationPackageImpor
      * @return a {@link ReplicationPackage} if it can read it from the stream
      * @throws ReplicationPackageUploadException when the stream cannot be read as a {@link ReplicationPackage}
      */
-    ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException;
+    @CheckForNull
+    ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException;
 
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageInfo.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageInfo.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageInfo.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageInfo.java Wed Oct 29 09:35:28 2014
@@ -30,19 +30,19 @@ public interface ReplicationPackageInfo 
 
     /**
      * retrieves the origin of the package.
-     * @return
+     * @return the package origin
      */
     String getOrigin();
 
     /**
      * sets the origin of the package.
-     * @param origin
+     * @param origin the originating instance of this package
      */
     void setOrigin(String origin);
 
     /**
      * fills the current info object from the provided one.
-     * @param packageInfo
+     * @param packageInfo package metadata
      */
     void fillInfo(ReplicationPackageInfo packageInfo);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/SharedReplicationPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/SharedReplicationPackage.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/SharedReplicationPackage.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/SharedReplicationPackage.java Wed Oct 29 09:35:28 2014
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.apache.sling.replication.packaging;
 
 /**

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.exporter;
 
+import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -57,7 +58,8 @@ public class AgentReplicationPackageExpo
         this.packageBuilder = packageBuilder;
     }
 
-    public List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) {
+    @Nonnull
+    public List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) {
 
         List<ReplicationPackage> result = new ArrayList<ReplicationPackage>();
         try {
@@ -81,7 +83,7 @@ public class AgentReplicationPackageExpo
         return result;
     }
 
-    public ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId) {
+    public ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId) {
         return null;
     }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/AgentReplicationPackageExporterFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.exporter;
 
+import javax.annotation.Nonnull;
 import java.util.List;
 import java.util.Map;
 
@@ -71,16 +72,17 @@ public class AgentReplicationPackageExpo
         packageExporter = replicationComponentFactory.createComponent(ReplicationPackageExporter.class, config, this);
     }
 
-    public List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
+    @Nonnull
+    public List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
 
        return packageExporter.exportPackages(resourceResolver, replicationRequest);
     }
 
-    public ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId) {
+    public ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId) {
         return packageExporter.getPackage(resourceResolver, replicationPackageId);
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(ReplicationAgent.class)) {
             return (ComponentType) agent;
         }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.exporter;
 
+import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,7 +41,8 @@ public class LocalReplicationPackageExpo
         this.packageBuilder = packageBuilder;
     }
 
-    public List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
+    @Nonnull
+    public List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
         List<ReplicationPackage> result = new ArrayList<ReplicationPackage>();
 
         ReplicationPackage createdPackage = packageBuilder.createPackage(resourceResolver, replicationRequest);
@@ -50,7 +52,7 @@ public class LocalReplicationPackageExpo
         return result;
     }
 
-    public ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId) {
+    public ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId) {
         return packageBuilder.getPackage(resourceResolver, replicationPackageId);
     }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/LocalReplicationPackageExporterFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.exporter;
 
+import javax.annotation.Nonnull;
 import java.util.List;
 import java.util.Map;
 
@@ -67,11 +68,12 @@ public class LocalReplicationPackageExpo
     }
 
 
-    public List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
+    @Nonnull
+    public List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
         return exporter.exportPackages(resourceResolver, replicationRequest);
     }
 
-    public ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId) {
+    public ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId) {
         return exporter.getPackage(resourceResolver, replicationPackageId);
     }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.exporter;
 
+import javax.annotation.Nonnull;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -71,19 +72,16 @@ public class RemoteReplicationPackageExp
                 transportEndpointStrategyType);
     }
 
-    public List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
+    @Nonnull
+    public List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
         try {
-            List<ReplicationPackage> replicationPackages = transportHandler.retrievePackages(resourceResolver, replicationRequest);
-//            for (ReplicationPackage replicationPackage : replicationPackages) {
-//                replicationPackage.
-//            }
-            return replicationPackages;
+            return transportHandler.retrievePackages(resourceResolver, replicationRequest);
         } catch (Exception e) {
             throw new ReplicationPackageBuildingException(e);
         }
     }
 
-    public ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId) {
+    public ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId) {
         return packageBuilder.getPackage(resourceResolver, replicationPackageId);
     }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/RemoteReplicationPackageExporterFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.exporter;
 
+import javax.annotation.Nonnull;
 import java.util.List;
 import java.util.Map;
 
@@ -101,15 +102,16 @@ public class RemoteReplicationPackageExp
         exporter = null;
     }
 
-    public List<ReplicationPackage> exportPackages(ResourceResolver resourceResolver, ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
+    @Nonnull
+    public List<ReplicationPackage> exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest replicationRequest) throws ReplicationPackageBuildingException {
         return exporter.exportPackages(resourceResolver, replicationRequest);
     }
 
-    public ReplicationPackage getPackage(ResourceResolver resourceResolver, String replicationPackageId) {
+    public ReplicationPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String replicationPackageId) {
         return exporter.getPackage(resourceResolver, replicationPackageId);
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(TransportAuthenticationProvider.class)) {
             return (ComponentType) transportAuthenticationProvider;
         }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/AdvancedRemoteReplicationPackageImporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
+import javax.annotation.Nonnull;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
@@ -130,7 +131,7 @@ public class AdvancedRemoteReplicationPa
     }
 
 
-    public boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) {
+    public boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) {
         boolean result = false;
         try {
             transportHandler.deliverPackage(resourceResolver, replicationPackage);
@@ -141,7 +142,7 @@ public class AdvancedRemoteReplicationPa
         return result;
     }
 
-    public ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException {
+    public ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException {
         return null;
     }
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
+import javax.annotation.Nonnull;
 import java.io.InputStream;
 import java.util.Arrays;
 import java.util.Dictionary;
@@ -65,7 +66,7 @@ public class LocalReplicationPackageImpo
     }
 
 
-    public boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
+    public boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
         boolean success = false;
         try {
             success = packageBuilder.installPackage(resourceResolver, replicationPackage);
@@ -88,7 +89,7 @@ public class LocalReplicationPackageImpo
         return success;
     }
 
-    public ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException {
+    public ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException {
         try {
             return packageBuilder.readPackage(resourceResolver, stream);
         } catch (Exception e) {

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/LocalReplicationPackageImporterFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
+import javax.annotation.Nonnull;
 import java.io.InputStream;
 import java.util.Map;
 
@@ -67,11 +68,11 @@ public class LocalReplicationPackageImpo
     }
 
 
-    public boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
+    public boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
         return importer.importPackage(resourceResolver, replicationPackage);
     }
 
-    public ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException {
+    public ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException {
         return importer.uploadPackage(resourceResolver, stream);
     }
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
+import javax.annotation.Nonnull;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
@@ -70,7 +71,7 @@ public class RemoteReplicationPackageImp
 
     }
 
-    public boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) {
+    public boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) {
         boolean result = false;
         try {
             transportHandler.deliverPackage(resourceResolver, replicationPackage);
@@ -81,7 +82,7 @@ public class RemoteReplicationPackageImp
         return result;
     }
 
-    public ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException {
+    public ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException {
         return null;
     }
 

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RemoteReplicationPackageImporterFactory.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
+import javax.annotation.Nonnull;
 import java.io.InputStream;
 import java.util.Map;
 
@@ -94,15 +95,15 @@ public class RemoteReplicationPackageImp
 
     }
 
-    public boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
+    public boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
         return importer.importPackage(resourceResolver, replicationPackage);
     }
 
-    public ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException {
+    public ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException {
         return importer.uploadPackage(resourceResolver, stream);
     }
 
-    public <ComponentType extends ReplicationComponent> ComponentType getComponent(Class<ComponentType> type, String componentName) {
+    public <ComponentType extends ReplicationComponent> ComponentType getComponent(@Nonnull Class<ComponentType> type, @Nonnull String componentName) {
         if (type.isAssignableFrom(TransportAuthenticationProvider.class)) {
             return (ComponentType) transportAuthenticationProvider;
         }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RepositoryReplicationPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RepositoryReplicationPackageImporter.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RepositoryReplicationPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/importer/RepositoryReplicationPackageImporter.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.packaging.impl.importer;
 
+import javax.annotation.Nonnull;
 import javax.jcr.Node;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
@@ -109,11 +110,11 @@ public class RepositoryReplicationPackag
         }
     }
 
-    public boolean importPackage(ResourceResolver resourceResolver, ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
+    public boolean importPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationPackage replicationPackage) throws ReplicationPackageImportException {
         return false;
     }
 
-    public ReplicationPackage uploadPackage(ResourceResolver resourceResolver, InputStream stream) throws ReplicationPackageUploadException {
+    public ReplicationPackage uploadPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws ReplicationPackageUploadException {
         return null;
     }
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueue.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueue.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueue.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.replication.queue;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
 import java.util.Collection;
 
 /**
@@ -30,6 +32,7 @@ public interface ReplicationQueue {
      *
      * @return queue name as a <code>String</code>
      */
+    @Nonnull
     String getName();
 
     /**
@@ -39,23 +42,25 @@ public interface ReplicationQueue {
      * @return <code>true</code> if the replication item was added correctly to the queue,
      * <code>false</code otherwise
      */
-    boolean add(ReplicationQueueItem item);
+    boolean add(@Nonnull ReplicationQueueItem item);
 
     /**
      * get the status of a certain item in the queue
      *
      * @param item the replication item to get the status for
      * @return the item status in the queue
-     * @throws ReplicationQueueException
+     * @throws ReplicationQueueException if any error occurs while getting the status
      */
-    ReplicationQueueItemState getStatus(ReplicationQueueItem item)
+    @Nonnull
+    ReplicationQueueItemState getStatus(@Nonnull ReplicationQueueItem item)
             throws ReplicationQueueException;
 
     /**
      * get the first item (FIFO wise, the next to be processed) into the queue
      *
-     * @return the first item into the queue
+     * @return the first item into the queue or <code>null</code> if the queue is empty
      */
+    @CheckForNull
     ReplicationQueueItem getHead();
 
     /**
@@ -70,6 +75,7 @@ public interface ReplicationQueue {
      *
      * @return a <code>Collection</code> of {@link org.apache.sling.replication.queue.ReplicationQueueItem}s
      */
+    @Nonnull
     Collection<ReplicationQueueItem> getItems();
 
     /**
@@ -77,5 +83,5 @@ public interface ReplicationQueue {
      *
      * @param id <code>String</code> representing an item's identifier
      */
-    void remove(String id);
+    void remove(@Nonnull String id);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueDistributionStrategy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueDistributionStrategy.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueDistributionStrategy.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueDistributionStrategy.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.replication.queue;
 
+import javax.annotation.Nonnull;
+
 import org.apache.sling.replication.agent.ReplicationAgent;
 import org.apache.sling.replication.component.ReplicationComponent;
 
@@ -35,10 +37,11 @@ public interface ReplicationQueueDistrib
      * @param item          a {@link org.apache.sling.replication.queue.ReplicationQueueItem} to distribute
      * @param queueProvider the {@link ReplicationQueueProvider} used to provide the queue to be used for the given package
      * @return a {@link ReplicationQueueItemState} representing the state of the package in the queue after its distribution
-     * @throws ReplicationQueueException
+     * @throws ReplicationQueueException if distribution fails
      */
-    ReplicationQueueItemState add(String agentName, ReplicationQueueItem item,
-                                  ReplicationQueueProvider queueProvider) throws ReplicationQueueException;
+    @Nonnull
+    ReplicationQueueItemState add(@Nonnull String agentName, @Nonnull ReplicationQueueItem item,
+                                  @Nonnull ReplicationQueueProvider queueProvider) throws ReplicationQueueException;
 
     /**
      * asynchronously distribute a {@link org.apache.sling.replication.queue.ReplicationQueueItem} to a {@link ReplicationAgent}

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueItem.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueItem.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueItem.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueItem.java Wed Oct 29 09:35:28 2014
@@ -39,7 +39,6 @@ public class ReplicationQueueItem {
 
     private final ReplicationPackageInfo packageInfo;
 
-
     public ReplicationQueueItem(String id, String[] paths, String action, String type, ReplicationPackageInfo packageInfo) {
         this.id = id;
         this.paths = paths;

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProcessor.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProcessor.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProcessor.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProcessor.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.replication.queue;
 
+import javax.annotation.Nonnull;
+
 /**
  * Processor of {@link org.apache.sling.replication.queue.ReplicationQueueItem}s
  */
@@ -30,5 +32,5 @@ public interface ReplicationQueueProcess
      * @param replicationQueueItem the <code>ReplicationQueueItem</code> to be processed
      * @return <code>true</code> if the item was successfully processed, <code>false</code> otherwise
      */
-    public boolean process(String queueName, ReplicationQueueItem replicationQueueItem);
+    public boolean process(@Nonnull String queueName, @Nonnull ReplicationQueueItem replicationQueueItem);
 }

Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProvider.java?rev=1635078&r1=1635077&r2=1635078&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProvider.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/queue/ReplicationQueueProvider.java Wed Oct 29 09:35:28 2014
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.replication.queue;
 
+import javax.annotation.Nonnull;
 import java.util.Collection;
 
 import org.apache.sling.replication.component.ReplicationComponent;
@@ -35,7 +36,8 @@ public interface ReplicationQueueProvide
      * @return a replication queue to be used for the given parameters
      * @throws ReplicationQueueException
      */
-    ReplicationQueue getQueue(String agentName, String queueName)
+    @Nonnull
+    ReplicationQueue getQueue(@Nonnull String agentName, @Nonnull String queueName)
             throws ReplicationQueueException;
 
 
@@ -46,7 +48,8 @@ public interface ReplicationQueueProvide
      * @return the default replication queue for the given agent
      * @throws ReplicationQueueException
      */
-    ReplicationQueue getDefaultQueue(String agentName)
+    @Nonnull
+    ReplicationQueue getDefaultQueue(@Nonnull String agentName)
             throws ReplicationQueueException;
 
     /**
@@ -54,6 +57,7 @@ public interface ReplicationQueueProvide
      *
      * @return a collection of replication queues
      */
+    @Nonnull
     Collection<ReplicationQueue> getAllQueues();
 
     /**
@@ -62,7 +66,7 @@ public interface ReplicationQueueProvide
      * @param queue a replication queue to be removed
      * @throws ReplicationQueueException
      */
-    void removeQueue(ReplicationQueue queue) throws ReplicationQueueException;
+    void removeQueue(@Nonnull ReplicationQueue queue) throws ReplicationQueueException;
 
     /**
      * enables queue driven processing for an agent
@@ -70,7 +74,7 @@ public interface ReplicationQueueProvide
      * @param agentName      a replication agent
      * @param queueProcessor the queue processor to be used
      */
-    void enableQueueProcessing(String agentName, ReplicationQueueProcessor queueProcessor);
+    void enableQueueProcessing(@Nonnull String agentName, @Nonnull ReplicationQueueProcessor queueProcessor);
 
 
     /**
@@ -78,5 +82,5 @@ public interface ReplicationQueueProvide
      *
      * @param agentName a replication agent
      */
-    void disableQueueProcessing(String agentName);
+    void disableQueueProcessing(@Nonnull String agentName);
 }