1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package samples;
18
19 import com.atlassian.jira.rest.client.api.IssueRestClient;
20 import com.atlassian.jira.rest.client.api.JiraRestClient;
21 import com.atlassian.jira.rest.client.api.domain.BasicIssue;
22 import com.atlassian.jira.rest.client.api.domain.input.IssueInput;
23 import com.atlassian.jira.rest.client.api.domain.input.IssueInputBuilder;
24 import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
25 import com.atlassian.util.concurrent.Promise;
26 import com.google.common.base.Function;
27 import com.google.common.base.Joiner;
28 import com.google.common.collect.Lists;
29
30 import java.io.IOException;
31 import java.net.URI;
32 import java.util.List;
33
34 import static com.google.common.collect.Iterables.transform;
35
36
37
38
39
40
41 public class ExampleCreateIssuesAsynchronous {
42
43 private static URI jiraServerUri = URI.create("http://localhost:2990/jira");
44
45 public static void main(String[] args) throws IOException {
46 final AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
47 final JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, "admin", "admin");
48
49 try {
50 final List<Promise<BasicIssue>> promises = Lists.newArrayList();
51 final IssueRestClient issueClient = restClient.getIssueClient();
52
53 System.out.println("Sending issue creation requests...");
54 for (int i = 0; i < 100; i++) {
55 final String summary = "NewIssue#" + i;
56 final IssueInput newIssue = new IssueInputBuilder("TST", 1L, summary).build();
57 System.out.println("\tCreating: " + summary);
58 promises.add(issueClient.createIssue(newIssue));
59 }
60
61 System.out.println("Collecting responses...");
62 final Iterable<BasicIssue> createdIssues = transform(promises, new Function<Promise<BasicIssue>, BasicIssue>() {
63 @Override
64 public BasicIssue apply(Promise<BasicIssue> promise) {
65 return promise.claim();
66 }
67 });
68
69 System.out.println("Created issues:\n" + Joiner.on("\n").join(createdIssues));
70 } finally {
71 restClient.close();
72 }
73 }
74 }