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"