Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions src/main/java/hudson/plugins/jira/JiraSession.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
public class JiraSession {
private static final Logger LOGGER = Logger.getLogger(JiraSession.class.getName());

public static final Integer MAX_ISSUES = 100;

public final JiraRestService service;

/**
Expand Down Expand Up @@ -129,101 +131,102 @@
* @return issues matching the JQL query
*/
public List<Issue> getIssuesFromJqlSearch(final String jqlSearch) throws TimeoutException {
return service.getIssuesFromJqlSearch(jqlSearch, 100);
return service.getIssuesFromJqlSearch(jqlSearch, MAX_ISSUES);
}

/**
* Get all versions from the given project
*
* @param projectKey The key for the project
* @return An array of versions
*/
public List<ExtendedVersion> getVersions(String projectKey) {
LOGGER.fine("Fetching versions from project: " + projectKey);
return service.getVersions(projectKey);
}

/**
* Get a version by its name
*
* @param projectKey The key for the project
* @param name The version name
* @return A RemoteVersion, or null if not found
*/
public ExtendedVersion getVersionByName(String projectKey, String name) {
LOGGER.fine("Fetching versions from project: " + projectKey);
List<ExtendedVersion> versions = getVersions(projectKey);
if (versions == null) {
return null;
}
for (ExtendedVersion version : versions) {
if (version.getName().equals(name)) {
return version;
}
}
return null;
}

public List<Issue> getIssuesWithFixVersion(String projectKey, String version) throws TimeoutException {
return getIssuesWithFixVersion(projectKey, version, "");
}

public List<Issue> getIssuesWithFixVersion(String projectKey, String version, String filter)
throws TimeoutException {
LOGGER.fine("Fetching versions from project: " + projectKey + " with fixVersion:" + version);
if (isNotEmpty(filter)) {
return service.getIssuesFromJqlSearch(
String.format("project = \"%s\" and fixVersion = \"%s\" and " + filter, projectKey, version), 100);
String.format("project = \"%s\" and fixVersion = \"%s\" and " + filter, projectKey, version),
MAX_ISSUES);
}
return service.getIssuesFromJqlSearch(
String.format("project = \"%s\" and fixVersion = \"%s\"", projectKey, version), 100);
String.format("project = \"%s\" and fixVersion = \"%s\"", projectKey, version), MAX_ISSUES);
}

/**
* Get all issue types
*
* @return An array of issue types
*/
public List<IssueType> getIssueTypes() {
LOGGER.fine("Fetching issue types");
return service.getIssueTypes();
}

/**
* Get all priorities
*
* @return An array of priorities
*/
public List<Priority> getPriorities() {
LOGGER.fine("Fetching priorities");
return service.getPriorities();
}

/**
* Release given version in given project
*/
public void releaseVersion(String projectKey, ExtendedVersion version) {
LOGGER.fine("Releasing version: " + version.getName());
service.releaseVersion(projectKey, version);
}

/**
* Replaces the fix version list of all issues matching the JQL Query with the version specified.
*
* @param projectKey The Jira Project key
* @param version The replacement version
* @param query The JQL Query
*/
public void migrateIssuesToFixVersion(String projectKey, String version, String query) throws TimeoutException {

Version newVersion = getVersionByName(projectKey, version);
if (newVersion == null) {
LOGGER.warning("Version " + version + " was not found");
return;
}

LOGGER.fine("Fetching versions with JQL:" + query);
List<Issue> issues = service.getIssuesFromJqlSearch(query, Integer.MAX_VALUE);
List<Issue> issues = service.getIssuesFromJqlSearch(query, MAX_ISSUES);

Check warning on line 229 in src/main/java/hudson/plugins/jira/JiraSession.java

View check run for this annotation

ci.jenkins.io / Code Coverage

Not covered lines

Lines 134-229 are not covered by tests
if (issues == null || issues.isEmpty()) {
return;
}
Expand Down Expand Up @@ -253,7 +256,7 @@
}

LOGGER.fine("Fetching versions with JQL:" + query);
List<Issue> issues = service.getIssuesFromJqlSearch(query, Integer.MAX_VALUE);
List<Issue> issues = service.getIssuesFromJqlSearch(query, MAX_ISSUES);
if (issues == null) {
return;
}
Expand Down Expand Up @@ -306,7 +309,7 @@
}

LOGGER.fine("Fetching issues with JQL:" + query);
List<Issue> issues = service.getIssuesFromJqlSearch(query, Integer.MAX_VALUE);
List<Issue> issues = service.getIssuesFromJqlSearch(query, MAX_ISSUES);

Check warning on line 312 in src/main/java/hudson/plugins/jira/JiraSession.java

View check run for this annotation

ci.jenkins.io / Code Coverage

Not covered line

