r437 - in trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin: . report
Author: tchemit Date: 2014-04-16 10:21:41 +0200 (Wed, 16 Apr 2014) New Revision: 437 Url: http://forge.nuiton.org/projects/jredmine/repository/revisions/437 Log: fixes #3152 Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2014-04-16 07:51:06 UTC (rev 436) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/AbstractRedmineMojo.java 2014-04-16 08:21:41 UTC (rev 437) @@ -158,9 +158,6 @@ /** the date format used to write a date */ protected DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); -// /** flag to mark if a runOnce goal was done */ -// protected boolean runOnceDone; - /** flag to mark if service was sucessfull init */ protected boolean serviceInit; @@ -230,16 +227,6 @@ this.url = url; } -// /////////////////////////////////////////////////////////////////////////// -// /// AbstractRedmineMojo -// /////////////////////////////////////////////////////////////////////////// -// -// protected abstract boolean isGoalSkip(); -// -// protected abstract boolean isRunOnce(); -// -// protected abstract boolean checkRunOnceDone(); - /////////////////////////////////////////////////////////////////////////// /// AbstractPlugin /////////////////////////////////////////////////////////////////////////// @@ -378,11 +365,6 @@ } } -// @Override -// public boolean isRunOnceDone() { -// return runOnceDone; -// } - /** * Convinient method to throw the given {@code message} * if {@link #safe} flag is on. Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2014-04-16 07:51:06 UTC (rev 436) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/GenerateChangesMojo.java 2014-04-16 08:21:41 UTC (rev 437) @@ -43,6 +43,7 @@ import org.nuiton.jredmine.model.Tracker; import org.nuiton.jredmine.model.User; import org.nuiton.jredmine.model.Version; +import org.nuiton.jredmine.plugin.report.IssueReportGenerator; import org.nuiton.jredmine.service.RedmineServiceException; import org.nuiton.plugin.PluginHelper; @@ -197,6 +198,20 @@ @Parameter(property = "redmine.runOnlyOnRoot", defaultValue = "true") protected boolean runOnlyOnRoot; + /** + * Template strings per system that is used to discover the URL to use to display an issue report. Each key in this + * map denotes the (case-sensitive) identifier of the issue tracking system and its value gives the URL template. + * <p> + * There are 2 template tokens you can use. <code>%URL%</code>: this is computed by getting the + * <code><issueManagement>/<url></code> value from the POM, and removing the last '/' + * and everything that comes after it. <code>%ISSUE%</code>: this is the issue number. + * </p> + * + * @since 1.7 + */ + @Parameter(property = "redmine.issueLinkTemplate", defaultValue = "%URL%/issues/show/%ISSUE%") + protected String issueLinkTemplate = "%URL%/issues/show/%ISSUE%"; + /////////////////////////////////////////////////////////////////////////// /// Mojo internal attributes /////////////////////////////////////////////////////////////////////////// @@ -642,6 +657,8 @@ } } + String redmineUrl = url.toString(); + // iterate on actions ? or order it for (Entry<Integer, String> entry : trackerToAction.entrySet()) { @@ -660,11 +677,17 @@ action.setIssue(issue.getId() + ""); action.setType(type); + String issueUrl = IssueReportGenerator.parseIssueLink(issueLinkTemplate, redmineUrl, action.getIssue()); + + String issueLogPrefix = "issue " + action.getIssue() + " '" + issue.getSubject() + "' "; + String issueLogSuffix = " (see " + issueUrl + ")"; + + if (issue.getDueDate() != null) { action.setDate(dateFormat.format(issue.getDueDate())); } else { if (verbose) { - getLog().warn("issue " + issue.getSubject() + " has no dueDate..."); + getLog().warn(issueLogPrefix + " has no dueDate, the changes report may not be complete." + issueLogSuffix); } } @@ -676,7 +699,7 @@ id = issue.getAuthorId(); if (id == 0) { - getLog().warn("issue " + issue.getSubject() + " is not created to any user, this is not normal..."); + getLog().warn(issueLogPrefix + " is not created to any user, the changes report may not be complete." + issueLogSuffix); id = issue.getAuthorId(); } a = IdAbles.byId(id, users); @@ -690,7 +713,7 @@ id = issue.getAssignedToId(); if (id == 0) { - getLog().warn("issue " + issue.getSubject() + " is not assigned to any user, this is not normal..."); + getLog().warn(issueLogPrefix + " is not assigned to a user, the changes report may not be complete." + issueLogSuffix); id = issue.getAuthorId(); } a = IdAbles.byId(id, users); Modified: trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java =================================================================== --- trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java 2014-04-16 07:51:06 UTC (rev 436) +++ trunk/jredmine-maven-plugin/src/main/java/org/nuiton/jredmine/plugin/report/IssueReportGenerator.java 2014-04-16 08:21:41 UTC (rev 437) @@ -537,14 +537,7 @@ } protected String parseIssueLink(String issue) { - String parseLink; - String issueLink = issueLinkTemplate; - parseLink = issueLink.replaceFirst(ISSUE_TOKEN, issue); - - if (parseLink.contains(URL_TOKEN)) { - parseLink = parseLink.replaceFirst(URL_TOKEN, url); - } - + String parseLink = parseIssueLink(issueLinkTemplate, url, issue); return parseLink; } @@ -694,4 +687,16 @@ sink.sectionTitle1_(); } + + public static String parseIssueLink(String issueLinkTemplate, String url, String issue) { + String parseLink; + String issueLink = issueLinkTemplate; + parseLink = issueLink.replaceFirst(IssueReportGenerator.ISSUE_TOKEN, issue); + + if (parseLink.contains(IssueReportGenerator.URL_TOKEN)) { + parseLink = parseLink.replaceFirst(IssueReportGenerator.URL_TOKEN, url); + } + + return parseLink; + } }
participants (1)
-
tchemit@users.nuiton.org