Author: oching
Date: Sun May 24 07:20:59 2009
New Revision: 778106

URL: http://svn.apache.org/viewvc?rev=778106&view=rev
Log:
[MRM-1167]
o fix xmlrpc search service

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
    
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml?rev=778106&r1=778105&r2=778106&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/pom.xml
 Sun May 24 07:20:59 2009
@@ -63,10 +63,10 @@
           
<mainClass>org.apache.archiva.web.xmlrpc.client.SampleClient</mainClass>
           <arguments>
             <!-- 
-                 URL: ex. http://127.0.0.1:9091/xmlrpc 
+                 URL: ex. http://127.0.0.1:8080/archiva/xmlrpc 
                  USERNAME & PASSWORD: Archiva credentials  
             --> 
-            <argument>http://127.0.0.1:9091/xmlrpc</argument>
+            <argument>http://127.0.0.1:8080/archiva/xmlrpc</argument>
             <argument>admin</argument>
             <argument>${password}</argument>
           </arguments>

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java?rev=778106&r1=778105&r2=778106&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
 Sun May 24 07:20:59 2009
@@ -40,6 +40,8 @@
 import 
org.apache.maven.archiva.database.constraints.ArtifactsByChecksumConstraint;
 import org.apache.maven.archiva.model.ArchivaArtifact;
 import org.apache.maven.archiva.model.ArchivaProjectModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * SearchServiceImpl
@@ -49,6 +51,8 @@
 public class SearchServiceImpl
     implements SearchService
 { 
+    private Logger log = LoggerFactory.getLogger( SearchServiceImpl.class );
+                                                 
     private RepositorySearch search;
     
     private XmlRpcUserRepositories xmlRpcUserRepositories;
@@ -89,35 +93,43 @@
         SearchResults results = null;
         
         results = search.search( "", observableRepos, queryString, limits, 
null );
-                
+        
         List<SearchResultHit> hits = results.getHits();
+        
         for( SearchResultHit hit : hits )
         {   
             ArtifactDAO artifactDAO = archivaDAO.getArtifactDAO(); 
-            try
+              
+            List<String> versions = hit.getVersions();
+            if( versions != null )
             {
-                ArchivaArtifact pomArtifact = artifactDAO.getArtifact( 
-                           hit.getGroupId(), hit.getArtifactId(), 
hit.getVersion(), "", "pom", hit.getRepositoryId() );
-                
-                if( pomArtifact != null )
-                {
-                    Artifact artifact = new Artifact( 
pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), 
pomArtifact.getArtifactId(), pomArtifact.getVersion(),
-                                                      pomArtifact.getType() );
-                                                      //pomArtifact.getType(), 
pomArtifact.getModel().getWhenGathered() );
-                    artifacts.add( artifact );
+                for( String version : versions )
+                {   
+                    for( String repo : observableRepos )
+                    {
+                        try
+                        {
+                            ArchivaArtifact pomArtifact = 
artifactDAO.getArtifact( 
+                                  hit.getGroupId(), hit.getArtifactId(), 
version, null, "pom", repo );
+                            if( pomArtifact != null )
+                            {
+                                Artifact artifact = new Artifact( 
pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), 
pomArtifact.getArtifactId(), pomArtifact.getVersion(),
+                                                                 
pomArtifact.getType() );
+                                                                 
//pomArtifact.getType(), pomArtifact.getModel().getWhenGathered() );
+                                artifacts.add( artifact );
+                                break;
+                            }
+                        }
+                        catch( ObjectNotFoundException e )
+                        {
+                            log.debug( "Unable to find pom artifact : " + 
e.getMessage() );
+                        }
+                        catch( ArchivaDatabaseException e )
+                        {
+                            log.debug( "Error occurred while getting pom 
artifact from database : " + e.getMessage() );
+                        }
+                    }                      
                 }
-                else
-                {
-                    continue;
-                }
-            }
-            catch ( ObjectNotFoundException e )
-            {
-                continue;
-            }
-            catch ( ArchivaDatabaseException e )
-            {
-                continue;
             }
         }
         


Reply via email to