This is an automated email from the ASF dual-hosted git repository.

simonetripodi pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git


The following commit(s) were added to refs/heads/master by this push:
     new f09f785  SLING-8578 - Nodes which contain : are not correctly processed
f09f785 is described below

commit f09f78581a4367aa2e0583372989bdd00a1860a2
Author: Simo Tripodi <[email protected]>
AuthorDate: Sun Jul 14 10:39:03 2019 +0200

    SLING-8578 - Nodes which contain : are not correctly processed
    
    minor optimizations
---
 .../org/apache/sling/feature/cpconverter/acl/Acl.java    |  7 ++-----
 .../sling/feature/cpconverter/acl/DefaultAclManager.java |  1 -
 .../cpconverter/handlers/RepPolicyEntryHandler.java      | 16 ++++++++++++----
 .../sling/feature/cpconverter/acl/AclManagerTest.java    | 15 ++++++++++-----
 4 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/cpconverter/acl/Acl.java 
b/src/main/java/org/apache/sling/feature/cpconverter/acl/Acl.java
index 4e2f199..b195441 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/acl/Acl.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/acl/Acl.java
@@ -16,10 +16,7 @@
  */
 package org.apache.sling.feature.cpconverter.acl;
 
-import org.apache.jackrabbit.vault.util.PlatformNameFormat;
-
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -38,11 +35,11 @@ public final class Acl {
 
     private final List<String> restrictions = new LinkedList<>();
 
-    public Acl(String operation, String privileges, Path path) {
+    public Acl(String operation, String privileges, Path path, Path 
repositoryPath) {
         this.operation = operation;
         this.privileges = privileges;
         this.path = path;
-        this.repositoryPath = 
Paths.get(PlatformNameFormat.getRepositoryPath(path.toString()));
+        this.repositoryPath = repositoryPath;
     }
 
     public void addRestriction(String restriction) {
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java 
b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
index da92a6b..2c0fb84 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
@@ -32,7 +32,6 @@ import java.util.Set;
 import java.util.TreeSet;
 import java.util.stream.Collectors;
 
-import org.apache.jackrabbit.vault.util.PlatformNameFormat;
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.Feature;
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandler.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandler.java
index 79995f4..6658264 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandler.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandler.java
@@ -23,6 +23,7 @@ import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.StringReader;
 import java.io.StringWriter;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.Map;
@@ -40,6 +41,7 @@ import javax.xml.transform.stream.StreamResult;
 import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.vault.fs.io.Archive;
 import org.apache.jackrabbit.vault.fs.io.Archive.Entry;
+import org.apache.jackrabbit.vault.util.PlatformNameFormat;
 import 
org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
 import org.apache.sling.feature.cpconverter.acl.Acl;
 import org.apache.sling.feature.cpconverter.acl.AclManager;
@@ -80,7 +82,10 @@ public final class RepPolicyEntryHandler extends 
AbstractRegexEntryHandler {
         StringWriter stringWriter = new StringWriter();
         handler.setResult(new StreamResult(stringWriter));
 
-        RepPolicyParser systemUserParser = new RepPolicyParser(resourcePath, 
converter.getAclManager(), handler);
+        RepPolicyParser systemUserParser = new 
RepPolicyParser(Paths.get(resourcePath),
+                                                               
Paths.get(PlatformNameFormat.getRepositoryPath(resourcePath)),
+                                                               
converter.getAclManager(),
+                                                               handler);
         boolean hasRejectedAcls;
 
         try (InputStream input = archive.openInputStream(entry)) {
@@ -122,7 +127,9 @@ public final class RepPolicyEntryHandler extends 
AbstractRegexEntryHandler {
 
         private final Stack<Acl> acls = new Stack<>();
 
-        private final String path;
+        private final Path path;
+
+        private final Path repositoryPath;
 
         private final AclManager aclManager;
 
@@ -136,9 +143,10 @@ public final class RepPolicyEntryHandler extends 
AbstractRegexEntryHandler {
         // just internal pointer for every iteration
         private boolean processCurrentAcl = false;
 
-        public RepPolicyParser(String path, AclManager aclManager, 
TransformerHandler handler) {
+        public RepPolicyParser(Path path, Path repositoryPath, AclManager 
aclManager, TransformerHandler handler) {
             super(REP_ACL);
             this.path = path;
+            this.repositoryPath = repositoryPath;
             this.aclManager = aclManager;
             this.handler = handler;
         }
@@ -160,7 +168,7 @@ public final class RepPolicyEntryHandler extends 
AbstractRegexEntryHandler {
 
                     String privileges = 
extractValue(attributes.getValue(REP_PRIVILEGES));
 
-                    Acl acl = new Acl(operation, privileges, Paths.get(path));
+                    Acl acl = new Acl(operation, privileges, path, 
repositoryPath);
 
                     processCurrentAcl = aclManager.addAcl(principalName, acl);
                     if (processCurrentAcl) {
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/acl/AclManagerTest.java 
b/src/test/java/org/apache/sling/feature/cpconverter/acl/AclManagerTest.java
index 02444df..384168c 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/acl/AclManagerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/acl/AclManagerTest.java
@@ -29,6 +29,7 @@ import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.jackrabbit.vault.util.PlatformNameFormat;
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.Feature;
@@ -64,11 +65,11 @@ public class AclManagerTest {
 
         aclManager.addSystemUser(new 
SystemUser("acs-commons-package-replication-status-event-service", 
Paths.get("/asd/public")));
 
-        aclManager.addAcl("acs-commons-ensure-oak-index-service", new 
Acl("allow", "jcr:read,rep:write,rep:indexDefinitionManagement", 
Paths.get("/asd/public")));
-        
aclManager.addAcl("acs-commons-package-replication-status-event-service", new 
Acl("allow", "jcr:read,crx:replicate,jcr:removeNode", 
Paths.get("/asd/public")));
+        aclManager.addAcl("acs-commons-ensure-oak-index-service", 
newAcl("allow", "jcr:read,rep:write,rep:indexDefinitionManagement", 
"/asd/public"));
+       
aclManager.addAcl("acs-commons-package-replication-status-event-service", 
newAcl("allow", "jcr:read,crx:replicate,jcr:removeNode", "/asd/public"));
 
         // add an ACL for unknown user
-        aclManager.addAcl("acs-commons-on-deploy-scripts-service", new 
Acl("allow", "jcr:read,crx:replicate,jcr:removeNode", 
Paths.get("/asd/public")));
+        aclManager.addAcl("acs-commons-on-deploy-scripts-service", 
newAcl("allow", "jcr:read,crx:replicate,jcr:removeNode", "/asd/public"));
 
         VaultPackageAssembler assembler = mock(VaultPackageAssembler.class);
         when(assembler.getEntry(anyString())).thenReturn(new 
File(System.getProperty("java.io.tmpdir")));
@@ -101,8 +102,8 @@ public class AclManagerTest {
     @Test
     public void pathWithSpecialCharactersTest() throws 
RepoInitParsingException {
         aclManager.addSystemUser(new SystemUser("sys-usr", 
Paths.get("/home/users/system")));
-        aclManager.addAcl("sys-usr", new Acl("allow", "jcr:read", 
Paths.get("/content/_cq_tags")));
-        aclManager.addAcl("sys-usr", new Acl("allow", "jcr:write", 
Paths.get("/content/cq:tags")));
+        aclManager.addAcl("sys-usr", newAcl("allow", "jcr:read", 
"/content/_cq_tags"));
+        aclManager.addAcl("sys-usr", newAcl("allow", "jcr:write", 
"/content/cq:tags"));
         VaultPackageAssembler assembler = mock(VaultPackageAssembler.class);
         when(assembler.getEntry(anyString())).thenReturn(new 
File(System.getProperty("java.io.tmpdir")));
         Feature feature = new Feature(new ArtifactId("org.apache.sling", 
"org.apache.sling.cp2fm", "0.0.1", null, null));
@@ -129,4 +130,8 @@ public class AclManagerTest {
         assertFalse(operations.isEmpty());
     }
 
+    private static Acl newAcl(String operation, String privileges, String 
path) {
+        return new Acl(operation, privileges, Paths.get(path), 
Paths.get(PlatformNameFormat.getRepositoryPath(path)));
+    }
+
 }

Reply via email to