|
From: <lac...@us...> - 2007-10-05 08:14:28
|
Revision: 53
http://td2jira.svn.sourceforge.net/td2jira/?rev=53&view=rev
Author: lacostej
Date: 2007-10-05 01:14:29 -0700 (Fri, 05 Oct 2007)
Log Message:
-----------
Add support for setting up priority when creating the issue and updating it.
Modified Paths:
--------------
trunk/td2jira/docs/ReleaseNotes.txt
trunk/td2jira/src/td2jira/Config.java
trunk/td2jira/src/td2jira/jira/IJIRAConnector.java
trunk/td2jira/src/td2jira/jira/JIRAIssue.java
trunk/td2jira/src/td2jira/jira/soap/JIRASoapConnector.java
trunk/td2jira/src/td2jira/jira/xmlrpc/JIRAXmlRpcConnector.java
trunk/td2jira/src/td2jira/sync/SyncUtils.java
Modified: trunk/td2jira/docs/ReleaseNotes.txt
===================================================================
--- trunk/td2jira/docs/ReleaseNotes.txt 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/docs/ReleaseNotes.txt 2007-10-05 08:14:29 UTC (rev 53)
@@ -15,6 +15,8 @@
* WORK-AROUND a failure to retrieve some attachments from TD. May be a TD issue or some sort of jacob/TD combination problem.
* FEATURE Supports closing of issues in Jira (only works for XML-RPC)
TODO document differences between both connectors
+* FEATURE Add support for setting up priority when creating the issue and updating it.
+ The list of priorities is currently hardcoded to the default JIRA / TD settings. See Config class
Old release
Modified: trunk/td2jira/src/td2jira/Config.java
===================================================================
--- trunk/td2jira/src/td2jira/Config.java 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/src/td2jira/Config.java 2007-10-05 08:14:29 UTC (rev 53)
@@ -157,4 +157,19 @@
// String val = getProperty(key);
// return val == null? defaultValue:val.trim();
// }
+
+ /**
+ *
+ * @param tdPriority
+ * @return <code>null</code> when couldn't be mapped
+ */
+ public static String getJiraPrioriryForTDPriority(String tdPriority) {
+ Map<String, String> map = new HashMap<String,String>();
+ map.put("5-Urgent", "1"); // BLOCKER
+ map.put("4-Very High", "2"); // CRITICAL
+ map.put("3-High", "3"); // MAJOR
+ map.put("2-Medium", "4"); // MINOR
+ map.put("1-Low", "5"); // TRIVIAL
+ return map.get(tdPriority);
+ }
}
Modified: trunk/td2jira/src/td2jira/jira/IJIRAConnector.java
===================================================================
--- trunk/td2jira/src/td2jira/jira/IJIRAConnector.java 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/src/td2jira/jira/IJIRAConnector.java 2007-10-05 08:14:29 UTC (rev 53)
@@ -30,4 +30,6 @@
List<String> getAttachmentsNames(JIRAIssue jiraIssue);
void addAttachment(JIRAIssue jiraIssue, String fileName, byte[] data);
+
+ void updatePriority(JIRAIssue jiraIssue);
}
\ No newline at end of file
Modified: trunk/td2jira/src/td2jira/jira/JIRAIssue.java
===================================================================
--- trunk/td2jira/src/td2jira/jira/JIRAIssue.java 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/src/td2jira/jira/JIRAIssue.java 2007-10-05 08:14:29 UTC (rev 53)
@@ -12,6 +12,7 @@
private String id;
private String key;
private String status;
+ private String priority;
private String resolution;
private String summary;
private String assignee;
@@ -33,6 +34,14 @@
this.key = jiraId;
}
+ public String getPriority() {
+ return priority;
+ }
+
+ public void setPriority(String priority) {
+ this.priority = priority;
+ }
+
public String getSummary() {
return summary;
}
@@ -89,6 +98,7 @@
jt.setSummary((String) map.get("summary"));
jt.setResolution(resolutions.get((String) map.get("resolution")));
jt.setProjectId((String) map.get("project"));
+ jt.setPriority((String) map.get("priority"));
jt.setKey((String) map.get("key"));
jt.setId((String) map.get("id"));
jt.setStatus(statuses.get((String) map.get("status")));
Modified: trunk/td2jira/src/td2jira/jira/soap/JIRASoapConnector.java
===================================================================
--- trunk/td2jira/src/td2jira/jira/soap/JIRASoapConnector.java 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/src/td2jira/jira/soap/JIRASoapConnector.java 2007-10-05 08:14:29 UTC (rev 53)
@@ -34,6 +34,18 @@
}
}
+ public void updatePriority(JIRAIssue jiraIssue) {
+ try {
+ RemoteFieldValue rfvPriority = new RemoteFieldValue();
+ rfvPriority.setId("priority");
+ rfvPriority.setValues(new String[]{jiraIssue.getPriority()});
+
+ svc.updateIssue(token, jiraIssue.getKey(), new RemoteFieldValue[]{rfvPriority});
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
public void addComment(JIRAIssue jt, String comment) {
try {
logger.info("adding comment to " + jt.getKey());
@@ -76,6 +88,9 @@
issue.setSummary(jiraIssue.getSummary());
issue.setDescription(jiraIssue.getDescription());
issue.setAssignee(jiraIssue.getAssignee());
+ if (jiraIssue.getPriority() != null) {
+ issue.setPriority(jiraIssue.getPriority());
+ }
issue = svc.createIssue(token, issue);
logger.info("new JIRA issue " + issue.getKey() + " has been created");
@@ -96,6 +111,7 @@
ji.setAssignee(issue.getAssignee());
ji.setDescription(issue.getDescription());
ji.setProjectId(issue.getProject());
+ ji.setPriority(issue.getPriority());
// ji.setResolution(JIRAIssue.resolutions.get(issue.getResolution()));
// ji.setResolution(issue.getResolution());
ji.setStatus(JIRAIssue.statuses.get(issue.getStatus()));
Modified: trunk/td2jira/src/td2jira/jira/xmlrpc/JIRAXmlRpcConnector.java
===================================================================
--- trunk/td2jira/src/td2jira/jira/xmlrpc/JIRAXmlRpcConnector.java 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/src/td2jira/jira/xmlrpc/JIRAXmlRpcConnector.java 2007-10-05 08:14:29 UTC (rev 53)
@@ -180,11 +180,13 @@
issue.put("project", jtd.getProjectId());
issue.put("type", 1);
issue.put("assignee", jtd.getAssignee());
+ if (jtd.getPriority() != null)
+ issue.put("priority", jtd.getPriority());
Map[] versions = getVersions();
for (Map map : versions) {
String name = (String) map.get("name");
- if (name.indexOf("Phase II - SIT") >= 0) {
+ if (name.indexOf("Phase II - SIT") >= 0) { // TODO project specific
Vector v = new Vector();
v.add(map);
issue.put("affectsVersions", v);
@@ -308,6 +310,17 @@
logger.error(jiraIssue.getKey() + ": adding attachment data for file " + fileName + " (" + data.length + " bytes) (NOT IMPLEMENTED IN XML-RPC)");
}
+ public void updatePriority(JIRAIssue jiraIssue) {
+ try {
+ Map issue = (Map) rpcClient.execute("jira1.getIssue", params(token, jiraIssue.getKey()));
+ issue.put("priority", jiraIssue.getPriority());
+ Map issue2 = vectorizeValues(issue);
+ Object o = rpcClient.execute("jira1.updateIssue", params(token, jiraIssue.getKey(), issue2));
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
public List<String> getAttachmentsNames(JIRAIssue jiraIssue) {
return new ArrayList<String>();
}
Modified: trunk/td2jira/src/td2jira/sync/SyncUtils.java
===================================================================
--- trunk/td2jira/src/td2jira/sync/SyncUtils.java 2007-10-04 13:14:57 UTC (rev 52)
+++ trunk/td2jira/src/td2jira/sync/SyncUtils.java 2007-10-05 08:14:29 UTC (rev 53)
@@ -1,8 +1,6 @@
package td2jira.sync;
-import java.util.List;
-import java.util.Set;
-import java.util.Date;
+import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.text.SimpleDateFormat;
@@ -35,6 +33,8 @@
syncCommentsToJIRA(jc, pair, tdComments, jiraComments);
syncCommentsToTD(tc, pair, jiraComments, tdComments);
+ syncPriorityToJIRA(jc, pair);
+
// syncAttachmentsToJIRA(tc,jc,pair);
syncAssigneeToTD(tc, pair);
@@ -51,6 +51,25 @@
}
}
+ private static void syncPriorityToJIRA(IJIRAConnector jc, IssuePair pair) throws Exception {
+ JIRAIssue jiraIssue = pair.getJiraIssue();
+
+ String tdPriority = pair.getTdIssue().getPriority();
+ String jiraPriority = Config.getJiraPrioriryForTDPriority(tdPriority);
+ if (jiraPriority == null) {
+ logger.warn("Coudn't map TD priority " + tdPriority + " for issues " + pair);
+ return;
+ }
+ String oldJiraPriority = pair.getJiraIssue().getPriority();
+ if (jiraPriority.equals(oldJiraPriority)) {
+ return;
+ }
+ logger.info("Changing JIRA priority for issue " + jiraIssue.getKey()
+ + " from " + oldJiraPriority + " to " + jiraPriority);
+ jiraIssue.setPriority(jiraPriority);
+ jc.updatePriority(jiraIssue);
+ }
+
public static void syncAttachmentsToJIRA(ITDConnector tc, IJIRAConnector jc, IssuePair pair) {
if (!tc.hasAttachments(pair.getTdIssue())) return;
@@ -229,6 +248,7 @@
String at = Config.JIRA_ASSIGN_NEW_ISSUE_TO;
if (at != null && jt.getAssignee() == null) jt.setAssignee(at);
+ jt.setPriority(Config.getJiraPrioriryForTDPriority(tdIssue.getPriority()));
jiraConnector.createJIRATask(jt);
IssuePair pair = new IssuePair();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|