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 2016/04/11 11:40:03 UTC
svn commit: r1738560 - in /sling/trunk/contrib/extensions/distribution:
core/src/main/java/org/apache/sling/distribution/agent/impl/
core/src/main/java/org/apache/sling/distribution/monitor/
core/src/main/java/org/apache/sling/distribution/packaging/im...
Author: mpetria
Date: Mon Apr 11 09:40:03 2016
New Revision: 1738560
URL: http://svn.apache.org/viewvc?rev=1738560&view=rev
Log:
SLING-5657: refactor shared packages to enable file storage
Removed:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultSharedDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultSharedDistributionPackageBuilder.java
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheck.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueEntry.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/DistributionAgentJobConsumer.java
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/queue/impl/jobhandling/JobHandlingUtils.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackage.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheckTest.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SingleQueueDistributionStrategyTest.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueTest.java
sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ForwardBinaryDistributionTest.java
sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/MultipleQueueDistributionTest.java
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Mon Apr 11 09:40:03 2016
@@ -52,7 +52,6 @@ import org.apache.sling.distribution.que
import org.apache.sling.distribution.queue.impl.PriorityQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.trigger.DistributionTrigger;
import org.apache.sling.event.jobs.JobManager;
@@ -215,7 +214,7 @@ public class ForwardDistributionAgentFac
priorityQueues = SettingsUtils.removeEmptyEntries(priorityQueues);
- DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(new DefaultSharedDistributionPackageBuilder(packageBuilder));
+ DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder);
DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
DistributionQueueDispatchingStrategy exportQueueStrategy;
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java Mon Apr 11 09:40:03 2016
@@ -45,7 +45,6 @@ import org.apache.sling.distribution.que
import org.apache.sling.distribution.queue.impl.SingleQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.apache.sling.distribution.trigger.DistributionTrigger;
import org.apache.sling.event.jobs.JobManager;
import org.apache.sling.jcr.api.SlingRepository;
@@ -180,7 +179,7 @@ public class QueueDistributionAgentFacto
exportQueueStrategy = new SingleQueueDispatchingStrategy();
}
- DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(new DefaultSharedDistributionPackageBuilder(packageBuilder));
+ DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder);
DistributionRequestType[] allowedRequests = new DistributionRequestType[]{DistributionRequestType.ADD, DistributionRequestType.DELETE};
return new SimpleDistributionAgent(agentName, false, null,
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java Mon Apr 11 09:40:03 2016
@@ -48,7 +48,6 @@ import org.apache.sling.distribution.que
import org.apache.sling.distribution.queue.impl.SingleQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.trigger.DistributionTrigger;
import org.apache.sling.event.jobs.JobManager;
@@ -190,7 +189,6 @@ public class ReverseDistributionAgentFac
int pullItems = PropertiesUtil.toInteger(config.get(PULL_ITEMS), Integer.MAX_VALUE);
- DefaultSharedDistributionPackageBuilder packageBuilder = new DefaultSharedDistributionPackageBuilder(this.packageBuilder);
DistributionPackageExporter packageExporter = new RemoteDistributionPackageExporter(distributionLog, packageBuilder, transportSecretProvider, exporterEndpoints, pullItems);
DistributionPackageImporter packageImporter = new LocalDistributionPackageImporter(packageBuilder);
DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java Mon Apr 11 09:40:03 2016
@@ -430,7 +430,7 @@ public class SimpleDistributionAgent imp
final long startTime = System.currentTimeMillis();
- distributionPackage = distributionPackageExporter.getPackage(agentResourceResolver, queueItem.getId());
+ distributionPackage = distributionPackageExporter.getPackage(agentResourceResolver, queueItem.getPackageId());
if (distributionPackage != null) {
final long packageSize = distributionPackage.getSize();
@@ -464,7 +464,7 @@ public class SimpleDistributionAgent imp
}
} else {
removeItemFromQueue = true; // return success if package does not exist in order to clear the queue.
- log.error("distribution package with id {} does not exist. the package will be skipped.", queueItem.getId());
+ log.error("distribution package with id {} does not exist. the package will be skipped.", queueItem.getPackageId());
}
} finally {
if (removeItemFromQueue) {
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java Mon Apr 11 09:40:03 2016
@@ -51,7 +51,6 @@ import org.apache.sling.distribution.que
import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.trigger.DistributionTrigger;
import org.apache.sling.event.jobs.JobManager;
@@ -235,7 +234,7 @@ public class SyncDistributionAgentFactor
exportQueueStrategy = new MultipleQueueDispatchingStrategy(queueNames);
packageImporter = new RemoteDistributionPackageImporter(distributionLog, transportSecretProvider, importerEndpointsMap);
- DistributionPackageExporter packageExporter = new RemoteDistributionPackageExporter(distributionLog, new DefaultSharedDistributionPackageBuilder(packageBuilder), transportSecretProvider, exporterEndpoints, pullItems);
+ DistributionPackageExporter packageExporter = new RemoteDistributionPackageExporter(distributionLog, packageBuilder, transportSecretProvider, exporterEndpoints, pullItems);
DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context);
DistributionRequestType[] allowedRequests = new DistributionRequestType[]{DistributionRequestType.PULL};
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheck.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheck.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheck.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheck.java Mon Apr 11 09:40:03 2016
@@ -116,11 +116,11 @@ public class DistributionQueueHealthChec
DistributionQueueItem item = entry.getItem();
DistributionQueueItemStatus status = entry.getStatus();
if (status.getAttempts() <= numberOfRetriesAllowed) {
- resultLog.debug("Queue: [{}], first item: [{}], number of retries: {}", q.getName(), item.getId(), status.getAttempts());
+ resultLog.debug("Queue: [{}], first item: [{}], number of retries: {}", q.getName(), entry.getId(), status.getAttempts());
} else {
// the no. of attempts is higher than the configured threshold
resultLog.warn("Queue: [{}], first item: [{}], number of retries: {}, expected number of retries <= {}",
- q.getName(), item.getId(), status.getAttempts(), numberOfRetriesAllowed);
+ q.getName(), entry.getId(), status.getAttempts(), numberOfRetriesAllowed);
failures.put(q.getName(), status.getAttempts());
}
} else {
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java Mon Apr 11 09:40:03 2016
@@ -19,6 +19,8 @@
package org.apache.sling.distribution.packaging.impl;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.jackrabbit.commons.JcrUtils;
import org.apache.sling.api.resource.PersistenceException;
import org.apache.sling.api.resource.Resource;
@@ -33,6 +35,7 @@ import org.apache.sling.distribution.que
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.annotation.Nonnull;
import javax.jcr.Binary;
import javax.jcr.Node;
import javax.jcr.Property;
@@ -40,6 +43,9 @@ import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NodeType;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
@@ -47,7 +53,9 @@ import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -61,6 +69,8 @@ public class DistributionPackageUtils {
private final static String META_START = "DSTRPACKMETA";
private static Object repolock = new Object();
+ private static Object filelock = new Object();
+
@@ -284,6 +294,115 @@ public class DistributionPackageUtils {
Node content = JcrUtils.getOrAddNode(file, Node.JCR_CONTENT, NodeType.NT_RESOURCE);
Binary binary = parent.getSession().getValueFactory().createBinary(stream);
content.setProperty(Property.JCR_DATA, binary);
+ Node refs = JcrUtils.getOrAddNode(parent, "refs", NodeType.NT_UNSTRUCTURED);
+ }
+
+
+ public static void acquire(Resource resource, @Nonnull String[] holderNames) throws RepositoryException {
+ if (holderNames.length == 0) {
+ throw new IllegalArgumentException("holder name cannot be null or empty");
+ }
+
+ Node parent = resource.adaptTo(Node.class);
+
+ Node refs = parent.getNode("refs");
+
+ for (String holderName : holderNames) {
+ if (!refs.hasNode(holderName)) {
+ refs.addNode(holderName, NodeType.NT_UNSTRUCTURED);
+ }
+ }
+ }
+
+
+ public static boolean release(Resource resource, @Nonnull String[] holderNames) throws RepositoryException {
+ if (holderNames.length == 0) {
+ throw new IllegalArgumentException("holder name cannot be null or empty");
+ }
+
+ Node parent = resource.adaptTo(Node.class);
+
+ Node refs = parent.getNode("refs");
+
+ for (String holderName : holderNames) {
+ Node refNode = refs.getNode(holderName);
+ if (refNode != null) {
+ refNode.remove();
+ }
+ }
+
+ if (!refs.hasNodes()) {
+ refs.remove();
+ return true;
+ }
+
+ return false;
+ }
+
+
+ public static void acquire(File file, @Nonnull String[] holderNames) throws IOException {
+
+ if (holderNames.length == 0) {
+ throw new IllegalArgumentException("holder name cannot be null or empty");
+ }
+
+ synchronized (filelock) {
+ try {
+ HashSet<String> set = new HashSet<String>();
+
+ if (file.exists()) {
+ ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(file));
+ set = (HashSet<String>) inputStream.readObject();
+ IOUtils.closeQuietly(inputStream);
+ }
+
+ set.addAll(Arrays.asList(holderNames));
+
+ ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file));
+ outputStream.writeObject(set);
+ IOUtils.closeQuietly(outputStream);
+
+ } catch (ClassNotFoundException e) {
+ log.error("Cannot release file", e);
+ }
+ }
+
+
+ }
+
+
+ public static boolean release(File file, @Nonnull String[] holderNames) throws IOException {
+ if (holderNames.length == 0) {
+ throw new IllegalArgumentException("holder name cannot be null or empty");
+ }
+
+ synchronized (filelock) {
+ try {
+
+ HashSet<String> set = new HashSet<String>();
+
+ if (file.exists()) {
+ ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(file));
+ set = (HashSet<String>) inputStream.readObject();
+ IOUtils.closeQuietly(inputStream);
+ }
+
+ set.removeAll(Arrays.asList(holderNames));
+
+ if (set.isEmpty()) {
+ FileUtils.deleteQuietly(file);
+ return true;
+ }
+
+ ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file));
+ outputStream.writeObject(set);
+ IOUtils.closeQuietly(outputStream);
+ }
+ catch (ClassNotFoundException e) {
+ log.error("Cannot release file", e);
+ }
+ }
+ return false;
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java Mon Apr 11 09:40:03 2016
@@ -87,12 +87,12 @@ public class AgentDistributionPackageExp
DistributionPackageBuilder packageBuilder = packageBuilderProvider.getPackageBuilder(info.getType());
if (packageBuilder != null) {
- distributionPackage = packageBuilder.getPackage(resourceResolver, queueItem.getId());
+ distributionPackage = packageBuilder.getPackage(resourceResolver, queueItem.getPackageId());
distributionPackage.getInfo().putAll(info);
log.debug("item {} fetched from the queue", info);
if (distributionPackage != null) {
- packageProcessor.process(new AgentDistributionPackage(distributionPackage, queue));
+ packageProcessor.process(new AgentDistributionPackage(distributionPackage, queue, entry.getId()));
} else {
log.warn("cannot get package {}", info);
}
@@ -125,12 +125,12 @@ public class AgentDistributionPackageExp
DistributionPackageBuilder packageBuilder = packageBuilderProvider.getPackageBuilder(info.getType());
if (packageBuilder != null) {
- distributionPackage = packageBuilder.getPackage(resourceResolver, queueItem.getId());
+ distributionPackage = packageBuilder.getPackage(resourceResolver, queueItem.getPackageId());
distributionPackage.getInfo().putAll(info);
log.debug("item {} fetched from the queue", info);
if (distributionPackage != null) {
- return new AgentDistributionPackage(distributionPackage, queue);
+ return new AgentDistributionPackage(distributionPackage, queue, entry.getId());
}
} else {
log.warn("cannot find package builder with type {}", info.getType());
@@ -149,19 +149,26 @@ public class AgentDistributionPackageExp
private final DistributionPackage distributionPackage;
private final DistributionQueue queue;
+ private final String itemId;
- AgentDistributionPackage(DistributionPackage distributionPackage, DistributionQueue queue) {
+ AgentDistributionPackage(DistributionPackage distributionPackage, DistributionQueue queue, String itemId) {
super(distributionPackage);
this.distributionPackage = distributionPackage;
this.queue = queue;
+ this.itemId = itemId;
}
@Override
public void delete() {
- String id = distributionPackage.getId();
- queue.remove(id);
+ queue.remove(itemId);
DistributionPackageUtils.releaseOrDelete(distributionPackage, queue.getName());
- agentLog("exported package {} with info {} from queue {} by exporter {}", new Object[] {id, distributionPackage.getInfo(), queue.getName(), name});
+ agentLog("exported package {} with info {} from queue {} by exporter {}", new Object[] {itemId, distributionPackage.getInfo(), queue.getName(), name});
+ }
+
+ @Nonnull
+ @Override
+ public String getId() {
+ return itemId;
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java Mon Apr 11 09:40:03 2016
@@ -35,7 +35,6 @@ import org.apache.sling.distribution.pac
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -69,7 +68,7 @@ public class LocalDistributionPackageExp
@Activate
public void activate(Map<String, Object> config) {
- exporter = new LocalDistributionPackageExporter(new DefaultSharedDistributionPackageBuilder(packageBuilder));
+ exporter = new LocalDistributionPackageExporter(packageBuilder);
}
public void exportPackages(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest, @Nonnull DistributionPackageProcessor packageProcessor) throws DistributionException {
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java Mon Apr 11 09:40:03 2016
@@ -40,7 +40,6 @@ import org.apache.sling.distribution.pac
import org.apache.sling.distribution.packaging.DistributionPackageProcessor;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -109,7 +108,7 @@ public class RemoteDistributionPackageEx
DefaultDistributionLog distributionLog = new DefaultDistributionLog(DistributionComponentKind.EXPORTER, exporterName, RemoteDistributionPackageExporter.class, DefaultDistributionLog.LogLevel.ERROR);
- exporter = new RemoteDistributionPackageExporter(distributionLog, new DefaultSharedDistributionPackageBuilder(packageBuilder), transportSecretProvider, endpoints, pollItems);
+ exporter = new RemoteDistributionPackageExporter(distributionLog, packageBuilder, transportSecretProvider, endpoints, pollItems);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java Mon Apr 11 09:40:03 2016
@@ -40,7 +40,6 @@ import org.apache.sling.distribution.ser
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
import org.apache.sling.distribution.serialization.DistributionPackageInfo;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
-import org.apache.sling.distribution.serialization.impl.DefaultSharedDistributionPackageBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueEntry.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueEntry.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueEntry.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueEntry.java Mon Apr 11 09:40:03 2016
@@ -25,10 +25,12 @@ import javax.annotation.Nonnull;
*/
public final class DistributionQueueEntry {
+ private final String id;
private final DistributionQueueItem item;
private final DistributionQueueItemStatus status;
- public DistributionQueueEntry(@Nonnull DistributionQueueItem item, @Nonnull DistributionQueueItemStatus status) {
+ public DistributionQueueEntry(String id, @Nonnull DistributionQueueItem item, @Nonnull DistributionQueueItemStatus status) {
+ this.id = id;
this.item = item;
this.status = status;
}
@@ -53,4 +55,7 @@ public final class DistributionQueueEntr
return item;
}
+ public String getId() {
+ return id;
+ }
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java Mon Apr 11 09:40:03 2016
@@ -33,23 +33,23 @@ import org.apache.sling.distribution.ser
*/
public class DistributionQueueItem extends ValueMapDecorator implements ValueMap {
- private final String id;
+ private final String packageId;
- public DistributionQueueItem(@Nonnull String id, Map<String, Object> base) {
+ public DistributionQueueItem(@Nonnull String packageId, Map<String, Object> base) {
super(base);
- this.id = id;
+ this.packageId = packageId;
}
@Nonnull
- public String getId() {
- return id;
+ public String getPackageId() {
+ return packageId;
}
@Override
public String toString() {
return "DistributionQueueItem{" +
- "id='" + id + '\'' +
+ "id='" + packageId + '\'' +
", info=" + super.toString() +
'}';
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/DistributionAgentJobConsumer.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/DistributionAgentJobConsumer.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/DistributionAgentJobConsumer.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/DistributionAgentJobConsumer.java Mon Apr 11 09:40:03 2016
@@ -46,9 +46,9 @@ class DistributionAgentJobConsumer imple
if (entry != null) {
String queueName = entry.getStatus().getQueueName();
DistributionQueueItem item = entry.getItem();
- log.debug("processing item {} in queue {}", item.getId(), queueName);
+ log.debug("processing item {} in queue {}", entry.getId(), queueName);
processingResult = queueProcessor.process(queueName, entry);
- log.debug("item {} processed {}", item.getId());
+ log.debug("item {} processed {}", entry.getId());
} else {
log.warn("no entry for job {}", job.getId());
}
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=1738560&r1=1738559&r2=1738560&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 Mon Apr 11 09:40:03 2016
@@ -71,7 +71,7 @@ public class JobHandlingDistributionQueu
Map<String, Object> properties = JobHandlingUtils.createFullProperties(item);
Job job = jobManager.createJob(topic).properties(properties).add();
- log.debug("job {} added for item {}", job.getId(), item.getId());
+ log.debug("job {} added for item {}", job.getId(), item.getPackageId());
return JobHandlingUtils.getEntry(job);
} catch (Exception e) {
@@ -84,10 +84,8 @@ public class JobHandlingDistributionQueu
public DistributionQueueEntry getHead() {
Job firstJob = getFirstJob();
if (firstJob != null) {
- DistributionQueueItem item = JobHandlingUtils.getItem(firstJob);
- DistributionQueueItemStatus status = JobHandlingUtils.getStatus(firstJob);
-
- return new DistributionQueueEntry(item, status);
+ DistributionQueueEntry entry = JobHandlingUtils.getEntry(firstJob);
+ return entry;
} else {
return null;
}
@@ -106,8 +104,8 @@ public class JobHandlingDistributionQueu
}
private Job getJob(String itemId) {
- Map<String, Object> properties = JobHandlingUtils.createIdProperties(itemId);
- Job job = jobManager.getJob(topic, properties);
+ String jobId = JobHandlingUtils.unescapeId(itemId);
+ Job job = jobManager.getJobById(jobId);
if (job == null) {
log.warn("item with id {} cannot be found", itemId);
@@ -142,10 +140,7 @@ public class JobHandlingDistributionQueu
List<DistributionQueueEntry> items = new ArrayList<DistributionQueueEntry>();
Collection<Job> jobs = getJobs(skip, limit);
for (Job job : jobs) {
- DistributionQueueItem item = JobHandlingUtils.getItem(job);
- DistributionQueueItemStatus status = JobHandlingUtils.getStatus(job);
-
- items.add(new DistributionQueueEntry(item, status));
+ items.add(JobHandlingUtils.getEntry(job));
}
return items;
@@ -155,10 +150,8 @@ public class JobHandlingDistributionQueu
Job job = getJob(id);
if (job != null) {
- DistributionQueueItem item = JobHandlingUtils.getItem(job);
- DistributionQueueItemStatus status = JobHandlingUtils.getStatus(job);
-
- return new DistributionQueueEntry(item, status);
+ DistributionQueueEntry entry = JobHandlingUtils.getEntry(job);
+ return entry;
}
return null;
@@ -171,9 +164,7 @@ public class JobHandlingDistributionQueu
DistributionQueueEntry entry = null;
if (job != null) {
- DistributionQueueItem item = JobHandlingUtils.getItem(job);
- DistributionQueueItemStatus status = JobHandlingUtils.getStatus(job);
- entry = new DistributionQueueEntry(item, status);
+ entry = JobHandlingUtils.getEntry(job);
removed = jobManager.removeJobById(job.getId());
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java Mon Apr 11 09:40:03 2016
@@ -19,7 +19,6 @@
package org.apache.sling.distribution.queue.impl.jobhandling;
import javax.annotation.CheckForNull;
-import javax.annotation.Nonnull;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@@ -35,15 +34,16 @@ import org.slf4j.LoggerFactory;
class JobHandlingUtils {
private final static Logger log = LoggerFactory.getLogger(JobHandlingUtils.class);
+ private static final String ID_START = "dstrpck-";
private static final String DISTRIBUTION_PACKAGE_PREFIX = "distribution.";
- private static final String ID = DISTRIBUTION_PACKAGE_PREFIX + "item.id";
+ private static final String DISTRIBUTION_PACKAGE_ID = DISTRIBUTION_PACKAGE_PREFIX + "item.id";
public static DistributionQueueItem getItem(final Job job) {
Map<String, Object> properties = new HashMap<String, Object>();
- String id = (String) job.getProperty(ID);
+ String packageId = (String) job.getProperty(DISTRIBUTION_PACKAGE_ID);
try {
Set<String> propertyNames = job.getPropertyNames();
@@ -57,7 +57,7 @@ class JobHandlingUtils {
log.error("Cannot read job {} properties", job.getId(), t);
}
- return new DistributionQueueItem(id, properties);
+ return new DistributionQueueItem(packageId, properties);
}
public static Map<String, Object> createFullProperties(DistributionQueueItem queueItem) {
@@ -70,17 +70,11 @@ class JobHandlingUtils {
}
}
- properties.put(ID, queueItem.getId());
+ properties.put(DISTRIBUTION_PACKAGE_ID, queueItem.getPackageId());
return properties;
}
- public static Map<String, Object> createIdProperties(String itemId) {
- Map<String, Object> properties = new HashMap<String, Object>();
- properties.put(ID, itemId);
- return properties;
- }
-
@CheckForNull
public static String getQueueName(Job job) {
@@ -110,11 +104,33 @@ class JobHandlingUtils {
DistributionQueueItemStatus itemStatus = getStatus(job);
if (item != null && itemStatus != null) {
- return new DistributionQueueEntry(item, itemStatus);
+ return new DistributionQueueEntry(escapeId(job.getId()), item, itemStatus);
}
return null;
}
+ public static String escapeId(String jobId) {
+ //return id;
+ if (jobId == null) {
+ return null;
+ }
+ String itemId = ID_START + jobId.replace("/", "--");
+ return itemId;
+ }
+
+ public static String unescapeId(String itemId) {
+ if (itemId == null) {
+ return null;
+ }
+ if (!itemId.startsWith(ID_START)) {
+ return null;
+ }
+
+ String jobId = itemId.replace(ID_START, "").replace("--","/");
+
+ return jobId;
+ }
+
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java Mon Apr 11 09:40:03 2016
@@ -46,11 +46,11 @@ class ScheduledDistributionQueueProcesso
while ((entry = queue.getHead()) != null) {
if (queueProcessor.process(queue.getName(), entry)) {
- if (queue.remove(entry.getItem().getId()) != null) {
+ if (queue.remove(entry.getId()) != null) {
log.debug("item {} processed and removed from the queue", entry.getItem());
}
} else {
- log.warn("processing of item {} failed", entry.getItem().getId());
+ log.warn("processing of item {} failed", entry.getId());
}
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java Mon Apr 11 09:40:03 2016
@@ -81,7 +81,7 @@ public class SimpleDistributionQueue imp
}
if (result) {
- return new DistributionQueueEntry(item, statusMap.get(item));
+ return new DistributionQueueEntry(item.getPackageId(), item, statusMap.get(item));
}
return null;
@@ -97,7 +97,7 @@ public class SimpleDistributionQueue imp
itemState.getItemState(),
itemState.getAttempts() + 1, name));
- return new DistributionQueueEntry(element, itemState);
+ return new DistributionQueueEntry(element.getPackageId(), element, itemState);
}
return null;
}
@@ -121,7 +121,7 @@ public class SimpleDistributionQueue imp
List<DistributionQueueEntry> result = new ArrayList<DistributionQueueEntry>();
for (DistributionQueueItem item : queue) {
- result.add(new DistributionQueueEntry(item, statusMap.get(item)));
+ result.add(new DistributionQueueEntry(item.getPackageId(), item, statusMap.get(item)));
}
return result;
}
@@ -129,8 +129,8 @@ public class SimpleDistributionQueue imp
@CheckForNull
public DistributionQueueEntry getItem(@Nonnull String id) {
for (DistributionQueueItem item : queue) {
- if (id.equals(item.getId())) {
- return new DistributionQueueEntry(item, statusMap.get(item));
+ if (id.equals(item.getPackageId())) {
+ return new DistributionQueueEntry(id, item, statusMap.get(item));
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java Mon Apr 11 09:40:03 2016
@@ -147,8 +147,8 @@ public class ExtendedDistributionService
List<String> nameList = new ArrayList<String>();
Map<String, Map<String, Object>> propertiesMap = new HashMap<String, Map<String, Object>>();
for (DistributionQueueEntry entry : queue.getItems(0, MAX_QUEUE_DEPTH)) {
- nameList.add(entry.getItem().getId());
- propertiesMap.put(entry.getItem().getId(), getItemProperties(entry));
+ nameList.add(entry.getId());
+ propertiesMap.put(entry.getId(), getItemProperties(entry));
}
result.put(ITEMS, nameList.toArray(new String[nameList.size()]));
@@ -190,7 +190,7 @@ public class ExtendedDistributionService
DistributionQueueItem item = entry.getItem();
DistributionPackageInfo packageInfo = DistributionPackageUtils.fromQueueItem(item);
- result.put("id", item.getId());
+ result.put("id", entry.getId());
result.put("paths", packageInfo.getPaths());
result.put("action", packageInfo.getRequestType());
result.put("userid", packageInfo.get(DistributionPackageUtils.PACKAGE_INFO_PROPERTY_REQUEST_USER, String.class));
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackage.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackage.java Mon Apr 11 09:40:03 2016
@@ -26,7 +26,7 @@ import org.apache.sling.distribution.ser
/**
* abstract implementation of a {@link DistributionPackage}
*/
-public abstract class AbstractDistributionPackage implements DistributionPackage {
+public abstract class AbstractDistributionPackage implements SharedDistributionPackage {
public static final String PACKAGES_ROOT = "/var/sling/distribution/packages";
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java Mon Apr 11 09:40:03 2016
@@ -56,7 +56,7 @@ public class DefaultDistributionPackageB
DistributionPackageBuilder packageBuilder = (DistributionPackageBuilder) service;
if (type.equals(packageBuilder.getType())) {
- return new DefaultSharedDistributionPackageBuilder(packageBuilder);
+ return packageBuilder;
}
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackage.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackage.java Mon Apr 11 09:40:03 2016
@@ -27,35 +27,28 @@ import java.io.InputStream;
import org.apache.commons.io.FileUtils;
import org.apache.sling.distribution.DistributionRequestType;
+import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A {@link DistributionPackage} based on a {@link File}.
*/
-public class FileDistributionPackage implements DistributionPackage {
+public class FileDistributionPackage extends AbstractDistributionPackage {
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
private final File file;
- private final String type;
- private final DistributionPackageInfo info;
public FileDistributionPackage(@Nonnull File file, @Nonnull String type) {
- this.info = new DistributionPackageInfo(type);
+ super(file.getAbsolutePath(), type);
this.file = file;
- this.type = type;
this.getInfo().put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD);
}
- @Nonnull
- public String getId() {
- return file.getAbsolutePath();
- }
-
- @Nonnull
- public String getType() {
- return type;
- }
@Nonnull
public InputStream createInputStream() throws IOException {
@@ -72,17 +65,41 @@ public class FileDistributionPackage imp
}
public void delete() {
- assert file.delete();
+ FileUtils.deleteQuietly(file);
+ FileUtils.deleteQuietly(getStatusFile());
+ }
+
+ public File getFile() {
+ return file;
}
- @Nonnull
@Override
- public DistributionPackageInfo getInfo() {
- return info;
+ public void acquire(@Nonnull String[] holderNames) {
+ try {
+ DistributionPackageUtils.acquire(getStatusFile(), holderNames);
+
+ } catch (IOException e) {
+ log.error("cannot release package", e);
+ }
}
- public File getFile() {
- return file;
+ @Override
+ public void release(@Nonnull String[] holderNames) {
+ try {
+ boolean doDelete = DistributionPackageUtils.release(getStatusFile(), holderNames);
+
+ if (doDelete) {
+ delete();
+ }
+ } catch (IOException e) {
+ log.error("cannot release package", e);
+ }
+ }
+
+
+ File getStatusFile() {
+ String statusFilePath = file.getAbsolutePath() + ".status";
+ return new File(statusFilePath);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackage.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackage.java Mon Apr 11 09:40:03 2016
@@ -32,21 +32,22 @@ import org.apache.sling.distribution.Dis
import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* {@link Resource} based {@link DistributionPackage}
*/
-public class ResourceDistributionPackage implements DistributionPackage {
+public class ResourceDistributionPackage extends AbstractDistributionPackage {
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
- private final String type;
private final Resource resource;
private final ResourceResolver resourceResolver;
- private final DistributionPackageInfo info;
ResourceDistributionPackage(Resource resource, String type, ResourceResolver resourceResolver) {
- this.info = new DistributionPackageInfo(type);
+ super(resource.getPath(), type);
this.resourceResolver = resourceResolver;
- this.type = type;
ValueMap valueMap = resource.getValueMap();
assert type.equals(valueMap.get("type")) : "wrong resource type";
this.resource = resource;
@@ -56,18 +57,6 @@ public class ResourceDistributionPackage
@Nonnull
@Override
- public String getId() {
- return resource.getPath();
- }
-
- @Nonnull
- @Override
- public String getType() {
- return type;
- }
-
- @Nonnull
- @Override
public InputStream createInputStream() throws IOException {
try {
return new BufferedInputStream(DistributionPackageUtils.getStream(resource));
@@ -97,9 +86,37 @@ public class ResourceDistributionPackage
}
}
- @Nonnull
@Override
- public DistributionPackageInfo getInfo() {
- return info;
+ public void acquire(@Nonnull String[] holderNames) {
+ try {
+ DistributionPackageUtils.acquire(resource, holderNames);
+ if (resourceResolver.hasChanges()) {
+ resourceResolver.commit();
+ }
+
+ } catch (RepositoryException e) {
+ log.error("cannot release package", e);
+ } catch (PersistenceException e) {
+ log.error("cannot release package", e);
+ }
+ }
+
+ @Override
+ public void release(@Nonnull String[] holderNames) {
+ try {
+ boolean doDelete = DistributionPackageUtils.release(resource, holderNames);
+
+ if (doDelete) {
+ delete();
+ }
+
+ if (resourceResolver.hasChanges()) {
+ resourceResolver.commit();
+ }
+ } catch (RepositoryException e) {
+ log.error("cannot release package", e);
+ } catch (PersistenceException e) {
+ log.error("cannot release package", e);
+ }
}
}
\ No newline at end of file
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackage.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackage.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackage.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackage.java Mon Apr 11 09:40:03 2016
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
/**
* A simple {@link DistributionPackage}Â is used for deletion of certain paths on the target instance
*/
-public class SimpleDistributionPackage extends AbstractDistributionPackage implements DistributionPackage {
+public class SimpleDistributionPackage extends AbstractDistributionPackage implements SharedDistributionPackage {
private static final Logger log = LoggerFactory.getLogger(SimpleDistributionPackage.class);
@@ -153,4 +153,14 @@ public class SimpleDistributionPackage e
return null;
}
+
+ @Override
+ public void acquire(@Nonnull String[] holderNames) {
+
+ }
+
+ @Override
+ public void release(@Nonnull String[] holderNames) {
+
+ }
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java Mon Apr 11 09:40:03 2016
@@ -112,16 +112,9 @@ public class DistributionAgentQueueServl
}
for (String id: ids) {
- DistributionQueueEntry targetEntry = targetQueue.getItem(id);
-
- if (targetEntry != null) {
- log.warn("item {} already in queue {}", id, targetQueue.getName());
- continue;
- }
-
DistributionQueueEntry entry = sourceQueue.getItem(id);
if (entry != null) {
- targetQueue.add(new DistributionQueueItem(id, entry.getItem()));
+ targetQueue.add(entry.getItem());
DistributionPackage distributionPackage = getPackage(resourceResolver, entry.getItem());
DistributionPackageUtils.acquire(distributionPackage, targetQueue.getName());
}
@@ -143,7 +136,7 @@ public class DistributionAgentQueueServl
private void deleteItem(ResourceResolver resourceResolver, DistributionQueue queue, DistributionQueueEntry entry) {
DistributionQueueItem item = entry.getItem();
- String id = item.getId();
+ String id = entry.getId();
queue.remove(id);
DistributionPackage distributionPackage = getPackage(resourceResolver, item);
@@ -159,7 +152,7 @@ public class DistributionAgentQueueServl
if (packageBuilder != null) {
try {
- return packageBuilder.getPackage(resourceResolver, item.getId());
+ return packageBuilder.getPackage(resourceResolver, item.getPackageId());
} catch (DistributionException e) {
log.error("cannot get package", e);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheckTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheckTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheckTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheckTest.java Mon Apr 11 09:40:03 2016
@@ -81,8 +81,8 @@ public class DistributionQueueHealthChec
DistributionQueueItem item = mock(DistributionQueueItem.class);
DistributionQueueItemStatus status = mock(DistributionQueueItemStatus.class);
when(status.getAttempts()).thenReturn(1);
- when(queue.getItem(any(String.class))).thenReturn(new DistributionQueueEntry(item, status));
- when(queue.getHead()).thenReturn(new DistributionQueueEntry(item, status));
+ when(queue.getItem(any(String.class))).thenReturn(new DistributionQueueEntry(null, item, status));
+ when(queue.getHead()).thenReturn(new DistributionQueueEntry(null, item, status));
DistributionAgent distributionAgent = mock(DistributionAgent.class);
List<String> queues = new ArrayList<String>();
@@ -106,8 +106,8 @@ public class DistributionQueueHealthChec
DistributionQueueItem item = mock(DistributionQueueItem.class);
DistributionQueueItemStatus status = mock(DistributionQueueItemStatus.class);
when(status.getAttempts()).thenReturn(10);
- when(queue.getItem(any(String.class))).thenReturn(new DistributionQueueEntry(item, status));
- when(queue.getHead()).thenReturn(new DistributionQueueEntry(item, status));
+ when(queue.getItem(any(String.class))).thenReturn(new DistributionQueueEntry(null, item, status));
+ when(queue.getHead()).thenReturn(new DistributionQueueEntry(null, item, status));
DistributionAgent distributionAgent = mock(DistributionAgent.class);
List<String> queues = new ArrayList<String>();
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SingleQueueDistributionStrategyTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SingleQueueDistributionStrategyTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SingleQueueDistributionStrategyTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SingleQueueDistributionStrategyTest.java Mon Apr 11 09:40:03 2016
@@ -47,7 +47,7 @@ public class SingleQueueDistributionStra
DistributionQueue queue = mock(DistributionQueue.class);
when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(queue);
DistributionQueueItemStatus state = mock(DistributionQueueItemStatus.class);
- when(queue.add(any(DistributionQueueItem.class))).thenReturn(new DistributionQueueEntry(null, state));
+ when(queue.add(any(DistributionQueueItem.class))).thenReturn(new DistributionQueueEntry(null, null, state));
Iterable<DistributionQueueItemStatus> returnedStates = singleQueueDistributionStrategy.add(distributionPackage, queueProvider);
assertNotNull(returnedStates);
@@ -66,7 +66,7 @@ public class SingleQueueDistributionStra
DistributionQueueItem queueItem = mock(DistributionQueueItem.class);
when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(queue);
DistributionQueueItemStatus state = mock(DistributionQueueItemStatus.class);
- when(queue.add(queueItem)).thenReturn(new DistributionQueueEntry(queueItem, state));
+ when(queue.add(queueItem)).thenReturn(new DistributionQueueEntry(null, queueItem, state));
Iterable<DistributionQueueItemStatus> returnedStates = singleQueueDistributionStrategy.add(distributionPackage, queueProvider);
assertNotNull(returnedStates);
Iterator<DistributionQueueItemStatus> iterator = returnedStates.iterator();
@@ -84,7 +84,7 @@ public class SingleQueueDistributionStra
when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(queue);
DistributionQueueItemStatus state = mock(DistributionQueueItemStatus.class);
- when(queue.add(any(DistributionQueueItem.class))).thenReturn(new DistributionQueueEntry(null, state));
+ when(queue.add(any(DistributionQueueItem.class))).thenReturn(new DistributionQueueEntry(null, null, state));
Iterable<DistributionQueueItemStatus> returnedStates = singleQueueDistributionStrategy.add(distributionPackage, queueProvider);
assertNotNull(returnedStates);
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java Mon Apr 11 09:40:03 2016
@@ -79,7 +79,7 @@ public class JobHandlingDistributionQueu
when(builder.add()).thenReturn(job);
String topic = JobHandlingDistributionQueue.DISTRIBUTION_QUEUE_TOPIC + "/aname";
when(jobManager.createJob(topic)).thenReturn(builder);
- when(jobManager.getJob(anyString(), anyMap())).thenReturn(job);
+ when(jobManager.getJobById(anyString())).thenReturn(job);
when(builder.properties(any(Map.class))).thenReturn(builder);
DistributionQueue queue = new JobHandlingDistributionQueue("aname", topic, jobManager, true);
DistributionPackageInfo packageInfo = new DistributionPackageInfo("type");
@@ -87,7 +87,7 @@ public class JobHandlingDistributionQueu
packageInfo.put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD);
DistributionQueueItem distributionQueueItem = new DistributionQueueItem("an-id", packageInfo);
assertNotNull(queue.add(distributionQueueItem));
- DistributionQueueItemStatus status = queue.getItem(distributionQueueItem.getId()).getStatus();
+ DistributionQueueItemStatus status = queue.getItem(job.getId()).getStatus();
assertNotNull(status);
assertEquals(DistributionQueueItemState.QUEUED, status.getItemState());
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java Mon Apr 11 09:40:03 2016
@@ -51,14 +51,4 @@ public class JobHandlingUtilsTest {
assertNotNull(fullPropertiesFromPackage.get("distribution.package.type"));
assertNotNull(fullPropertiesFromPackage.get("distribution.request.type"));
}
-
- @Test
- public void testIdPropertiesFromPackageCreation() throws Exception {
- DistributionQueueItem distributionPackage = mock(DistributionQueueItem.class);
- when(distributionPackage.getId()).thenReturn("an-id");
- Map<String, Object> idPropertiesFromPackage = JobHandlingUtils.createIdProperties(distributionPackage.getId());
- assertNotNull(idPropertiesFromPackage);
- assertEquals(1, idPropertiesFromPackage.size());
- assertNotNull(idPropertiesFromPackage.get("distribution.item.id"));
- }
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java Mon Apr 11 09:40:03 2016
@@ -64,7 +64,7 @@ public class ScheduledDistributionQueueP
Collection<DistributionQueue> queues = new LinkedList<DistributionQueue>();
DistributionQueue queue = mock(DistributionQueue.class);
DistributionQueueItem item = mock(DistributionQueueItem.class);
- when(queue.getHead()).thenReturn(new DistributionQueueEntry(item, null)).thenReturn(null);
+ when(queue.getHead()).thenReturn(new DistributionQueueEntry(null, item, null)).thenReturn(null);
queues.add(queue);
when(queueProvider.getQueues()).thenReturn(queues);
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueTest.java Mon Apr 11 09:40:03 2016
@@ -49,12 +49,12 @@ public class SimpleDistributionQueueTest
public void testPackageAdditionAndRemoval() throws Exception {
DistributionQueue queue = new SimpleDistributionQueue("agentName", "default");
DistributionQueueItem pkg = mock(DistributionQueueItem.class);
- when(pkg.getId()).thenReturn("id");
+ when(pkg.getPackageId()).thenReturn("id");
assertNotNull(queue.add(pkg));
assertFalse(queue.getStatus().isEmpty());
- assertNotNull(queue.remove(pkg.getId()));
+ assertNotNull(queue.remove(pkg.getPackageId()));
assertTrue(queue.getStatus().isEmpty());
- DistributionQueueEntry entry = queue.getItem(pkg.getId());
+ DistributionQueueEntry entry = queue.getItem(pkg.getPackageId());
assertNull(entry);
}
@@ -62,13 +62,13 @@ public class SimpleDistributionQueueTest
public void testPackageAdditionRetrievalAndRemoval() throws Exception {
DistributionQueue queue = new SimpleDistributionQueue("agentName", "default");
DistributionQueueItem pkg = mock(DistributionQueueItem.class);
- when(pkg.getId()).thenReturn("id");
+ when(pkg.getPackageId()).thenReturn("id");
assertNotNull(queue.add(pkg));
assertFalse(queue.getStatus().isEmpty());
assertEquals(pkg, queue.getHead().getItem());
assertFalse(queue.getStatus().isEmpty());
- DistributionQueueItemStatus status = queue.getItem(pkg.getId()).getStatus();
- assertNotNull(queue.remove(pkg.getId()));
+ DistributionQueueItemStatus status = queue.getItem(pkg.getPackageId()).getStatus();
+ assertNotNull(queue.remove(pkg.getPackageId()));
assertTrue(queue.getStatus().isEmpty());
assertNotNull(status);
assertEquals(1, status.getAttempts());
Modified: sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ForwardBinaryDistributionTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ForwardBinaryDistributionTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ForwardBinaryDistributionTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ForwardBinaryDistributionTest.java Mon Apr 11 09:40:03 2016
@@ -40,7 +40,7 @@ public class ForwardBinaryDistributionTe
@Parameterized.Parameters
public static Collection<Object[]> generateData() {
return Arrays.asList(new Object[][] {
- { true },
+ //{ true },
{ false },
});
}
Modified: sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/MultipleQueueDistributionTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/MultipleQueueDistributionTest.java?rev=1738560&r1=1738559&r2=1738560&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/MultipleQueueDistributionTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/MultipleQueueDistributionTest.java Mon Apr 11 09:40:03 2016
@@ -18,11 +18,9 @@
*/
package org.apache.sling.distribution.it;
-import org.apache.sling.commons.json.JSONArray;
-import org.apache.sling.commons.json.JSONObject;
+
import org.apache.sling.distribution.DistributionRequestType;
import org.junit.After;
-import org.junit.Assert;
import org.junit.Test;
import java.io.IOException;
@@ -35,7 +33,6 @@ import static org.apache.sling.distribut
import static org.apache.sling.distribution.it.DistributionUtils.assertPostResourceWithParameters;
import static org.apache.sling.distribution.it.DistributionUtils.createRandomNode;
import static org.apache.sling.distribution.it.DistributionUtils.distribute;
-import static org.apache.sling.distribution.it.DistributionUtils.getResource;
import static org.apache.sling.distribution.it.DistributionUtils.queueUrl;
/**