Author: tommaso
Date: Wed Aug 13 09:08:56 2014
New Revision: 1617694

URL: http://svn.apache.org/r1617694
Log:
SLING-3842 - applied Marius Petria's patch for testing of importers/exporters

Added:
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/RequestUtils.java
   (with props)
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter-publish.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter-publish.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.AdvancedRemoteReplicationPackageImporter-cache-flush.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agentsConfig.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteExportersConfig.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteImportersConfig.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agents.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-exporters.json
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-importers.json
    
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageExporterImporterTest.java
   (with props)
Removed:
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationHeader.java
    
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/config/
Modified:
    sling/trunk/contrib/extensions/replication/core/pom.xml
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationParameter.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/RemoteReplicationPackageExporter.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/servlet/ReplicationAgentServlet.java
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationPackageExporterServlet.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/it/pom.xml
    
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationAgentResourcesIntegrationTest.java
    
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageImporterResourcesIntegrationTest.java
    
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationUtils.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=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/pom.xml (original)
+++ sling/trunk/contrib/extensions/replication/core/pom.xml Wed Aug 13 09:08:56 
2014
@@ -67,7 +67,7 @@
               <configuration>
                 <instructions>
                   
<Bundle-SymbolicName>org.apache.sling.replication</Bundle-SymbolicName>
-                  
<Sling-Initial-Content>SLING-CONTENT/libs/sling/replication/config;path:=/libs/sling/replication/install;overwrite:=true</Sling-Initial-Content>
+                  
<Sling-Initial-Content>SLING-CONTENT/libs/sling/replication;path:=/libs/sling/replication;overwrite:=true</Sling-Initial-Content>
                   <Export-Package>
                     org.apache.sling.replication.agent,
                     org.apache.sling.replication.communication,

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationParameter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationParameter.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationParameter.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/communication/ReplicationParameter.java
 Wed Aug 13 09:08:56 2014
@@ -23,7 +23,10 @@ package org.apache.sling.replication.com
  */
 public enum ReplicationParameter {
 
-    QUEUE("queue");
+    QUEUE("queue"),
+    TYPE("type"),
+    ACTION("action"),
+    PATH("path");
 
     private final String name;
 

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=1617694&r1=1617693&r2=1617694&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 Aug 13 09:08:56 2014
@@ -21,10 +21,9 @@ package org.apache.sling.replication.pac
 import org.apache.felix.scr.annotations.*;
 import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.packaging.ReplicationPackage;
+import org.apache.sling.replication.packaging.ReplicationPackageExporter;
 import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import 
org.apache.sling.replication.serialization.ReplicationPackageBuildingException;
-import org.apache.sling.replication.packaging.ReplicationPackageExporter;
-import 
org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,17 +34,17 @@ import java.util.List;
  * {@link org.apache.sling.replication.packaging.ReplicationPackageExporter} 
implementation which creates a FileVault based
  * {@link org.apache.sling.replication.packaging.ReplicationPackage} locally.
  */
-@Component(label = "Local Replication Package Exporter")
+@Component(label = "Local Replication Package Exporter", configurationFactory 
= true)
 @Service(value = ReplicationPackageExporter.class)
-@Property(name = "name", value = LocalReplicationPackageExporter.NAME)
 public class LocalReplicationPackageExporter implements 
ReplicationPackageExporter {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    public static final String NAME = "local";
+    @Property
+    private static final String NAME = "name";
 
-    @Reference(name = "ReplicationPackageBuilder", target = "(name=" + 
FileVaultReplicationPackageBuilder.NAME + ")",
-            policy = ReferencePolicy.STATIC)
+    @Property(label = "Target ReplicationPackageBuilder", name = 
"ReplicationPackageBuilder.target")
+    @Reference(name = "ReplicationPackageBuilder", policy = 
ReferencePolicy.STATIC)
     private ReplicationPackageBuilder packageBuilder;
 
     public List<ReplicationPackage> exportPackage(ReplicationRequest 
replicationRequest) throws ReplicationPackageBuildingException {

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=1617694&r1=1617693&r2=1617694&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 Aug 13 09:08:56 2014
@@ -110,7 +110,7 @@ public class RemoteReplicationPackageExp
 
     public List<ReplicationPackage> exportPackage(ReplicationRequest 
replicationRequest) throws ReplicationPackageBuildingException {
         try {
-            return transportHandler.retrievePackage();
+            return transportHandler.retrievePackages(replicationRequest);
         } catch (Exception e) {
             throw new ReplicationPackageBuildingException(e);
         }

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=1617694&r1=1617693&r2=1617694&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 Aug 13 09:08:56 2014
@@ -27,10 +27,9 @@ import org.apache.felix.scr.annotations.
 import org.apache.sling.replication.event.ReplicationEventFactory;
 import org.apache.sling.replication.event.ReplicationEventType;
 import org.apache.sling.replication.packaging.ReplicationPackage;
-import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import org.apache.sling.replication.packaging.ReplicationPackageImporter;
+import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import 
org.apache.sling.replication.serialization.ReplicationPackageReadingException;
-import 
org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,19 +37,17 @@ import org.slf4j.LoggerFactory;
  * {@link org.apache.sling.replication.packaging.ReplicationPackageImporter} 
implementation which imports a FileVault
  * based {@link ReplicationPackage} locally.
  */
-@Component(label = "Default Replication Package Importer")
+@Component(label = "Default Replication Package Importer", 
configurationFactory = true)
 @Service(value = ReplicationPackageImporter.class)
-@Property(name = "name", value = LocalReplicationPackageImporter.NAME)
 public class LocalReplicationPackageImporter implements 
ReplicationPackageImporter {
-
-    public static final String NAME = "local";
-
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    @Reference(name = "ReplicationPackageBuilder",
-            target = "(name=" + FileVaultReplicationPackageBuilder.NAME + ")",
-            policy = ReferencePolicy.DYNAMIC)
-    private ReplicationPackageBuilder replicationPackageBuilder;
+    @Property
+    private static final String NAME = "name";
+
+    @Property(label = "Target ReplicationPackageBuilder", name = 
"ReplicationPackageBuilder.target")
+    @Reference(name = "ReplicationPackageBuilder", policy = 
ReferencePolicy.STATIC)
+    private ReplicationPackageBuilder packageBuilder;
 
     @Reference
     private ReplicationEventFactory replicationEventFactory;
@@ -59,7 +56,7 @@ public class LocalReplicationPackageImpo
     public boolean importPackage(ReplicationPackage replicationPackage) {
         boolean success = false;
         try {
-            success = 
replicationPackageBuilder.installPackage(replicationPackage);
+            success = packageBuilder.installPackage(replicationPackage);
 
             if (success) {
                 log.info("replication package read and installed for path(s) 
{}", Arrays.toString(replicationPackage.getPaths()));
@@ -81,7 +78,7 @@ public class LocalReplicationPackageImpo
 
     public ReplicationPackage readPackage(InputStream stream) throws 
ReplicationPackageReadingException {
         try {
-            return replicationPackageBuilder.readPackage(stream);
+            return packageBuilder.readPackage(stream);
         } catch (Exception e) {
             log.error("cannot read a package from the given stream");
         }

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationAgentServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationAgentServlet.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationAgentServlet.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationAgentServlet.java
 Wed Aug 13 09:08:56 2014
@@ -39,6 +39,7 @@ import org.apache.sling.replication.agen
 import org.apache.sling.replication.communication.*;
 import org.apache.sling.replication.queue.ReplicationQueueItemState.ItemState;
 import org.apache.sling.replication.resources.ReplicationConstants;
+import org.apache.sling.replication.transport.impl.RequestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,11 +62,7 @@ public class ReplicationAgentServlet ext
 
         response.setContentType("application/json");
 
-        String action = request.getHeader(ReplicationHeader.ACTION.toString());
-        String[] path = 
toStringArray(request.getHeaders(ReplicationHeader.PATH.toString()));
-
-        ReplicationRequest replicationRequest = new 
ReplicationRequest(System.currentTimeMillis(),
-                ReplicationActionType.valueOf(action), path);
+        ReplicationRequest replicationRequest = 
RequestUtils.fromServletRequest(request);
 
         ReplicationAgent agent = 
request.getResource().adaptTo(ReplicationAgent.class);
 

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationPackageExporterServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationPackageExporterServlet.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationPackageExporterServlet.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationPackageExporterServlet.java
 Wed Aug 13 09:08:56 2014
@@ -33,9 +33,13 @@ import org.apache.http.entity.ContentTyp
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
+import org.apache.sling.replication.communication.ReplicationActionType;
+import org.apache.sling.replication.communication.ReplicationParameter;
+import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.resources.ReplicationConstants;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 import org.apache.sling.replication.packaging.ReplicationPackageExporter;
+import org.apache.sling.replication.transport.impl.RequestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,9 +69,11 @@ public class ReplicationPackageExporterS
 
         
response.setContentType(ContentType.APPLICATION_OCTET_STREAM.toString());
 
+        ReplicationRequest replicationRequest = 
RequestUtils.fromServletRequest(request);
+
         try {
             // get first item
-            List<ReplicationPackage> replicationPackages = 
replicationPackageExporter.exportPackage(null);
+            List<ReplicationPackage> replicationPackages = 
replicationPackageExporter.exportPackage(replicationRequest);
 
             if (replicationPackages.size() > 0) {
                 log.info("{} package(s) available for fetching, the first will 
be delivered", replicationPackages.size());

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/ReplicationTransportHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/ReplicationTransportHandler.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/ReplicationTransportHandler.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/ReplicationTransportHandler.java
 Wed Aug 13 09:08:56 2014
@@ -19,6 +19,7 @@
 package org.apache.sling.replication.transport;
 
 import org.apache.sling.replication.communication.ReplicationEndpoint;
+import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 
 import java.util.List;
@@ -42,6 +43,6 @@ public interface ReplicationTransportHan
      *
      * @throws ReplicationTransportException if any error occurs during the 
transport
      */
-    public List<ReplicationPackage> retrievePackage() throws 
ReplicationTransportException;
+    public List<ReplicationPackage> retrievePackages(ReplicationRequest 
replicationRequest) throws ReplicationTransportException;
 
 }
\ No newline at end of file

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/AdvancedHttpReplicationTransportHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/AdvancedHttpReplicationTransportHandler.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/AdvancedHttpReplicationTransportHandler.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/AdvancedHttpReplicationTransportHandler.java
 Wed Aug 13 09:08:56 2014
@@ -32,7 +32,6 @@ import org.apache.http.client.fluent.Req
 import org.apache.http.client.fluent.Response;
 import org.apache.http.entity.ContentType;
 import org.apache.sling.replication.communication.ReplicationEndpoint;
-import org.apache.sling.replication.communication.ReplicationHeader;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import org.apache.sling.replication.transport.ReplicationTransportException;
@@ -153,8 +152,6 @@ public class AdvancedHttpReplicationTran
             for (String header : customizedHeaders) {
                 addHeader(req, header);
             }
-        } else {
-            req.addHeader(ReplicationHeader.TYPE.toString(), type);
         }
 
         InputStream inputStream = null;

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/MultipleEndpointReplicationTransportHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/MultipleEndpointReplicationTransportHandler.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/MultipleEndpointReplicationTransportHandler.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/MultipleEndpointReplicationTransportHandler.java
 Wed Aug 13 09:08:56 2014
@@ -21,6 +21,7 @@ package org.apache.sling.replication.tra
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 import org.apache.sling.replication.transport.ReplicationTransportException;
 import org.apache.sling.replication.transport.ReplicationTransportHandler;
@@ -41,8 +42,7 @@ public class MultipleEndpointReplication
         this.endpointStrategyType = endpointStrategyType;
     }
 
-    private List<ReplicationPackage> doTransport(boolean isPolling,
-                                                 ReplicationPackage 
replicationPackage) throws ReplicationTransportException {
+    private List<ReplicationPackage> doTransport(ReplicationRequest 
replicationRequest, ReplicationPackage replicationPackage) throws 
ReplicationTransportException {
 
         int offset = 0;
         if (endpointStrategyType.equals(TransportEndpointStrategyType.One)) {
@@ -56,10 +56,10 @@ public class MultipleEndpointReplication
             int currentId = (offset + i) % length;
 
             ReplicationTransportHandler transportHelper = 
transportHelpers.get(currentId);
-            if (!isPolling) {
+            if (replicationPackage != null) {
                 transportHelper.deliverPackage(replicationPackage);
-            } else {
-                List<ReplicationPackage> retrievedPackages = 
transportHelper.retrievePackage();
+            } else if (replicationRequest != null) {
+                List<ReplicationPackage> retrievedPackages = 
transportHelper.retrievePackages(replicationRequest);
                 result.addAll(retrievedPackages);
             }
 
@@ -72,11 +72,11 @@ public class MultipleEndpointReplication
     }
 
     public void deliverPackage(ReplicationPackage replicationPackage) throws 
ReplicationTransportException {
-        doTransport(false, replicationPackage);
+        doTransport(null, replicationPackage);
     }
 
-    public List<ReplicationPackage> retrievePackage() throws 
ReplicationTransportException {
-        return doTransport(true, null);
+    public List<ReplicationPackage> retrievePackages(ReplicationRequest 
replicationRequest) throws ReplicationTransportException {
+        return doTransport(replicationRequest, null);
     }
 
 

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/RequestUtils.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/RequestUtils.java?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/RequestUtils.java
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/RequestUtils.java
 Wed Aug 13 09:08:56 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.replication.transport.impl;
+
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.replication.communication.ReplicationActionType;
+import org.apache.sling.replication.communication.ReplicationParameter;
+import org.apache.sling.replication.communication.ReplicationRequest;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+public class RequestUtils {
+
+    public static ReplicationRequest fromServletRequest(HttpServletRequest 
request) {
+        String action = 
request.getParameter(ReplicationParameter.ACTION.toString());
+        String[] paths = 
request.getParameterValues(ReplicationParameter.PATH.toString());
+
+        ReplicationRequest replicationRequest = new 
ReplicationRequest(System.currentTimeMillis(),
+                ReplicationActionType.fromName(action),
+                paths);
+
+        return replicationRequest;
+
+    }
+
+    public static URI appendReplicationRequest(URI uri, ReplicationRequest 
replicationRequest) throws URISyntaxException {
+        URIBuilder uriBuilder = new URIBuilder(uri);
+        uriBuilder.addParameter(ReplicationParameter.ACTION.toString(), 
ReplicationActionType.POLL.getName());
+        for (String path : replicationRequest.getPaths()) {
+            uriBuilder.addParameter(ReplicationParameter.PATH.toString(), 
path);
+        }
+        return uriBuilder.build();
+    }
+
+}

Propchange: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/RequestUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/transport/impl/SimpleHttpReplicationTransportHandler.java
 Wed Aug 13 09:08:56 2014
@@ -28,7 +28,7 @@ import org.apache.http.conn.HttpHostConn
 import org.apache.http.entity.ContentType;
 import org.apache.sling.replication.communication.ReplicationActionType;
 import org.apache.sling.replication.communication.ReplicationEndpoint;
-import org.apache.sling.replication.communication.ReplicationHeader;
+import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 import org.apache.sling.replication.serialization.ReplicationPackageBuilder;
 import org.apache.sling.replication.transport.ReplicationTransportException;
@@ -38,6 +38,7 @@ import org.apache.sling.replication.tran
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -110,10 +111,11 @@ public class SimpleHttpReplicationTransp
 
     }
 
-    public List<ReplicationPackage> retrievePackage() throws 
ReplicationTransportException {
+    public List<ReplicationPackage> retrievePackages(ReplicationRequest 
replicationRequest) throws ReplicationTransportException {
         log.debug("polling from {}", replicationEndpoint.getUri());
 
         try {
+            URI replicationURI = 
RequestUtils.appendReplicationRequest(replicationEndpoint.getUri(), 
replicationRequest);
             List<ReplicationPackage> result = new 
ArrayList<ReplicationPackage>();
 
             Executor executor = Executor.newInstance();
@@ -121,8 +123,7 @@ public class SimpleHttpReplicationTransp
             context.addAttribute("endpoint", replicationEndpoint);
             executor = transportAuthenticationProvider.authenticate(executor, 
context);
 
-            Request req = Request.Post(replicationEndpoint.getUri())
-                    .addHeader(ReplicationHeader.ACTION.toString(), 
ReplicationActionType.POLL.getName())
+            Request req = Request.Post(replicationURI)
                     .useExpectContinue();
             // TODO : add queue parameter
 

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,10 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "publish-reverse",
+    "ReplicationPackageExporter.target" : "(name=publish)",
+    "ReplicationPackageImporter.target" : "(name=local)",
+    "ReplicationQueueProvider.target" : "(name=sjh)",
+    "ReplicationQueueDistributionStrategy.target" : "(name=error)",
+    "rules" : ["scheduled poll every 30 sec"],
+    "runModes" : ["author"]
+}

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,9 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "publish",
+    "ReplicationPackageExporter.target" : "(name=local)",
+    "ReplicationPackageImporter.target" : "(name=publish)",
+    "ReplicationQueueProvider.target" : "(name=sjh)",
+    "ReplicationQueueDistributionStrategy.target" : "(name=single)",
+    "runModes" : ["author"]
+}

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,5 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "local",
+    "ReplicationPackageBuilder.target" : "(name=vlt)"
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter-publish.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter-publish.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter-publish.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter-publish.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,9 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "publish",
+    "TransportAuthenticationProviderFactory.target" : "(name=user)",
+    "authentication.properties" : ["user=admin","password=admin"],
+    "ReplicationPackageBuilder.target" : "(name=vlt)",
+    "endpoints" : [ 
"http://localhost:4503/libs/sling/replication/exporters/agent"; ],
+    "runModes" : ["author"]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,5 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "local",
+    "ReplicationPackageBuilder.target" : "(name=vlt)"
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter-publish.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter-publish.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter-publish.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter-publish.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,9 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "publish",
+    "TransportAuthenticationProviderFactory.target" : "(name=user)",
+    "authentication.properties" : ["user=admin","password=admin"],
+    "ReplicationPackageBuilder.target" : "(name=vlt)",
+    "endpoints" : [ 
"http://localhost:4503/libs/sling/replication/importers/local"; ],
+    "runModes" : ["author"]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,11 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "cache-flush",
+    "ReplicationPackageImporter.target" : "(name=cache-flush)",
+    "useAggregatePaths" : false,
+    "ReplicationPackageExporter.target" : "(name=void)",
+    "ReplicationQueueDistributionStrategy.target" : "(name=single)",
+    "rules" : ["trigger on path: /content/usergenerated"],
+    "enabled" : false,
+    "runModes" : ["publish"]
+}

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,11 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "reverse",
+    "ReplicationPackageExporter.target" : "(name=local)",
+    "ReplicationPackageImporter.target" : "(name=local)",
+    "ReplicationQueueProvider.target" : "(name=sjh)",
+    "ReplicationQueueDistributionStrategy.target" : "(name=error)",
+    "rules" : ["trigger on path: /content/usergenerated"],
+    "runModes" : ["publish"],
+    "isPassive" : true
+}

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,6 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "ReplicationPackageBuilder.target" : "(name=vlt)",
+    "ReplicationAgent.target" : "(name=reverse)",
+    "runModes" : ["publish"]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter-local.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,5 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "local",
+    "ReplicationPackageBuilder.target" : "(name=vlt)"
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.AdvancedRemoteReplicationPackageImporter-cache-flush.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.AdvancedRemoteReplicationPackageImporter-cache-flush.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.AdvancedRemoteReplicationPackageImporter-cache-flush.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.AdvancedRemoteReplicationPackageImporter-cache-flush.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,13 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "cache-flush",
+    "useCustomHeaders" : true,
+    "customHeaders" : [
+            "Path: {path}",
+            "add -> Action : REFRESH",
+            "delete -> Change : REMOVE" ],
+    "useCustomBody": true,
+    "customBody" : "",
+    "TransportAuthenticationProviderFactory.target" : "(name=nop)",
+    "endpoints" : [ "http://localhost:8000/invalidatecache"; ]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter-local.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,5 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name": "local",
+    "ReplicationPackageBuilder.target" : "(name=vlt)"
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/org.apache.sling.replication.serialization.impl.vlt.FileVaultReplicationPackageBuilder.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,6 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "vlt",
+    "username" : "admin",
+    "password" : "admin"
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agentsConfig.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agentsConfig.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agentsConfig.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agentsConfig.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,18 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "replicationAgentsConfig",
+    "provider.roots" : [ "/libs/sling/replication/config/agents" ],
+    "serviceType" : 
"org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory",
+    "providerType" : "osgiConfig",
+    "resourceProperties" : [
+        "sling:resourceType=replication/config/agent",
+        "name={name}",
+        "runModes={runModes}",
+        "queueProvider={ReplicationQueueProvider.target}",
+        "packageExporter={ReplicationPackageExporter.target}",
+        "packageImporter={ReplicationPackageImporter.target}",
+        "queueStrategy={ReplicationQueueDistributionStrategy.target}",
+    ]
+
+
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteExportersConfig.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteExportersConfig.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteExportersConfig.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteExportersConfig.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,13 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "replicationExportersConfig",
+    "provider.roots" : [ "/libs/sling/replication/config/exporters/remote" ],
+    "serviceType" : 
"org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter",
+    "providerType" : "osgiConfig",
+
+    "resourceProperties" : [
+        "sling:resourceType=replication/config/exporter/remote",
+        "name={name}",
+        "endpoints={endpoints}"
+    ]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteImportersConfig.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteImportersConfig.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteImportersConfig.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/configs/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-remoteImportersConfig.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,13 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "replicationImportersConfig",
+    "provider.roots" : [ "/libs/sling/replication/config/importers/remote" ],
+    "serviceType" : 
"org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter",
+    "providerType" : "osgiConfig",
+
+    "resourceProperties" : [
+        "sling:resourceType=replication/config/importer/remote",
+        "name={name}",
+        "endpoints={endpoints}"
+    ]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agents.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agents.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agents.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-agents.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,12 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "replicationAgents",
+    "provider.roots" : [ "/libs/sling/replication/agents" ],
+    "serviceType" : "org.apache.sling.replication.agent.ReplicationAgent",
+    "resourceProperties" : [
+        "sling:resourceType=replication/agent",
+        "name={name}",
+
+        "queue/sling:resourceType=replication/agent/queue"
+    ]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-exporters.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-exporters.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-exporters.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-exporters.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,10 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "replicationExporters",
+    "provider.roots" : [ "/libs/sling/replication/exporters" ],
+    "serviceType" : 
"org.apache.sling.replication.packaging.ReplicationPackageExporter",
+    "resourceProperties" : [
+        "sling:resourceType=replication/exporter",
+        "name={name}"
+    ]
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-importers.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-importers.json?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-importers.json
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/resources/SLING-CONTENT/libs/sling/replication/install/resourceproviders/services/org.apache.sling.replication.resources.impl.OsgiPropertiesResourceProviderFactory-importers.json
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,10 @@
+{
+    "jcr:primaryType" : "sling:OsgiConfig",
+    "name" : "replicationImporters",
+    "provider.roots" : [ "/libs/sling/replication/importers" ],
+    "serviceType" : 
"org.apache.sling.replication.packaging.ReplicationPackageImporter",
+    "resourceProperties" : [
+        "sling:resourceType=replication/importer",
+        "name={name}"
+    ]
+}
\ No newline at end of file

Modified: sling/trunk/contrib/extensions/replication/it/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/it/pom.xml?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/it/pom.xml (original)
+++ sling/trunk/contrib/extensions/replication/it/pom.xml Wed Aug 13 09:08:56 
2014
@@ -332,7 +332,7 @@
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.launchpad</artifactId>
             <classifier>standalone</classifier>
-            <version>6</version>
+            <version>7-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

Modified: 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationAgentResourcesIntegrationTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationAgentResourcesIntegrationTest.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationAgentResourcesIntegrationTest.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationAgentResourcesIntegrationTest.java
 Wed Aug 13 09:08:56 2014
@@ -30,15 +30,26 @@ import static org.apache.sling.replicati
 public class ReplicationAgentResourcesIntegrationTest extends 
ReplicationIntegrationTestBase {
 
     @Test
-    public void testDefaultAgentConfigurationResources() throws Exception {
+    public void testDefaultAgentConfigurationResourcesOnAuthor() throws 
Exception {
         String[] defaultAgentNames = new String[]{
                 "publish",
-                "publish-reverse",
+                "publish-reverse"
+        };
+        for (String agentName : defaultAgentNames) {
+            assertExists(authorClient, agentConfigUrl(agentName));
+        }
+
+    }
+
+
+    @Test
+    public void testDefaultAgentConfigurationResourcesOnPublish() throws 
Exception {
+        String[] defaultAgentNames = new String[]{
                 "reverse",
                 "cache-flush"
         };
         for (String agentName : defaultAgentNames) {
-            assertExists(authorClient, agentConfigUrl(agentName));
+            assertExists(publishClient, agentConfigUrl(agentName));
         }
 
     }

Added: 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageExporterImporterTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageExporterImporterTest.java?rev=1617694&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageExporterImporterTest.java
 (added)
+++ 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageExporterImporterTest.java
 Wed Aug 13 09:08:56 2014
@@ -0,0 +1,51 @@
+/*
+ * 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.replication.it;
+
+import org.apache.http.protocol.HTTP;
+import org.apache.sling.replication.communication.ReplicationActionType;
+import org.junit.Test;
+
+import static org.apache.sling.replication.it.ReplicationUtils.*;
+
+public class ReplicationPackageExporterImporterTest extends 
ReplicationIntegrationTestBase  {
+
+    @Test
+    public void testAddExportImport() throws Exception {
+        String nodePath = createRandomNode(authorClient, "/content/export_" + 
System.nanoTime());
+        assertExists(authorClient, nodePath);
+
+        String content = doExport(author, "local", ReplicationActionType.ADD, 
nodePath);
+
+        doImport(publish, "local", 
content.getBytes(HTTP.DEFAULT_CONTENT_CHARSET));
+        assertExists(publishClient, nodePath);
+
+    }
+
+    @Test
+    public void testDeleteExportImport() throws Exception {
+        String nodePath = createRandomNode(publishClient, "/content/export_" + 
System.nanoTime());
+        assertExists(publishClient, nodePath);
+
+        String content = doExport(author, "local", 
ReplicationActionType.DELETE, nodePath);
+
+        doImport(publish, "local", 
content.getBytes(HTTP.DEFAULT_CONTENT_CHARSET));
+        assertNotExits(publishClient, nodePath);
+    }
+}

Propchange: 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageExporterImporterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageImporterResourcesIntegrationTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageImporterResourcesIntegrationTest.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageImporterResourcesIntegrationTest.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationPackageImporterResourcesIntegrationTest.java
 Wed Aug 13 09:08:56 2014
@@ -23,7 +23,7 @@ import org.junit.Test;
 import static org.apache.sling.replication.it.ReplicationUtils.*;
 
 /**
- * Integration test for {@link 
org.apache.sling.replication.serialization.ReplicationPackageImporter} resources
+ * Integration test for {@link 
org.apache.sling.replication.packaging.ReplicationPackageImporter} resources
  */
 public class ReplicationPackageImporterResourcesIntegrationTest extends 
ReplicationIntegrationTestBase {
 

Modified: 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationUtils.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationUtils.java?rev=1617694&r1=1617693&r2=1617694&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationUtils.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/it/src/test/java/org/apache/sling/replication/it/ReplicationUtils.java
 Wed Aug 13 09:08:56 2014
@@ -26,9 +26,11 @@ import java.util.UUID;
 
 import org.apache.http.NameValuePair;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.entity.ByteArrayEntity;
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.sling.replication.communication.ReplicationActionType;
-import org.apache.sling.replication.communication.ReplicationHeader;
+import org.apache.sling.replication.communication.ReplicationParameter;
+import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.testing.tools.http.Request;
 import org.apache.sling.testing.tools.sling.SlingClient;
 import org.apache.sling.testing.tools.sling.SlingInstance;
@@ -43,8 +45,8 @@ public class ReplicationUtils {
     private static final String JSON_SELECTOR = ".json";
     private static final String REPLICATION_ROOT_PATH = 
"/libs/sling/replication";
 
-    private static void assertPostResourceWithParameters(SlingInstance 
slingInstance,
-                                                         int status, String 
path, String... parameters) throws IOException {
+    private static String assertPostResourceWithParameters(SlingInstance 
slingInstance,
+                                                           int status, String 
path, String... parameters) throws IOException {
         Request request = 
slingInstance.getRequestBuilder().buildPostRequest(path);
 
         if (parameters != null) {
@@ -57,25 +59,30 @@ public class ReplicationUtils {
             UrlEncodedFormEntity entity = new 
UrlEncodedFormEntity(valuePairList);
             request.withEntity(entity);
         }
-        slingInstance.getRequestExecutor().execute(
+        String content = slingInstance.getRequestExecutor().execute(
                 request.withCredentials(slingInstance.getServerUsername(), 
slingInstance.getServerPassword())
-        ).assertStatus(status);
+        ).assertStatus(status).getContent();
+
+        return content;
     }
 
-    private static void assertPostResourceWithHeaders(SlingInstance 
slingInstance,
-                                                      int status, String path, 
String... headers) throws IOException {
+    private static String assertPostResource(SlingInstance slingInstance,
+                                             int status, String path, byte[] 
bytes) throws IOException {
         Request request = 
slingInstance.getRequestBuilder().buildPostRequest(path);
-        if (headers != null) {
-            assertEquals(0, headers.length % 2);
-            for (int i = 0; i < headers.length; i += 2) {
-                request = request.withHeader(headers[i], headers[i + 1]);
-            }
+
+        if (bytes != null) {
+
+            ByteArrayEntity entity = new ByteArrayEntity(bytes);
+            request.withEntity(entity);
         }
-        slingInstance.getRequestExecutor().execute(
+        String content = slingInstance.getRequestExecutor().execute(
                 request.withCredentials(slingInstance.getServerUsername(), 
slingInstance.getServerPassword())
-        ).assertStatus(status);
+        ).assertStatus(status).getContent();
+
+        return content;
     }
 
+
     public static void assertResponseContains(SlingInstance slingInstance,
                                               String resource, String... 
parameters) throws IOException {
         if (!resource.endsWith(JSON_SELECTOR)) {
@@ -98,18 +105,35 @@ public class ReplicationUtils {
     public static void replicate(SlingInstance slingInstance, String 
agentName, ReplicationActionType action, String... paths) throws IOException {
         String agentResource = agentUrl(agentName);
 
+        executeReplicationRequest(slingInstance, 202, agentResource, action, 
paths);
+    }
+
+    public static String executeReplicationRequest(SlingInstance 
slingInstance, int status, String resource, ReplicationActionType action, 
String... paths) throws IOException {
+
         List<String> args = new ArrayList<String>();
-        args.add(ReplicationHeader.ACTION.toString());
+        args.add(ReplicationParameter.ACTION.toString());
         args.add(action.toString());
 
         if (paths != null) {
             for (String path : paths) {
-                args.add(ReplicationHeader.PATH.toString());
+                args.add(ReplicationParameter.PATH.toString());
                 args.add(path);
             }
         }
 
-        assertPostResourceWithHeaders(slingInstance, 202, agentResource, 
args.toArray(new String[args.size()]));
+        return assertPostResourceWithParameters(slingInstance, status, 
resource, args.toArray(new String[args.size()]));
+    }
+
+    public static String doExport(SlingInstance slingInstance, String 
exporterName, ReplicationActionType action, String... paths) throws IOException 
{
+        String agentResource = exporterUrl(exporterName);
+
+        return executeReplicationRequest(slingInstance, 200, agentResource, 
action, paths);
+    }
+
+    public static String doImport(SlingInstance slingInstance, String 
importerName, byte[] bytes) throws IOException {
+        String agentResource = importerUrl(importerName);
+
+        return assertPostResource(slingInstance, 200, agentResource, bytes);
     }
 
     public static void deleteNode(SlingInstance slingInstance, String path) 
throws IOException {
@@ -165,4 +189,12 @@ public class ReplicationUtils {
     public static String importerUrl(String importerName) {
         return REPLICATION_ROOT_PATH + "/importers/" + importerName;
     }
+
+    public static String exporterRootUrl() {
+        return REPLICATION_ROOT_PATH + "/exporters";
+    }
+
+    public static String exporterUrl(String exporterName) {
+        return REPLICATION_ROOT_PATH + "/exporters/" + exporterName;
+    }
 }


Reply via email to