in src/main/java/org/apache/maven/plugins/changes/jira/RestJiraDownloader.java [365:412]
private void search(CloseableHttpClient client, String jiraProject, String jiraUrl)
throws IOException, MojoExecutionException {
String jqlQuery = new JqlQueryBuilder(log)
.urlEncode(false)
.project(jiraProject)
.fixVersion(getFixFor())
.fixVersionIds(resolvedFixVersionIds)
.statusIds(resolvedStatusIds)
.priorityIds(resolvedPriorityIds)
.resolutionIds(resolvedResolutionIds)
.components(resolvedComponentIds)
.typeIds(resolvedTypeIds)
.sortColumnNames(sortColumnNames)
.filter(filter)
.build();
log.debug("JIRA jql=" + jqlQuery);
StringWriter searchParamStringWriter = new StringWriter();
try (JsonGenerator gen = jsonFactory.createGenerator(searchParamStringWriter)) {
gen.writeStartObject();
gen.writeStringField("jql", jqlQuery);
gen.writeNumberField("maxResults", nbEntriesMax);
gen.writeArrayFieldStart("fields");
// Retrieve all fields. If that seems slow, we can reconsider.
gen.writeString("*all");
gen.writeEndArray();
gen.writeEndObject();
}
HttpPost httpPost = new HttpPost(jiraUrl + "/rest/api/2/search");
httpPost.setHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType());
httpPost.setEntity(new StringEntity(searchParamStringWriter.toString()));
try (CloseableHttpResponse response = client.execute(httpPost)) {
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
reportErrors(response);
}
JsonNode issueTree = getResponseTree(response);
assertIsObject(issueTree);
JsonNode issuesNode = issueTree.get("issues");
assertIsArray(issuesNode);
buildIssues(issuesNode, jiraUrl);
}
}