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();