mirror of https://github.com/apache/archiva.git
[MRM-749]
o added more tests o remove indexing contexts after search git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/archiva-nexus-indexer@738801 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
64340c8930
commit
5d406d71dc
|
@ -86,11 +86,11 @@ public class NexusRepositorySearch
|
|||
FlatSearchRequest request = new FlatSearchRequest( q );
|
||||
FlatSearchResponse response = indexer.searchFlat( request );
|
||||
|
||||
if( response == null )
|
||||
if( response == null || response.getTotalHits() == 0 )
|
||||
{
|
||||
return new SearchResults();
|
||||
}
|
||||
|
||||
|
||||
return convertToSearchResults( response, limits );
|
||||
}
|
||||
catch ( IndexContextInInconsistentStateException e )
|
||||
|
@ -101,6 +101,24 @@ public class NexusRepositorySearch
|
|||
{
|
||||
throw new RepositorySearchException( e );
|
||||
}
|
||||
finally
|
||||
{
|
||||
Map<String, IndexingContext> indexingContexts = indexer.getIndexingContexts();
|
||||
Set<String> keys = indexingContexts.keySet();
|
||||
for( String key : keys )
|
||||
{
|
||||
try
|
||||
{
|
||||
indexer.removeIndexingContext( indexingContexts.get( key ), false );
|
||||
log.debug( "Indexing context '" + key + "' removed from search." );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
log.warn( "IOException occurred while removing indexing content '" + key + "'." );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public SearchResults search( String principal, SearchFields searchFields, SearchResultLimits limits )
|
||||
|
@ -143,14 +161,12 @@ public class NexusRepositorySearch
|
|||
}
|
||||
}
|
||||
catch ( UnsupportedExistingLuceneIndexException e )
|
||||
{
|
||||
// skip repository
|
||||
{
|
||||
log.warn( "Error accessing index of repository '" + repo + "' : " + e.getMessage() );
|
||||
continue;
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
// skip repository
|
||||
{
|
||||
log.warn( "IO error occured while accessing index of repository '" + repo + "' : " + e.getMessage() );
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -137,12 +137,14 @@ public class NexusRepositorySearchTest
|
|||
}
|
||||
|
||||
indexerEngine.endIndexing( context );
|
||||
indexer.removeIndexingContext( context, false );
|
||||
|
||||
assertTrue( new File( getBasedir(), "/target/test-classes/" + repository + "/.indexer" ).exists() );
|
||||
}
|
||||
|
||||
public void testQuickSearch()
|
||||
throws Exception
|
||||
{
|
||||
{
|
||||
List<String> selectedRepos = new ArrayList<String>();
|
||||
selectedRepos.add( TEST_REPO_1 );
|
||||
|
||||
|
@ -182,7 +184,7 @@ public class NexusRepositorySearchTest
|
|||
|
||||
public void testQuickSearchWithPagination()
|
||||
throws Exception
|
||||
{
|
||||
{
|
||||
List<String> selectedRepos = new ArrayList<String>();
|
||||
selectedRepos.add( TEST_REPO_1 );
|
||||
|
||||
|
@ -258,32 +260,54 @@ public class NexusRepositorySearchTest
|
|||
FileUtils.deleteDirectory( new File( getBasedir(), "/target/test-classes/" + TEST_REPO_2 + "/.indexer" ) );
|
||||
assertFalse( new File( getBasedir(), "/target/test-classes/" + TEST_REPO_2 + "/.indexer" ).exists() );
|
||||
|
||||
// there should be no duplicates in the search result hit
|
||||
// TODO: [BROWSE] in artifact info from browse, display all the repositories where the artifact is found
|
||||
}
|
||||
|
||||
public void testNoMatchFound()
|
||||
throws Exception
|
||||
{
|
||||
List<String> selectedRepos = new ArrayList<String>();
|
||||
selectedRepos.add( TEST_REPO_1 );
|
||||
|
||||
archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
|
||||
|
||||
archivaConfigControl.replay();
|
||||
|
||||
SearchResults results = search.search( "user", selectedRepos, "dfghdfkweriuasndsaie", null );
|
||||
|
||||
archivaConfigControl.verify();
|
||||
|
||||
assertNotNull( results );
|
||||
assertEquals( 0, results.getTotalHits() );
|
||||
}
|
||||
|
||||
public void testNoIndexFound()
|
||||
throws Exception
|
||||
{
|
||||
List<String> selectedRepos = new ArrayList<String>();
|
||||
selectedRepos.add( "non-existing-repo" );
|
||||
|
||||
archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config );
|
||||
|
||||
archivaConfigControl.replay();
|
||||
|
||||
SearchResults results = search.search( "user", selectedRepos, "org.apache.archiva", null );
|
||||
assertNotNull( results );
|
||||
assertEquals( 0, results.getTotalHits() );
|
||||
|
||||
archivaConfigControl.verify();
|
||||
}
|
||||
|
||||
public void testSearchWithinSearchResults()
|
||||
throws Exception
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void testAdvancedSearch()
|
||||
throws Exception
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue