Author: brett
Date: Sat Aug 26 10:49:46 2006
New Revision: 437192

URL: http://svn.apache.org/viewvc?rev=437192&view=rev
Log:
[MRM-151] test dependency index, fix tokenization

Modified:
    
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
    
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java

Modified: 
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java?rev=437192&r1=437191&r2=437192&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
 (original)
+++ 
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
 Sat Aug 26 10:49:46 2006
@@ -17,6 +17,8 @@
  */
 
 import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.CharTokenizer;
+import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -30,9 +32,11 @@
 import org.apache.maven.archiva.indexer.RepositoryIndexSearchException;
 import org.apache.maven.archiva.indexer.query.Query;
 import org.apache.maven.archiva.indexer.record.RepositoryIndexRecord;
+import org.apache.maven.archiva.indexer.record.StandardIndexRecordFields;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.Reader;
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -130,10 +134,35 @@
         }
     }
 
-    private Analyzer getAnalyzer()
+    public Analyzer getAnalyzer()
     {
-        // TODO: investigate why changed in original! Probably for MD5 and 
number querying.
-        return new StandardAnalyzer();
+        return new MyAnalyzer();
+    }
+
+    private static class MyAnalyzer
+        extends Analyzer
+    {
+        private static final Analyzer STANDARD = new StandardAnalyzer();
+
+        public TokenStream tokenStream( String field, final Reader reader )
+        {
+            // do not tokenize field called 'element'
+            if ( StandardIndexRecordFields.DEPENDENCIES.equals( field ) )
+            {
+                return new CharTokenizer( reader )
+                {
+                    protected boolean isTokenChar( char c )
+                    {
+                        return c != '\n';
+                    }
+                };
+            }
+            else
+            {
+                // use standard analyzer
+                return STANDARD.tokenStream( field, reader );
+            }
+        }
     }
 
     public void deleteRecords( Collection records )

Modified: 
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java?rev=437192&r1=437191&r2=437192&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
 Sat Aug 26 10:49:46 2006
@@ -635,6 +635,23 @@
         assertTrue( "Check results size", results.isEmpty() );
     }
 
+    public void testExactMatchDependency()
+        throws RepositoryIndexSearchException
+    {
+        Query query = new TermQuery(
+            new Term( StandardIndexRecordFields.DEPENDENCIES, 
"org.apache.maven:maven-plugin-api:2.0" ) );
+        List results = index.search( new LuceneQuery( query ) );
+
+        assertTrue( "Check result", results.contains( records.get( 
"test-plugin" ) ) );
+        assertEquals( "Check results size", 1, results.size() );
+
+        // test non-match fails
+        query = new TermQuery( new Term( 
StandardIndexRecordFields.DEPENDENCIES, "foo" ) );
+        results = index.search( new LuceneQuery( query ) );
+
+        assertTrue( "Check results size", results.isEmpty() );
+    }
+
     public void testMatchProjectName()
         throws RepositoryIndexSearchException
     {


Reply via email to