You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2015/11/27 10:52:50 UTC

svn commit: r1716813 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: queue/impl/jobhandling/JobHandlingDistributionQueue.java serialization/impl/ResourceSharedDistributionPackageBuilder.java

Author: mpetria
Date: Fri Nov 27 09:52:50 2015
New Revision: 1716813

URL: http://svn.apache.org/viewvc?rev=1716813&view=rev
Log:
SLING-5336: improve shared distribution packages concurrency

Modified:
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
    sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java?rev=1716813&r1=1716812&r2=1716813&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java Fri Nov 27 09:52:50 2015
@@ -72,7 +72,7 @@ public class JobHandlingDistributionQueu
             Map<String, Object> properties = JobHandlingUtils.createFullProperties(item);
 
             Job job = jobManager.createJob(topic).properties(properties).add();
-            log.info("job {} added", job.getId());
+            log.info("job {} added for item {}", job.getId(), item.getId());
         } catch (Exception e) {
             log.error("could not add an item to the queue", e);
             result = false;
@@ -99,7 +99,7 @@ public class JobHandlingDistributionQueu
         List<Job> jobs = getJobs(0, 1);
         if (jobs.size() > 0) {
             Job firstItem = jobs.get(0);
-            log.info("first item in the queue is {}, retried {} times", firstItem.getId(), firstItem.getRetryCount());
+            log.debug("first item in the queue is {}, retried {} times", firstItem.getId(), firstItem.getRetryCount());
             return firstItem;
         }
         return null;

Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java?rev=1716813&r1=1716812&r2=1716813&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java Fri Nov 27 09:52:50 2015
@@ -37,8 +37,12 @@ import org.apache.sling.distribution.com
 import org.apache.sling.distribution.serialization.DistributionPackage;
 import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
 import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ResourceSharedDistributionPackageBuilder implements DistributionPackageBuilder {
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
 
     private static final String PN_ORIGINAL_ID = "original.package.id";
     private static final String PN_ORIGINAL_REQUEST_TYPE = "original.package.request.type";
@@ -78,7 +82,10 @@ public class ResourceSharedDistributionP
         }
 
         String packagePath = getPathFromName(packageName);
-        return new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
+        DistributionPackage sharedDistributionPackage = new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
+
+        log.info("created shared package {} for {}", sharedDistributionPackage.getId(), distributionPackage.getId());
+        return sharedDistributionPackage;
 
     }
 
@@ -130,9 +137,9 @@ public class ResourceSharedDistributionP
             return false;
         }
 
-        ResourceSharedDistributionPackage shareddistributionPackage = (ResourceSharedDistributionPackage) distributionPackage;
+        ResourceSharedDistributionPackage sharedistributionPackage = (ResourceSharedDistributionPackage) distributionPackage;
 
-        DistributionPackage originalPackage = shareddistributionPackage.getPackage();
+        DistributionPackage originalPackage = sharedistributionPackage.getPackage();
         return distributionPackageBuilder.installPackage(resourceResolver, originalPackage);
     }
 
@@ -155,13 +162,14 @@ public class ResourceSharedDistributionP
 
         String packagePath = getPathFromName(name);
 
-        Resource resource = ResourceUtil.getOrCreateResource(resourceResolver, packagePath,
-                "sling:Folder", "sling:Folder", false);
-
-        ModifiableValueMap valueMap = resource.adaptTo(ModifiableValueMap.class);
-        valueMap.putAll(properties);
 
         synchronized (repolock) {
+            Resource resource = ResourceUtil.getOrCreateResource(resourceResolver, packagePath,
+                    "sling:Folder", "sling:Folder", false);
+
+            ModifiableValueMap valueMap = resource.adaptTo(ModifiableValueMap.class);
+            valueMap.putAll(properties);
+
             resourceResolver.create(resource, ResourceSharedDistributionPackage.REFERENCE_ROOT_NODE,
                     Collections.singletonMap(ResourceResolver.PROPERTY_RESOURCE_TYPE, (Object) "sling:Folder"));