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

pauls 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 db0dd0a  minor improvements, cleanup, nullability-issues, ... (#54)
db0dd0a is described below

commit db0dd0add4f86e1abf4b9196dd295fc5ee5b4e61
Author: anchela <[email protected]>
AuthorDate: Fri Jan 15 17:59:26 2021 +0100

    minor improvements, cleanup, nullability-issues, ... (#54)
    
    Co-authored-by: angela <[email protected]>
---
 .../accesscontrol/AccessControlEntry.java          |   5 +-
 .../cpconverter/accesscontrol/AclManager.java      |   6 +-
 .../accesscontrol/DefaultAclManager.java           | 113 +++++++++++----------
 .../cpconverter/accesscontrol/MixinParser.java     |   4 +-
 .../accesscontrol/PrimaryTypeParser.java           |   7 +-
 .../cpconverter/handlers/BundleEntryHandler.java   |  28 +++--
 .../handlers/DefaultEntryHandlersManager.java      |   5 +-
 .../cpconverter/shared/AbstractJcrNodeParser.java  |   4 +-
 .../vltpkg/RecollectorVaultPackageScanner.java     |   2 +-
 .../cpconverter/accesscontrol/AclManagerTest.java  |  29 +++---
 .../accesscontrol/EnforcePrincipalBasedTest.java   |  30 ++++--
 .../handlers/PrivilegesHandlerTest.java            |  20 ++--
 .../handlers/RepPolicyEntryHandlerTest.java        |   4 -
 .../RepPrincipalPolicyEntryHandlerTest.java        |   4 +-
 .../handlers/RepRepoPolicyEntryHandlerTest.java    |   3 -
 .../feature/cpconverter/handlers/TestUtils.java    |   4 +-
 .../handlers/UsersEntryHandlerTest.java            |  29 +++---
 .../cpconverter/vltpkg/NodeTypesDetectionTest.java |   3 +-
 .../vltpkg/PackagesEventsEmitterTest.java          |  31 ++----
 19 files changed, 160 insertions(+), 171 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AccessControlEntry.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AccessControlEntry.java
index 984e7f3..e1a8472 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AccessControlEntry.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AccessControlEntry.java
@@ -18,7 +18,6 @@ package org.apache.sling.feature.cpconverter.accesscontrol;
 
 import org.apache.sling.feature.cpconverter.shared.RepoPath;
 import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
 
 import java.util.LinkedList;
 import java.util.List;
@@ -49,8 +48,8 @@ public final class AccessControlEntry {
         this.isPrincipalBased = isPrincipalBased;
     }
 
-    public void addRestriction(@Nullable String restriction) {
-        if (restriction != null && !restriction.isEmpty()) {
+    public void addRestriction(@NotNull String restriction) {
+        if (!restriction.isEmpty()) {
             restrictions.add(restriction);
         }
     }
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManager.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManager.java
index 0aa5eae..8ca506d 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManager.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManager.java
@@ -34,11 +34,11 @@ public interface AclManager {
 
     boolean addSystemUser(@NotNull SystemUser systemUser);
 
-    boolean addAcl(String systemUser, AccessControlEntry acl);
+    boolean addAcl(@NotNull String systemUser, @NotNull AccessControlEntry 
acl);
 
-    void addRepoinitExtension(List<VaultPackageAssembler> packageAssemblers, 
FeaturesManager featureManager);
+    void addRepoinitExtension(@NotNull List<VaultPackageAssembler> 
packageAssemblers, @NotNull FeaturesManager featureManager);
 
-    void addNodetypeRegistrationSentence(String nodetypeRegistrationSentence);
+    void addNodetypeRegistrationSentence(@NotNull String 
nodetypeRegistrationSentence);
 
     void addPrivilegeDefinitions(@NotNull PrivilegeDefinitions 
privilegeDefinitions);
 
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
index 728343b..f79c6d5 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/DefaultAclManager.java
@@ -72,20 +72,22 @@ public class DefaultAclManager implements AclManager {
         this.supportedPrincipalBasedPath = (supportedPrincipalBasedPath == 
null) ? null : new RepoPath(supportedPrincipalBasedPath);
     }
 
-
     @Override
     public boolean addUser(@NotNull User user) {
         return users.add(user);
     }
 
+    @Override
     public boolean addGroup(@NotNull Group group) {
         return groups.add(group);
     }
 
+    @Override
     public boolean addSystemUser(@NotNull SystemUser systemUser) {
         return systemUsers.add(systemUser);
     }
 
+    @Override
     public boolean addAcl(@NotNull String systemUser, @NotNull 
AccessControlEntry acl) {
         if (getSystemUser(systemUser).isPresent()) {
             acls.computeIfAbsent(systemUser, k -> new LinkedList<>()).add(acl);
@@ -94,6 +96,7 @@ public class DefaultAclManager implements AclManager {
         return false;
     }
 
+    @Override
     public void addRepoinitExtension(@NotNull List<VaultPackageAssembler> 
packageAssemblers, @NotNull FeaturesManager featureManager) {
         try (Formatter formatter = new Formatter()) {
 
@@ -105,52 +108,8 @@ public class DefaultAclManager implements AclManager {
                 formatter.format("%s%n", nodetypeRegistrationSentence);
             }
 
-            // system users
-
-            for (SystemUser systemUser : systemUsers) {
-                // make sure all users are created first
-                formatter.format("create service user %s with path %s%n", 
systemUser.getId(), 
calculateIntermediatePath(systemUser.getIntermediatePath()));
-                if (aclIsBelow(systemUser.getPath())) {
-                    throw new IllegalStateException("Detected policy on 
subpath of system-user: " + systemUser);
-                }
-            }
-
-            for (Group group : groups) {
-                if (aclStartsWith(group.getPath())) {
-                    formatter.format("create group %s with path %s%n", 
group.getId(), group.getIntermediatePath());
-                }
-                if (aclIsBelow(group.getPath())) {
-                    throw new IllegalStateException("Detected policy on 
subpath of group: " + group);
-                }
-            }
-
-            for (User user : users) {
-                if (aclStartsWith(user.getPath())) {
-                    throw new IllegalStateException("Detected policy on user: 
" + user);
-                }
-            }
-
-            if (!enforcePrincipalBased) {
-                Set<RepoPath> paths = acls.entrySet().stream()
-                        .filter(entry -> 
getSystemUser(entry.getKey()).isPresent())
-                        .map(Entry::getValue)
-                        .flatMap(Collection::stream)
-                        // paths only should/need to be create with 
resource-based access control
-                        .filter(((Predicate<AccessControlEntry>) 
AccessControlEntry::isPrincipalBased).negate())
-                        .map(AccessControlEntry::getRepositoryPath)
-                        .collect(Collectors.toSet());
-
-                paths.stream()
-                        .filter(path -> paths.stream().noneMatch(other -> 
!other.equals(path) && other.startsWith(path)))
-                        
.filter(((Predicate<RepoPath>)RepoPath::isRepositoryPath).negate())
-                        .filter(path -> Stream.of(systemUsers, users, 
groups).flatMap(Collection::stream)
-                                .noneMatch(user -> 
user.getPath().startsWith(path)))
-                        .map(path -> computePathWithTypes(path, 
packageAssemblers))
-                        .filter(Objects::nonNull)
-                        .forEach(
-                                path -> formatter.format("create path %s%n", 
path)
-                        );
-            }
+            addUsersAndGroups(formatter);
+            addPaths(formatter, packageAssemblers);
 
             // add the acls
             acls.forEach((systemUserID, authorizations) ->
@@ -166,6 +125,31 @@ public class DefaultAclManager implements AclManager {
         }
     }
 
+    private void addUsersAndGroups(@NotNull Formatter formatter) {
+        for (SystemUser systemUser : systemUsers) {
+            // make sure all system users are created first
+            formatter.format("create service user %s with path %s%n", 
systemUser.getId(), 
calculateIntermediatePath(systemUser.getIntermediatePath()));
+            if (aclIsBelow(systemUser.getPath())) {
+                throw new IllegalStateException("Detected policy on subpath of 
system-user: " + systemUser);
+            }
+        }
+
+        for (Group group : groups) {
+            if (aclStartsWith(group.getPath())) {
+                formatter.format("create group %s with path %s%n", 
group.getId(), group.getIntermediatePath());
+            }
+            if (aclIsBelow(group.getPath())) {
+                throw new IllegalStateException("Detected policy on subpath of 
group: " + group);
+            }
+        }
+
+        for (User user : users) {
+            if (aclStartsWith(user.getPath())) {
+                throw new IllegalStateException("Detected policy on user: " + 
user);
+            }
+        }
+    }
+
     @NotNull
     private String calculateIntermediatePath(@NotNull RepoPath 
intermediatePath) {
         if (enforcePrincipalBased && supportedPrincipalBasedPath != null && 
!intermediatePath.startsWith(supportedPrincipalBasedPath)) {
@@ -183,6 +167,30 @@ public class DefaultAclManager implements AclManager {
         }
     }
 
+    private void addPaths(@NotNull Formatter formatter, @NotNull 
List<VaultPackageAssembler> packageAssemblers) {
+        if (!enforcePrincipalBased) {
+            Set<RepoPath> paths = acls.entrySet().stream()
+                    .filter(entry -> getSystemUser(entry.getKey()).isPresent())
+                    .map(Entry::getValue)
+                    .flatMap(Collection::stream)
+                    // paths only should/need to be create with resource-based 
access control
+                    .filter(((Predicate<AccessControlEntry>) 
AccessControlEntry::isPrincipalBased).negate())
+                    .map(AccessControlEntry::getRepositoryPath)
+                    .collect(Collectors.toSet());
+
+            paths.stream()
+                    .filter(path -> paths.stream().noneMatch(other -> 
!other.equals(path) && other.startsWith(path)))
+                    
.filter(((Predicate<RepoPath>)RepoPath::isRepositoryPath).negate())
+                    .filter(path -> Stream.of(systemUsers, users, 
groups).flatMap(Collection::stream)
+                            .noneMatch(user -> 
user.getPath().startsWith(path)))
+                    .map(path -> computePathWithTypes(path, packageAssemblers))
+                    .filter(Objects::nonNull)
+                    .forEach(
+                            path -> formatter.format("create path %s%n", path)
+                    );
+        }
+    }
+
     private boolean aclStartsWith(@NotNull RepoPath path) {
         return acls.values().stream().flatMap(List::stream).anyMatch(acl -> 
acl.getRepositoryPath().startsWith(path));
     }
@@ -194,10 +202,6 @@ public class DefaultAclManager implements AclManager {
     private void addStatements(@NotNull SystemUser systemUser,
                                @NotNull List<AccessControlEntry> 
authorizations,
                                @NotNull Formatter formatter) {
-        if (authorizations.isEmpty()) {
-            return;
-        }
-
         Map<AccessControlEntry, String> resourceEntries = new 
LinkedHashMap<>();
         Map<AccessControlEntry, String> principalEntries = new 
LinkedHashMap<>();
 
@@ -241,10 +245,8 @@ public class DefaultAclManager implements AclManager {
     }
 
     @Override
-    public void addNodetypeRegistrationSentence(@Nullable String 
nodetypeRegistrationSentence) {
-        if (nodetypeRegistrationSentence != null) {
-            nodetypeRegistrationSentences.add(nodetypeRegistrationSentence);
-        }
+    public void addNodetypeRegistrationSentence(@NotNull String 
nodetypeRegistrationSentence) {
+        nodetypeRegistrationSentences.add(nodetypeRegistrationSentence);
     }
 
     @Override
@@ -252,6 +254,7 @@ public class DefaultAclManager implements AclManager {
         this.privilegeDefinitions = privilegeDefinitions;
     }
 
+    @Override
     public void reset() {
         systemUsers.clear();
         acls.clear();
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/MixinParser.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/MixinParser.java
index b447493..236e401 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/MixinParser.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/MixinParser.java
@@ -19,7 +19,6 @@ package org.apache.sling.feature.cpconverter.accesscontrol;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.feature.cpconverter.shared.AbstractJcrNodeParser;
 import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
 
 final class MixinParser extends AbstractJcrNodeParser<String> {
     private String mixins;
@@ -34,8 +33,7 @@ final class MixinParser extends AbstractJcrNodeParser<String> 
{
     }
 
     @Override
-    protected void onJcrRootElement(String uri, String localName, String 
qName, Attributes attributes)
-            throws SAXException {
+    protected void onJcrRootElement(String uri, String localName, String 
qName, Attributes attributes) {
         // not needed
     }
 
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/PrimaryTypeParser.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/PrimaryTypeParser.java
index ffed8fc..49799aa 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/PrimaryTypeParser.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/accesscontrol/PrimaryTypeParser.java
@@ -18,7 +18,6 @@ package org.apache.sling.feature.cpconverter.accesscontrol;
 
 import org.apache.sling.feature.cpconverter.shared.AbstractJcrNodeParser;
 import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
 
 final class PrimaryTypeParser extends AbstractJcrNodeParser<String> {
 
@@ -27,14 +26,12 @@ final class PrimaryTypeParser extends 
AbstractJcrNodeParser<String> {
     }
 
     @Override
-    protected void onJcrRootNode(String uri, String localName, String qName, 
Attributes attributes, String primaryType)
-            throws SAXException {
+    protected void onJcrRootNode(String uri, String localName, String qName, 
Attributes attributes, String primaryType) {
         detectedPrimaryType = primaryType;
     }
 
     @Override
-    protected void onJcrRootElement(String uri, String localName, String 
qName, Attributes attributes)
-            throws SAXException {
+    protected void onJcrRootElement(String uri, String localName, String 
qName, Attributes attributes) {
         // not needed
     }
 
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
index 13a8fa0..404d111 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
@@ -16,8 +16,16 @@
  */
 package org.apache.sling.feature.cpconverter.handlers;
 
-import static java.util.Objects.requireNonNull;
-import static 
org.apache.jackrabbit.vault.packaging.PackageProperties.NAME_VERSION;
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.felix.utils.manifest.Parser;
+import org.apache.jackrabbit.vault.fs.io.Archive;
+import org.apache.jackrabbit.vault.fs.io.Archive.Entry;
+import org.apache.sling.feature.ArtifactId;
+import 
org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
+import 
org.apache.sling.feature.cpconverter.artifacts.InputStreamArtifactWriter;
+import org.codehaus.plexus.util.StringUtils;
+import org.jetbrains.annotations.NotNull;
+import org.osgi.framework.Constants;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,18 +37,8 @@ import java.util.jar.Manifest;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.felix.utils.manifest.Clause;
-import org.apache.felix.utils.manifest.Parser;
-import org.apache.jackrabbit.vault.fs.io.Archive;
-import org.apache.jackrabbit.vault.fs.io.Archive.Entry;
-import org.apache.sling.feature.ArtifactId;
-import 
org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
-import 
org.apache.sling.feature.cpconverter.artifacts.InputStreamArtifactWriter;
-import org.codehaus.plexus.util.StringUtils;
-import org.jetbrains.annotations.NotNull;
-import org.osgi.framework.Constants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import static java.util.Objects.requireNonNull;
+import static 
org.apache.jackrabbit.vault.packaging.PackageProperties.NAME_VERSION;
 
 public final class BundleEntryHandler extends AbstractRegexEntryHandler {
 
@@ -58,8 +56,6 @@ public final class BundleEntryHandler extends 
AbstractRegexEntryHandler {
 
     private static final String JAR_TYPE = "jar";
 
-    private final Logger logger = LoggerFactory.getLogger(getClass());
-
     private final Pattern pomPropertiesPattern = 
Pattern.compile("META-INF/maven/[^/]+/[^/]+/pom.properties");
 
     public BundleEntryHandler() {
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
index 9c20896..30bb854 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/DefaultEntryHandlersManager.java
@@ -36,9 +36,7 @@ public class DefaultEntryHandlersManager implements 
EntryHandlersManager {
 
     @Override
     public void addEntryHandler(@NotNull EntryHandler handler) {
-        if (handler != null) {
-            entryHandlers.add(handler);
-        }
+        entryHandlers.add(handler);
     }
 
     @Override
@@ -48,7 +46,6 @@ public class DefaultEntryHandlersManager implements 
EntryHandlersManager {
                 return entryHandler;
             }
         }
-
         return null;
     }
 
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/shared/AbstractJcrNodeParser.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/shared/AbstractJcrNodeParser.java
index c265f5f..54d4d60 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/shared/AbstractJcrNodeParser.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/shared/AbstractJcrNodeParser.java
@@ -58,14 +58,14 @@ public abstract class AbstractJcrNodeParser<O> extends 
DefaultHandler {
         }
     }
 
-    protected void onJcrRootNode(String uri, String localName, String qName, 
Attributes attributes, String primaryType) throws SAXException {
+    protected void onJcrRootNode(String uri, String localName, String qName, 
Attributes attributes, String primaryType) {
         if (this.primaryTypes.contains(primaryType)) {
             detectedPrimaryType = primaryType;
             onJcrRootElement(uri, localName, qName, attributes);
         }
     }
 
-    protected abstract void onJcrRootElement(String uri, String localName, 
String qName, Attributes attributes) throws SAXException;
+    protected abstract void onJcrRootElement(String uri, String localName, 
String qName, Attributes attributes);
 
     protected abstract O getParsingResult();
 }
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/RecollectorVaultPackageScanner.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/RecollectorVaultPackageScanner.java
index ec25f3a..b8eff4d 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/RecollectorVaultPackageScanner.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/RecollectorVaultPackageScanner.java
@@ -47,7 +47,7 @@ public final class RecollectorVaultPackageScanner extends 
BaseVaultPackageScanne
     }
 
     @Override
-    protected void onFile(String path, Archive archive, Entry entry) throws 
Exception {
+    protected void onFile(@NotNull String path, @NotNull Archive archive, 
@NotNull Entry entry) throws Exception {
         for (EntryHandler handler : handlers) {
             if (handler.matches(path)) {
                 handler.handle(path, archive, entry, converter);
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
index 52b66fa..8e74167 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/AclManagerTest.java
@@ -37,11 +37,14 @@ import java.io.File;
 import java.io.StringReader;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -83,7 +86,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
@@ -125,7 +128,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
@@ -147,7 +150,7 @@ public class AclManagerTest {
     }
 
     @Test
-    public void testAddACLforUnknownUser() throws RepoInitParsingException {
+    public void testAddACLforUnknownUser() {
         // we expect this acl to not show up because the user is unknown
         aclManager.addAcl("acs-commons-on-deploy-scripts-service", 
newAcl(true, "jcr:read,crx:replicate,jcr:removeNode", "/home/users/system"));
 
@@ -158,7 +161,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
@@ -177,7 +180,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -210,7 +213,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -240,7 +243,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -268,7 +271,7 @@ public class AclManagerTest {
 
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
     }
 
     @Test(expected = IllegalStateException.class)
@@ -283,7 +286,7 @@ public class AclManagerTest {
 
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
     }
 
     @Test
@@ -299,7 +302,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -327,7 +330,7 @@ public class AclManagerTest {
         FeaturesManager fm = Mockito.spy(new 
DefaultFeaturesManager(tempDir.toFile()));
         when(fm.getTargetFeature()).thenReturn(feature);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/EnforcePrincipalBasedTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/EnforcePrincipalBasedTest.java
index 51d9884..33c390f 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/EnforcePrincipalBasedTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/accesscontrol/EnforcePrincipalBasedTest.java
@@ -38,13 +38,14 @@ import java.io.File;
 import java.io.StringReader;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -92,8 +93,21 @@ public class EnforcePrincipalBasedTest {
         RepoPath accessControlledPath = new RepoPath("/content/feature");
         aclManager.addAcl(systemUser.getId(), new AccessControlEntry(true, 
"jcr:read", accessControlledPath , false));
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
+    }
+
+    @Test
+    public void testMissingSupportedPath() {
+        AclManager aclManager = new DefaultAclManager(true, null);
+        aclManager.addSystemUser(systemUser);
+
+        RepoPath accessControlledPath = new RepoPath("/content/feature");
+        aclManager.addAcl(systemUser.getId(), new AccessControlEntry(true, 
"jcr:read", accessControlledPath , false));
 
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
+        String txt = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT).getText();
+        assertFalse(txt.contains("create service user user1 with path 
/home/users/system/some/subtree/intermediate"));
+        assertTrue(txt.contains("create service user user1 with path " + 
systemUser.getIntermediatePath()));
     }
 
     @Test
@@ -109,13 +123,13 @@ public class EnforcePrincipalBasedTest {
         RepoPath accessControlledPath = new RepoPath("/content/feature");
         aclManager.addAcl(systemUser.getId(), new AccessControlEntry(true, 
"jcr:read", accessControlledPath , false));
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
 
         String expected =
-                "create service user user1 with path 
/home/users/system/intermediate" + System.lineSeparator() +
+                "create service user user1 with path " + 
systemUser.getIntermediatePath() + System.lineSeparator() +
                 "create path /content/feature(sling:Folder)" + 
System.lineSeparator() +
                 "set ACL for user1" + System.lineSeparator() +
                 "allow jcr:read on /content/feature" + System.lineSeparator() +
@@ -134,7 +148,7 @@ public class EnforcePrincipalBasedTest {
         accessControlledPath = new RepoPath("/content/feature");
         aclManager.addAcl(systemUser.getId(), new AccessControlEntry(true, 
"jcr:read", accessControlledPath , false));
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -160,7 +174,7 @@ public class EnforcePrincipalBasedTest {
         RepoPath accessControlledPath = new RepoPath("/content/feature");
         aclManager.addAcl(systemUser.getId(), new AccessControlEntry(true, 
"jcr:read", accessControlledPath , false));
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -186,7 +200,7 @@ public class EnforcePrincipalBasedTest {
         RepoPath accessControlledPath = new RepoPath("/content/feature");
         aclManager.addAcl("user1", new AccessControlEntry(true, "jcr:read", 
accessControlledPath, true));
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
@@ -213,7 +227,7 @@ public class EnforcePrincipalBasedTest {
         AccessControlEntry acl = new AccessControlEntry(true, "jcr:read", 
accessControlledPath, true);
         aclManager.addAcl("user1", acl);
 
-        aclManager.addRepoinitExtension(Arrays.asList(assembler), fm);
+        aclManager.addRepoinitExtension(Collections.singletonList(assembler), 
fm);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
index bfe3fa3..06a8a74 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/PrivilegesHandlerTest.java
@@ -16,15 +16,6 @@
  */
 package org.apache.sling.feature.cpconverter.handlers;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import java.util.Arrays;
-
 import org.apache.jackrabbit.vault.fs.config.DefaultMetaInf;
 import org.apache.jackrabbit.vault.fs.io.Archive;
 import org.apache.jackrabbit.vault.fs.io.Archive.Entry;
@@ -40,6 +31,15 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.Collections;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
 public class PrivilegesHandlerTest {
 
     private PrivilegesHandler handler;
@@ -87,7 +87,7 @@ public class PrivilegesHandlerTest {
 
         handler.handle(path, archive, entry, converter);
 
-        
converter.getAclManager().addRepoinitExtension(Arrays.asList(packageAssembler), 
featuresManager);
+        
converter.getAclManager().addRepoinitExtension(Collections.singletonList(packageAssembler),
 featuresManager);
 
         Extension repoinitExtension = 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         assertNotNull(repoinitExtension);
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
index e1c4b48..c70d39d 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPolicyEntryHandlerTest.java
@@ -17,7 +17,6 @@
 package org.apache.sling.feature.cpconverter.handlers;
 
 import org.apache.sling.feature.Extension;
-import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.DefaultAclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.Group;
@@ -38,11 +37,8 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
 
 public final class RepPolicyEntryHandlerTest {
 
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPrincipalPolicyEntryHandlerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPrincipalPolicyEntryHandlerTest.java
index 9849b4f..fa4e04e 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPrincipalPolicyEntryHandlerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepPrincipalPolicyEntryHandlerTest.java
@@ -17,7 +17,6 @@
 package org.apache.sling.feature.cpconverter.handlers;
 
 import org.apache.sling.feature.Extension;
-import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.DefaultAclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.SystemUser;
@@ -37,7 +36,6 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 public final class RepPrincipalPolicyEntryHandlerTest {
@@ -102,7 +100,7 @@ public final class RepPrincipalPolicyEntryHandlerTest {
 
     @Test(expected = IllegalStateException.class)
     public void parsePolicyInSubtree() throws Exception {
-        parseAndSetRepoinit("service3", "random3").getRepoinitExtension();
+        parseAndSetRepoinit("service3", "random3");
     }
 
     @Test
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
index cf65878..1d79ef1 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/RepRepoPolicyEntryHandlerTest.java
@@ -17,7 +17,6 @@
 package org.apache.sling.feature.cpconverter.handlers;
 
 import org.apache.sling.feature.Extension;
-import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.DefaultAclManager;
 import org.apache.sling.feature.cpconverter.accesscontrol.SystemUser;
@@ -34,9 +33,7 @@ import java.io.OutputStream;
 import java.io.StringReader;
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 public class RepRepoPolicyEntryHandlerTest {
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/TestUtils.java 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/TestUtils.java
index 396766a..a950260 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/TestUtils.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/TestUtils.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.Arrays;
+import java.util.Collections;
 
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
@@ -71,7 +71,7 @@ class TestUtils {
 
         when(packageAssembler.getEntry(anyString())).thenReturn(new 
File("itdoesnotexist"));
 
-        
converter.getAclManager().addRepoinitExtension(Arrays.asList(packageAssembler), 
featuresManager);
+        
converter.getAclManager().addRepoinitExtension(Collections.singletonList(packageAssembler),
 featuresManager);
         return 
feature.getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
     }
 }
\ No newline at end of file
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/UsersEntryHandlerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/UsersEntryHandlerTest.java
index 5ba09b5..914a51c 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/UsersEntryHandlerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/UsersEntryHandlerTest.java
@@ -16,21 +16,6 @@
  */
 package org.apache.sling.feature.cpconverter.handlers;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import java.io.StringReader;
-import java.util.List;
-
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.cpconverter.accesscontrol.AclManager;
@@ -44,6 +29,20 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.io.StringReader;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
 public class UsersEntryHandlerTest {
 
     private UsersEntryHandler usersEntryHandler;
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/NodeTypesDetectionTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/NodeTypesDetectionTest.java
index ea80563..6d36490 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/NodeTypesDetectionTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/NodeTypesDetectionTest.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.regex.Pattern;
 
 import org.apache.jackrabbit.vault.fs.io.ImportOptions;
+import org.jetbrains.annotations.NotNull;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -47,7 +48,7 @@ public class NodeTypesDetectionTest {
 
         new BaseVaultPackageScanner(true) {
 
-            protected void addCdnPattern(Pattern cndPattern) {
+            protected void addCdnPattern(@NotNull Pattern cndPattern) {
                 detectedCndFiles.add(cndPattern.pattern());
             }
 
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/PackagesEventsEmitterTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/PackagesEventsEmitterTest.java
index 1dce955..0eee6bf 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/PackagesEventsEmitterTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/vltpkg/PackagesEventsEmitterTest.java
@@ -16,33 +16,24 @@
  */
 package org.apache.sling.feature.cpconverter.vltpkg;
 
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.StringWriter;
-import java.util.Calendar;
-
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.apache.jackrabbit.vault.fs.config.MetaInf;
-import org.apache.jackrabbit.vault.fs.io.AccessControlHandling;
-import org.apache.jackrabbit.vault.fs.io.Archive;
-import org.apache.jackrabbit.vault.fs.io.ImportOptions;
 import org.apache.jackrabbit.vault.packaging.Dependency;
 import org.apache.jackrabbit.vault.packaging.PackageException;
 import org.apache.jackrabbit.vault.packaging.PackageId;
-import org.apache.jackrabbit.vault.packaging.PackageProperties;
 import org.apache.jackrabbit.vault.packaging.PackageType;
-import org.apache.jackrabbit.vault.packaging.SubPackageHandling;
 import org.apache.jackrabbit.vault.packaging.VaultPackage;
 import org.junit.Test;
 
+import javax.jcr.RepositoryException;
+import java.io.File;
+import java.io.StringWriter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public class PackagesEventsEmitterTest {
 
     private static final PackageId ID_NESTED_CHILD = new 
PackageId("apache/sling", "nested-child", "1.0.0");

Reply via email to