Author: bentmann
Date: Wed Apr 23 10:51:49 2008
New Revision: 650961

URL: http://svn.apache.org/viewvc?rev=650961&view=rev
Log:
[MCHANGES-110] No issue links generated if ${project.issueManagement.url} empty 
but issueLinkTemplate provided

Modified:
    
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java
    
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java

Modified: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java?rev=650961&r1=650960&r2=650961&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesMojo.java
 Wed Apr 23 10:51:49 2008
@@ -102,14 +102,14 @@
     {
         ChangesReportGenerator report = new ChangesReportGenerator( xmlPath, 
getLog() );
 
-        if ( ( url == null ) || ( url.trim().equals( "" ) ) )
+        report.setIssueLink( issueLinkTemplate );
+        report.setUrl( url );
+
+        if ( !report.canGenerateIssueLinks() )
         {
-            getLog().warn(
-                "No Issue Management/URL defined in pom.xml.  Links to your 
issues will not work correctly." );
+            getLog().warn( "No issue management URL defined in POM. Links to 
your issues will not work correctly." );
         }
 
-        report.setIssueLink( issueLinkTemplate );
-        report.setUrl( url );
         report.doGenerateReport( getBundle( locale ), getSink() );
 
         // Copy the images

Modified: 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java?rev=650961&r1=650960&r2=650961&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
 (original)
+++ 
maven/plugins/trunk/maven-changes-plugin/src/main/java/org/apache/maven/plugin/changes/ChangesReportGenerator.java
 Wed Apr 23 10:51:49 2008
@@ -35,6 +35,17 @@
  */
 public class ChangesReportGenerator
 {
+
+    /**
+     * The token in [EMAIL PROTECTED] #issueLink} denoting the base URL for 
the issue management.
+     */
+    private static final String URL_TOKEN = "%URL%";
+
+    /**
+     * The token in [EMAIL PROTECTED] #issueLink} denoting the issue ID.
+     */
+    private static final String ISSUE_TOKEN = "%ISSUE%";
+
     private ChangesXML report;
 
     private String issueLink;
@@ -70,6 +81,17 @@
         return url;
     }
 
+    /**
+     * Checks whether links to the issues can be generated.
+     * 
+     * @return <code>true</code> if issue links can be generated, 
<code>false</code> otherwise.
+     */
+    public boolean canGenerateIssueLinks()
+    {
+        return !StringUtils.isBlank( getIssueLink() )
+            && ( !StringUtils.isBlank( getUrl() ) || getIssueLink().indexOf( 
URL_TOKEN ) < 0 );
+    }
+
     public void doGenerateEmptyReport( ResourceBundle bundle, Sink sink, 
String message )
     {
         sinkBeginReport( sink, bundle );
@@ -120,7 +142,7 @@
             {
                 sink.text( " " + bundle.getString( "report.changes.text.fixes" 
) + " " );
 
-                if ( StringUtils.isEmpty( url ) )
+                if ( !canGenerateIssueLinks() )
                 {
                     sink.text( action.getIssue() );
 
@@ -234,13 +256,15 @@
 
     private String parseIssueLink( String issue )
     {
-        String parseLink = "";
-
-        String url = this.url.substring( 0, this.url.lastIndexOf( "/" ) );
+        String parseLink;
 
-        parseLink = this.issueLink.replaceFirst( "%ISSUE%", issue );
+        parseLink = this.issueLink.replaceFirst( ISSUE_TOKEN, issue );
 
-        parseLink = parseLink.replaceFirst( "%URL%", url );
+        if ( parseLink.indexOf( URL_TOKEN ) >= 0 )
+        {
+            String url = this.url.substring( 0, this.url.lastIndexOf( "/" ) );
+            parseLink = parseLink.replaceFirst( URL_TOKEN, url );
+        }
 
         return parseLink;
     }


Reply via email to