Repository: maven Updated Branches: refs/heads/master 6ae831c22 -> 7e1fe622d
MNG-5951 MNG-6059 inherit added attributes Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/7e1fe622 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/7e1fe622 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/7e1fe622 Branch: refs/heads/master Commit: 7e1fe622d284d7b7319bf109f83bf8bd11b62829 Parents: 6ae831c Author: Hervé Boutemy <[email protected]> Authored: Sat Sep 10 15:32:49 2016 +0200 Committer: Hervé Boutemy <[email protected]> Committed: Sat Sep 10 15:32:49 2016 +0200 ---------------------------------------------------------------------- maven-model-builder/src/site/apt/index.apt | 2 +- .../inheritance/no-append-urls-expected.xml | 9 ++- .../apache/maven/model/merge/ModelMerger.java | 81 ++++++++++++++++++++ 3 files changed, 88 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/7e1fe622/maven-model-builder/src/site/apt/index.apt ---------------------------------------------------------------------- diff --git a/maven-model-builder/src/site/apt/index.apt b/maven-model-builder/src/site/apt/index.apt index 70ae999..74fa041 100644 --- a/maven-model-builder/src/site/apt/index.apt +++ b/maven-model-builder/src/site/apt/index.apt @@ -139,7 +139,7 @@ Maven Model Builder <<<project/@child.project.url.inherit.append.path>>>, <<<project/distributionManagement/site/@child.site.url.inherit.append.path>>>, <<<project/scm/@child.scm.connection.inherit.append.path>>>, - <<<project/scm/@child.scm.developperConnection.inherit.append.path>>> and + <<<project/scm/@child.scm.developerConnection.inherit.append.path>>> and <<<project/scm/@child.scm.url.inherit.append.path>>>. [] http://git-wip-us.apache.org/repos/asf/maven/blob/7e1fe622/maven-model-builder/src/test/resources/poms/inheritance/no-append-urls-expected.xml ---------------------------------------------------------------------- diff --git a/maven-model-builder/src/test/resources/poms/inheritance/no-append-urls-expected.xml b/maven-model-builder/src/test/resources/poms/inheritance/no-append-urls-expected.xml index d2a8cfe..be57821 100644 --- a/maven-model-builder/src/test/resources/poms/inheritance/no-append-urls-expected.xml +++ b/maven-model-builder/src/test/resources/poms/inheritance/no-append-urls-expected.xml @@ -20,7 +20,8 @@ under the License. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + child.project.url.inherit.append.path="false"> <modelVersion>4.0.0</modelVersion> <parent> @@ -37,13 +38,15 @@ under the License. <!-- 5 inherited urls without anything added to parent --> <url>http://www.apache.org/path/to/parent/</url> - <scm> + <scm child.scm.connection.inherit.append.path="false" + child.scm.developerConnection.inherit.append.path="false" + child.scm.url.inherit.append.path="false"> <connection>scm:my-scm:http://domain.org/base</connection> <developerConnection>scm:my-scm:https://domain.org/base/</developerConnection> <url>https://domain.org/base</url> </scm> <distributionManagement> - <site> + <site child.site.url.inherit.append.path="false"> <url>scp://scp.domain.org/base/</url> </site> </distributionManagement> http://git-wip-us.apache.org/repos/asf/maven/blob/7e1fe622/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java ---------------------------------------------------------------------- diff --git a/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java b/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java index 6bdb54f..340ad15 100644 --- a/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java +++ b/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java @@ -129,6 +129,7 @@ public class ModelMerger mergeModel_Parent( target, source, sourceDominant, context ); mergeModel_GroupId( target, source, sourceDominant, context ); mergeModel_ArtifactId( target, source, sourceDominant, context ); + mergeModel_ChildProjectUrlInheritAppendPath( target, source, sourceDominant, context ); mergeModel_Version( target, source, sourceDominant, context ); mergeModel_Packaging( target, source, sourceDominant, context ); mergeModel_Name( target, source, sourceDominant, context ); @@ -206,6 +207,21 @@ public class ModelMerger } } + protected void mergeModel_ChildProjectUrlInheritAppendPath( Model target, Model source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getChildProjectUrlInheritAppendPath(); + if ( src != null ) + { + if ( sourceDominant || target.getChildProjectUrlInheritAppendPath() == null ) + { + target.setChildProjectUrlInheritAppendPath( src ); + target.setLocation( "child.project.url.inherit.append.path", + source.getLocation( "child.project.url.inherit.append.path" ) ); + } + } + } + protected void mergeModel_Version( Model target, Model source, boolean sourceDominant, Map<Object, Object> context ) { @@ -876,11 +892,27 @@ public class ModelMerger protected void mergeSite( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { + mergeSite_ChildSiteUrlInheritAppendPath( target, source, sourceDominant, context ); mergeSite_Id( target, source, sourceDominant, context ); mergeSite_Name( target, source, sourceDominant, context ); mergeSite_Url( target, source, sourceDominant, context ); } + protected void mergeSite_ChildSiteUrlInheritAppendPath( Site target, Site source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getChildSiteUrlInheritAppendPath(); + if ( src != null ) + { + if ( sourceDominant || target.getChildSiteUrlInheritAppendPath() == null ) + { + target.setChildSiteUrlInheritAppendPath( src ); + target.setLocation( "child.site.url.inherit.append.path", + source.getLocation( "child.site.url.inherit.append.path" ) ); + } + } + } + protected void mergeSite_Id( Site target, Site source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getId(); @@ -1925,12 +1957,61 @@ public class ModelMerger protected void mergeScm( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { + mergeScm_ChildScmConnectionInheritAppendPath( target, source, sourceDominant, context ); + mergeScm_ChildScmDeveloperConnectionInheritAppendPath( target, source, sourceDominant, context ); + mergeScm_ChildScmUrlInheritAppendPath( target, source, sourceDominant, context ); mergeScm_Url( target, source, sourceDominant, context ); mergeScm_Connection( target, source, sourceDominant, context ); mergeScm_DeveloperConnection( target, source, sourceDominant, context ); mergeScm_Tag( target, source, sourceDominant, context ); } + protected void mergeScm_ChildScmConnectionInheritAppendPath( Scm target, Scm source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getChildScmConnectionInheritAppendPath(); + if ( src != null ) + { + if ( sourceDominant || target.getChildScmConnectionInheritAppendPath() == null ) + { + target.setChildScmConnectionInheritAppendPath( src ); + target.setLocation( "child.scm.connection.inherit.append.path", + source.getLocation( "child.scm.connection.inherit.append.path" ) ); + } + } + } + + protected void mergeScm_ChildScmDeveloperConnectionInheritAppendPath( Scm target, Scm source, + boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getChildScmDeveloperConnectionInheritAppendPath(); + if ( src != null ) + { + if ( sourceDominant || target.getChildScmDeveloperConnectionInheritAppendPath() == null ) + { + target.setChildScmDeveloperConnectionInheritAppendPath( src ); + target.setLocation( "child.scm.developerConnection.inherit.append.path", + source.getLocation( "child.scm.developerConnection.inherit.append.path" ) ); + } + } + } + + protected void mergeScm_ChildScmUrlInheritAppendPath( Scm target, Scm source, boolean sourceDominant, + Map<Object, Object> context ) + { + String src = source.getChildScmUrlInheritAppendPath(); + if ( src != null ) + { + if ( sourceDominant || target.getChildScmUrlInheritAppendPath() == null ) + { + target.setChildScmUrlInheritAppendPath( src ); + target.setLocation( "child.scm.url.inherit.append.path", + source.getLocation( "child.scm.url.inherit.append.path" ) ); + } + } + } + protected void mergeScm_Url( Scm target, Scm source, boolean sourceDominant, Map<Object, Object> context ) { String src = source.getUrl();
