]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1282] implement maven metadata for artifacts and remove legacy code
authorBrett Porter <brett@apache.org>
Wed, 10 Mar 2010 00:42:44 +0000 (00:42 +0000)
committerBrett Porter <brett@apache.org>
Wed, 10 Mar 2010 00:42:44 +0000 (00:42 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@921196 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java

index 632821281eb47911515ded482c8ce216fff1c42a..6cf6fd91a3c50afa9e94857b619d67ac77c65434 100644 (file)
@@ -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;