Package org.apache.maven.archiva.indexer.search

Examples of org.apache.maven.archiva.indexer.search.SearchResults


        List<RepositoryContentIndex> indexes = new ArrayList<RepositoryContentIndex>();
        indexes.add( indexFactory.createBytecodeIndex( localIndexedRepo ) );
       
        QueryParser parser = new BytecodeHandlers().getQueryParser();
        LuceneQuery query = new LuceneQuery( parser.parse( term ) );
        SearchResults results = searchAll( query, limits, indexes );
        results.getRepositories().add( localIndexedRepo );
       
        return results;      
    }
View Full Code Here


   
    private SearchResults searchAll( LuceneQuery luceneQuery, SearchResultLimits limits, List<RepositoryContentIndex> indexes )
    {
        org.apache.lucene.search.Query specificQuery = luceneQuery.getLuceneQuery();

        SearchResults results = new SearchResults();

        if ( indexes.isEmpty() )
        {
            // No point going any further.
            return results;
        }

        // Setup the converter
        LuceneEntryConverter converter = null;
        RepositoryContentIndex index = indexes.get( 0 );
        converter = index.getEntryConverter();

        // Process indexes into an array of Searchables.
        List<Searchable> searchableList = toSearchables( indexes );

        Searchable searchables[] = new Searchable[searchableList.size()];
        searchableList.toArray( searchables );

        MultiSearcher searcher = null;

        try
        {
            // Create a multi-searcher for looking up the information.
            searcher = new MultiSearcher( searchables );

            // Perform the search.
            Hits hits = searcher.search( specificQuery );

            int hitCount = hits.length();

            // Now process the limits.
            results.setLimits( limits );
            results.setTotalHits( hitCount );

            int fetchCount = limits.getPageSize();
            int offset = ( limits.getSelectedPage() * limits.getPageSize() );

            if ( limits.getSelectedPage() == SearchResultLimits.ALL_PAGES )
            {
                fetchCount = hitCount;
                offset = 0;
            }

            // Goto offset.
            if ( offset < hitCount )
            {
                // only process if the offset is within the hit count.
                for ( int i = 0; i <= fetchCount; i++ )
                {
                    // Stop fetching if we are past the total # of available hits.
                    if ( offset + i >= hitCount )
                    {
                        break;
                    }

                    try
                    {
                        Document doc = hits.doc( offset + i );
                        LuceneRepositoryContentRecord record = converter.convert( doc );
                        results.addHit( record );
                    }
                    catch ( java.text.ParseException e )
                    {
                        log.error( e.getMessage() );
                    }
View Full Code Here

       
        List<String> selectedRepos = new ArrayList<String>();
        selectedRepos.add( "test-repo" );
       
        // search for class names
        SearchResults results = searcher.searchForBytecode( "", selectedRepos, "FirstPackageApp", new SearchResultLimits( 0 ) );
        assertEquals( 1, results.getTotalHits() );
       
        results = searcher.searchForBytecode( "", selectedRepos, "SecondPackageApp", new SearchResultLimits( 0 ) );
        assertEquals( 1, results.getTotalHits() );
      
        // search for public methods
        results = searcher.searchForBytecode( "", selectedRepos, "appMethodOne", new SearchResultLimits( 0 ) );
        assertEquals( 1, results.getTotalHits() );
       
        // should return only the overridding public method in SecondPackageApp
        results = searcher.searchForBytecode( "", selectedRepos, "protectedMethod", new SearchResultLimits( 0 ) );
        assertEquals( 1, results.getTotalHits() );
              
        // should not return any private methods
        results = searcher.searchForBytecode( "", selectedRepos, "privMethod", new SearchResultLimits( 0 ) );
        assertEquals( 0, results.getTotalHits() );
       
        // test for public variables?
    }
View Full Code Here

        observableRepoIds.add( "public.releases" );
       
        userReposControl.expectAndReturn( userRepos.getObservableRepositories(), observableRepoIds );
       
        Date whenGathered = new Date();
        SearchResults results = new SearchResults();
        ArchivaArtifact artifact = new ArchivaArtifact( "org.apache.archiva", "archiva-test", "1.0", "", "jar" );
        artifact.getModel().setWhenGathered( whenGathered );
       
        FileContentRecord record = new FileContentRecord();
        record.setRepositoryId( "repo1.mirror" );
        record.setArtifact( artifact );
        record.setContents( "org.apache.archiva:archiva-test:1.0:jar org.apache.archiva.test.MyClassName" );
        record.setFilename( "archiva-test-1.0.jar" );
               
        results.addHit( record );
       
        SearchResultLimits limits = new SearchResultLimits( SearchResultLimits.ALL_PAGES );
       
        crossRepoSearchControl.expectAndDefaultReturn(
                   crossRepoSearch.searchForBytecode( "", observableRepoIds, "MyClassName", limits ), results );
View Full Code Here

        observableRepoIds.add( "public.releases" );
       
        userReposControl.expectAndReturn( userRepos.getObservableRepositories(), observableRepoIds );
       
        Date whenGathered = new Date();
        SearchResults results = new SearchResults();
        ArchivaArtifact artifact = new ArchivaArtifact( "org.apache.archiva", "archiva-test", "1.0", "", "jar" );
        artifact.getModel().setWhenGathered( whenGathered );
       
        FileContentRecord record = new FileContentRecord();
        record.setRepositoryId( "repo1.mirror" );
        record.setArtifact( artifact );
        record.setContents( "org.apache.archiva:archiva-test:1.0:jar" );
        record.setFilename( "archiva-test-1.0.jar" );
               
        results.addHit( record );
       
        SearchResultLimits limits = new SearchResultLimits( SearchResultLimits.ALL_PAGES );
       
        crossRepoSearchControl.expectAndDefaultReturn(
                   crossRepoSearch.searchForTerm( "", observableRepoIds, "archiva", limits ), results );
View Full Code Here

        // 3. convert results to a list of Artifact objects
       
        List<Artifact> artifacts = new ArrayList<Artifact>();
        List<String> observableRepos = xmlRpcUserRepositories.getObservableRepositories();
        SearchResultLimits limits = new SearchResultLimits( SearchResultLimits.ALL_PAGES );
        SearchResults results = null;
       
        if( SearchUtil.isBytecodeSearch( queryString ) )
        {
            results = crossRepoSearch.searchForBytecode( "", observableRepos, SearchUtil.removeBytecodeKeyword( queryString ), limits );
        }
        else
        {
            results = crossRepoSearch.searchForTerm( "", observableRepos, queryString, limits );
        }       
       
        List<SearchResultHit> hits = results.getHits();
        for( SearchResultHit hit : hits )
        {  
            ArtifactDAO artifactDAO = archivaDAO.getArtifactDAO();
            ArchivaArtifact pomArtifact = artifactDAO.getArtifact(
                       hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" );
View Full Code Here

TOP

Related Classes of org.apache.maven.archiva.indexer.search.SearchResults

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.