MPJIRA-4 <issueTrackingUrl> must contain an "id" attribute
Fixed by downloading the project page and extracting a project id from it git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@344007 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1363f63469
commit
a8d71f4ad9
@ -27,7 +27,7 @@
|
|||||||
<description>This plugin downloads issues from Jira and creates a report.</description>
|
<description>This plugin downloads issues from Jira and creates a report.</description>
|
||||||
<shortDescription>Download issues from Jira</shortDescription>
|
<shortDescription>Download issues from Jira</shortDescription>
|
||||||
<url>http://maven.apache.org/maven-1.x/reference/plugins/jira/</url>
|
<url>http://maven.apache.org/maven-1.x/reference/plugins/jira/</url>
|
||||||
<issueTrackingUrl>http://jira.codehaus.org/secure/IssueNavigator.jspa?id=10450</issueTrackingUrl>
|
<issueTrackingUrl>http://jira.codehaus.org/browse/MPJIRA</issueTrackingUrl>
|
||||||
<siteDirectory>/www/maven.apache.org/maven-1.x/reference/plugins/jira/</siteDirectory>
|
<siteDirectory>/www/maven.apache.org/maven-1.x/reference/plugins/jira/</siteDirectory>
|
||||||
<repository>
|
<repository>
|
||||||
<connection>scm:svn:http://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk/jira/</connection>
|
<connection>scm:svn:http://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk/jira/</connection>
|
||||||
|
|||||||
@ -21,6 +21,8 @@ import java.io.File;
|
|||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
import java.text.NumberFormat;
|
||||||
|
import java.text.ParsePosition;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -186,11 +188,12 @@ public final class JiraDownloader {
|
|||||||
public void doExecute() throws Exception {
|
public void doExecute() throws Exception {
|
||||||
if (project == null) {
|
if (project == null) {
|
||||||
throw new Exception("No project set.");
|
throw new Exception("No project set.");
|
||||||
} else {
|
}
|
||||||
|
|
||||||
if (project.getIssueTrackingUrl() == null) {
|
if (project.getIssueTrackingUrl() == null) {
|
||||||
throw new Exception("No issue tracking url set.");
|
throw new Exception("No issue tracking url set.");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
HttpClient cl = new HttpClient();
|
HttpClient cl = new HttpClient();
|
||||||
@ -205,20 +208,49 @@ public final class JiraDownloader {
|
|||||||
// chop off the parameter part
|
// chop off the parameter part
|
||||||
int pos = url.indexOf("?");
|
int pos = url.indexOf("?");
|
||||||
// and get the id while we're at it
|
// and get the id while we're at it
|
||||||
String id = "";
|
String id = null;
|
||||||
if (pos >= 0) {
|
if (pos >= 0) {
|
||||||
// url
|
// url
|
||||||
id = url.substring(url.lastIndexOf("=") + 1);
|
id = url.substring(url.lastIndexOf("=") + 1);
|
||||||
}
|
}
|
||||||
// TODO: fail the build in the else block, issueTrackingUrl has to include id
|
|
||||||
|
|
||||||
String jiraUrl = url.substring(0, url.lastIndexOf("/"));
|
String jiraUrl = url.substring(0, url.lastIndexOf("/"));
|
||||||
if (jiraUrl.endsWith("secure")) {
|
if (jiraUrl.endsWith("secure") || jiraUrl.endsWith("browse")) {
|
||||||
jiraUrl = jiraUrl.substring(0, jiraUrl.lastIndexOf("/"));
|
jiraUrl = jiraUrl.substring(0, jiraUrl.lastIndexOf("/"));
|
||||||
}
|
}
|
||||||
log.info("Jira lives at: " + jiraUrl);
|
log.info("Jira lives at: " + jiraUrl);
|
||||||
doAuthentication(cl, jiraUrl);
|
doAuthentication(cl, jiraUrl);
|
||||||
|
|
||||||
|
if (id == null) {
|
||||||
|
GetMethod gm = new GetMethod(url);
|
||||||
|
log.info("Jira URL " + url + " doesn't include a pid, trying to get it");
|
||||||
|
try {
|
||||||
|
cl.executeMethod(gm);
|
||||||
|
log.info("Succesfully reached JIRA.");
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.error("Unable to reach JIRA project page:", e);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
log.error("Unable to reach JIRA project page. Cause is: " + e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String projectPage = gm.getResponseBodyAsString();
|
||||||
|
int pidIndex = projectPage.indexOf("pid="); // @todo, a safer way to get the PID
|
||||||
|
|
||||||
|
if (pidIndex == -1) {
|
||||||
|
// fail
|
||||||
|
log.error("Unable to get JIRA pid using url " + project.getIssueTrackingUrl());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
NumberFormat nf = NumberFormat.getInstance();
|
||||||
|
Number pidNumber = nf.parse(projectPage, new ParsePosition(pidIndex + 4));
|
||||||
|
id = Integer.toString(pidNumber.intValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// create the URL for getting the proper iussues from JIRA
|
// create the URL for getting the proper iussues from JIRA
|
||||||
String fullURL = jiraUrl + "/secure/IssueNavigator.jspa?view=rss&pid=" + id;
|
String fullURL = jiraUrl + "/secure/IssueNavigator.jspa?view=rss&pid=" + id;
|
||||||
fullURL += createFilter();
|
fullURL += createFilter();
|
||||||
|
|||||||
@ -25,6 +25,8 @@
|
|||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
<release version="1.2-SNAPSHOT" date="in SVN">
|
<release version="1.2-SNAPSHOT" date="in SVN">
|
||||||
|
<action dev="fgiust" type="fix" issue="MPJIRA-4">Make the Jira report work also using a fancy JIRA url like http://jira.codehaus.org/browse/MPJIRA (it doesn't require
|
||||||
|
the url with a numeric project id anymore)</action>
|
||||||
<action dev="aheritier" type="update" issue="MAVEN-1712">Update dependencies to match ones in maven 1.1 core and to unify them between plugins. The following dependencies are updated :
|
<action dev="aheritier" type="update" issue="MAVEN-1712">Update dependencies to match ones in maven 1.1 core and to unify them between plugins. The following dependencies are updated :
|
||||||
<ul>
|
<ul>
|
||||||
<li>log4j v1.2.8 -> v1.2.12</li>
|
<li>log4j v1.2.8 -> v1.2.12</li>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user