日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 调用jira_java调用jira接口

發布時間:2024/7/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 调用jira_java调用jira接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/starcrm/p/4837971.html

首先通過jira的wsdl(http://localhost:8080/rpc/soap/jirasoapservice-v2?wsdl)生成要引入的類

然后寫客戶端:

package jiraTEST;

import java.net.URI;

import java.net.URISyntaxException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.concurrent.ExecutionException;

import org.apache.commons.codec.binary.Base32;

import org.joda.time.DateTime;

import com.atlassian.jira.rest.client.IssueRestClient;

import com.atlassian.jira.rest.client.JiraRestClient;

import com.atlassian.jira.rest.client.SearchRestClient;

import com.atlassian.jira.rest.client.domain.BasicIssue;

import com.atlassian.jira.rest.client.domain.BasicProject;

import com.atlassian.jira.rest.client.domain.BasicUser;

import com.atlassian.jira.rest.client.domain.Comment;

import com.atlassian.jira.rest.client.domain.Field;

import com.atlassian.jira.rest.client.domain.Issue;

import com.atlassian.jira.rest.client.domain.Project;

import com.atlassian.jira.rest.client.domain.SearchResult;

import com.atlassian.jira.rest.client.domain.Transition;

import com.atlassian.jira.rest.client.domain.input.ComplexIssueInputFieldValue;

import com.atlassian.jira.rest.client.domain.input.FieldInput;

import com.atlassian.jira.rest.client.domain.input.IssueInput;

import com.atlassian.jira.rest.client.domain.input.IssueInputBuilder;

import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;

import com.atlassian.util.concurrent.Promise;

import com.google.common.collect.Lists;

public class CvteJiraDemo {

public static String BaseURL = "http://jira-test:8080/";

public static String User = "admin";

public static String Password = "admin";

private static URI jiraServerUri = URI.create("http://jira-test/rest/api/2/");

private static boolean quiet = false;

private static final long BUG_TYPE_ID = 1L; // JIRA magic value

private static final long TASK_TYPE_ID = 3L; // JIRA magic value

private static final DateTime DUE_DATE = new DateTime();

private static final String PRIORITY = "Trivial";

private static final String DESCRIPTION = "description";

public static void main(String[] args) throws InterruptedException,

ExecutionException {

final AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();

URI jiraServerUri;

try {

jiraServerUri = new URI(BaseURL);

final JiraRestClient restClient = (JiraRestClient) factory.createWithBasicHttpAuthentication(jiraServerUri, User,Password);

getAllProjects(restClient);

getProject(restClient, "DEMO");

getIssue(restClient, "FEEDBACK-14");

getIssueFields(restClient, "FEEDBACK-27");

addIssue(restClient, "FEEDBACK", "AAAAB");

addIssueComplex(restClient, "FEEDBACK",DUE_DATE.toString());

} catch (URISyntaxException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

}

}

private static void println(Object o) {

if (!quiet) {

System.out.println(o);

}

}

private static void parseArgs(String[] argsArray) throws URISyntaxException {

final List args = Lists.newArrayList(argsArray);

if (args.contains("-q")) {

quiet = true;

args.remove(args.indexOf("-q"));

}

if (!args.isEmpty()) {

jiraServerUri = new URI(args.get(0));

}

}

private static Transition getTransitionByName(

Iterable transitions, String transitionName) {

for (Transition transition : transitions) {

if (transition.getName().equals(transitionName)) {

return transition;

}

}

return null;

}

// 得到所有項目信息

private static void getAllProjects(final JiraRestClient restClient)

throws InterruptedException, ExecutionException {

try {

Promise> list = restClient

.getProjectClient().getAllProjects();

Iterable a = list.get();

Iterator it = a.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

} finally {

}

}

// 得到單一項目信息

private static void getProject(final JiraRestClient restClient,

String porjectKEY) throws InterruptedException, ExecutionException {

try {

Project project = restClient.getProjectClient()

.getProject(porjectKEY).get();

System.out.println(project);

} finally {

}

}

// 得到單一問題信息

private static void getIssue(final JiraRestClient restClient,

String issueKEY) throws InterruptedException, ExecutionException {

try {

Promise list = restClient.getIssueClient()

.getIssue(issueKEY);

Issue issue = list.get();

System.out.println(issue);

} finally {

}

}

// 創建問題

public static BasicIssue createIssue(final JiraRestClient jiraRestClient,

IssueInput newIssue) {

BasicIssue basicIssue = jiraRestClient.getIssueClient()

.createIssue(newIssue).claim();

return basicIssue;

}

//添加備注到問題

public static void addCommentToIssue(final JiraRestClient jiraRestClient,Issue issue, String comment) {

IssueRestClient issueClient = jiraRestClient.getIssueClient();

issueClient.addComment(issue.getCommentsUri(), Comment.valueOf(comment)).claim();

}

//刪除問題,目前找不到對應API

public static void deleteIssue(final JiraRestClient jiraRestClient, Issue issue) {

IssueRestClient issueClient = jiraRestClient.getIssueClient();

//issueClient.deleteIssue(issue.getKey(), false).claim();

}

//通過標題獲取問題

public static Iterable findIssuesByLabel(final JiraRestClient jiraRestClient, String label) {

SearchRestClient searchClient = jiraRestClient.getSearchClient();

String jql = "labels%3D"+label;

com.atlassian.jira.rest.client.domain.SearchResult results = ((SearchRestClient) jiraRestClient).searchJql(jql).claim();

return results.getIssues();

}

//通過KEY獲取問題

public static Issue findIssueByIssueKey(final JiraRestClient jiraRestClient, String issueKey) {

SearchRestClient searchClient = jiraRestClient.getSearchClient();

String jql = "issuekey = \"" + issueKey + "\"";

SearchResult results = searchClient.searchJql(jql).claim();

return (Issue) results.getIssues().iterator().next();

}

// 創建問題 :僅有簡單問題名稱

private static void addIssue(final JiraRestClient restClient,

String porjectKEY, String issueName) throws InterruptedException,

ExecutionException {

try {

IssueInputBuilder builder = new IssueInputBuilder(porjectKEY,

TASK_TYPE_ID, issueName);

builder.setDescription("issue description");

final IssueInput input = builder.build();

try {

// create issue

final IssueRestClient client = restClient.getIssueClient();

final BasicIssue issue = client.createIssue(input).claim();

final Issue actual = client.getIssue(issue.getKey()).claim();

System.out.println(actual);

} finally {

if (restClient != null) {

// restClient.close();

}

}

} finally {

}

}

// 創建問題 :包含自定義字段

private static void addIssueComplex(final JiraRestClient restClient,

String porjectKEY, String issueName) throws InterruptedException,

ExecutionException {

try {

IssueInputBuilder builder = new IssueInputBuilder(porjectKEY,

TASK_TYPE_ID, issueName);

builder.setDescription("issue description");

// builder.setFieldValue("priority", ComplexIssueInputFieldValue.with("name", PRIORITY));

//單行文本

builder.setFieldValue("customfield_10042", "單行文本測試");

//單選字段

builder.setFieldValue("customfield_10043", ComplexIssueInputFieldValue.with("value", "一般"));

//數值自定義字段

builder.setFieldValue("customfield_10044", 100.08);

//用戶選擇自定義字段

builder.setFieldValue("customfield_10045", ComplexIssueInputFieldValue.with("name", "admin"));

//用戶選擇自定義字段(多選)

Map user1 = new HashMap();

user1.put("name", "admin");

Map user2 = new HashMap();

user2.put("name", "wangxn");

ArrayList peoples = new ArrayList();

peoples.add(user1);

peoples.add(user2);

builder.setFieldValue("customfield_10047", peoples);

//設定父問題

Map parent = new HashMap();

parent.put("key", "FEEDBACK-25");

FieldInput parentField = new FieldInput("parent", new ComplexIssueInputFieldValue(parent));

builder.setFieldInput(parentField);

final IssueInput input = builder.build();

try {

final IssueRestClient client = restClient.getIssueClient();

final BasicIssue issue = client.createIssue(input).claim();

final Issue actual = client.getIssue(issue.getKey()).claim();

System.out.println(actual);

} finally {

if (restClient != null) {

// restClient.close();

}

}

} finally {

}

}

//獲取問題的所有字段

private static void getIssueFields(final JiraRestClient restClient,

String issueKEY) throws InterruptedException, ExecutionException {

try {

Promise list = restClient.getIssueClient()

.getIssue(issueKEY);

Issue issue = list.get();

Iterable fields = issue.getFields();

Iterator it = fields.iterator();

while (it.hasNext()) {

System.out.println(it.next());

}

} finally {

}

}

}

總結

以上是生活随笔為你收集整理的java 调用jira_java调用jira接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。