public List<Version> getVersions(String projectKey) { final URIBuilder builder = new URIBuilder(uri) .setPath(String.format("%s/project/%s/versions", baseApiPath, projectKey)); List<Map<String, Object>> decoded = Collections.emptyList(); try { URI uri = builder.build(); final Content content = buildGetRequest(uri) .execute() .returnContent(); decoded = objectMapper.readValue(content.asString(), new TypeReference<List<Map<String, Object>>>() { }); } catch (Exception e) { LOGGER.log(WARNING, "jira rest client get versions error. cause: " + e.getMessage(), e); } return decoded.stream().map( decodedVersion -> { final DateTime releaseDate = decodedVersion.containsKey("releaseDate") ? DATE_TIME_FORMATTER.parseDateTime((String) decodedVersion.get("releaseDate")) : null; return new Version(URI.create((String) decodedVersion.get("self")), Long.parseLong((String) decodedVersion.get("id")), (String) decodedVersion.get("name"), (String) decodedVersion.get("description"), (Boolean) decodedVersion.get("archived"), (Boolean) decodedVersion.get("released"), releaseDate); } ).collect( Collectors.toList() ); }
/** * Release a given version. * * @param projectKey The Project Key * @param versionName The name of the version */ protected void releaseVersion(String projectKey, String versionName, JiraSession session) { if (session == null) { LOGGER.warning("JIRA session could not be established"); return; } List<Version> versions = session.getVersions(projectKey); java.util.Optional<Version> matchingVersion = versions.stream() .filter(version -> version.getName().equals(versionName)) .findFirst(); if (matchingVersion.isPresent()) { Version version = matchingVersion.get(); Version releaseVersion = new Version(version.getSelf(), version.getId(), version.getName(), version.getDescription(), version.isArchived(), true, new DateTime()); session.releaseVersion(projectKey, releaseVersion); } }
@Override public Version parse(JSONObject json) throws JSONException { final URI self = JsonParseUtil.getSelfUri(json); final Long id = JsonParseUtil.getOptionalLong(json, "id"); final String name = json.getString("name"); final String description = JsonParseUtil.getOptionalString(json, "description"); final boolean isArchived = json.getBoolean("archived"); final boolean isReleased = json.getBoolean("released"); final String releaseDateStr = JsonParseUtil.getOptionalString(json, "releaseDate"); final DateTime releaseDate = parseReleaseDate(releaseDateStr); return new Version(self, id, name, description, isArchived, isReleased, releaseDate); }
@Override public Version parse(JSONObject json) throws JSONException { final URI self = JsonParseUtil.getSelfUri(json); final Long id = JsonParseUtil.getOptionalLong(json, "id"); final String name = json.getString("name"); final String description = JsonParseUtil.getOptionalString(json, "description"); final boolean isArchived = json.getBoolean("archived"); final boolean isReleased = json.getBoolean("released"); final String releaseDateStr = JsonParseUtil.getOptionalString(json, "releaseDate"); final DateTime releaseDate = parseReleaseDate(releaseDateStr); return new Version(self, id, name, description, isArchived, isReleased, releaseDate); }