From 3bdb27b8a03cdb7befdfa9cfaef1eede52336ceb Mon Sep 17 00:00:00 2001 From: Brett Porter Date: Wed, 10 Mar 2010 00:42:44 +0000 Subject: [PATCH] [MRM-1282] implement maven metadata for artifacts and remove legacy code git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@921196 13f79535-47bb-0310-9956-ffa450edef68 --- .../xmlrpc/services/SearchServiceImpl.java | 40 ++++++------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java index 632821281..6cf6fd91a 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java @@ -19,26 +19,27 @@ package org.apache.archiva.web.xmlrpc.services; * under the License. */ -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; - import org.apache.archiva.indexer.search.RepositorySearch; import org.apache.archiva.indexer.search.SearchResultHit; import org.apache.archiva.indexer.search.SearchResultLimits; import org.apache.archiva.indexer.search.SearchResults; import org.apache.archiva.metadata.model.ArtifactMetadata; +import org.apache.archiva.metadata.model.FacetedMetadata; import org.apache.archiva.metadata.model.ProjectVersionMetadata; import org.apache.archiva.metadata.model.ProjectVersionReference; import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.metadata.repository.MetadataResolver; +import org.apache.archiva.metadata.repository.storage.maven2.MavenArtifactFacet; import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet; import org.apache.archiva.web.xmlrpc.api.SearchService; import org.apache.archiva.web.xmlrpc.api.beans.Artifact; import org.apache.archiva.web.xmlrpc.api.beans.Dependency; import org.apache.archiva.web.xmlrpc.security.XmlRpcUserRepositories; -import org.apache.maven.archiva.repository.content.ArtifactExtensionMapping; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; public class SearchServiceImpl implements SearchService @@ -84,7 +85,7 @@ public class SearchServiceImpl // slight behaviour change to previous implementation: instead of allocating "jar" when not // found in the database, we can rely on the metadata repository to create it on the fly. We // just allocate the default packaging if the Maven facet is not found. - ProjectVersionMetadata model = + FacetedMetadata model = metadataResolver.getProjectVersion( repoId, resultHit.getGroupId(), resultHit.getArtifactId(), version ); @@ -124,28 +125,11 @@ public class SearchServiceImpl { for ( ArtifactMetadata artifact : metadataRepository.getArtifactsByChecksum( repoId, checksum ) ) { - // TODO: use a maven facet instead, for now just using the extension and classifier - String type = null; - String key = artifact.getProject() + "-" + artifact.getVersion(); - String filename = artifact.getId(); - int extIndex = filename.lastIndexOf( "." ); - if ( filename.startsWith( key ) ) - { - int i = key.length(); - char nextToken = filename.charAt( i ); - if ( nextToken == '-' ) - { - String classifier = filename.substring( i + 1, extIndex ); - String extension = filename.substring( extIndex + 1 ); - type = ArtifactExtensionMapping.mapExtensionAndClassifierToType( classifier, extension ); - } - else if ( nextToken == '.' ) - { - type = ArtifactExtensionMapping.mapExtensionToType( filename.substring( i + 1 ) ); - } - } + // TODO: customise XMLRPC to handle non-Maven artifacts + MavenArtifactFacet facet = (MavenArtifactFacet) artifact.getFacet( MavenArtifactFacet.FACET_ID ); + results.add( new Artifact( artifact.getRepositoryId(), artifact.getNamespace(), artifact.getProject(), - artifact.getVersion(), type ) ); + artifact.getVersion(), facet != null ? facet.getType() : null ) ); } } return results; -- 2.39.5