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