You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2014/03/07 04:55:06 UTC
svn commit: r1575155 - in
/maven/indexer/branches/lucene-4.6/indexer-core/src:
main/java/org/apache/maven/index/context/
main/java/org/apache/maven/index/packer/
main/java/org/apache/maven/index/updater/ test/java/org/apache/maven/index/
Author: olamy
Date: Fri Mar 7 03:55:06 2014
New Revision: 1575155
URL: http://svn.apache.org/r1575155
Log:
Fix field metadatacorruption on copy of lucene index
Modified:
maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java
maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
Modified: maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
URL: http://svn.apache.org/viewvc/maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java?rev=1575155&r1=1575154&r2=1575155&view=diff
==============================================================================
--- maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java (original)
+++ maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java Fri Mar 7 03:55:06 2014
@@ -67,11 +67,11 @@ public class DefaultIndexingContext
public static final String FLD_DESCRIPTOR = "DESCRIPTOR";
- private static final String FLD_DESCRIPTOR_CONTENTS = "NexusIndex";
+ public static final String FLD_DESCRIPTOR_CONTENTS = "NexusIndex";
- private static final String FLD_IDXINFO = "IDXINFO";
+ public static final String FLD_IDXINFO = "IDXINFO";
- private static final String VERSION = "1.0";
+ public static final String VERSION = "1.0";
private static final Term DESCRIPTOR_TERM = new Term( FLD_DESCRIPTOR, FLD_DESCRIPTOR_CONTENTS );
Modified: maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
URL: http://svn.apache.org/viewvc/maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java?rev=1575155&r1=1575154&r2=1575155&view=diff
==============================================================================
--- maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java (original)
+++ maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java Fri Mar 7 03:55:06 2014
@@ -26,18 +26,23 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.TimeZone;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
-
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.TextField;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.store.Directory;
@@ -47,6 +52,7 @@ import org.apache.lucene.store.IndexInpu
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.util.Bits;
import org.apache.maven.index.ArtifactInfo;
+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;
@@ -334,7 +340,22 @@ public class DefaultIndexPacker
{
if ( liveDocs == null || liveDocs.get(i) )
{
- w.addDocument( updateLegacyDocument( r.document( i ), context ) );
+ Document legacyDocument = r.document( i );
+ Document updatedLegacyDocument = updateLegacyDocument( legacyDocument, context );
+
+ //Lucene does not return metadata for stored documents, so we need to fix that
+ for (IndexableField indexableField : updatedLegacyDocument.getFields())
+ {
+ if(indexableField.name().equals(DefaultIndexingContext.FLD_DESCRIPTOR))
+ {
+ updatedLegacyDocument = new Document();
+ updatedLegacyDocument.add(new StringField(DefaultIndexingContext.FLD_DESCRIPTOR, DefaultIndexingContext.FLD_DESCRIPTOR_CONTENTS, Field.Store.YES));
+ updatedLegacyDocument.add( new StringField( DefaultIndexingContext.FLD_IDXINFO, DefaultIndexingContext.VERSION + ArtifactInfo.FS + context.getRepositoryId(), Field.Store.YES) );
+ break;
+ }
+ }
+
+ w.addDocument( updatedLegacyDocument );
}
}
Modified: maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
URL: http://svn.apache.org/viewvc/maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java?rev=1575155&r1=1575154&r2=1575155&view=diff
==============================================================================
--- maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java (original)
+++ maven/indexer/branches/lucene-4.6/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java Fri Mar 7 03:55:06 2014
@@ -43,10 +43,13 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StringField;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
@@ -54,6 +57,8 @@ import org.apache.lucene.store.IOContext
import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.util.Bits;
+import org.apache.maven.index.ArtifactInfo;
+import org.apache.maven.index.context.DefaultIndexingContext;
import org.apache.maven.index.context.DocumentFilter;
import org.apache.maven.index.context.IndexUtils;
import org.apache.maven.index.context.IndexingContext;
@@ -351,7 +356,21 @@ public class DefaultIndexUpdater
{
if (liveDocs == null || liveDocs.get(i) )
{
- w.addDocument( IndexUtils.updateDocument( r.document( i ), context ) );
+ Document sourceDocument = r.document( i );
+ Document targetDocument = IndexUtils.updateDocument( sourceDocument, context );
+
+ //Lucene does not return metadata for stored documents, so we need to fix that
+ for (IndexableField indexableField : targetDocument.getFields())
+ {
+ if(indexableField.name().equals(DefaultIndexingContext.FLD_DESCRIPTOR))
+ {
+ targetDocument = new Document();
+ targetDocument.add(new StringField(DefaultIndexingContext.FLD_DESCRIPTOR, DefaultIndexingContext.FLD_DESCRIPTOR_CONTENTS, Field.Store.YES));
+ targetDocument.add( new StringField( DefaultIndexingContext.FLD_IDXINFO, DefaultIndexingContext.VERSION + ArtifactInfo.FS + context.getRepositoryId(), Field.Store.YES) );
+ break;
+ }
+ }
+ w.addDocument( targetDocument );
}
}
Modified: maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java
URL: http://svn.apache.org/viewvc/maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java?rev=1575155&r1=1575154&r2=1575155&view=diff
==============================================================================
--- maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java (original)
+++ maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/AbstractNexusIndexerTest.java Fri Mar 7 03:55:06 2014
@@ -19,13 +19,15 @@ package org.apache.maven.index;
* under the License.
*/
+import java.io.File;
import java.io.IOException;
import java.util.Collection;
-
import org.apache.lucene.index.Term;
import org.apache.lucene.search.PrefixQuery;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.maven.index.ArtifactInfo;
import org.apache.maven.index.FlatSearchRequest;
import org.apache.maven.index.FlatSearchResponse;
@@ -45,6 +47,7 @@ public abstract class AbstractNexusIndex
protected void setUp()
throws Exception
{
+// indexDir = new SimpleFSDirectory(new File("/tmp/nexus-test"));
super.setUp();
// FileUtils.deleteDirectory( indexDir );
nexusIndexer = lookup( NexusIndexer.class );
Modified: maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
URL: http://svn.apache.org/viewvc/maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java?rev=1575155&r1=1575154&r2=1575155&view=diff
==============================================================================
--- maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java (original)
+++ maven/indexer/branches/lucene-4.6/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java Fri Mar 7 03:55:06 2014
@@ -511,7 +511,6 @@ public class FullIndexNexusIndexerTest
}
}
- assertThat(response.getReturnedHitsCount(), is(5));
assertThat(response.getTotalHitsCount(), is(5));
assertEquals( "found in jcl104-over-slf4j and commons-logging", 5, response.getTotalHits() );