Line 312 is not covered by tests
if (issues == null || issues.isEmpty()) {
return;
}
Expand Down
8 changes: 4 additions & 4 deletions src/test/java/JiraTester.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import static hudson.plugins.jira.JiraSite.ExtendedAsynchronousJiraRestClientFactory;

import com.atlassian.jira.rest.client.api.domain.Component;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.IssueType;
import com.atlassian.jira.rest.client.api.domain.Status;
import com.atlassian.jira.rest.client.api.domain.Transition;
import com.atlassian.jira.rest.client.api.domain.User;
import hudson.plugins.jira.JiraRestService;
import hudson.plugins.jira.JiraSession;
import hudson.plugins.jira.JiraSite;
import hudson.plugins.jira.JiraSite.ExtendedAsynchronousJiraRestClientFactory;
import hudson.plugins.jira.extension.ExtendedJiraRestClient;
import hudson.plugins.jira.extension.ExtendedVersion;
import java.net.URI;
Expand Down Expand Up @@ -103,7 +103,7 @@ public static void main(String[] args) throws Exception {
private static void callUniq(final JiraRestService restService) throws Exception {
long start = System.currentTimeMillis();
List<Issue> issues =
restService.getIssuesFromJqlSearch("key in ('JENKINS-53320','JENKINS-51057')", Integer.MAX_VALUE);
restService.getIssuesFromJqlSearch("key in ('JENKINS-53320','JENKINS-51057')", JiraSession.MAX_ISSUES);
long end = System.currentTimeMillis();
System.out.println("time uniq " + (end - start));
}
Expand All @@ -112,7 +112,7 @@ private static void callDuplicate(final JiraRestService restService) throws Exce
long start = System.currentTimeMillis();
List<Issue> issues = restService.getIssuesFromJqlSearch(
"key in ('JENKINS-53320','JENKINS-53320','JENKINS-53320','JENKINS-53320','JENKINS-53320','JENKINS-51057','JENKINS-51057','JENKINS-51057','JENKINS-51057','JENKINS-51057')",
Integer.MAX_VALUE);
JiraSession.MAX_ISSUES);
long end = System.currentTimeMillis();
System.out.println("time duplicate " + (end - start));
}
Expand Down
8 changes: 4 additions & 4 deletions src/test/java/JiraTesterBearerAuth.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import static hudson.plugins.jira.JiraSite.ExtendedAsynchronousJiraRestClientFactory;

import com.atlassian.jira.rest.client.api.domain.Component;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.IssueType;
import com.atlassian.jira.rest.client.api.domain.Status;
import com.atlassian.jira.rest.client.api.domain.Transition;
import com.atlassian.jira.rest.client.api.domain.User;
import hudson.plugins.jira.JiraRestService;
import hudson.plugins.jira.JiraSession;
import hudson.plugins.jira.JiraSite;
import hudson.plugins.jira.JiraSite.ExtendedAsynchronousJiraRestClientFactory;
import hudson.plugins.jira.auth.BearerHttpAuthenticationHandler;
import hudson.plugins.jira.extension.ExtendedJiraRestClient;
import hudson.plugins.jira.extension.ExtendedVersion;
Expand Down Expand Up @@ -105,7 +105,7 @@ public static void main(String[] args) throws Exception {
private static void callUniq(final JiraRestService restService) throws Exception {
long start = System.currentTimeMillis();
List<Issue> issues =
restService.getIssuesFromJqlSearch("key in ('JENKINS-53320','JENKINS-51057')", Integer.MAX_VALUE);
restService.getIssuesFromJqlSearch("key in ('JENKINS-53320','JENKINS-51057')", JiraSession.MAX_ISSUES);
long end = System.currentTimeMillis();
System.out.println("time uniq " + (end - start));
}
Expand All @@ -114,7 +114,7 @@ private static void callDuplicate(final JiraRestService restService) throws Exce
long start = System.currentTimeMillis();
List<Issue> issues = restService.getIssuesFromJqlSearch(
"key in ('JENKINS-53320','JENKINS-53320','JENKINS-53320','JENKINS-53320','JENKINS-53320','JENKINS-51057','JENKINS-51057','JENKINS-51057','JENKINS-51057','JENKINS-51057')",
Integer.MAX_VALUE);
JiraSession.MAX_ISSUES);
long end = System.currentTimeMillis();
System.out.println("time duplicate " + (end - start));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void replaceWithFixVersionByRegex() throws URISyntaxException, TimeoutException
ArrayList<Issue> issues = new ArrayList<>();
issues.add(getIssue("abcXXXXefg", 1L));
issues.add(getIssue("dgcXXXXefg", 2L));
when(service.getIssuesFromJqlSearch(QUERY, Integer.MAX_VALUE)).thenReturn(issues);
when(service.getIssuesFromJqlSearch(QUERY, JiraSession.MAX_ISSUES)).thenReturn(issues);

jiraSession.replaceFixVersion(PROJECT_KEY, "/abc.*efg/", TO_VERSION, QUERY);

Expand Down
Loading