PR: MNG-479

Submitted by: Rahul Thakur
Reviewed by:  Brett Porter
if you define a repository it should override anything in the parent with the same ID
Also, cleaned up logic in assembler based on intentions

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@220240 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Leslie Porter 2005-07-22 05:24:19 +00:00
parent a4343cf767
commit b82151f013
2 changed files with 32 additions and 40 deletions

View File

@ -66,7 +66,6 @@ public class DefaultModelInheritanceAssembler
}
// version
// TODO: I think according to the latest design docs, we don't want to inherit version at all
if ( child.getVersion() == null )
{
// The parent version may have resolved to something different, so we take what we asked for...
@ -183,10 +182,13 @@ public class DefaultModelInheritanceAssembler
{
Repository repository = (Repository) iterator.next();
if ( !childRepositories.contains( repository ) )
// parent will always override child repositories
// if there are duplicates
if ( childRepositories.contains( repository ) )
{
child.addRepository( repository );
childRepositories.remove( repository );
}
child.addRepository( repository );
}
// Mojo Repositories :: aggregate
@ -395,12 +397,6 @@ public class DefaultModelInheritanceAssembler
private void assembleBuildInheritance( Model child, Build parentBuild )
{
// cannot inherit from null parent...
if ( parentBuild == null )
{
return;
}
Build childBuild = child.getBuild();
if ( parentBuild != null )
@ -451,49 +447,45 @@ public class DefaultModelInheritanceAssembler
private void assembleBuildBaseInheritance( BuildBase childBuild, BuildBase parentBuild )
{
// if the parent build is null, obviously we cannot inherit from it...
if ( parentBuild == null )
if ( parentBuild != null )
{
return;
}
if ( childBuild.getDefaultGoal() == null )
{
childBuild.setDefaultGoal( parentBuild.getDefaultGoal() );
}
if ( childBuild.getDefaultGoal() == null )
{
childBuild.setDefaultGoal( parentBuild.getDefaultGoal() );
}
if ( childBuild.getFinalName() == null )
{
childBuild.setFinalName( parentBuild.getFinalName() );
}
if ( childBuild.getFinalName() == null )
{
childBuild.setFinalName( parentBuild.getFinalName() );
}
List resources = childBuild.getResources();
if ( resources == null || resources.isEmpty() )
{
childBuild.setResources( parentBuild.getResources() );
}
List resources = childBuild.getResources();
if ( resources == null || resources.isEmpty() )
{
childBuild.setResources( parentBuild.getResources() );
}
resources = childBuild.getTestResources();
if ( resources == null || resources.isEmpty() )
{
childBuild.setTestResources( parentBuild.getTestResources() );
}
resources = childBuild.getTestResources();
if ( resources == null || resources.isEmpty() )
{
childBuild.setTestResources( parentBuild.getTestResources() );
}
// Plugins are aggregated if Plugin.inherit != false
ModelUtils.mergePluginLists( childBuild, parentBuild, true );
// Plugins are aggregated if Plugin.inherit != false
ModelUtils.mergePluginLists( childBuild, parentBuild, true );
// Plugin management :: aggregate
if ( childBuild != null && parentBuild != null )
{
// Plugin management :: aggregate
PluginManagement childPM = childBuild.getPluginManagement();
PluginManagement parentPM = parentBuild.getPluginManagement();
if( childPM == null && parentPM !=null )
if ( childPM == null && parentPM != null )
{
childBuild.setPluginManagement( parentPM );
}
else
{
ModelUtils.mergePluginLists( childBuild.getPluginManagement(), parentBuild.getPluginManagement(), false );
ModelUtils.mergePluginLists( childBuild.getPluginManagement(), parentBuild.getPluginManagement(),
false );
}
}
}

View File

@ -263,7 +263,7 @@ public class DefaultModelInheritanceAssemblerTest
Model child = makeRepositoryModel( "child", "central", "http://repo2.maven.org/maven/" );
List repos = new ArrayList( child.getRepositories() );
List repos = new ArrayList( parent.getRepositories() );
assembler.assembleModelInheritance( child, parent );