Author: brianf
Date: Wed Oct 17 20:11:42 2007
New Revision: 585812

URL: http://svn.apache.org/viewvc?rev=585812&view=rev
Log:
MNG-3244: fix site url inheritence, patch from James Dumay

Modified:
    
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
    
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java

Modified: 
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=585812&r1=585811&r2=585812&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
 (original)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
 Wed Oct 17 20:11:42 2007
@@ -432,7 +432,7 @@
 
                     site.setUrl( parentDistMgmt.getSite().getUrl() );
 
-                    if ( site.getUrl() != null )
+                    if ( site.getUrl() != null && (site.getUrl().endsWith( "/" 
)||  site.getUrl().endsWith( "\\" )))
                     {
                         site.setUrl(
                             appendPath( site.getUrl(), child.getArtifactId(), 
childPathAdjustment, appendPaths ) );
@@ -494,10 +494,30 @@
         if ( appendPaths )
         {
             if ( pathAdjustment != null )
-                uncleanPath += "/" + pathAdjustment;
+            {
+                if (uncleanPath.endsWith( "/" )|| uncleanPath.endsWith( "\\" ))
+                {
+                    uncleanPath += pathAdjustment;
+                    
+                }
+                else
+                {
+                    uncleanPath += "/" + pathAdjustment;
+                }
+            }
 
             if ( childPath != null )
-                uncleanPath += "/" + childPath;
+            {
+               
+                if (uncleanPath.endsWith( "/" )|| uncleanPath.endsWith( "\\" ))
+                {
+                    uncleanPath += childPath;
+                }
+                else
+                {
+                    uncleanPath += "/" + childPath;
+                }
+            }
         }
 
         String cleanedPath = "";

Modified: 
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java?rev=585812&r1=585811&r2=585812&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java
 (original)
+++ 
maven/components/branches/maven-2.0.x/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java
 Wed Oct 17 20:11:42 2007
@@ -53,6 +53,66 @@
 {
     private ModelInheritanceAssembler assembler = new 
DefaultModelInheritanceAssembler();
     
+    public void 
testSiteUrlWithTrailingForwardSlashInParentHasArtifactIdAppendedInChild()
+    {
+       Site site = new Site();
+       site.setName("docs");
+       site.setUrl("sftp://machine/path/to/site/";);
+       
+       DistributionManagement distributionManagement = new 
DistributionManagement();
+       distributionManagement.setSite(site);
+       
+       Model parent = makeBaseModel( "parent" );
+       parent.setDistributionManagement(distributionManagement);
+       
+       Model child = makeBaseModel( "child" );
+       child.setParent(parent.getParent());
+       
+       assembler.assembleModelInheritance(child, parent);
+       
+       assertEquals(site.getUrl()+ "child", 
child.getDistributionManagement().getSite().getUrl());
+    }
+
+    public void 
testSiteUrlWithTrailingBackSlashInParentHasArtifactIdAppendedInChild()
+    {
+       Site site = new Site();
+       site.setName("docs");
+       site.setUrl("file://machine\\path\\to\\site\\");
+       
+       DistributionManagement distributionManagement = new 
DistributionManagement();
+       distributionManagement.setSite(site);
+       
+       Model parent = makeBaseModel( "parent" );
+       parent.setDistributionManagement(distributionManagement);
+       
+       Model child = makeBaseModel( "child" );
+       child.setParent(parent.getParent());
+       
+       assembler.assembleModelInheritance(child, parent);
+       
+       assertEquals(site.getUrl()+ "child", 
child.getDistributionManagement().getSite().getUrl());
+    }
+    
+    public void 
testSiteUrlWithoutTrailingSlashInParentHasNoArtifactIdAppendedInChild()
+    {
+       Site site = new Site();
+       site.setName("docs");
+       site.setUrl("sftp://machine/path/to/site";);
+       
+       DistributionManagement distributionManagement = new 
DistributionManagement();
+       distributionManagement.setSite(site);
+       
+       Model parent = makeBaseModel( "parent" );
+       parent.setDistributionManagement(distributionManagement);
+       
+       Model child = makeBaseModel( "child" );
+       child.setParent(parent.getParent());
+       
+       assembler.assembleModelInheritance(child, parent);
+       
+       assertEquals(site.getUrl(), 
child.getDistributionManagement().getSite().getUrl());
+    }
+    
     public void 
testShouldAdjustChildUrlBasedOnParentAndModulePathInSiblingDir()
     {
         Model parent = makeBaseModel( "parent" );


Reply via email to