This is an automated email from the ASF dual-hosted git repository. martin_s pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/archiva.git
commit a4b60a3b5b411754dbc63e0203659fe4d3095146 Author: Martin Stockhammer <[email protected]> AuthorDate: Tue Apr 21 19:45:23 2020 +0200 Moving to new repository content API --- .../archiva/repository/metadata/base/MetadataTools.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java index a8298e2..67e1310 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/metadata/base/MetadataTools.java @@ -45,6 +45,7 @@ import org.apache.archiva.repository.ManagedRepositoryContent; import org.apache.archiva.repository.RemoteRepositoryContent; import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.repository.RepositoryType; +import org.apache.archiva.repository.content.Artifact; import org.apache.archiva.repository.content.ItemSelector; import org.apache.archiva.repository.content.Project; import org.apache.archiva.repository.content.base.ArchivaItemSelector; @@ -153,11 +154,22 @@ public class MetadataTools Set<String> foundVersions = null; try { - foundVersions = managedRepository.getVersions( reference ); + ArchivaItemSelector selector = ArchivaItemSelector.builder( ) + .withNamespace( reference.getGroupId( ) ) + .withProjectId( reference.getArtifactId( ) ) + .withArtifactId( reference.getArtifactId( ) ) + .withVersion( reference.getVersion( ) ) + .build( ); + try(Stream<? extends Artifact> stream = managedRepository.newArtifactStream( selector )) { + foundVersions = stream.map( a -> a.getArtifactVersion( ) ) + .filter( StringUtils::isNotEmpty ) + .collect( Collectors.toSet( ) ); + } } catch ( org.apache.archiva.repository.ContentAccessException e ) { - e.printStackTrace( ); + log.error( "Error while accessing content {}", e.getMessage( ) ); + throw new IOException( "Could not access repository content: " + e.getMessage( ) ); } // Next gather up the referenced 'latest' versions found in any proxied repositories
