resolve distributionManagementSiteUrl based on module or on artifactId

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1520762 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 6969bb2..7e37aae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,11 @@
   <dependencies>

     <dependency>

       <groupId>org.apache.maven</groupId>

+      <artifactId>maven-core</artifactId>

+      <version>${mavenVersion}</version>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.maven</groupId>

       <artifactId>maven-project</artifactId>

       <version>${mavenVersion}</version>

     </dependency>

diff --git a/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java b/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java
index 3df83a8..e0a47bf 100644
--- a/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java
+++ b/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java
@@ -1,5 +1,8 @@
 package org.apache.maven.shared.project.utils;

 

+import java.io.File;

+import java.util.Map;

+

 import org.apache.maven.model.Model;

 import org.apache.maven.project.MavenProject;

 

@@ -28,9 +31,20 @@
     private SiteUtils()

     {

     }

-    

+

     public static String resolveDistributionManagementSiteUrl( MavenProject project )

     {

+        return resolveDistributionManagementSiteUrl( project, true );

+    }

+    

+    /**

+     * 

+     * @param project

+     * @param useModuleName use the moduleName instead of the artifactId

+     * @return

+     */

+    public static String resolveDistributionManagementSiteUrl( MavenProject project, boolean useModuleName )

+    {

         String siteUrl = getDistributionManagementSiteUrl( project.getModel() );

 

         if ( siteUrl == null )

@@ -39,8 +53,24 @@
             siteUrl = String.valueOf( getDistributionManagementSiteUrl( project ) );

             if ( !ProjectUtils.isRootProject( project ) )

             {

-                // assuming that folder matches the moduleName

-                siteUrl += '/' + project.getFile().getParentFile().getName();

+                if( useModuleName )

+                {

+                    Map<String, String> modules = ProjectUtils.getAllModules( project.getParent() );

+                    

+                    for( String module : modules.keySet() )

+                    {

+                        if( new File( project.getParent().getBasedir(), module ).equals( project.getFile() ) )

+                        {

+                            return siteUrl + '/' + module;

+                        }

+                    }

+                    // project is not a module of its parent, so use project's directoryname

+                    siteUrl += '/' + project.getFile().getParentFile().getName();

+                }

+                else

+                {

+                    siteUrl += '/' + project.getArtifactId();

+                }

             }

         }

         return siteUrl;