You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2010/12/02 17:20:47 UTC
svn commit: r1041431 - in /maven/indexer/trunk/indexer-core/src:
main/java/org/apache/maven/index/ main/java/org/apache/maven/index/context/
test/java/org/apache/maven/index/updater/
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();