mirror of https://github.com/apache/archiva.git
add rest method to search with query on a set of repositories
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1294404 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
11b1451053
commit
202a699884
|
@ -25,6 +25,13 @@ import java.util.List;
|
||||||
@XmlRootElement( name = "searchRequest" )
|
@XmlRootElement( name = "searchRequest" )
|
||||||
public class SearchRequest
|
public class SearchRequest
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4-M3
|
||||||
|
* to be able to search with a query on selected repositories
|
||||||
|
*/
|
||||||
|
private String queryTerms;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* groupId
|
* groupId
|
||||||
*/
|
*/
|
||||||
|
@ -229,12 +236,23 @@ public class SearchRequest
|
||||||
this.includePomArtifacts = includePomArtifacts;
|
this.includePomArtifacts = includePomArtifacts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getQueryTerms()
|
||||||
|
{
|
||||||
|
return queryTerms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQueryTerms( String queryTerms )
|
||||||
|
{
|
||||||
|
this.queryTerms = queryTerms;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append( "SearchRequest" );
|
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( ", artifactId='" ).append( artifactId ).append( '\'' );
|
||||||
sb.append( ", version='" ).append( version ).append( '\'' );
|
sb.append( ", version='" ).append( version ).append( '\'' );
|
||||||
sb.append( ", packaging='" ).append( packaging ).append( '\'' );
|
sb.append( ", packaging='" ).append( packaging ).append( '\'' );
|
||||||
|
|
|
@ -56,16 +56,14 @@ public interface SearchService
|
||||||
List<Artifact> quickSearch( @QueryParam( "queryString" ) String queryString )
|
List<Artifact> quickSearch( @QueryParam( "queryString" ) String queryString )
|
||||||
throws ArchivaRestServiceException;
|
throws ArchivaRestServiceException;
|
||||||
|
|
||||||
@Path( "getArtifactVersions" )
|
@Path( "quickSearch" )
|
||||||
@GET
|
@POST
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( noPermission = true, noRestriction = true )
|
@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,
|
List<Artifact> quickSearchWithRepositories( SearchRequest searchRequest )
|
||||||
@QueryParam( "artifactId" ) String artifactId,
|
|
||||||
@QueryParam( "packaging" ) String packaging )
|
|
||||||
throws ArchivaRestServiceException;
|
throws ArchivaRestServiceException;
|
||||||
|
|
||||||
@Path( "searchArtifacts" )
|
@Path( "searchArtifacts" )
|
||||||
|
@ -79,6 +77,19 @@ public interface SearchService
|
||||||
List<Artifact> searchArtifacts( SearchRequest searchRequest )
|
List<Artifact> searchArtifacts( SearchRequest searchRequest )
|
||||||
throws ArchivaRestServiceException;
|
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" )
|
@Path( "getAllGroupIds" )
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
|
@ -93,6 +104,9 @@ public interface SearchService
|
||||||
@GET
|
@GET
|
||||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||||
@RedbackAuthorization( noPermission = true, noRestriction = true )
|
@RedbackAuthorization( noPermission = true, noRestriction = true )
|
||||||
|
/**
|
||||||
|
* @since 1.4-M3
|
||||||
|
*/
|
||||||
StringList getObservablesRepoIds()
|
StringList getObservablesRepoIds()
|
||||||
throws ArchivaRestServiceException;
|
throws ArchivaRestServiceException;
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
public List<Artifact> getArtifactVersions( String groupId, String artifactId, String packaging )
|
||||||
throws ArchivaRestServiceException
|
throws ArchivaRestServiceException
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue