Author: tommaso
Date: Thu Oct 16 07:03:31 2014
New Revision: 1632218

URL: http://svn.apache.org/r1632218
Log:
SLING-3899 - using authorization strategy for checking resource resolver

Added:
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
   (with props)
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
   (with props)
Removed:
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/ReplicationPackageExporterStrategy.java
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/packaging/impl/exporter/strategy/
Modified:
    
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.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/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java
    
sling/trunk/contrib/extensions/replication/sample/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/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
    
sling/trunk/contrib/extensions/replication/sample/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/sample/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/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=1632218&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/ReplicationRequestAuthorizationStrategy.java
 Thu Oct 16 07:03:31 2014
@@ -0,0 +1,42 @@
+/*
+ * 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.agent;
+
+import java.util.List;
+
+import org.apache.sling.api.resource.ResourceResolver;
+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.ReplicationPackageBuildingException;
+
+/**
+ * Strategy for authorizing requests
+ */
+public interface ReplicationRequestAuthorizationStrategy {
+
+    /**
+     * @param resourceResolver   a {@link 
org.apache.sling.api.resource.ResourceResolver} representing the calling 'user'
+     * @param replicationRequest a request bringing metadata for getting 
{@link org.apache.sling.replication.packaging.ReplicationPackage}s
+     *                           to be exported
+     * @throws AgentReplicationException
+     */
+    void checkPermission(ResourceResolver resourceResolver, ReplicationRequest 
replicationRequest) throws AgentReplicationException;
+
+}

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

Modified: 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/DefaultReplicationComponentFactory.java
 Thu Oct 16 07:03:31 2014
@@ -36,15 +36,13 @@ import org.apache.sling.jcr.api.SlingRep
 import org.apache.sling.replication.agent.ReplicationAgent;
 import org.apache.sling.replication.agent.ReplicationComponentFactory;
 import org.apache.sling.replication.agent.ReplicationComponentProvider;
+import 
org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
 import org.apache.sling.replication.event.ReplicationEventFactory;
 import org.apache.sling.replication.packaging.ReplicationPackageExporter;
-import 
org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy;
 import org.apache.sling.replication.packaging.ReplicationPackageImporter;
 import 
org.apache.sling.replication.packaging.impl.exporter.AgentReplicationPackageExporter;
 import 
org.apache.sling.replication.packaging.impl.exporter.LocalReplicationPackageExporter;
 import 
org.apache.sling.replication.packaging.impl.exporter.RemoteReplicationPackageExporter;
-import 
org.apache.sling.replication.packaging.impl.exporter.strategy.DefaultReplicationPackageExporterStrategy;
-import 
org.apache.sling.replication.packaging.impl.exporter.strategy.PrivilegeReplicationPackageExporterStrategy;
 import 
org.apache.sling.replication.packaging.impl.importer.LocalReplicationPackageImporter;
 import 
org.apache.sling.replication.packaging.impl.importer.RemoteReplicationPackageImporter;
 import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy;
@@ -147,8 +145,8 @@ public class DefaultReplicationComponent
             Map<String, Object> exporterProperties = 
extractMap("packageExporter", properties);
             ReplicationPackageExporter packageExporter = 
createExporter(exporterProperties, componentProvider);
 
-            Map<String, Object> exporterStrategyProperties = 
extractMap("packageExporterStrategy", properties);
-            ReplicationPackageExporterStrategy packageExporterStrategy = 
createExporterStrategy(exporterStrategyProperties, componentProvider);
+            Map<String, Object> authorizationStrategyProperties = 
extractMap("requestAuthorizationStrategy", properties);
+            ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
createAuthorizationStrategy(authorizationStrategyProperties, componentProvider);
 
             Map<String, Object> queueDistributionStrategyProperties = 
extractMap("queueDistributionStrategy", properties);
             ReplicationQueueDistributionStrategy queueDistributionStrategy = 
createDistributionStrategy(queueDistributionStrategyProperties, 
componentProvider);
@@ -177,20 +175,17 @@ public class DefaultReplicationComponent
 
     }
 
-    private ReplicationPackageExporterStrategy 
createExporterStrategy(Map<String, Object> properties, 
ReplicationComponentProvider componentProvider) {
+    private ReplicationRequestAuthorizationStrategy 
createAuthorizationStrategy(Map<String, Object> properties, 
ReplicationComponentProvider componentProvider) {
 
         String factory = 
PropertiesUtil.toString(properties.get(COMPONENT_TYPE), "service");
 
         if ("service".equals(factory)) {
             String name = PropertiesUtil.toString(properties.get(NAME), null);
-            return 
componentProvider.getComponent(ReplicationPackageExporterStrategy.class, name);
+            return 
componentProvider.getComponent(ReplicationRequestAuthorizationStrategy.class, 
name);
 
         }
-        else if 
(DefaultReplicationPackageExporterStrategy.NAME.equals(factory)) {
-            return new DefaultReplicationPackageExporterStrategy();
-        }
-        else if 
(PrivilegeReplicationPackageExporterStrategy.NAME.equals(factory)) {
-            return new PrivilegeReplicationPackageExporterStrategy(properties);
+        else if 
(PrivilegeReplicationRequestAuthorizationStrategy.NAME.equals(factory)) {
+            return new 
PrivilegeReplicationRequestAuthorizationStrategy(properties);
         }
 
         return null;

Added: 
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=1632218&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
 (added)
+++ 
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/agent/impl/PrivilegeReplicationRequestAuthorizationStrategy.java
 Thu Oct 16 07:03:31 2014
@@ -0,0 +1,102 @@
+/*
+ * 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.agent.impl;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.security.AccessControlManager;
+import javax.jcr.security.Privilege;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.replication.agent.AgentReplicationException;
+import 
org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
+import org.apache.sling.replication.communication.ReplicationActionType;
+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.ReplicationPackageBuildingException;
+
+public class PrivilegeReplicationRequestAuthorizationStrategy implements 
ReplicationRequestAuthorizationStrategy {
+    public static final String NAME = "privilege";
+    public static final String JCR_PRIVILEGE = "jcrPrivilege";
+
+    private final String jcrPrivilege;
+
+    public PrivilegeReplicationRequestAuthorizationStrategy(Map<String, 
Object> config) {
+        this(PropertiesUtil.toString(config.get(JCR_PRIVILEGE), null));
+    }
+
+    public PrivilegeReplicationRequestAuthorizationStrategy(String 
jcrPrivilege) {
+        if (jcrPrivilege == null) {
+            throw new IllegalArgumentException("Jcr Privilege is required");
+        }
+
+        this.jcrPrivilege = jcrPrivilege;
+    }
+
+    public void checkPermission(ResourceResolver resourceResolver, 
ReplicationRequest replicationRequest) throws AgentReplicationException {
+        Session session = resourceResolver.adaptTo(Session.class);
+
+        try {
+           if 
(ReplicationActionType.ADD.equals(replicationRequest.getAction())) {
+               checkPermissionForAdd(session, replicationRequest.getPaths());
+           }
+           else if 
(ReplicationActionType.DELETE.equals(replicationRequest.getAction())) {
+               checkPermissionForDelete(session, 
replicationRequest.getPaths());
+           }
+
+        }
+        catch (RepositoryException e) {
+            throw new AgentReplicationException("Not enough privileges");
+        }
+
+
+    }
+
+    private void checkPermissionForAdd(Session session, String[] paths)
+            throws RepositoryException, AgentReplicationException {
+        AccessControlManager acMgr = session.getAccessControlManager();
+
+        Privilege[] privileges = new Privilege[] { 
acMgr.privilegeFromName(jcrPrivilege), 
acMgr.privilegeFromName(Privilege.JCR_READ) };
+        for (String path : paths) {
+            if(!acMgr.hasPrivileges(path, privileges)) {
+                throw new AgentReplicationException("Not enough privileges");
+            }
+        }
+
+    }
+
+    private void checkPermissionForDelete(Session session, String[] paths)
+            throws RepositoryException, AgentReplicationException {
+        AccessControlManager acMgr = session.getAccessControlManager();
+
+        Privilege[] privileges = new Privilege[] { 
acMgr.privilegeFromName(jcrPrivilege), 
acMgr.privilegeFromName(Privilege.JCR_REMOVE_NODE)  };
+        for (String path : paths) {
+            if(session.nodeExists(path) && !acMgr.hasPrivileges(path, 
privileges)) {
+                throw new AgentReplicationException("Not enough privileges");
+            }
+        }
+
+    }
+
+
+}

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

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=1632218&r1=1632217&r2=1632218&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
 Thu Oct 16 07:03:31 2014
@@ -32,13 +32,13 @@ import org.apache.sling.api.resource.Res
 import org.apache.sling.replication.agent.AgentReplicationException;
 import org.apache.sling.replication.agent.ReplicationAgent;
 import org.apache.sling.replication.agent.ReplicationComponent;
+import 
org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
 import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.communication.ReplicationResponse;
 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.packaging.ReplicationPackageExporter;
-import 
org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy;
 import org.apache.sling.replication.packaging.ReplicationPackageImporter;
 import org.apache.sling.replication.queue.ReplicationQueue;
 import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy;
@@ -75,7 +75,7 @@ public class SimpleReplicationAgent impl
 
     private final String name;
 
-    private final ReplicationPackageExporterStrategy 
replicationPackageExporterStrategy;
+    private final ReplicationRequestAuthorizationStrategy 
replicationRequestAuthorizationStrategy;
     private final ResourceResolverFactory resourceResolverFactory;
     private final String subServiceName;
 
@@ -84,21 +84,20 @@ public class SimpleReplicationAgent impl
                                   String subServiceName,
                                   ReplicationPackageImporter 
replicationPackageImporter,
                                   ReplicationPackageExporter 
replicationPackageExporter,
-                                  ReplicationPackageExporterStrategy 
replicationPackageExporterStrategy,
+                                  ReplicationRequestAuthorizationStrategy 
replicationRequestAuthorizationStrategy,
                                   ReplicationQueueProvider queueProvider,
                                   ReplicationQueueDistributionStrategy 
queueDistributionStrategy,
                                   ReplicationEventFactory 
replicationEventFactory,
                                   ResourceResolverFactory 
resourceResolverFactory,
                                   List<ReplicationTrigger> triggers) {
-        this.subServiceName = subServiceName;
-        this.replicationPackageExporterStrategy = 
replicationPackageExporterStrategy;
-        this.resourceResolverFactory = resourceResolverFactory;
+
 
         // check configuration is valid
         if (name == null
                 || replicationPackageImporter == null
                 || replicationPackageExporter == null
-                || replicationPackageExporterStrategy == null
+                || subServiceName == null
+                || replicationRequestAuthorizationStrategy == null
                 || queueProvider == null
                 || queueDistributionStrategy == null
                 || replicationEventFactory == null
@@ -107,7 +106,8 @@ public class SimpleReplicationAgent impl
             String errorMessage = Arrays.toString(new Object[]{name,
                     replicationPackageImporter,
                     replicationPackageExporter,
-                    replicationPackageExporterStrategy,
+                    subServiceName,
+                    replicationRequestAuthorizationStrategy,
                     queueProvider,
                     queueDistributionStrategy,
                     replicationEventFactory,
@@ -115,6 +115,9 @@ public class SimpleReplicationAgent impl
             throw new IllegalArgumentException("all arguments are required: " 
+ errorMessage);
         }
 
+        this.subServiceName = subServiceName;
+        this.replicationRequestAuthorizationStrategy = 
replicationRequestAuthorizationStrategy;
+        this.resourceResolverFactory = resourceResolverFactory;
         this.name = name;
         this.passive = passive;
         this.replicationPackageImporter = replicationPackageImporter;
@@ -128,7 +131,9 @@ public class SimpleReplicationAgent impl
     public ReplicationResponse execute(ResourceResolver resourceResolver, 
ReplicationRequest replicationRequest)
             throws AgentReplicationException {
         try {
-            return schedule(buildPackages(resourceResolver, 
replicationRequest));
+            
replicationRequestAuthorizationStrategy.checkPermission(resourceResolver, 
replicationRequest);
+            List<ReplicationPackage> replicationPackages = 
buildPackages(replicationRequest);
+            return schedule(replicationPackages);
         } catch (Exception e) {
             log.error("Error executing replication request {}", 
replicationRequest, e);
             throw new AgentReplicationException(e);
@@ -140,23 +145,11 @@ public class SimpleReplicationAgent impl
         return passive;
     }
 
-    private List<ReplicationPackage> buildPackages(ResourceResolver 
resourceResolver, ReplicationRequest replicationRequest) throws 
ReplicationPackageBuildingException {
-
-        List<ReplicationPackage> replicationPackages = new 
ArrayList<ReplicationPackage>();
+    private List<ReplicationPackage> buildPackages(ReplicationRequest 
replicationRequest) throws ReplicationPackageBuildingException {
 
+        ResourceResolver agentResourceResolver = getAgentResourceResolver();
 
-        List<ReplicationPackage> exportedPackages = 
replicationPackageExporterStrategy.exportPackages(resourceResolver,
-                replicationRequest,
-                new ReplicationPackageExporter() {
-                    public List<ReplicationPackage> 
exportPackage(ResourceResolver resourceResolver, ReplicationRequest 
replicationRequest) throws ReplicationPackageBuildingException {
-                        return 
replicationPackageExporter.exportPackage(getAgentResourceResolver(), 
replicationRequest);
-                    }
-
-                    public ReplicationPackage 
exportPackageById(ResourceResolver resourceResolver, String 
replicationPackageId) {
-                        return 
replicationPackageExporter.exportPackageById(getAgentResourceResolver(), 
replicationPackageId);
-                    }
-                });
-        replicationPackages.addAll(exportedPackages);
+        List<ReplicationPackage> replicationPackages = 
replicationPackageExporter.exportPackage(agentResourceResolver, 
replicationRequest);
 
         return replicationPackages;
     }

Modified: 
sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java
 (original)
+++ 
sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/agent/impl/SimpleReplicationAgentTest.java
 Thu Oct 16 07:03:31 2014
@@ -22,13 +22,13 @@ import java.util.Arrays;
 
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
+import 
org.apache.sling.replication.agent.ReplicationRequestAuthorizationStrategy;
 import org.apache.sling.replication.communication.ReplicationActionType;
 import org.apache.sling.replication.communication.ReplicationRequest;
 import org.apache.sling.replication.communication.ReplicationResponse;
 import org.apache.sling.replication.event.ReplicationEventFactory;
 import org.apache.sling.replication.packaging.ReplicationPackage;
 import org.apache.sling.replication.packaging.ReplicationPackageExporter;
-import 
org.apache.sling.replication.packaging.ReplicationPackageExporterStrategy;
 import org.apache.sling.replication.packaging.ReplicationPackageImporter;
 import org.apache.sling.replication.queue.ReplicationQueue;
 import org.apache.sling.replication.queue.ReplicationQueueDistributionStrategy;
@@ -56,7 +56,7 @@ public class SimpleReplicationAgentTest 
         String name = "sample-agent";
         ReplicationPackageImporter packageImporter = 
mock(ReplicationPackageImporter.class);
         ReplicationPackageExporter packageExporter = 
mock(ReplicationPackageExporter.class);
-        ReplicationPackageExporterStrategy packageExporterStrategy = 
mock(ReplicationPackageExporterStrategy.class);
+        ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
mock(ReplicationRequestAuthorizationStrategy.class);
         ReplicationQueueProvider queueProvider = 
mock(ReplicationQueueProvider.class);
         ReplicationQueueDistributionStrategy distributionHandler = 
mock(ReplicationQueueDistributionStrategy.class);
         ReplicationEventFactory replicationEventFactory = 
mock(ReplicationEventFactory.class);
@@ -73,7 +73,7 @@ public class SimpleReplicationAgentTest 
         ResourceResolver resourceResolver = mock(ResourceResolver.class);
 
         when(replicationPackage.getPaths()).thenReturn(new String[]{"/"});
-        
when(packageExporterStrategy.exportPackages(any(ResourceResolver.class), 
any(ReplicationRequest.class), any(ReplicationPackageExporter.class)))
+        when(packageExporter.exportPackage(any(ResourceResolver.class), 
any(ReplicationRequest.class)))
                 .thenReturn(Arrays.asList(new 
ReplicationPackage[]{replicationPackage}));
         when(queueProvider.getDefaultQueue(agent.getName())).thenReturn(
                 new SimpleReplicationQueue(agent.getName(), "name"));
@@ -87,7 +87,7 @@ public class SimpleReplicationAgentTest 
         String name = "sample-agent";
         ReplicationPackageImporter packageImporter = 
mock(ReplicationPackageImporter.class);
         ReplicationPackageExporter packageExporter = 
mock(ReplicationPackageExporter.class);
-        ReplicationPackageExporterStrategy packageExporterStrategy = 
mock(ReplicationPackageExporterStrategy.class);
+        ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
mock(ReplicationRequestAuthorizationStrategy.class);
         ReplicationQueueProvider queueProvider = 
mock(ReplicationQueueProvider.class);
         ReplicationQueueDistributionStrategy distributionHandler = 
mock(ReplicationQueueDistributionStrategy.class);
         ReplicationEventFactory replicationEventFactory = 
mock(ReplicationEventFactory.class);
@@ -106,7 +106,7 @@ public class SimpleReplicationAgentTest 
         ReplicationQueueItemState state = new ReplicationQueueItemState();
         state.setItemState(ReplicationQueueItemState.ItemState.SUCCEEDED);
         when(distributionHandler.add(any(String.class), 
any(ReplicationQueueItem.class), eq(queueProvider))).thenReturn(state);
-        
when(packageExporterStrategy.exportPackages(any(ResourceResolver.class), 
any(ReplicationRequest.class), any(ReplicationPackageExporter.class)))
+        when(packageExporter.exportPackage(any(ResourceResolver.class), 
any(ReplicationRequest.class)))
                 .thenReturn(Arrays.asList(new 
ReplicationPackage[]{replicationPackage}));
         when(queueProvider.getDefaultQueue(agent.getName())).thenReturn(
                 new SimpleReplicationQueue(agent.getName(), "name"));
@@ -120,7 +120,7 @@ public class SimpleReplicationAgentTest 
         String name = "sample-agent";
         ReplicationPackageImporter packageImporter = 
mock(ReplicationPackageImporter.class);
         ReplicationPackageExporter packageExporter = 
mock(ReplicationPackageExporter.class);
-        ReplicationPackageExporterStrategy packageExporterStrategy = 
mock(ReplicationPackageExporterStrategy.class);
+        ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
mock(ReplicationRequestAuthorizationStrategy.class);
         ReplicationQueueProvider queueProvider = 
mock(ReplicationQueueProvider.class);
         ReplicationQueueDistributionStrategy distributionHandler = 
mock(ReplicationQueueDistributionStrategy.class);
         ReplicationEventFactory replicationEventFactory = 
mock(ReplicationEventFactory.class);
@@ -149,7 +149,7 @@ public class SimpleReplicationAgentTest 
         String name = "sample-agent";
         ReplicationPackageImporter packageImporter = 
mock(ReplicationPackageImporter.class);
         ReplicationPackageExporter packageExporter = 
mock(ReplicationPackageExporter.class);
-        ReplicationPackageExporterStrategy packageExporterStrategy = 
mock(ReplicationPackageExporterStrategy.class);
+        ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
mock(ReplicationRequestAuthorizationStrategy.class);
 
         ReplicationQueueProvider queueProvider = 
mock(ReplicationQueueProvider.class);
         ReplicationQueueDistributionStrategy distributionHandler = 
mock(ReplicationQueueDistributionStrategy.class);
@@ -172,7 +172,7 @@ public class SimpleReplicationAgentTest 
         String name = "sample-agent";
         ReplicationPackageImporter packageImporter = 
mock(ReplicationPackageImporter.class);
         ReplicationPackageExporter packageExporter = 
mock(ReplicationPackageExporter.class);
-        ReplicationPackageExporterStrategy packageExporterStrategy = 
mock(ReplicationPackageExporterStrategy.class);
+        ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
mock(ReplicationRequestAuthorizationStrategy.class);
 
         ReplicationQueueProvider queueProvider = 
mock(ReplicationQueueProvider.class);
         ReplicationQueueDistributionStrategy distributionHandler = 
mock(ReplicationQueueDistributionStrategy.class);
@@ -195,7 +195,7 @@ public class SimpleReplicationAgentTest 
         String name = "sample-agent";
         ReplicationPackageImporter packageImporter = 
mock(ReplicationPackageImporter.class);
         ReplicationPackageExporter packageExporter = 
mock(ReplicationPackageExporter.class);
-        ReplicationPackageExporterStrategy packageExporterStrategy = 
mock(ReplicationPackageExporterStrategy.class);
+        ReplicationRequestAuthorizationStrategy packageExporterStrategy = 
mock(ReplicationRequestAuthorizationStrategy.class);
 
         ReplicationQueueProvider queueProvider = 
mock(ReplicationQueueProvider.class);
         ReplicationQueueDistributionStrategy distributionHandler = 
mock(ReplicationQueueDistributionStrategy.class);

Modified: 
sling/trunk/contrib/extensions/replication/sample/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/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
 (original)
+++ 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish-reverse.json
 Thu Oct 16 07:03:31 2014
@@ -16,7 +16,7 @@
         "packageBuilder/type=vlt"
     ],
 
-    "packageExporterStrategy" : [
+    "requestAuthorizationStrategy" : [
         "type=privilege",
         "jcrPrivilege=jcr:read"
     ],

Modified: 
sling/trunk/contrib/extensions/replication/sample/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/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
 (original)
+++ 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.author/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-publish.json
 Thu Oct 16 07:03:31 2014
@@ -9,7 +9,7 @@
         "packageBuilder/type=vlt"
     ],
 
-    "packageExporterStrategy" : [
+    "requestAuthorizationStrategy" : [
         "type=privilege",
         "jcrPrivilege=jcr:read"
     ],

Modified: 
sling/trunk/contrib/extensions/replication/sample/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/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
 (original)
+++ 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-cache-flush.json
 Thu Oct 16 07:03:31 2014
@@ -7,7 +7,7 @@
         "name=void"
     ],
 
-    "packageExporterStrategy" : [
+    "requestAuthorizationStrategy" : [
         "type=default"
     ],
 

Modified: 
sling/trunk/contrib/extensions/replication/sample/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/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json?rev=1632218&r1=1632217&r2=1632218&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
 (original)
+++ 
sling/trunk/contrib/extensions/replication/sample/src/main/resources/SLING-CONTENT/libs/sling/replication/install.publish/org.apache.sling.replication.agent.impl.SimpleReplicationAgentFactory-reverse.json
 Thu Oct 16 07:03:31 2014
@@ -8,10 +8,10 @@
 
     "packageExporter": [
         "type=local",
-        "packageBuilder/type=vlt",
+        "packageBuilder/type=vlt"
     ],
 
-    "packageExporterStrategy" : [
+    "requestAuthorizationStrategy" : [
         "type=privilege",
         "jcrPrivilege=jcr:read"
     ],


Reply via email to