diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java index 1fa9fd155..c04ae9766 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/SearchService.java @@ -27,7 +27,7 @@ import org.apache.archiva.web.xmlrpc.api.beans.Dependency; import com.atlassian.xmlrpc.ServiceObject; -@ServiceObject("Search") +@ServiceObject("SearchService") public interface SearchService { /* diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java index bc553e3cd..d55c978f5 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-api/src/main/java/org/apache/archiva/web/xmlrpc/api/beans/Artifact.java @@ -20,7 +20,6 @@ package org.apache.archiva.web.xmlrpc.api.beans; */ import java.io.Serializable; -import java.util.Date; import com.atlassian.xmlrpc.ServiceBean; import com.atlassian.xmlrpc.ServiceBeanField; @@ -39,22 +38,22 @@ public class Artifact private String type; - private Date whenGathered; + //private Date whenGathered; public Artifact() { } - public Artifact( String repositoryId, String groupId, String artifactId, String version, - String type, Date whenGathered ) + public Artifact( String repositoryId, String groupId, String artifactId, String version, String type ) +// String type, Date whenGathered ) { this.repositoryId = repositoryId; this.groupId = groupId; this.artifactId = artifactId; this.version = version; this.type = type; - this.whenGathered = whenGathered; + //this.whenGathered = whenGathered; } public String getGroupId() @@ -77,10 +76,10 @@ public class Artifact return type; } - public Date getWhenGathered() + /*public Date getWhenGathered() { return whenGathered; - } + }*/ @ServiceBeanField( "groupId" ) public void setGroupId( String groupId ) @@ -106,11 +105,11 @@ public class Artifact this.type = type; } - @ServiceBeanField( "whenGathered" ) + /*@ServiceBeanField( "whenGathered" ) public void setWhenGathered( Date whenGathered ) { this.whenGathered = whenGathered; - } + }*/ public String getRepositoryId() { diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java index 5e3a67fe3..ac6839cc2 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/src/main/java/org/apache/archiva/web/xmlrpc/client/SampleClient.java @@ -23,6 +23,8 @@ import java.net.URL; import java.util.List; import org.apache.archiva.web.xmlrpc.api.AdministrationService; +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.ManagedRepository; import org.apache.archiva.web.xmlrpc.api.beans.RemoteRepository; @@ -117,6 +119,23 @@ public class SampleClient System.out.println( "\nDeleted artifact 'javax.activation:activation:1.1' from repository 'internal' : " + ( (Boolean) success ).booleanValue() ); */ + + /* quick search */ + /* + * NOTE: before enabling & invoking search service, make sure that the artifacts you're searching + * for has been indexed already in order to get results + * + SearchService searchService = binder.bind( SearchService.class, new URL( args[0] ), authnInfo ); + List artifacts = searchService.quickSearch( "org" ); + + System.out.println( "\n************ Search Results for 'org' *************" ); + for( Artifact artifact : artifacts ) + { + System.out.println( "Artifact: " + artifact.getGroupId() + ":" + artifact.getArtifactId() + + ":" + artifact.getVersion() ); + } + */ + } catch ( BindingException e ) { 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 914d2732c..72276d449 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 @@ -29,6 +29,7 @@ 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.database.ArchivaDAO; +import org.apache.maven.archiva.database.ArchivaDatabaseException; import org.apache.maven.archiva.database.ArtifactDAO; import org.apache.maven.archiva.database.ObjectNotFoundException; import org.apache.maven.archiva.database.browsing.BrowsingResults; @@ -102,16 +103,28 @@ public class SearchServiceImpl for( SearchResultHit hit : hits ) { ArtifactDAO artifactDAO = archivaDAO.getArtifactDAO(); - ArchivaArtifact pomArtifact = artifactDAO.getArtifact( - hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" ); - - if( pomArtifact != null ) + try { - Artifact artifact = new Artifact( pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), pomArtifact.getArtifactId(), pomArtifact.getVersion(), - pomArtifact.getType(), pomArtifact.getModel().getWhenGathered() ); - artifacts.add( artifact ); + ArchivaArtifact pomArtifact = artifactDAO.getArtifact( + hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" ); + + 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 ); + } + else + { + continue; + } } - else + catch ( ObjectNotFoundException e ) + { + continue; + } + catch ( ArchivaDatabaseException e ) { continue; } @@ -137,8 +150,8 @@ public class SearchServiceImpl for( ArchivaArtifact archivaArtifact : artifacts ) { Artifact artifact = new Artifact( archivaArtifact.getModel().getRepositoryId(), archivaArtifact.getModel().getGroupId(), - archivaArtifact.getModel().getArtifactId(), archivaArtifact.getModel().getVersion(), archivaArtifact.getType(), - archivaArtifact.getModel().getWhenGathered() ); + archivaArtifact.getModel().getArtifactId(), archivaArtifact.getModel().getVersion(), archivaArtifact.getType() ); + //archivaArtifact.getModel().getWhenGathered() ); results.add( artifact ); } @@ -157,8 +170,8 @@ public class SearchServiceImpl for( String version : results.getVersions() ) { ArchivaArtifact pomArtifact = artifactDAO.getArtifact( groupId, artifactId, version, "", "pom" ); - Artifact artifact = new Artifact( "", groupId, artifactId, version, pomArtifact.getType(), - pomArtifact.getModel().getWhenGathered() ); + Artifact artifact = new Artifact( "", groupId, artifactId, version, pomArtifact.getType() ); + //pomArtifact.getModel().getWhenGathered() ); artifacts.add( artifact ); } @@ -222,7 +235,9 @@ public class SearchServiceImpl List dependees = repoBrowsing.getUsedBy( "", observableRepos, "org.apache.archiva", "archiva-test", "1.0" ); for( ArchivaProjectModel model : dependees ) { - Artifact artifact = new Artifact( "", model.getGroupId(), model.getArtifactId(), model.getVersion(), "", model.getWhenIndexed() ); + Artifact artifact = + new Artifact( "", model.getGroupId(), model.getArtifactId(), model.getVersion(), "" ); + //model.getWhenIndexed() ); artifacts.add( artifact ); }