Author: cstamas
Date: Thu Dec  2 16:20:38 2010
New Revision: 1041431

URL: http://svn.apache.org/viewvc?rev=1041431&view=rev
Log:
Changes related to new API changes in Lucene 2.9.x (and 3.0 etc).

Modified:
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
    
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
 Thu Dec  2 16:20:38 2010
@@ -181,7 +181,7 @@ public class ArtifactContext
         Document doc = new Document();
 
         // unique key
-        doc.add( new Field( ArtifactInfo.UINFO, getArtifactInfo().getUinfo(), 
Store.YES, Index.UN_TOKENIZED ) );
+        doc.add( new Field( ArtifactInfo.UINFO, getArtifactInfo().getUinfo(), 
Store.YES, Index.NOT_ANALYZED ) );
 
         doc.add( new Field( ArtifactInfo.LAST_MODIFIED, //
             Long.toString( System.currentTimeMillis() ), Store.YES, Index.NO ) 
);

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
 Thu Dec  2 16:20:38 2010
@@ -52,7 +52,7 @@ public class ArtifactInfoRecord
      * Unique groupId, artifactId, version, classifier, extension (or 
packaging). Stored, indexed untokenized
      */
     public static final IndexerField FLD_UINFO = new IndexerField( 
NEXUS.UINFO, IndexerFieldVersion.V1, "u",
-        "Artifact UINFO (as keyword, stored)", Store.YES, Index.UN_TOKENIZED );
+        "Artifact UINFO (as keyword, stored)", Store.YES, Index.NOT_ANALYZED );
 
     /**
      * Del: contains UINFO to mark record as deleted (needed for incremental 
updates!). The original document IS

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
 Thu Dec  2 16:20:38 2010
@@ -27,7 +27,6 @@ import java.util.List;
 import org.apache.lucene.analysis.CachingTokenFilter;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.search.Explanation;
 import org.apache.lucene.search.Hits;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
@@ -338,7 +337,11 @@ public class DefaultIteratorResultSet
 
         maxNumFragments = Math.max( 1, maxNumFragments ); // sanity check
 
-        TextFragment[] frag = highlighter.getBestTextFragments( tokenStream, 
text, false, maxNumFragments );
+        TextFragment[] frag;
+        // Lucene 2.9.x
+        // try
+        // {
+        frag = highlighter.getBestTextFragments( tokenStream, text, false, 
maxNumFragments );
 
         // Get text
         ArrayList<String> fragTexts = new ArrayList<String>( maxNumFragments );
@@ -352,6 +355,13 @@ public class DefaultIteratorResultSet
         }
 
         return fragTexts;
+        // }
+        // catch ( InvalidTokenOffsetsException e )
+        // {
+        // // TODO: huh? Logging this? Or what?
+        // return Collections.emptyList();
+        // }
+
     }
 
     protected IndexingContext getIndexingContextForPointer( Document doc, int 
docPtr )

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultNexusIndexer.java
 Thu Dec  2 16:20:38 2010
@@ -38,6 +38,7 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.store.FSDirectory;
 import org.apache.maven.index.context.DefaultIndexingContext;
 import org.apache.maven.index.context.IndexCreator;
+import org.apache.maven.index.context.IndexUtils;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
 import org.codehaus.plexus.component.annotations.Component;
@@ -269,7 +270,7 @@ public class DefaultNexusIndexer
 
             if ( update )
             {
-                Directory.copy( context.getIndexDirectory(), directory, false 
);
+                IndexUtils.copyDirectory( context.getIndexDirectory(), 
directory );
             }
 
             tmpContext = new DefaultIndexingContext( context.getId() + "-tmp", 
//

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
 Thu Dec  2 16:20:38 2010
@@ -418,6 +418,8 @@ public class DefaultQueryCreator
 
             int result = 0;
 
+            // Lucene 2.9
+            // while ( ts.incrementToken() )
             while ( ts.next() != null )
             {
                 result++;

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
 Thu Dec  2 16:20:38 2010
@@ -151,7 +151,7 @@ public class DefaultIndexingContext
 
         this.indexDirectoryFile = indexDirectoryFile;
 
-        this.indexDirectory = FSDirectory.getDirectory( indexDirectoryFile );
+        this.indexDirectory = FSDirectory.getDirectory(  indexDirectoryFile );
 
         prepareIndex( reclaimIndex );
     }
@@ -191,9 +191,9 @@ public class DefaultIndexingContext
             try
             {
                 // unlock the dir forcibly
-                if ( IndexReader.isLocked( indexDirectory ) )
+                if ( IndexWriter.isLocked( indexDirectory ) )
                 {
-                    IndexReader.unlock( indexDirectory );
+                    IndexWriter.unlock( indexDirectory );
                 }
 
                 checkAndUpdateIndexDescriptor( reclaimIndex );
@@ -238,9 +238,9 @@ public class DefaultIndexingContext
             indexWriter = null;
 
             // unlock the dir forcibly
-            if ( IndexReader.isLocked( indexDirectory ) )
+            if ( IndexWriter.isLocked( indexDirectory ) )
             {
-                IndexReader.unlock( indexDirectory );
+                IndexWriter.unlock( indexDirectory );
             }
 
             indexDirectory.close();
@@ -313,7 +313,7 @@ public class DefaultIndexingContext
     {
         Document hdr = new Document();
 
-        hdr.add( new Field( FLD_DESCRIPTOR, FLD_DESCRIPTOR_CONTENTS, 
Field.Store.YES, Field.Index.UN_TOKENIZED ) );
+        hdr.add( new Field( FLD_DESCRIPTOR, FLD_DESCRIPTOR_CONTENTS, 
Field.Store.YES, Field.Index.NOT_ANALYZED ) );
 
         hdr.add( new Field( FLD_IDXINFO, VERSION + ArtifactInfo.FS + 
getRepositoryId(), Field.Store.YES, Field.Index.NO ) );
 
@@ -460,7 +460,8 @@ public class DefaultIndexingContext
                     indexReader.close();
                 }
 
-                indexReader = IndexReader.open( indexDirectory );
+                // TODO: I think ReadOnly should be okay here! We should move 
all our W ops against IndexWriter
+                indexReader = IndexReader.open( indexDirectory, false );
             }
 
             return indexReader;
@@ -599,18 +600,20 @@ public class DefaultIndexingContext
     {
         synchronized ( indexLock )
         {
+            Date ts = IndexUtils.getTimestamp( directory );
+
             closeReaders();
 
             deleteIndexFiles();
 
             Directory.copy( directory, indexDirectory, false );
+            // We do it manually here, since we do want delete to happen 1st
+            // IndexUtils.copyDirectory( directory, indexDirectory );
 
             // reclaim the index as mine
             storeDescriptor();
 
-            timestamp = IndexUtils.getTimestamp( directory );
-
-            IndexUtils.updateTimestamp( indexDirectory, getTimestamp() );
+            updateTimestamp( true, ts );
 
             optimize();
         }
@@ -631,7 +634,7 @@ public class DefaultIndexingContext
 
             IndexSearcher s = getIndexSearcher();
 
-            IndexReader r = IndexReader.open( directory );
+            IndexReader r = IndexReader.open( directory, true );
 
             try
             {

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
 Thu Dec  2 16:20:38 2010
@@ -46,6 +46,19 @@ public class IndexUtils
 {
     public static final String TIMESTAMP_FILE = "timestamp";
 
+    // Directory
+
+    public static void copyDirectory( Directory source, Directory target )
+        throws IOException
+    {
+        // perform plain copy (but semantic changes between Lucene 2.4 and 2.9 
exists, so timestmap file will be not
+        // copied in 2.9)
+        Directory.copy( source, target, false );
+
+        Date ts = getTimestamp( source );
+        updateTimestamp( target, ts );
+    }
+
     // timestamp
 
     public static ArtifactInfo constructArtifactInfo( Document doc, 
IndexingContext context )

Modified: 
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java?rev=1041431&r1=1041430&r2=1041431&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/updater/DefaultIndexUpdaterTest.java
 Thu Dec  2 16:20:38 2010
@@ -88,9 +88,12 @@ public class DefaultIndexUpdaterTest
         assertEquals( tempContent.toString(), 2, tempContent.size() );
 
         // RAMDirectory is closed with context, forcing timestamp update
-        IndexUtils.updateTimestamp( tempContext.getIndexDirectory(), 
tempContext.getTimestamp() );
+        tempContext.updateTimestamp( true );
 
-        RAMDirectory tempDir2 = new RAMDirectory( 
tempContext.getIndexDirectory() );
+        // A change in RAMDirectory and Directory behavior in general: it will 
copy the Index files ONLY
+        // So we must make sure that timestamp file is transferred correctly.
+        RAMDirectory tempDir2 = new RAMDirectory();
+        IndexUtils.copyDirectory( tempContext.getIndexDirectory(), tempDir2 );
 
         Date newIndexTimestamp = tempContext.getTimestamp();
 


Reply via email to