Author: ltheussl
Date: Fri Dec 10 09:27:19 2010
New Revision: 1044251

URL: http://svn.apache.org/viewvc?rev=1044251&view=rev
Log:
[MPIR-201, MPIR-209] fix links in modules overview page

Modified:
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java?rev=1044251&r1=1044250&r2=1044251&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/ModulesReport.java
 Fri Dec 10 09:27:19 2010
@@ -128,6 +128,7 @@ public class ModulesReport
 
                         moduleModel = new Model();
                         moduleModel.setName( module );
+                        moduleModel.setArtifactId( module );
                     }
                 }
                 else
@@ -136,9 +137,23 @@ public class ModulesReport
 
                     moduleModel = new Model();
                     moduleModel.setName( module );
+                    moduleModel.setArtifactId( module );
                 }
 
-                tableRow( new String[] {linkedName( moduleModel.getName(), 
module ), moduleModel.getDescription()} );
+                final String moduleName = moduleModel.getName();
+
+                String baseURL = model.getUrl();
+
+                // re-read the parent URL because the above gives some 
relative link (why?)
+                final Model parentModel = readModel( new File( 
project.getBasedir(), "pom.xml" ) );
+                if ( parentModel != null )
+                {
+                    baseURL = parentModel.getUrl();
+                }
+
+                final String moduleHref = getRelativeLink( baseURL,  
moduleModel.getUrl(), moduleModel.getArtifactId() );
+
+                tableRow( new String[] {linkedName( moduleName, moduleHref ), 
moduleModel.getDescription()} );
             }
 
             endTable();
@@ -147,9 +162,36 @@ public class ModulesReport
         }
     }
 
+    // adapted from DefaultSiteTool#appendMenuItem
+    private String getRelativeLink( String baseUrl, String href, String 
defaultHref )
+    {
+        String selectedHref = href;
+
+        if ( selectedHref == null )
+        {
+            selectedHref = defaultHref;
+        }
+
+        if ( baseUrl != null )
+        {
+            selectedHref = siteTool.getRelativePath( selectedHref, baseUrl );
+        }
+
+        if ( selectedHref.endsWith( "/" ) )
+        {
+            selectedHref = selectedHref.concat( "index.html" );
+        }
+        else
+        {
+            selectedHref = selectedHref.concat( "/index.html" );
+        }
+
+        return selectedHref;
+    }
+
     private String linkedName( String name, String link )
     {
-        return "{" + name + ", ./" + link + "/}";
+        return "{" + name + ", ./" + link + "}";
     }
 
     /**


Reply via email to