public List<Component> getComponents(String projectKey) {
final URIBuilder builder = new URIBuilder(uri)
.setPath(String.format("%s/project/%s/components", baseApiPath, projectKey));
try {
final Content content = buildGetRequest(builder.build()).execute().returnContent();
final List<Map<String, Object>> decoded = objectMapper.readValue(content.asString(),
new TypeReference<List<Map<String, Object>>>() {
});
final List<Component> components = new ArrayList<>();
for (final Map<String, Object> decodeComponent : decoded) {
BasicUser lead = null;
if (decodeComponent.containsKey("lead")) {
final Map<String, Object> decodedLead = (Map<String, Object>) decodeComponent.get("lead");
lead = new BasicUser(URI.create((String) decodedLead.get("self")), (String) decodedLead.get("name"), (String) decodedLead
.get("displayName"));
}
final Component component = new Component(
URI.create((String) decodeComponent.get("self")),
Long.parseLong((String) decodeComponent.get("id")),
(String) decodeComponent.get("name"),
(String) decodeComponent.get("description"),
lead);
components.add(component);
}
return components;
} catch (Exception e) {
LOGGER.log(WARNING, "jira rest client process workflow action error. cause: " + e.getMessage(), e);
return Collections.emptyList();
}
}