in src/main/java/org/apache/sling/distribution/queue/impl/simple/QueueItemMapper.java [83:119]
String writeQueueItem(DistributionQueueItem item) {
String packageId = item.getPackageId();
StringWriter w = new StringWriter();
JsonGenerator jsonWriter = Json.createGenerator(w);
jsonWriter.writeStartObject();
for (Map.Entry<String, Object> entry : item.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof String[]) {
jsonWriter.writeStartArray(entry.getKey());
for (String s : ((String[]) value)) {
jsonWriter.write(s);
}
jsonWriter.writeEnd();
} else if (value == null) {
jsonWriter.write(key, JsonValue.NULL);
} else if (value instanceof String) {
jsonWriter.write(key, (String) value);
} else if (value instanceof Boolean) {
jsonWriter.write(key, (Boolean) value);
} else if (value instanceof Integer) {
jsonWriter.write(key, (Integer) value);
} else if (value instanceof Float) {
jsonWriter.write(key, (Float) value);
}else if (value instanceof Double) {
jsonWriter.write(key, (Double) value);
} else if (value instanceof Long) {
jsonWriter.write(key, (Long) value);
} else {
jsonWriter.write(key, String.valueOf(value));
}
}
jsonWriter.writeEnd();
jsonWriter.close();
return packageId + " " + w.toString();
}