private void mergeMetadata( RepositoryMetadata metadata, List<ArtifactRepository> remoteRepositories,
ArtifactRepository localRepository )
throws RepositoryMetadataStoreException
{
Map<ArtifactRepository, Metadata> previousMetadata = new HashMap<>();
ArtifactRepository selected = null;
for ( ArtifactRepository repository : remoteRepositories )
{
ArtifactRepositoryPolicy policy = metadata.getPolicy( repository );
if ( policy.isEnabled() && loadMetadata( metadata, repository, localRepository, previousMetadata ) )
{
metadata.setRepository( repository );
selected = repository;
}
}
if ( loadMetadata( metadata, localRepository, localRepository, previousMetadata ) )
{
metadata.setRepository( null );
selected = localRepository;
}
updateSnapshotMetadata( metadata, previousMetadata, selected, localRepository );
}