in commit-status-publisher-server/src/main/java/jetbrains/buildServer/swarm/SwarmClient.java [398:429]
public void processResponse(HttpHelper.HttpResponse response) throws HttpPublisherException, IOException {
if (response.getStatusCode() >= 400) {
if (response.getStatusCode() == 401 || response.getStatusCode() == 403) {
throw new HttpPublisherException(response.getStatusCode(), response.getStatusText(),
"Cannot access Perforce Swarm Server at '" + mySwarmUrl + "' to add details for " + myDebugInfo);
}
throw new HttpPublisherException(response.getStatusCode(), response.getStatusText(), "Cannot get list of related reviews for " + myDebugInfo);
}
// response = {"lastSeen":19,"reviews":[{"id":19}],"totalCount":1}
debug("Reviews response for " + myDebugInfo + " = " + response.getContent() + " " + response.getStatusCode() + " " + response.getStatusText());
try {
final JsonNode jsonNode = new ObjectMapper().readTree(response.getContent());
final ArrayNode reviews = (ArrayNode)jsonNode.get("reviews");
if (reviews != null) {
for (Iterator<JsonNode> it = reviews.elements(); it.hasNext(); ) {
JsonNode element = it.next();
long id = element.get("id").longValue();
String state = element.get("state").asText();
myReviews.add(new SingleReview(id, state));
}
}
if (myReviews.size() > 0) {
info(String.format("Found Perforce Swarm reviews %s for %s", myReviews, myDebugInfo));
}
} catch (JsonProcessingException e) {
throw new HttpPublisherException("Error parsing JSON response from Perforce Swarm: " + e.getMessage(), e);
}
}