SLING-10602 DistributionQueueItem's path should be correctly logged in case of success and failure (#55)
* SLING-10602 DistributionQueueItem's path should be correctly logged in case of success and failure
Adding the path(s) for which distribution package was created in the logging for distribution queue item.
* @trivial update javadoc.
* SLING-10602 DistributionQueueItem's path should be correctly logged in case of success and failure
Check the type of value in the DistributionItemInfo map and log accordingly.
* @trivial review comments.
* @trivial rename function to more meaningful
* @releng review comment.
diff --git a/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java b/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
index 3b7963a..661b784 100644
--- a/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
+++ b/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
@@ -147,8 +147,8 @@
removeItemFromQueue = true;
final long endTime = System.currentTimeMillis();
- distributionLog.info("[{}] PACKAGE-DELIVERED {}: {} paths={}, importTime={}ms, execTime={}ms, size={}B", queueName, requestId,
- requestType, paths,
+ distributionLog.info("[{}] PACKAGE-DELIVERED {}: {} item={}, paths={}, importTime={}ms, execTime={}ms, size={}B", queueName, requestId,
+ requestType, queueEntry.getItem().getPackageId(), paths,
endTime - startTime, endTime - globalStartTime,
packageSize);
} catch (RecoverableDistributionException e) {
diff --git a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
index 69fea98..256f6f5 100644
--- a/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
+++ b/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java
@@ -18,7 +18,9 @@
*/
package org.apache.sling.distribution.queue;
+import java.util.Arrays;
import java.util.Map;
+
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.wrappers.ValueMapDecorator;
import org.apache.sling.distribution.packaging.DistributionPackage;
@@ -44,7 +46,6 @@
super(base);
this.packageId = packageId;
this.size = size;
-
}
@NotNull
@@ -64,7 +65,25 @@
public String toString() {
return "DistributionQueueItem{" +
"id='" + packageId + '\'' +
- ", info=" + super.toString() +
+ ", info={" + getQueueInfo() + '}' +
'}';
}
+
+ /*
+ * convert the map of object values into string form
+ */
+ private String getQueueInfo() {
+ String queueItemStr = "";
+ for(String key : super.keySet()) {
+ Object value = super.get(key);
+ String valueString = "";
+ if (value.getClass().isArray()) {
+ valueString = key + "=" + Arrays.toString((Object[])value);
+ } else {
+ valueString = key + "=" + value.toString();
+ }
+ queueItemStr = String.join(",", queueItemStr, valueString);
+ }
+ return queueItemStr.isEmpty() ? queueItemStr : queueItemStr.substring(1);
+ }
}