SLING-11287: adjust distribution-sample for itegration-tests (#2)

* SLING-11287: adjust distribution-sample for integration-tests
* SLING-11287: giving access to the user for namespaceManagement
* SLING-11287: null checks
diff --git a/bnd.bnd b/bnd.bnd
index e865e29..14ebb05 100644
--- a/bnd.bnd
+++ b/bnd.bnd
@@ -1,6 +1,8 @@
 Bundle-Category: sling
+
 Bundle-Description: ${project.description}
-Bundle-License: Apache License, Version 2.0
-Sling-Initial-Content: SLING-CONTENT/libs/sling/distribution;path:=/libs/sling/distribution;overwrite:=true,\
+
+Sling-Initial-Content:\
+    SLING-CONTENT/libs/sling/distribution;path:=/libs/sling/distribution;overwrite:=true,\
     SLING-CONTENT/var/sling/distribution;path:=/var/sling/distribution;overwrite:=true,\
     SLING-CONTENT/etc/distribution;path:=/etc/distribution;overwrite:=true
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/distribution/test/Init.java b/src/main/java/org/apache/sling/distribution/test/Init.java
index 4e33974..4e56fb2 100644
--- a/src/main/java/org/apache/sling/distribution/test/Init.java
+++ b/src/main/java/org/apache/sling/distribution/test/Init.java
@@ -65,10 +65,9 @@
             User serviceUser = createOrGetServiceUser(userManager, serviceUserName);
 
             if (serviceUser != null) {
-                AccessControlUtils.addAccessControlEntry(session, "/var/sling/distribution/packages", serviceUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-                AccessControlUtils.addAccessControlEntry(session, "/content", serviceUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
+                AccessControlUtils.addAccessControlEntry(session, "/", serviceUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
                 AccessControlUtils.addAccessControlEntry(session, null, serviceUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-
+                AccessControlUtils.addAccessControlEntry(session, null, serviceUser.getPrincipal(), new String[]{"jcr:namespaceManagement", "jcr:nodeTypeDefinitionManagement"}, true);
             }
 
             Authorizable distributorUser = createOrGetRegularUser(userManager, distributorUserName);
@@ -76,19 +75,15 @@
             JcrUtils.getOrCreateByPath("/content", "sling:Folder", session);
 
             if (distributorUser != null) {
-                AccessControlUtils.addAccessControlEntry(session, "/var/sling/distribution/packages", distributorUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-                AccessControlUtils.addAccessControlEntry(session, "/content", distributorUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-                AccessControlUtils.addAccessControlEntry(session, "/libs/sling/distribution", distributorUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-                AccessControlUtils.addAccessControlEntry(session, "/etc/distribution", distributorUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-
+                AccessControlUtils.addAccessControlEntry(session, "/", distributorUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
                 AccessControlUtils.addAccessControlEntry(session, null, distributorUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
-
             }
 
             User defaultAgentUser = createOrGetServiceUser(userManager, defaultAgentUserName);
 
-            if (defaultAgentUser != null) {
+            if (defaultAgentUser != null && serviceUser != null && distributorUser != null) {
                 AccessControlUtils.addAccessControlEntry(session, "/var/sling/distribution/packages", defaultAgentUser.getPrincipal(), new String[]{ Privilege.JCR_ALL }, true);
+
                 ((User) distributorUser).getImpersonation().grantImpersonation(defaultAgentUser.getPrincipal());
                 serviceUser.getImpersonation().grantImpersonation(defaultAgentUser.getPrincipal());
             }
diff --git a/src/main/resources/SLING-CONTENT/etc/packages/sling/distribution.json b/src/main/resources/SLING-CONTENT/etc/packages/sling/distribution.json
new file mode 100644
index 0000000..68baa9c
--- /dev/null
+++ b/src/main/resources/SLING-CONTENT/etc/packages/sling/distribution.json
@@ -0,0 +1,3 @@
+{
+  "jcr:primaryType": "sling:Folder"
+}
\ No newline at end of file
diff --git a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json
index 4f00c4a..9b6a671 100644
--- a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json
+++ b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/publish/org.apache.sling.distribution.agent.impl.ForwardDistributionAgentFactory-publish.json
@@ -1,10 +1,7 @@
 {
     "jcr:primaryType": "sling:OsgiConfig",
-
     "name": "publish",
-
     "serviceName" : "distributionService",
-
     "packageImporter.endpoints": [
         "http://localhost:4503/libs/sling/distribution/services/importers/default"
     ]
diff --git a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/pubsync/org.apache.sling.distribution.trigger.impl.ScheduledDistributionTriggerFactory-pubsync-scheduled-trigger.json b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/pubsync/org.apache.sling.distribution.trigger.impl.ScheduledDistributionTriggerFactory-pubsync-scheduled-trigger.json
index 792c2d7..f918e6a 100644
--- a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/pubsync/org.apache.sling.distribution.trigger.impl.ScheduledDistributionTriggerFactory-pubsync-scheduled-trigger.json
+++ b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.author/pubsync/org.apache.sling.distribution.trigger.impl.ScheduledDistributionTriggerFactory-pubsync-scheduled-trigger.json
@@ -3,6 +3,6 @@
 
     "name": "pubsync-scheduled-trigger",
 
-    "action": "poll",
+    "action": "pull",
     "seconds": "30"
 }
\ No newline at end of file
diff --git a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.notshared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.notshared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json
index 4a0b836..845b7c6 100644
--- a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.notshared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json
+++ b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.notshared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json
@@ -2,6 +2,7 @@
     "jcr:primaryType": "sling:OsgiConfig",
     "name": "default",
     "type": "jcrvlt",
+    "package.roots": ["/content"],
     "cleanupDelay" : 1,
     "package.filters": ["/content|-.*/excluded"],
     "tempFsFolder" : "/var/sling/distribution/packages"
diff --git a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.publish/impexp/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-tempvlt.json b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.publish/impexp/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-tempvlt.json
index 8fb8526..07b27ae 100644
--- a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.publish/impexp/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-tempvlt.json
+++ b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.publish/impexp/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-tempvlt.json
@@ -3,5 +3,6 @@
     "name": "tempvlt",
     "type": "jcrvlt",
     "cleanupDelay" : 1,
+    "package.roots": ["/content"],
     "tempFsFolder" : "/var/sling/distribution/packages"
 }
\ No newline at end of file
diff --git a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.shared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.shared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json
index 953992b..d38f899 100644
--- a/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.shared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json
+++ b/src/main/resources/SLING-CONTENT/libs/sling/distribution/install.shared/org.apache.sling.distribution.serialization.impl.vlt.VaultDistributionPackageBuilderFactory-default.json
@@ -3,6 +3,7 @@
     "name": "default",
     "type": "jcrvlt",
     "cleanupDelay": 1,
+    "package.roots": ["/content"],
     "package.filters": ["/content|-.*/excluded"],
     "useBinaryReferences": true,
     "tempFsFolder" : "/var/sling/distribution/packages"