in src/main/java/org/apache/sling/servlets/get/impl/VersionInfoServlet.java [130:153]
private JsonObject getJsonObject(Resource resource, VersionManager vm) throws RepositoryException {
final JsonObjectBuilder result = Json.createObjectBuilder();
final Node node = resource.adaptTo(Node.class);
if (node == null || !node.isNodeType(JcrConstants.MIX_VERSIONABLE)) {
return result.build();
}
final String absPath = resource.getPath();
final VersionHistory history = vm.getVersionHistory(absPath);
final Version baseVersion = vm.getBaseVersion(absPath);
for (final VersionIterator it = history.getAllVersions(); it.hasNext();) {
final Version v = it.nextVersion();
final JsonObjectBuilder obj = Json.createObjectBuilder();
obj.add("created", createdDate(v));
obj.add("successors", getArrayBuilder(getNames(v.getSuccessors())));
obj.add("predecessors", getArrayBuilder(getNames(v.getPredecessors())));
obj.add("labels", getArrayBuilder(history.getVersionLabels(v)));
obj.add("baseVersion", baseVersion.isSame(v));
result.add(v.getName(), obj);
}
return Json.createObjectBuilder().add("versions", result).build();
}