You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/10/18 05:11:43 UTC

svn commit: r585812 - in /maven/components/branches/maven-2.0.x/maven-project/src: main/java/org/apache/maven/project/inheritance/ test/java/org/apache/maven/project/inheritance/

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" );