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 );
|
FlatSearchRequest request = new FlatSearchRequest( q );
|
||||||
FlatSearchResponse response = indexer.searchFlat( request );
|
FlatSearchResponse response = indexer.searchFlat( request );
|
||||||
|
|
||||||
if( response == null )
|
if( response == null || response.getTotalHits() == 0 )
|
||||||
{
|
{
|
||||||
return new SearchResults();
|
return new SearchResults();
|
||||||
}
|
}
|
||||||
|
|
||||||
return convertToSearchResults( response, limits );
|
return convertToSearchResults( response, limits );
|
||||||
}
|
}
|
||||||
catch ( IndexContextInInconsistentStateException e )
|
catch ( IndexContextInInconsistentStateException e )
|
||||||
|
@ -101,6 +101,24 @@ public class NexusRepositorySearch
|
||||||
{
|
{
|
||||||
throw new RepositorySearchException( e );
|
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 )
|
public SearchResults search( String principal, SearchFields searchFields, SearchResultLimits limits )
|
||||||
|
@ -143,14 +161,12 @@ public class NexusRepositorySearch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch ( UnsupportedExistingLuceneIndexException e )
|
catch ( UnsupportedExistingLuceneIndexException e )
|
||||||
{
|
{
|
||||||
// skip repository
|
|
||||||
log.warn( "Error accessing index of repository '" + repo + "' : " + e.getMessage() );
|
log.warn( "Error accessing index of repository '" + repo + "' : " + e.getMessage() );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
catch ( IOException e )
|
catch ( IOException e )
|
||||||
{
|
{
|
||||||
// skip repository
|
|
||||||
log.warn( "IO error occured while accessing index of repository '" + repo + "' : " + e.getMessage() );
|
log.warn( "IO error occured while accessing index of repository '" + repo + "' : " + e.getMessage() );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,12 +137,14 @@ public class NexusRepositorySearchTest
|
||||||
}
|
}
|
||||||
|
|
||||||
indexerEngine.endIndexing( context );
|
indexerEngine.endIndexing( context );
|
||||||
|
indexer.removeIndexingContext( context, false );
|
||||||
|
|
||||||
assertTrue( new File( getBasedir(), "/target/test-classes/" + repository + "/.indexer" ).exists() );
|
assertTrue( new File( getBasedir(), "/target/test-classes/" + repository + "/.indexer" ).exists() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testQuickSearch()
|
public void testQuickSearch()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
List<String> selectedRepos = new ArrayList<String>();
|
List<String> selectedRepos = new ArrayList<String>();
|
||||||
selectedRepos.add( TEST_REPO_1 );
|
selectedRepos.add( TEST_REPO_1 );
|
||||||
|
|
||||||
|
@ -182,7 +184,7 @@ public class NexusRepositorySearchTest
|
||||||
|
|
||||||
public void testQuickSearchWithPagination()
|
public void testQuickSearchWithPagination()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
List<String> selectedRepos = new ArrayList<String>();
|
List<String> selectedRepos = new ArrayList<String>();
|
||||||
selectedRepos.add( TEST_REPO_1 );
|
selectedRepos.add( TEST_REPO_1 );
|
||||||
|
|
||||||
|
@ -258,32 +260,54 @@ public class NexusRepositorySearchTest
|
||||||
FileUtils.deleteDirectory( new File( getBasedir(), "/target/test-classes/" + TEST_REPO_2 + "/.indexer" ) );
|
FileUtils.deleteDirectory( new File( getBasedir(), "/target/test-classes/" + TEST_REPO_2 + "/.indexer" ) );
|
||||||
assertFalse( new File( getBasedir(), "/target/test-classes/" + TEST_REPO_2 + "/.indexer" ).exists() );
|
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
|
// TODO: [BROWSE] in artifact info from browse, display all the repositories where the artifact is found
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNoMatchFound()
|
public void testNoMatchFound()
|
||||||
throws Exception
|
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()
|
public void testNoIndexFound()
|
||||||
throws Exception
|
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()
|
public void testSearchWithinSearchResults()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAdvancedSearch()
|
public void testAdvancedSearch()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue