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