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();

Reply via email to