You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/02/28 01:03:04 UTC

svn commit: r1294404 - in /archiva/trunk/archiva-modules/archiva-web/archiva-rest: archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ archiva-rest-services/src/main/jav...

Author: olamy
Date: Tue Feb 28 00:03:04 2012
New Revision: 1294404

URL: http://svn.apache.org/viewvc?rev=1294404&view=rev
Log:
add rest method to search with query on a set of repositories

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java?rev=1294404&r1=1294403&r2=1294404&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java Tue Feb 28 00:03:04 2012
@@ -25,6 +25,13 @@ import java.util.List;
 @XmlRootElement( name = "searchRequest" )
 public class SearchRequest
 {
+
+    /**
+     * @since 1.4-M3
+     * to be able to search with a query on selected repositories
+     */
+    private String queryTerms;
+
     /**
      * groupId
      */
@@ -229,12 +236,23 @@ public class SearchRequest
         this.includePomArtifacts = includePomArtifacts;
     }
 
+    public String getQueryTerms()
+    {
+        return queryTerms;
+    }
+
+    public void setQueryTerms( String queryTerms )
+    {
+        this.queryTerms = queryTerms;
+    }
+
     @Override
     public String toString()
     {
         final StringBuilder sb = new StringBuilder();
         sb.append( "SearchRequest" );
-        sb.append( "{groupId='" ).append( groupId ).append( '\'' );
+        sb.append( "{queryTerms='" ).append( queryTerms ).append( '\'' );
+        sb.append( ", groupId='" ).append( groupId ).append( '\'' );
         sb.append( ", artifactId='" ).append( artifactId ).append( '\'' );
         sb.append( ", version='" ).append( version ).append( '\'' );
         sb.append( ", packaging='" ).append( packaging ).append( '\'' );

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java?rev=1294404&r1=1294403&r2=1294404&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/SearchService.java Tue Feb 28 00:03:04 2012
@@ -56,16 +56,14 @@ public interface SearchService
     List<Artifact> quickSearch( @QueryParam( "queryString" ) String queryString )
         throws ArchivaRestServiceException;
 
-    @Path( "getArtifactVersions" )
-    @GET
+    @Path( "quickSearch" )
+    @POST
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noPermission = true, noRestriction = true )
     /**
-     * <b>search will be apply on all repositories the current user has karma</b>
+     * <b>if not repositories in SearchRequest: search will be apply on all repositories the current user has karma</b>
      */
-    List<Artifact> getArtifactVersions( @QueryParam( "groupId" ) String groupId,
-                                        @QueryParam( "artifactId" ) String artifactId,
-                                        @QueryParam( "packaging" ) String packaging )
+    List<Artifact> quickSearchWithRepositories( SearchRequest searchRequest )
         throws ArchivaRestServiceException;
 
     @Path( "searchArtifacts" )
@@ -79,6 +77,19 @@ public interface SearchService
     List<Artifact> searchArtifacts( SearchRequest searchRequest )
         throws ArchivaRestServiceException;
 
+    @Path( "getArtifactVersions" )
+    @GET
+    @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
+    @RedbackAuthorization( noPermission = true, noRestriction = true )
+    /**
+     * <b>search will be apply on all repositories the current user has karma</b>
+     */
+    List<Artifact> getArtifactVersions( @QueryParam( "groupId" ) String groupId,
+                                        @QueryParam( "artifactId" ) String artifactId,
+                                        @QueryParam( "packaging" ) String packaging )
+        throws ArchivaRestServiceException;
+
+
     @Path( "getAllGroupIds" )
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
@@ -93,6 +104,9 @@ public interface SearchService
     @GET
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @RedbackAuthorization( noPermission = true, noRestriction = true )
+    /**
+     * @since 1.4-M3
+     */
     StringList getObservablesRepoIds()
         throws ArchivaRestServiceException;
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java?rev=1294404&r1=1294403&r2=1294404&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java Tue Feb 28 00:03:04 2012
@@ -78,6 +78,34 @@ public class DefaultSearchService
         }
     }
 
+    public List<Artifact> quickSearchWithRepositories( SearchRequest searchRequest )
+        throws ArchivaRestServiceException
+    {
+        String queryString = searchRequest.getQueryTerms();
+        if ( StringUtils.isBlank( queryString ) )
+        {
+            return Collections.emptyList();
+        }
+        List<String> repositories = searchRequest.getRepositories();
+        if ( repositories == null || repositories.isEmpty() )
+        {
+            repositories = getObservableRepos();
+        }
+        SearchResultLimits limits = new SearchResultLimits( 0 );
+        try
+        {
+            SearchResults searchResults = repositorySearch.search( getPrincipal(), repositories, queryString, limits,
+                                                                   Collections.<String>emptyList() );
+            return getArtifacts( searchResults );
+
+        }
+        catch ( RepositorySearchException e )
+        {
+            log.error( e.getMessage(), e );
+            throw new ArchivaRestServiceException( e.getMessage() );
+        }
+    }
+
     public List<Artifact> getArtifactVersions( String groupId, String artifactId, String packaging )
         throws ArchivaRestServiceException
     {