This is an automated email from the ASF dual-hosted git repository.
cschneider pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
The following commit(s) were added to refs/heads/master by this push:
new 0949d58 SLING-10067 - Use deep distribution for assets
0949d58 is described below
commit 0949d58048fa312f64d0e5012eb9a37ba63620b6
Author: Christian Schneider <[email protected]>
AuthorDate: Sun Jan 31 17:03:06 2021 +0100
SLING-10067 - Use deep distribution for assets
---
.../sling/distribution/chunked/ChunkedDistribution.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git
a/chunked-distribution/src/main/java/org/apache/sling/distribution/chunked/ChunkedDistribution.java
b/chunked-distribution/src/main/java/org/apache/sling/distribution/chunked/ChunkedDistribution.java
index 9645adc..09c64ef 100644
---
a/chunked-distribution/src/main/java/org/apache/sling/distribution/chunked/ChunkedDistribution.java
+++
b/chunked-distribution/src/main/java/org/apache/sling/distribution/chunked/ChunkedDistribution.java
@@ -19,10 +19,14 @@
package org.apache.sling.distribution.chunked;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import java.util.regex.Pattern;
+import javax.jcr.Node;
+
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
@@ -120,8 +124,18 @@ public class ChunkedDistribution implements JobExecutor {
private void distributeChunk(ResourceResolver resolver, List<String>
paths, JobExecutionContext context) {
try {
+ Set<String> deepPaths = new HashSet<>();
+
+ for (String path : paths) {
+ Resource res = resolver.getResource(path);
+ Node node = res.adaptTo(Node.class);
+ if (node.isNodeType("dam:Asset")) {
+ deepPaths.add(path);
+ }
+ }
+
String[] pathsAr = paths.toArray(new String[] {});
- DistributionRequest request = new
SimpleDistributionRequest(DistributionRequestType.ADD, pathsAr);
+ DistributionRequest request = new
SimpleDistributionRequest(DistributionRequestType.ADD, pathsAr, deepPaths);
distributor.distribute("publish", resolver, request);
} catch (Exception e) {
String firstPath = paths.iterator().next();