You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/01/09 03:16:55 UTC
svn commit: r367160 -
/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/
Author: brett
Date: Sun Jan 8 18:16:47 2006
New Revision: 367160
URL: http://svn.apache.org/viewcvs?rev=367160&view=rev
Log:
indexing simplification
Modified:
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndex.java
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java?rev=367160&r1=367159&r2=367160&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java Sun Jan 8 18:16:47 2006
@@ -36,19 +36,24 @@
private boolean indexOpen;
- private IndexReader indexReader;
-
private IndexWriter indexWriter;
protected ArtifactRepository repository;
- public AbstractRepositoryIndex( String indexPath, ArtifactRepository repository )
+ protected AbstractRepositoryIndex( String indexPath, ArtifactRepository repository, String[] indexFields )
throws RepositoryIndexException
{
this.repository = repository;
this.indexPath = indexPath;
- open( indexPath );
+ try
+ {
+ validateIndex( indexFields );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryIndexException( e );
+ }
}
/**
@@ -96,12 +101,6 @@
indexWriter = null;
}
- if ( indexReader != null )
- {
- indexReader.close();
- indexReader = null;
- }
-
indexOpen = false;
}
catch ( IOException e )
@@ -110,23 +109,6 @@
}
}
- /**
- * method for opening the index directory for indexing operations
- */
- protected void open( String indexPath )
- throws RepositoryIndexException
- {
- try
- {
- this.indexPath = indexPath;
- validateIndex();
- }
- catch ( IOException e )
- {
- throw new RepositoryIndexException( e );
- }
- }
-
public String getIndexPath()
{
return indexPath;
@@ -142,50 +124,42 @@
return indexWriter;
}
- private IndexReader getIndexReader()
- throws IOException
- {
- if ( indexReader == null )
- {
- indexReader = IndexReader.open( indexPath );
- }
- return indexReader;
- }
-
/**
* method for validating an index directory
*
+ * @param indexFields
* @throws RepositoryIndexException if the given indexPath is not valid for this type of RepositoryIndex
*/
- private void validateIndex()
+ private void validateIndex( String[] indexFields )
throws RepositoryIndexException, IOException
{
File indexDir = new File( indexPath );
if ( IndexReader.indexExists( indexDir ) )
{
- IndexReader indexReader = getIndexReader();
- if ( indexReader.numDocs() > 0 )
+ IndexReader indexReader = IndexReader.open( indexPath );
+ try
{
- Collection fields = indexReader.getFieldNames();
- String[] indexFields = getIndexFields();
- for ( int idx = 0; idx < indexFields.length; idx++ )
+ if ( indexReader.numDocs() > 0 )
{
- if ( !fields.contains( indexFields[idx] ) )
+ Collection fields = indexReader.getFieldNames();
+ for ( int idx = 0; idx < indexFields.length; idx++ )
{
- throw new RepositoryIndexException(
- "The Field " + indexFields[idx] + " does not exist in " + "index path " + indexPath + "." );
+ if ( !fields.contains( indexFields[idx] ) )
+ {
+ throw new RepositoryIndexException(
+ "The Field " + indexFields[idx] + " does not exist in index " + indexPath + "." );
+ }
}
}
}
- else
+ finally
{
- //getLogger().info( "Skipping index field validations for empty index." );
+ indexReader.close();
}
}
else if ( !indexDir.exists() )
{
indexWriter = new IndexWriter( indexPath, getAnalyzer(), true );
- //getLogger().info( "New index directory created in: " + indexDir.getAbsolutePath() );
}
else if ( indexDir.isDirectory() )
{
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java?rev=367160&r1=367159&r2=367160&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexSearcher.java Sun Jan 8 18:16:47 2006
@@ -28,6 +28,7 @@
import org.apache.maven.repository.indexing.query.CompoundQueryTerm;
import org.apache.maven.repository.indexing.query.Query;
import org.apache.maven.repository.indexing.query.SinglePhraseQuery;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
import java.io.IOException;
import java.util.ArrayList;
@@ -38,6 +39,7 @@
*
*/
public abstract class AbstractRepositoryIndexSearcher
+ extends AbstractLogEnabled
implements RepositoryIndexSearcher
{
protected RepositoryIndex index;
@@ -63,43 +65,50 @@
public List search( Query query )
throws RepositoryIndexSearchException
{
- IndexSearcher searcher;
+ org.apache.lucene.search.Query luceneQuery;
try
{
- searcher = new IndexSearcher( index.getIndexPath() );
+ luceneQuery = createLuceneQuery( query );
}
- catch ( IOException e )
+ catch ( ParseException e )
{
- throw new RepositoryIndexSearchException( e.getMessage(), e );
+ throw new RepositoryIndexSearchException( "Unable to construct query: " + e.getMessage(), e );
}
- Hits hits;
+ IndexSearcher searcher;
try
{
- hits = searcher.search( createLuceneQuery( query ) );
+ searcher = new IndexSearcher( index.getIndexPath() );
}
catch ( IOException e )
{
- throw new RepositoryIndexSearchException( e.getMessage(), e );
- }
- catch ( ParseException e )
- {
- throw new RepositoryIndexSearchException( e.getMessage(), e );
+ throw new RepositoryIndexSearchException( "Unable to open index: " + e.getMessage(), e );
}
- List artifactList;
+ List docs;
try
{
- artifactList = buildList( hits );
- searcher.close();
+ Hits hits = searcher.search( luceneQuery );
+ docs = buildList( hits );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryIndexSearchException( "Unable to search index: " + e.getMessage(), e );
}
- catch ( IOException ie )
+ finally
{
- throw new RepositoryIndexSearchException( ie.getMessage(), ie );
+ try
+ {
+ searcher.close();
+ }
+ catch ( IOException e )
+ {
+ getLogger().error( "Unable to close index searcher", e );
+ }
}
- return artifactList;
+ return docs;
}
private org.apache.lucene.search.Query createLuceneQuery( String field, String value )
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java?rev=367160&r1=367159&r2=367160&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java Sun Jan 8 18:16:47 2006
@@ -69,7 +69,7 @@
public ArtifactRepositoryIndex( String indexPath, ArtifactRepository repository, Digester digester )
throws RepositoryIndexException
{
- super( indexPath, repository );
+ super( indexPath, repository, FIELDS );
this.digester = digester;
}
@@ -86,16 +86,6 @@
}
return analyzer;
- }
-
- /**
- * method for collecting the available index fields usable for searching
- *
- * @return index field names
- */
- public String[] getIndexFields()
- {
- return FIELDS;
}
/**
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java?rev=367160&r1=367159&r2=367160&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/PomRepositoryIndex.java Sun Jan 8 18:16:47 2006
@@ -79,7 +79,7 @@
ArtifactFactory artifactFactory )
throws RepositoryIndexException
{
- super( indexPath, repository );
+ super( indexPath, repository, FIELDS );
this.digester = digester;
this.artifactFactory = artifactFactory;
}
@@ -106,11 +106,6 @@
throw new RepositoryIndexException(
"This instance of indexer cannot index instances of " + obj.getClass().getName() );
}
- }
-
- public String[] getIndexFields()
- {
- return FIELDS;
}
public void indexPom( Model pom )
Modified: maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndex.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndex.java?rev=367160&r1=367159&r2=367160&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndex.java (original)
+++ maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/RepositoryIndex.java Sun Jan 8 18:16:47 2006
@@ -26,8 +26,6 @@
{
String ROLE = RepositoryIndex.class.getName();
- String[] getIndexFields();
-
boolean isOpen();
void index( Object obj )