Group :: Development/Java
RPM: maven-indexer
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: 0002-Eliminate-use-of-deprecated-Lucene-API-Field.patch
Download
Download
From 151b161c65c44c698e076b6656119ebe0749d065 Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
Date: Thu, 13 Jun 2019 00:27:17 +0100
Subject: [PATCH 2/5] Eliminate use of deprecated Lucene API - Field
Refactor to avoid using the following deprecated symbols:
* Field.Index
* Field.TermVector
* Token
These symbols only exist to support transitioning from pre-4.0
Lucene APIs, so this will make it easier to move to newer Lucenes
in the future.
Signed-off-by: Mat Booth <mat.booth@redhat.com>
---
.../apache/maven/index/ArtifactContext.java | 9 +-
.../maven/index/ArtifactInfoRecord.java | 8 +-
.../maven/index/DefaultIndexerEngine.java | 8 +-
.../org/apache/maven/index/IndexerField.java | 90 +++++++++----------
.../apache/maven/index/OneLineFragmenter.java | 11 ---
.../index/context/DefaultIndexingContext.java | 14 +--
.../maven/index/context/IndexUtils.java | 8 +-
.../creator/JarFileContentsIndexCreator.java | 6 +-
.../MavenPluginArtifactInfoIndexCreator.java | 6 +-
.../MinimalArtifactInfoIndexCreator.java | 39 ++++----
.../creator/OsgiArtifactIndexCreator.java | 41 +++++----
.../maven/index/updater/IndexDataReader.java | 21 ++---
.../maven/index/updater/IndexDataWriter.java | 19 ++--
13 files changed, 125 insertions(+), 155 deletions(-)
diff --git a/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java b/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
index a720028..18a5e94 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/ArtifactContext.java
@@ -28,8 +28,7 @@ import java.util.List;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.document.StoredField;
import org.apache.maven.index.artifact.Gav;
import org.apache.maven.index.context.IndexCreator;
import org.apache.maven.index.context.IndexingContext;
@@ -166,10 +165,10 @@ public class ArtifactContext
Document doc = new Document();
// unique key
- doc.add( new Field( ArtifactInfo.UINFO, getArtifactInfo().getUinfo(), Store.YES, Index.NOT_ANALYZED ) );
+ doc.add( new Field( ArtifactInfo.UINFO, getArtifactInfo().getUinfo(), IndexerField.KEYWORD_STORED ) );
- doc.add( new Field( ArtifactInfo.LAST_MODIFIED, //
- Long.toString( System.currentTimeMillis() ), Store.YES, Index.NO ) );
+ doc.add( new StoredField( ArtifactInfo.LAST_MODIFIED, //
+ Long.toString( System.currentTimeMillis() ) ) );
for ( IndexCreator indexCreator : context.getIndexCreators() )
{
diff --git a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
index 9e65d53..f1bfe85 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/ArtifactInfoRecord.java
@@ -22,8 +22,7 @@ package org.apache.maven.index;
import java.io.Serializable;
import java.util.regex.Pattern;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.document.StoredField;
/**
* Pulling out ArtifactInfo, clearing up. TBD. This gonna be extensible "map-like" class with fields.
@@ -53,14 +52,13 @@ 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.NOT_ANALYZED );
+ "Artifact UINFO (as keyword, stored)", IndexerField.KEYWORD_STORED );
/**
* Del: contains UINFO to mark record as deleted (needed for incremental updates!). The original document IS
* removed, but this marker stays on index to note that fact.
*/
public static final IndexerField FLD_DELETED = new IndexerField( NEXUS.DELETED, IndexerFieldVersion.V1, "del",
- "Deleted field, will contain UINFO if document is deleted from index (not indexed, stored)", Store.YES,
- Index.NO );
+ "Deleted field, will contain UINFO if document is deleted from index (not indexed, stored)", StoredField.TYPE );
}
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java
index ba234eb..64faa77 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultIndexerEngine.java
@@ -27,7 +27,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.Term;
@@ -100,9 +100,9 @@ public class DefaultIndexerEngine
// add artifact deletion marker
final Document doc = new Document();
- doc.add( new Field( ArtifactInfo.DELETED, uinfo, Field.Store.YES, Field.Index.NO ) );
- doc.add( new Field( ArtifactInfo.LAST_MODIFIED, //
- Long.toString( System.currentTimeMillis() ), Field.Store.YES, Field.Index.NO ) );
+ doc.add( new StoredField( ArtifactInfo.DELETED, uinfo ) );
+ doc.add( new StoredField( ArtifactInfo.LAST_MODIFIED, //
+ Long.toString( System.currentTimeMillis() ) ) );
IndexWriter w = context.getIndexWriter();
w.addDocument( doc );
diff --git a/indexer-core/src/main/java/org/apache/maven/index/IndexerField.java b/indexer-core/src/main/java/org/apache/maven/index/IndexerField.java
index bf99c97..3d67b2a 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/IndexerField.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/IndexerField.java
@@ -20,9 +20,8 @@ package org.apache.maven.index;
*/
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
-import org.apache.lucene.document.Field.TermVector;
+import org.apache.lucene.document.FieldType;
+import org.apache.lucene.index.IndexOptions;
/**
* Holds basic information about Indexer field, how it is stored. To keep this centralized, and not spread across code.
@@ -38,21 +37,45 @@ public class IndexerField
private final String key;
- private final Store storeMethod;
+ private final FieldType fieldType;
- private final Index indexMethod;
+ /** Indexed, not tokenized, not stored. */
+ public static final FieldType KEYWORD_NOT_STORED = new FieldType();
- private final TermVector termVector;
+ /** Indexed, not tokenized, stored. */
+ public static final FieldType KEYWORD_STORED = new FieldType();
- public IndexerField( final org.apache.maven.index.Field ontology, final IndexerFieldVersion version,
- final String key, final String description, final Store storeMethod, final Index indexMethod )
+ /** Indexed, tokenized, not stored. */
+ public static final FieldType ANALYZED_NOT_STORED = new FieldType();
+
+ /** Indexed, tokenized, stored. */
+ public static final FieldType ANALYZED_STORED = new FieldType();
+
+ static
{
- this( ontology, version, key, description, storeMethod, indexMethod, null );
+ KEYWORD_NOT_STORED.setIndexOptions( IndexOptions.DOCS_AND_FREQS_AND_POSITIONS );
+ KEYWORD_NOT_STORED.setStored( false );
+ KEYWORD_NOT_STORED.setTokenized( false );
+ KEYWORD_NOT_STORED.freeze();
+
+ KEYWORD_STORED.setIndexOptions( IndexOptions.DOCS_AND_FREQS_AND_POSITIONS );
+ KEYWORD_STORED.setStored( true );
+ KEYWORD_STORED.setTokenized( false );
+ KEYWORD_STORED.freeze();
+
+ ANALYZED_NOT_STORED.setIndexOptions( IndexOptions.DOCS_AND_FREQS_AND_POSITIONS );
+ ANALYZED_NOT_STORED.setStored( false );
+ ANALYZED_NOT_STORED.setTokenized( true );
+ ANALYZED_NOT_STORED.freeze();
+
+ ANALYZED_STORED.setIndexOptions( IndexOptions.DOCS_AND_FREQS_AND_POSITIONS );
+ ANALYZED_STORED.setStored( true );
+ ANALYZED_STORED.setTokenized( true );
+ ANALYZED_STORED.freeze();
}
public IndexerField( final org.apache.maven.index.Field ontology, final IndexerFieldVersion version,
- final String key, final String description, final Store storeMethod, final Index indexMethod,
- final TermVector termVector )
+ final String key, final String description, final FieldType fieldType )
{
this.ontology = ontology;
@@ -60,11 +83,7 @@ public class IndexerField
this.key = key;
- this.storeMethod = storeMethod;
-
- this.indexMethod = indexMethod;
-
- this.termVector = termVector;
+ this.fieldType = fieldType;
ontology.addIndexerField( this );
}
@@ -84,55 +103,28 @@ public class IndexerField
return key;
}
- public Field.Store getStoreMethod()
- {
- return storeMethod;
- }
-
- public Field.Index getIndexMethod()
- {
- return indexMethod;
- }
-
- public Field.TermVector getTermVector()
+ public FieldType getFieldType()
{
- return termVector;
+ return fieldType;
}
public boolean isIndexed()
{
- return !Index.NO.equals( indexMethod );
+ return fieldType.indexOptions() != IndexOptions.NONE;
}
public boolean isKeyword()
{
- return isIndexed() && !Index.ANALYZED.equals( indexMethod );
+ return isIndexed() && !fieldType.tokenized();
}
public boolean isStored()
{
- return !( Store.NO.equals( storeMethod ) );
+ return fieldType.stored();
}
public Field toField( String value )
{
- Field result;
-
- if ( getTermVector() != null )
- {
- result = new Field( getKey(), value, getStoreMethod(), getIndexMethod(), getTermVector() );
- }
- else
- {
- result = new Field( getKey(), value, getStoreMethod(), getIndexMethod() );
- }
-
- // if ( isKeyword() )
- // {
- // result.setOmitNorms( true );
- // result.setOmitTf( true );
- // }
-
- return result;
+ return new Field( getKey(), value, getFieldType() );
}
}
diff --git a/indexer-core/src/main/java/org/apache/maven/index/OneLineFragmenter.java b/indexer-core/src/main/java/org/apache/maven/index/OneLineFragmenter.java
index d346a04..d0c9af3 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/OneLineFragmenter.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/OneLineFragmenter.java
@@ -19,7 +19,6 @@ package org.apache.maven.index;
* under the License.
*/
-import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.search.highlight.Fragmenter;
@@ -33,16 +32,6 @@ public class OneLineFragmenter
setText( originalText );
}
- public boolean isNewFragment( Token nextToken )
- {
- // text: /org/sonatype/...
- // tokens: org sonatype
- boolean result =
- isNewline( getChar( nextToken.startOffset() - 1 ) ) || isNewline( getChar( nextToken.startOffset() - 2 ) );
-
- return result;
- }
-
protected boolean isNewline( char c )
{
return c == '\n';
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
index 6a092c1..8a64a4d 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/DefaultIndexingContext.java
@@ -33,9 +33,11 @@ import java.util.Date;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
@@ -55,6 +57,7 @@ import org.apache.lucene.store.Lock;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.util.Bits;
import org.apache.maven.index.ArtifactInfo;
+import org.apache.maven.index.IndexerField;
import org.apache.maven.index.artifact.GavCalculator;
import org.apache.maven.index.artifact.M2GavCalculator;
import org.codehaus.plexus.util.StringUtils;
@@ -363,10 +366,9 @@ public class DefaultIndexingContext
{
Document hdr = new Document();
- hdr.add( new Field( FLD_DESCRIPTOR, FLD_DESCRIPTOR_CONTENTS, Field.Store.YES, Field.Index.NOT_ANALYZED ) );
+ hdr.add( new Field( FLD_DESCRIPTOR, FLD_DESCRIPTOR_CONTENTS, IndexerField.KEYWORD_STORED ) );
- hdr.add( new Field( FLD_IDXINFO, VERSION + ArtifactInfo.FS + getRepositoryId(), Field.Store.YES,
- Field.Index.NO ) );
+ hdr.add( new StoredField( FLD_IDXINFO, VERSION + ArtifactInfo.FS + getRepositoryId() ) );
IndexWriter w = getIndexWriter();
@@ -876,10 +878,8 @@ public class DefaultIndexingContext
String listField )
{
final Document groupDoc = new Document();
- groupDoc.add( new Field( field, //
- fieldValue, Field.Store.YES, Field.Index.NOT_ANALYZED ) );
- groupDoc.add( new Field( listField, //
- ArtifactInfo.lst2str( groups ), Field.Store.YES, Field.Index.NO ) );
+ groupDoc.add( new Field( field, fieldValue, IndexerField.KEYWORD_STORED ) );
+ groupDoc.add( new StoredField( listField, ArtifactInfo.lst2str( groups ) ) );
return groupDoc;
}
diff --git a/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java b/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
index cd676ff..f7ef771 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/context/IndexUtils.java
@@ -29,6 +29,7 @@ import java.util.Date;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
@@ -36,6 +37,7 @@ import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.store.IndexOutput;
import org.apache.maven.index.ArtifactInfo;
+import org.apache.maven.index.IndexerField;
import org.codehaus.plexus.util.FileUtils;
public class IndexUtils
@@ -149,12 +151,12 @@ public class IndexUtils
Document document = new Document();
// unique key
- document.add( new Field( ArtifactInfo.UINFO, ai.getUinfo(), Field.Store.YES, Field.Index.NOT_ANALYZED ) );
+ document.add( new Field( ArtifactInfo.UINFO, ai.getUinfo(), IndexerField.KEYWORD_STORED ) );
if ( updateLastModified || doc.getField( ArtifactInfo.LAST_MODIFIED ) == null )
{
- document.add( new Field( ArtifactInfo.LAST_MODIFIED, //
- Long.toString( System.currentTimeMillis() ), Field.Store.YES, Field.Index.NO ) );
+ document.add( new StoredField( ArtifactInfo.LAST_MODIFIED, //
+ Long.toString( System.currentTimeMillis() ) ) );
}
else
{
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java
index 9318fbb..7f1c978 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/JarFileContentsIndexCreator.java
@@ -28,8 +28,6 @@ import java.util.Collection;
import java.util.List;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
import org.apache.maven.index.ArtifactContext;
import org.apache.maven.index.ArtifactInfo;
import org.apache.maven.index.IndexerField;
@@ -52,7 +50,7 @@ public class JarFileContentsIndexCreator
public static final String ID = "jarContent";
public static final IndexerField FLD_CLASSNAMES = new IndexerField( MAVEN.CLASSNAMES, IndexerFieldVersion.V3,
- "classnames", "Artifact Classes (tokenized)", Store.NO, Index.ANALYZED );
+ "classnames", "Artifact Classes (tokenized)", IndexerField.ANALYZED_NOT_STORED );
/**
* NexusAnalyzer makes exception with this field only, to keep backward compatibility with old consumers of
@@ -60,7 +58,7 @@ public class JarFileContentsIndexCreator
* registered BEFORE FLD_CLASSNAMES_KW!
*/
public static final IndexerField FLD_CLASSNAMES_KW = new IndexerField( MAVEN.CLASSNAMES, IndexerFieldVersion.V1,
- "c", "Artifact Classes (tokenized on newlines only)", Store.YES, Index.ANALYZED );
+ "c", "Artifact Classes (tokenized on newlines only)", IndexerField.ANALYZED_STORED );
public JarFileContentsIndexCreator()
{
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java
index 71e18d9..694ad1a 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/MavenPluginArtifactInfoIndexCreator.java
@@ -31,8 +31,6 @@ import java.util.Arrays;
import java.util.Collection;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
import org.apache.maven.index.ArtifactContext;
import org.apache.maven.index.ArtifactInfo;
import org.apache.maven.index.IndexerField;
@@ -61,10 +59,10 @@ public class MavenPluginArtifactInfoIndexCreator
private static final String MAVEN_PLUGIN_PACKAGING = "maven-plugin";
public static final IndexerField FLD_PLUGIN_PREFIX = new IndexerField( MAVEN.PLUGIN_PREFIX, IndexerFieldVersion.V1,
- "px", "MavenPlugin prefix (as keyword, stored)", Store.YES, Index.NOT_ANALYZED );
+ "px", "MavenPlugin prefix (as keyword, stored)", IndexerField.KEYWORD_STORED );
public static final IndexerField FLD_PLUGIN_GOALS = new IndexerField( MAVEN.PLUGIN_GOALS, IndexerFieldVersion.V1,
- "gx", "MavenPlugin goals (as keyword, stored)", Store.YES, Index.ANALYZED );
+ "gx", "MavenPlugin goals (as keyword, stored)", IndexerField.ANALYZED_STORED );
public MavenPluginArtifactInfoIndexCreator()
{
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java
index feea2d2..d899705 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/MinimalArtifactInfoIndexCreator.java
@@ -28,8 +28,7 @@ import java.util.Collection;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.document.StoredField;
import org.apache.maven.index.ArtifactAvailability;
import org.apache.maven.index.ArtifactContext;
import org.apache.maven.index.ArtifactInfo;
@@ -67,46 +66,46 @@ public class MinimalArtifactInfoIndexCreator
* Info: packaging, lastModified, size, sourcesExists, javadocExists, signatureExists. Stored, not indexed.
*/
public static final IndexerField FLD_INFO = new IndexerField( NEXUS.INFO, IndexerFieldVersion.V1, "i",
- "Artifact INFO (not indexed, stored)", Store.YES, Index.NO );
+ "Artifact INFO (not indexed, stored)", StoredField.TYPE );
public static final IndexerField FLD_GROUP_ID_KW = new IndexerField( MAVEN.GROUP_ID, IndexerFieldVersion.V1, "g",
- "Artifact GroupID (as keyword)", Store.NO, Index.NOT_ANALYZED );
+ "Artifact GroupID (as keyword)", IndexerField.KEYWORD_NOT_STORED );
public static final IndexerField FLD_GROUP_ID = new IndexerField( MAVEN.GROUP_ID, IndexerFieldVersion.V3,
- "groupId", "Artifact GroupID (tokenized)", Store.NO, Index.ANALYZED );
+ "groupId", "Artifact GroupID (tokenized)", IndexerField.ANALYZED_NOT_STORED );
public static final IndexerField FLD_ARTIFACT_ID_KW = new IndexerField( MAVEN.ARTIFACT_ID, IndexerFieldVersion.V1,
- "a", "Artifact ArtifactID (as keyword)", Store.NO, Index.NOT_ANALYZED );
+ "a", "Artifact ArtifactID (as keyword)", IndexerField.KEYWORD_NOT_STORED );
public static final IndexerField FLD_ARTIFACT_ID = new IndexerField( MAVEN.ARTIFACT_ID, IndexerFieldVersion.V3,
- "artifactId", "Artifact ArtifactID (tokenized)", Store.NO, Index.ANALYZED );
+ "artifactId", "Artifact ArtifactID (tokenized)", IndexerField.ANALYZED_NOT_STORED );
public static final IndexerField FLD_VERSION_KW = new IndexerField( MAVEN.VERSION, IndexerFieldVersion.V1, "v",
- "Artifact Version (as keyword)", Store.NO, Index.NOT_ANALYZED );
+ "Artifact Version (as keyword)", IndexerField.KEYWORD_NOT_STORED );
public static final IndexerField FLD_VERSION = new IndexerField( MAVEN.VERSION, IndexerFieldVersion.V3, "version",
- "Artifact Version (tokenized)", Store.NO, Index.ANALYZED );
+ "Artifact Version (tokenized)", IndexerField.ANALYZED_NOT_STORED );
public static final IndexerField FLD_PACKAGING = new IndexerField( MAVEN.PACKAGING, IndexerFieldVersion.V1, "p",
- "Artifact Packaging (as keyword)", Store.NO, Index.NOT_ANALYZED );
+ "Artifact Packaging (as keyword)", IndexerField.KEYWORD_NOT_STORED );
public static final IndexerField FLD_EXTENSION = new IndexerField( MAVEN.EXTENSION, IndexerFieldVersion.V1, "e",
- "Artifact extension (as keyword)", Store.NO, Index.NOT_ANALYZED );
+ "Artifact extension (as keyword)", IndexerField.KEYWORD_NOT_STORED );
public static final IndexerField FLD_CLASSIFIER = new IndexerField( MAVEN.CLASSIFIER, IndexerFieldVersion.V1, "l",
- "Artifact classifier (as keyword)", Store.NO, Index.NOT_ANALYZED );
+ "Artifact classifier (as keyword)", IndexerField.KEYWORD_NOT_STORED );
public static final IndexerField FLD_NAME = new IndexerField( MAVEN.NAME, IndexerFieldVersion.V1, "n",
- "Artifact name (tokenized, stored)", Store.YES, Index.ANALYZED );
+ "Artifact name (tokenized, stored)", IndexerField.ANALYZED_STORED );
public static final IndexerField FLD_DESCRIPTION = new IndexerField( MAVEN.DESCRIPTION, IndexerFieldVersion.V1,
- "d", "Artifact description (tokenized, stored)", Store.YES, Index.ANALYZED );
+ "d", "Artifact description (tokenized, stored)", IndexerField.ANALYZED_STORED );
public static final IndexerField FLD_LAST_MODIFIED = new IndexerField( MAVEN.LAST_MODIFIED, IndexerFieldVersion.V1,
- "m", "Artifact last modified (not indexed, stored)", Store.YES, Index.NO );
+ "m", "Artifact last modified (not indexed, stored)", StoredField.TYPE );
public static final IndexerField FLD_SHA1 = new IndexerField( MAVEN.SHA1, IndexerFieldVersion.V1, "1",
- "Artifact SHA1 checksum (as keyword, stored)", Store.YES, Index.NOT_ANALYZED );
+ "Artifact SHA1 checksum (as keyword, stored)", IndexerField.KEYWORD_STORED );
private Locator jl = new JavadocLocator();
@@ -310,18 +309,16 @@ public class MinimalArtifactInfoIndexCreator
// legacy!
if ( ai.getPrefix() != null )
{
- doc.add( new Field( ArtifactInfo.PLUGIN_PREFIX, ai.getPrefix(), Field.Store.YES,
- Field.Index.NOT_ANALYZED ) );
+ doc.add( new Field( ArtifactInfo.PLUGIN_PREFIX, ai.getPrefix(), IndexerField.KEYWORD_STORED ) );
}
if ( ai.getGoals() != null )
{
- doc.add( new Field( ArtifactInfo.PLUGIN_GOALS, ArtifactInfo.lst2str( ai.getGoals() ), Field.Store.YES,
- Field.Index.NO ) );
+ doc.add( new StoredField( ArtifactInfo.PLUGIN_GOALS, ArtifactInfo.lst2str( ai.getGoals() ) ) );
}
doc.removeField( ArtifactInfo.GROUP_ID );
- doc.add( new Field( ArtifactInfo.GROUP_ID, ai.getGroupId(), Field.Store.NO, Field.Index.NOT_ANALYZED ) );
+ doc.add( new Field( ArtifactInfo.GROUP_ID, ai.getGroupId(), IndexerField.KEYWORD_NOT_STORED ) );
}
public boolean updateArtifactInfo( Document doc, ArtifactInfo ai )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java b/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
index ed06d0b..559d2da 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/creator/OsgiArtifactIndexCreator.java
@@ -23,7 +23,6 @@ import javax.inject.Named;
import javax.inject.Singleton;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
import org.apache.maven.index.ArtifactContext;
import org.apache.maven.index.ArtifactInfo;
import org.apache.maven.index.IndexerField;
@@ -72,95 +71,95 @@ public class OsgiArtifactIndexCreator
public static final IndexerField FLD_SHA256 =
new IndexerField( OSGI.SHA256, IndexerFieldVersion.V4, "sha256", "SHA-256 (not analyzed, stored)",
- Field.Store.YES, Field.Index.NOT_ANALYZED );
+ IndexerField.KEYWORD_STORED );
private static final String BSN = "Bundle-SymbolicName";
public static final IndexerField FLD_BUNDLE_SYMBOLIC_NAME =
new IndexerField( OSGI.SYMBOLIC_NAME, IndexerFieldVersion.V4, BSN, "Bundle-SymbolicName (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
private static final String BV = "Bundle-Version";
public static final IndexerField FLD_BUNDLE_VERSION =
- new IndexerField( OSGI.VERSION, IndexerFieldVersion.V4, BV, "Bundle-Version (indexed, stored)", Field.Store.YES,
- Field.Index.ANALYZED );
+ new IndexerField( OSGI.VERSION, IndexerFieldVersion.V4, BV, "Bundle-Version (indexed, stored)",
+ IndexerField.ANALYZED_STORED );
private static final String BEP = "Export-Package";
public static final IndexerField FLD_BUNDLE_EXPORT_PACKAGE =
new IndexerField( OSGI.EXPORT_PACKAGE, IndexerFieldVersion.V4, BEP, "Export-Package (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
@Deprecated
private static final String BES = "Export-Service";
@Deprecated
public static final IndexerField FLD_BUNDLE_EXPORT_SERVIVE =
new IndexerField( OSGI.EXPORT_SERVICE, IndexerFieldVersion.V4, BES, "Export-Service (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
private static final String BD = "Bundle-Description";
public static final IndexerField FLD_BUNDLE_DESCRIPTION =
new IndexerField( OSGI.DESCRIPTION, IndexerFieldVersion.V4, BD, "Bundle-Description (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
private static final String BN = "Bundle-Name";
public static final IndexerField FLD_BUNDLE_NAME =
- new IndexerField( OSGI.NAME, IndexerFieldVersion.V4, BN, "Bundle-Name (indexed, stored)", Field.Store.YES,
- Field.Index.ANALYZED );
+ new IndexerField( OSGI.NAME, IndexerFieldVersion.V4, BN, "Bundle-Name (indexed, stored)",
+ IndexerField.ANALYZED_STORED );
private static final String BL = "Bundle-License";
public static final IndexerField FLD_BUNDLE_LICENSE =
- new IndexerField( OSGI.LICENSE, IndexerFieldVersion.V4, BL, "Bundle-License (indexed, stored)", Field.Store.YES,
- Field.Index.ANALYZED );
+ new IndexerField( OSGI.LICENSE, IndexerFieldVersion.V4, BL, "Bundle-License (indexed, stored)",
+ IndexerField.ANALYZED_STORED );
private static final String BDU = "Bundle-DocURL";
public static final IndexerField FLD_BUNDLE_DOCURL =
- new IndexerField( OSGI.DOCURL, IndexerFieldVersion.V4, BDU, "Bundle-DocURL (indexed, stored)", Field.Store.YES,
- Field.Index.ANALYZED );
+ new IndexerField( OSGI.DOCURL, IndexerFieldVersion.V4, BDU, "Bundle-DocURL (indexed, stored)",
+ IndexerField.ANALYZED_STORED );
private static final String BIP = "Import-Package";
public static final IndexerField FLD_BUNDLE_IMPORT_PACKAGE =
new IndexerField( OSGI.IMPORT_PACKAGE, IndexerFieldVersion.V4, BIP, "Import-Package (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
private static final String BRB = "Require-Bundle";
public static final IndexerField FLD_BUNDLE_REQUIRE_BUNDLE =
new IndexerField( OSGI.REQUIRE_BUNDLE, IndexerFieldVersion.V4, BRB, "Require-Bundle (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
private static final String PROVIDE_CAPABILITY = "Provide-Capability";
public static final IndexerField FLD_BUNDLE_PROVIDE_CAPABILITY =
new IndexerField( OSGI.PROVIDE_CAPABILITY, IndexerFieldVersion.V4, PROVIDE_CAPABILITY,
- "Provide-Capability (indexed, stored)", Field.Store.YES, Field.Index.ANALYZED );
+ "Provide-Capability (indexed, stored)", IndexerField.ANALYZED_STORED );
private static final String REQUIRE_CAPABILITY = "Require-Capability";
public static final IndexerField FLD_BUNDLE_REQUIRE_CAPABILITY =
new IndexerField( OSGI.REQUIRE_CAPABILITY, IndexerFieldVersion.V4, REQUIRE_CAPABILITY,
- "Require-Capability (indexed, stored)", Field.Store.YES, Field.Index.ANALYZED );
+ "Require-Capability (indexed, stored)", IndexerField.ANALYZED_STORED );
private static final String FRAGMENT_HOST = "Fragment-Host";
public static final IndexerField FLD_BUNDLE_FRAGMENT_HOST =
new IndexerField( OSGI.FRAGMENT_HOST, IndexerFieldVersion.V4, FRAGMENT_HOST, "Fragment-Host (indexed, stored)",
- Field.Store.YES, Field.Index.ANALYZED );
+ IndexerField.ANALYZED_STORED );
private static final String BUNDLE_REQUIRED_EXECUTION_ENVIRONMENT = "Bundle-RequiredExecutionEnvironment";
public static final IndexerField FLD_BUNDLE_REQUIRED_EXECUTION_ENVIRONMENT =
new IndexerField( OSGI.BUNDLE_REQUIRED_EXECUTION_ENVIRONMENT, IndexerFieldVersion.V4,
BUNDLE_REQUIRED_EXECUTION_ENVIRONMENT,
- "Bundle-RequiredExecutionEnvironment (indexed, stored)", Field.Store.YES,
- Field.Index.ANALYZED );
+ "Bundle-RequiredExecutionEnvironment (indexed, stored)",
+ IndexerField.ANALYZED_STORED );
public Collection<IndexerField> getIndexerFields()
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
index 67f823d..c5f1d71 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataReader.java
@@ -34,8 +34,8 @@ import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.document.FieldType;
+import org.apache.lucene.index.IndexOptions;
import org.apache.lucene.index.IndexWriter;
import org.apache.maven.index.ArtifactInfo;
import org.apache.maven.index.context.IndexUtils;
@@ -181,23 +181,20 @@ public class IndexDataReader
{
int flags = dis.read();
- Index index = Index.NO;
+ FieldType fieldType = new FieldType();
if ( ( flags & IndexDataWriter.F_INDEXED ) > 0 )
{
- boolean isTokenized = ( flags & IndexDataWriter.F_TOKENIZED ) > 0;
- index = isTokenized ? Index.ANALYZED : Index.NOT_ANALYZED;
- }
-
- Store store = Store.NO;
- if ( ( flags & IndexDataWriter.F_STORED ) > 0 )
- {
- store = Store.YES;
+ boolean tokenized = ( flags & IndexDataWriter.F_TOKENIZED ) > 0;
+ fieldType.setTokenized( tokenized );
+ fieldType.setOmitNorms( !tokenized );
+ fieldType.setIndexOptions( IndexOptions.DOCS_AND_FREQS_AND_POSITIONS );
}
+ fieldType.setStored( ( flags & IndexDataWriter.F_STORED ) > 0 );
String name = dis.readUTF();
String value = readUTF( dis );
- return new Field( name, value, store, index );
+ return new Field( name, value, fieldType );
}
private static String readUTF( DataInput in )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
index 979474d..11550bd 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/updater/IndexDataWriter.java
@@ -31,14 +31,14 @@ import java.util.List;
import java.util.Set;
import java.util.zip.GZIPOutputStream;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field.Store;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexOptions;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.util.Bits;
import org.apache.maven.index.ArtifactInfo;
+import org.apache.maven.index.IndexerField;
import org.apache.maven.index.context.DefaultIndexingContext;
import org.apache.maven.index.context.IndexingContext;
@@ -122,18 +122,19 @@ public class IndexDataWriter
{
{
List<IndexableField> allGroupsFields = new ArrayList<>( 2 );
- allGroupsFields.add( new StringField( ArtifactInfo.ALL_GROUPS, ArtifactInfo.ALL_GROUPS_VALUE, Store.YES ) );
- allGroupsFields.add( new StringField( ArtifactInfo.ALL_GROUPS_LIST, ArtifactInfo.lst2str( allGroups ),
- Store.YES ) );
+ allGroupsFields.add( new Field( ArtifactInfo.ALL_GROUPS, ArtifactInfo.ALL_GROUPS_VALUE,
+ IndexerField.KEYWORD_STORED ) );
+ allGroupsFields.add( new Field( ArtifactInfo.ALL_GROUPS_LIST, ArtifactInfo.lst2str( allGroups ),
+ IndexerField.KEYWORD_STORED ) );
writeDocumentFields( allGroupsFields );
}
{
List<IndexableField> rootGroupsFields = new ArrayList<>( 2 );
- rootGroupsFields.add( new StringField( ArtifactInfo.ROOT_GROUPS, ArtifactInfo.ROOT_GROUPS_VALUE,
- Store.YES ) );
- rootGroupsFields.add( new StringField( ArtifactInfo.ROOT_GROUPS_LIST, ArtifactInfo.lst2str( rootGroups ),
- Store.YES ) );
+ rootGroupsFields.add( new Field( ArtifactInfo.ROOT_GROUPS, ArtifactInfo.ROOT_GROUPS_VALUE,
+ IndexerField.KEYWORD_STORED ) );
+ rootGroupsFields.add( new Field( ArtifactInfo.ROOT_GROUPS_LIST, ArtifactInfo.lst2str( rootGroups ),
+ IndexerField.KEYWORD_STORED ) );
writeDocumentFields( rootGroupsFields );
}
}
--
2.31.1