From a4b60a3b5b411754dbc63e0203659fe4d3095146 Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Tue, 21 Apr 2020 19:45:23 +0200 Subject: [PATCH] Moving to new repository content API --- .../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 a8298e2ae..67e131009 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 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 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 -- 2.39.5