private void search()

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);
        }
    }