}
private RemoteRepository mergeMirrors( RepositorySystemSession session, RemoteRepository dominant,
RemoteRepository recessive )
{
RemoteRepository merged = dominant;
next: for ( RemoteRepository rec : recessive.getMirroredRepositories() )
{
String recKey = getKey( rec );
for ( RemoteRepository dom : dominant.getMirroredRepositories() )
{
if ( recKey.equals( getKey( dom ) ) )
{
continue next;
}
}
if ( merged == dominant )
{
merged = new RemoteRepository();
merged.setRepositoryManager( dominant.isRepositoryManager() );
merged.setId( dominant.getId() );
merged.setContentType( dominant.getContentType() );
merged.setUrl( dominant.getUrl() );
merged.setAuthentication( dominant.getAuthentication() );
merged.setProxy( dominant.getProxy() );
merged.setPolicy( false, dominant.getPolicy( false ) );
merged.setPolicy( true, dominant.getPolicy( true ) );
merged.setMirroredRepositories( new ArrayList<RemoteRepository>( dominant.getMirroredRepositories() ) );
}
merged.setPolicy( false, merge( session, merged.getPolicy( false ), rec.getPolicy( false ) ) );
merged.setPolicy( true, merge( session, merged.getPolicy( true ), rec.getPolicy( true ) ) );
merged.getMirroredRepositories().add( rec );
}
return merged;
}