You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rj...@apache.org on 2014/08/15 21:15:19 UTC
svn commit: r1618263 [1/2] - in /lucene/dev/trunk: ./ dev-tools/idea/.idea/
dev-tools/maven/ lucene/
lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/
lucene/a...
Author: rjernst
Date: Fri Aug 15 19:15:17 2014
New Revision: 1618263
URL: http://svn.apache.org/r1618263
Log:
LUCENE-5850: Made Version handling more robust and extensible
Removed:
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestConstants.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersionComparator.java
Modified:
lucene/dev/trunk/build.xml
lucene/dev/trunk/dev-tools/idea/.idea/workspace.xml
lucene/dev/trunk/dev-tools/maven/pom.xml.template
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java
lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishAnalyzer.java
lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/de/TestGermanAnalyzer.java
lucene/dev/trunk/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java
lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java
lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/NewAnalyzerTask.java
lucene/dev/trunk/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTaskTest.java
lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoReader.java
lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoWriter.java
lucene/dev/trunk/lucene/common-build.xml
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoReader.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoWriter.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene45/Lucene45DocValuesProducer.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoReader.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoWriter.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Constants.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/StringHelper.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestVersion.java
lucene/dev/trunk/lucene/demo/src/java/org/apache/lucene/demo/facet/FacetExamples.java
lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
lucene/dev/trunk/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java
lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
lucene/dev/trunk/solr/common-build.xml
lucene/dev/trunk/solr/contrib/analysis-extras/src/java/org/apache/solr/schema/ICUCollationField.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/Config.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrConfig.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldTypePluginLoader.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/analysis/TestLuceneMatchVersion.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/rest/schema/TestSerializedLuceneMatchVersion.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/similarities/TestNonDefinedSimilarityFactory.java
lucene/dev/trunk/solr/example/example-DIH/solr/db/conf/solrconfig.xml
lucene/dev/trunk/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
lucene/dev/trunk/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
lucene/dev/trunk/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
lucene/dev/trunk/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
lucene/dev/trunk/solr/example/example-schemaless/solr/collection1/conf/solrconfig.xml
lucene/dev/trunk/solr/example/multicore/core0/conf/solrconfig.xml
lucene/dev/trunk/solr/example/multicore/core1/conf/solrconfig.xml
lucene/dev/trunk/solr/example/solr/collection1/conf/solrconfig.xml
Modified: lucene/dev/trunk/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/build.xml?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/build.xml (original)
+++ lucene/dev/trunk/build.xml Fri Aug 15 19:15:17 2014
@@ -143,7 +143,7 @@
</subant>
</target>
- <property name="version" value="5.0-SNAPSHOT"/>
+ <property name="version" value="5.0.0-SNAPSHOT"/>
<property name="maven-build-dir" value="maven-build"/>
<property name="maven-version" value="2.2.1"/>
Modified: lucene/dev/trunk/dev-tools/idea/.idea/workspace.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/dev-tools/idea/.idea/workspace.xml?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/dev-tools/idea/.idea/workspace.xml (original)
+++ lucene/dev/trunk/dev-tools/idea/.idea/workspace.xml Fri Aug 15 19:15:17 2014
@@ -8,7 +8,7 @@
<module name="lucene-core-tests" />
<option name="TEST_OBJECT" value="package" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/lucene/core" />
- <option name="VM_PARAMETERS" value="-Xmx256m -ea -Dlucene.version=5.0-SNAPSHOT -DtempDir=temp" />
+ <option name="VM_PARAMETERS" value="-Xmx256m -ea -Dversion.base=5.0.0 -DtempDir=temp" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
<configuration default="false" name="Module analyzers-common" type="JUnit" factoryName="JUnit">
@@ -183,28 +183,28 @@
<module name="solr-core-tests" />
<option name="TEST_OBJECT" value="package" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/solr/solr-core" />
- <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
+ <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
<configuration default="false" name="Solrj" type="JUnit" factoryName="JUnit">
<module name="solrj-tests" />
<option name="TEST_OBJECT" value="package" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/solr/solr-solrj" />
- <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
+ <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
<configuration default="false" name="Solr analysis-extras contrib" type="JUnit" factoryName="JUnit">
<module name="analysis-extras" />
<option name="TEST_OBJECT" value="package" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/solr/contrib/solr-analysis-extras" />
- <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
+ <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
<configuration default="false" name="Solr clustering contrib" type="JUnit" factoryName="JUnit">
<module name="clustering" />
<option name="TEST_OBJECT" value="package" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/solr/contrib/solr-clustering" />
- <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
+ <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
<configuration default="false" name="Solr dataimporthandler contrib" type="JUnit" factoryName="JUnit">
@@ -260,7 +260,7 @@
<module name="uima" />
<option name="TEST_OBJECT" value="package" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/solr/contrib/solr-uima" />
- <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
+ <option name="VM_PARAMETERS" value="-ea -Dtests.luceneMatchVersion=5.0.0 -DtempDir=temp -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
<configuration default="false" name="Solr velocity contrib" type="JUnit" factoryName="JUnit">
Modified: lucene/dev/trunk/dev-tools/maven/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/dev-tools/maven/pom.xml.template?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/dev-tools/maven/pom.xml.template (original)
+++ lucene/dev/trunk/dev-tools/maven/pom.xml.template Fri Aug 15 19:15:17 2014
@@ -58,7 +58,7 @@
<tests.codec>random</tests.codec>
<tests.directory>random</tests.directory>
<tests.locale>random</tests.locale>
- <tests.luceneMatchVersion>5.0</tests.luceneMatchVersion>
+ <tests.luceneMatchVersion>5.0.0</tests.luceneMatchVersion>
<tests.multiplier>1</tests.multiplier>
<tests.nightly>false</tests.nightly>
<tests.postingsformat>random</tests.postingsformat>
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Fri Aug 15 19:15:17 2014
@@ -161,8 +161,8 @@ API Changes
CoveredBy. The area requirement on the predicates was removed, and Overlaps' definition
was fixed. (David Smiley)
-* LUCENE-5850: CheckIndex now prints the Lucene version used to write
- each segment. (Robert Muir, Mike McCandless)
+* LUCENE-5850: Made Version handling more robust and extensible. Deprecated Constants.LUCENE_MAIN_VERSION, Constants.LUCENE_VERSION and current Version constants of the form LUCENE_X_Y. Added version constants that include bugfix number of form LUCENE_X_Y_Z. Changed Version.LUCENE_CURRENT to Version.LATEST. CheckIndex now prints the Lucene version used to write
+ each segment. (Ryan Ernst, Uwe Schindler, Robert Muir, Mike McCandless)
* LUCENE-5836: BytesRef has been splitted into BytesRef, whose intended usage is
to be just a reference to a section of a larger byte[] and BytesRefBuilder
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilterFactory.java Fri Aug 15 19:15:17 2014
@@ -71,7 +71,7 @@ public class DictionaryCompoundWordToken
if (dictionary == null) {
return input;
}
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
return new DictionaryCompoundWordTokenFilter(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch);
}
return new Lucene43DictionaryCompoundWordTokenFilter(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/compound/HyphenationCompoundWordTokenFilterFactory.java Fri Aug 15 19:15:17 2014
@@ -99,7 +99,7 @@ public class HyphenationCompoundWordToke
final InputSource is = new InputSource(stream);
is.setEncoding(encoding); // if it's null let xml parser decide
is.setSystemId(hypFile);
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
hyphenator = HyphenationCompoundWordTokenFilter.getHyphenationTree(is);
} else {
hyphenator = Lucene43HyphenationCompoundWordTokenFilter.getHyphenationTree(is);
@@ -111,7 +111,7 @@ public class HyphenationCompoundWordToke
@Override
public TokenFilter create(TokenStream input) {
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
return new HyphenationCompoundWordTokenFilter(input, hyphenator, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch);
}
return new Lucene43HyphenationCompoundWordTokenFilter(input, hyphenator, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilterFactory.java Fri Aug 15 19:15:17 2014
@@ -118,7 +118,7 @@ public class WordDelimiterFilterFactory
@Override
public TokenFilter create(TokenStream input) {
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_8)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_8_0)) {
return new WordDelimiterFilter(input, typeTable == null ? WordDelimiterIterator.DEFAULT_WORD_DELIM_TABLE : typeTable,
flags, protectedWords);
} else {
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java Fri Aug 15 19:15:17 2014
@@ -50,7 +50,7 @@ public class EdgeNGramFilterFactory exte
@Override
public TokenFilter create(TokenStream input) {
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
return new EdgeNGramTokenFilter(input, minGramSize, maxGramSize);
}
return new Lucene43EdgeNGramTokenFilter(input, minGramSize, maxGramSize);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java Fri Aug 15 19:15:17 2014
@@ -22,7 +22,6 @@ import org.apache.lucene.analysis.util.T
import org.apache.lucene.util.AttributeFactory;
import org.apache.lucene.util.Version;
-import java.io.Reader;
import java.util.Map;
/**
@@ -50,7 +49,7 @@ public class EdgeNGramTokenizerFactory e
@Override
public Tokenizer create(AttributeFactory factory) {
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
return new EdgeNGramTokenizer(factory, minGramSize, maxGramSize);
}
return new Lucene43NGramTokenizer(factory, minGramSize, maxGramSize);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramFilterFactory.java Fri Aug 15 19:15:17 2014
@@ -50,7 +50,7 @@ public class NGramFilterFactory extends
@Override
public TokenFilter create(TokenStream input) {
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
return new NGramTokenFilter(input, minGramSize, maxGramSize);
}
return new Lucene43NGramTokenFilter(input, minGramSize, maxGramSize);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizerFactory.java Fri Aug 15 19:15:17 2014
@@ -52,7 +52,7 @@ public class NGramTokenizerFactory exten
/** Creates the {@link TokenStream} of n-grams from the given {@link Reader} and {@link AttributeFactory}. */
@Override
public Tokenizer create(AttributeFactory factory) {
- if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4)) {
+ if (luceneMatchVersion.onOrAfter(Version.LUCENE_4_4_0)) {
return new NGramTokenizer(factory, minGramSize, maxGramSize);
} else {
return new Lucene43NGramTokenizer(factory, minGramSize, maxGramSize);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/th/ThaiAnalyzer.java Fri Aug 15 19:15:17 2014
@@ -98,7 +98,7 @@ public final class ThaiAnalyzer extends
*/
@Override
protected TokenStreamComponents createComponents(String fieldName) {
- if (getVersion().onOrAfter(Version.LUCENE_4_8)) {
+ if (getVersion().onOrAfter(Version.LUCENE_4_8_0)) {
final Tokenizer source = new ThaiTokenizer();
TokenStream result = new LowerCaseFilter(source);
result = new StopFilter(result, stopwords);
Modified: lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishAnalyzer.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishAnalyzer.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/java/org/apache/lucene/analysis/tr/TurkishAnalyzer.java Fri Aug 15 19:15:17 2014
@@ -119,7 +119,7 @@ public final class TurkishAnalyzer exten
protected TokenStreamComponents createComponents(String fieldName) {
final Tokenizer source = new StandardTokenizer();
TokenStream result = new StandardFilter(source);
- if (getVersion().onOrAfter(Version.LUCENE_4_8)) {
+ if (getVersion().onOrAfter(Version.LUCENE_4_8_0)) {
result = new ApostropheFilter(result);
}
result = new TurkishLowerCaseFilter(result);
Modified: lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/de/TestGermanAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/de/TestGermanAnalyzer.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/de/TestGermanAnalyzer.java (original)
+++ lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/de/TestGermanAnalyzer.java Fri Aug 15 19:15:17 2014
@@ -51,7 +51,7 @@ public class TestGermanAnalyzer extends
}
/** test some features of the new snowball filter
- * these only pass with LUCENE_CURRENT, not if you use o.a.l.a.de.GermanStemmer
+ * these only pass with LATEST, not if you use o.a.l.a.de.GermanStemmer
*/
public void testGermanSpecials() throws Exception {
GermanAnalyzer a = new GermanAnalyzer();
Modified: lucene/dev/trunk/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java (original)
+++ lucene/dev/trunk/lucene/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java Fri Aug 15 19:15:17 2014
@@ -132,7 +132,7 @@ public final class SmartChineseAnalyzer
public TokenStreamComponents createComponents(String fieldName) {
final Tokenizer tokenizer;
TokenStream result;
- if (getVersion().onOrAfter(Version.LUCENE_4_8)) {
+ if (getVersion().onOrAfter(Version.LUCENE_4_8_0)) {
tokenizer = new HMMChineseTokenizer();
result = tokenizer;
} else {
Modified: lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java (original)
+++ lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/AnalyzerFactoryTask.java Fri Aug 15 19:15:17 2014
@@ -59,7 +59,7 @@ import java.util.regex.Pattern;
* </ol>
*
* Each component analysis factory map specify <tt>luceneMatchVersion</tt> (defaults to
- * {@link Version#LUCENE_CURRENT}) and any of the args understood by the specified
+ * {@link Version#LATEST}) and any of the args understood by the specified
* *Factory class, in the above-describe param format.
* <p/>
* Example:
@@ -68,7 +68,7 @@ import java.util.regex.Pattern;
* positionIncrementGap:100,
* HTMLStripCharFilter,
* MappingCharFilter(mapping:'mapping-FoldToASCII.txt'),
- * WhitespaceTokenizer(luceneMatchVersion:LUCENE_5_0),
+ * WhitespaceTokenizer(luceneMatchVersion:LUCENE_5_0_0),
* TokenLimitFilter(maxTokenCount:10000, consumeAllTokens:false))
* [...]
* -NewAnalyzer('strip html, fold to ascii, whitespace tokenize, max 10k tokens')
@@ -355,7 +355,7 @@ public class AnalyzerFactoryTask extends
}
}
if (!argMap.containsKey("luceneMatchVersion")) {
- argMap.put("luceneMatchVersion", Version.LUCENE_CURRENT.toString());
+ argMap.put("luceneMatchVersion", Version.LATEST.toString());
}
final AbstractAnalysisFactory instance;
try {
Modified: lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/NewAnalyzerTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/NewAnalyzerTask.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/NewAnalyzerTask.java (original)
+++ lucene/dev/trunk/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/NewAnalyzerTask.java Fri Aug 15 19:15:17 2014
@@ -16,9 +16,6 @@ package org.apache.lucene.benchmark.byTa
*/
import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.util.CharFilterFactory;
-import org.apache.lucene.analysis.util.TokenFilterFactory;
-import org.apache.lucene.analysis.util.TokenizerFactory;
import org.apache.lucene.benchmark.byTask.PerfRunData;
import org.apache.lucene.benchmark.byTask.utils.AnalyzerFactory;
import org.apache.lucene.util.Version;
@@ -47,7 +44,7 @@ public class NewAnalyzerTask extends Per
try {
// first try to use a ctor with version parameter (needed for many new Analyzers that have no default one anymore
Constructor<? extends Analyzer> cnstr = clazz.getConstructor(Version.class);
- return cnstr.newInstance(Version.LUCENE_CURRENT);
+ return cnstr.newInstance(Version.LATEST);
} catch (NoSuchMethodException nsme) {
// otherwise use default ctor
return clazz.newInstance();
Modified: lucene/dev/trunk/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTaskTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTaskTest.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTaskTest.java (original)
+++ lucene/dev/trunk/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/CreateIndexTaskTest.java Fri Aug 15 19:15:17 2014
@@ -38,7 +38,7 @@ public class CreateIndexTaskTest extends
private PerfRunData createPerfRunData(String infoStreamValue) throws Exception {
Properties props = new Properties();
// :Post-Release-Update-Version.LUCENE_XY:
- props.setProperty("writer.version", Version.LUCENE_5_0.toString());
+ props.setProperty("writer.version", Version.LUCENE_5_0_0.toString());
props.setProperty("print.props", "false"); // don't print anything
props.setProperty("directory", "RAMDirectory");
if (infoStreamValue != null) {
Modified: lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoReader.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoReader.java (original)
+++ lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoReader.java Fri Aug 15 19:15:17 2014
@@ -42,6 +42,7 @@ import org.apache.lucene.store.IOContext
import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.StringHelper;
+import org.apache.lucene.util.Version;
/**
* reads plaintext segments files
@@ -60,7 +61,7 @@ public class SimpleTextSegmentInfoReader
try {
SimpleTextUtil.readLine(input, scratch);
assert StringHelper.startsWith(scratch.get(), SI_VERSION);
- final String version = readString(SI_VERSION.length, scratch);
+ final Version version = Version.parse(readString(SI_VERSION.length, scratch));
SimpleTextUtil.readLine(input, scratch);
assert StringHelper.startsWith(scratch.get(), SI_DOCCOUNT);
Modified: lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoWriter.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoWriter.java (original)
+++ lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextSegmentInfoWriter.java Fri Aug 15 19:15:17 2014
@@ -62,7 +62,7 @@ public class SimpleTextSegmentInfoWriter
BytesRefBuilder scratch = new BytesRefBuilder();
SimpleTextUtil.write(output, SI_VERSION);
- SimpleTextUtil.write(output, si.getVersion(), scratch);
+ SimpleTextUtil.write(output, si.getVersion().toString(), scratch);
SimpleTextUtil.writeNewline(output);
SimpleTextUtil.write(output, SI_DOCCOUNT);
Modified: lucene/dev/trunk/lucene/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/common-build.xml?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/common-build.xml (original)
+++ lucene/dev/trunk/lucene/common-build.xml Fri Aug 15 19:15:17 2014
@@ -26,6 +26,14 @@
for standalone use.
</description>
+ <!-- !!! RELEASE MANAGER: Change version numbers only here: !!! -->
+
+ <!-- The base version of the next release (including bugfix number, e.g., x.y.z+): -->
+ <property name="version.base" value="5.0.0"/>
+
+
+ <!-- !!! RELEASE MANAGER: Don't change anything after this line! !!! -->
+
<dirname file="${ant.file.common}" property="common.dir"/>
<property name="dev-tools.dir" location="${common.dir}/../dev-tools"/>
<property name="prettify.dir" location="${common.dir}/tools/prettify"/>
@@ -48,14 +56,31 @@
</tstamp>
<property name="Name" value="Lucene"/>
-
<property name="name" value="${ant.project.name}"/>
- <property name="tests.luceneMatchVersion" value="5.0"/>
- <property name="dev.version.base" value="5.0"/>
- <property name="dev.version.suffix" value="SNAPSHOT"/>
- <property name="dev.version" value="${dev.version.base}-${dev.version.suffix}"/>
- <property name="version" value="${dev.version}"/>
- <property name="spec.version" value="${version}"/>
+
+ <!--TODO: remove once Jenkins jobs are updated:--><property name="dev.version.suffix" value="SNAPSHOT"/>
+
+ <!-- The corresponding version as oal.util.Version used for matchVersion (x.y): -->
+ <property name="version.luceneMatchVersion" value="${version.base}"/>
+ <!-- Suffix of the version, by default SNAPSHOT: -->
+ <property name="version.suffix" value="${dev.version.suffix}"/>
+ <property name="version" value="${version.base}-${version.suffix}"/>
+
+
+ <fail message="If you pass -Dversion=... to set a release version, it must match "${version.base}", optionally followed by a suffix (e.g., "-SNAPSHOT").">
+ <condition>
+ <not><matches pattern="^\Q${version.base}\E(|\-.*)$" casesensitive="true" string="${version}"/></not>
+ </condition>
+ </fail>
+
+ <fail message="Invalid version.luceneMatchVersion property: ${version.luceneMatchVersion}">
+ <condition>
+ <not><and>
+ <matches pattern="^\d+\.\d+\.\d+$" casesensitive="true" string="${version.luceneMatchVersion}"/>
+ <matches pattern="^\Q${version.luceneMatchVersion}\E(\.|\-|\b).*$" casesensitive="true" string="${version}"/>
+ </and></not>
+ </condition>
+ </fail>
<property name="year" value="2000-${current.year}"/>
@@ -118,6 +143,7 @@
<property name="tests.verbose" value="false"/>
<property name="tests.infostream" value="${tests.verbose}"/>
<property name="tests.filterstacks" value="true"/>
+ <property name="tests.luceneMatchVersion" value="${version.luceneMatchVersion}"/>
<condition property="tests.heapsize" value="768M">
<isset property="run.clover"/>
@@ -640,7 +666,7 @@
<attribute name="excludes" default="**/pom.xml,**/*.iml"/>
<attribute name="metainf.source.dir" default="${common.dir}"/>
<attribute name="implementation.title" default="org.apache.lucene"/>
- <attribute name="spec.version" default="${spec.version}"/>
+ <attribute name="spec.version" default="${version}"/>
<attribute name="manifest.file" default="${manifest.file}"/>
<element name="filesets" optional="true"/>
<element name="jarify-additional-manifest-attributes" optional="true"/>
@@ -986,7 +1012,7 @@
<sysproperty key="java.security.manager" value="org.apache.lucene.util.TestSecurityManager" />
<sysproperty key="java.security.policy" file="${common.dir}/tools/junit4/tests.policy" />
- <sysproperty key="lucene.version" value="${version}"/>
+ <sysproperty key="tests.LUCENE_VERSION" value="${version.base}"/>
<sysproperty key="jetty.testMode" value="1"/>
<sysproperty key="jetty.insecurerandom" value="1"/>
@@ -2468,7 +2494,7 @@ The following arguments can be provided
<junit4:pickseed property="pitest.seed" />
- <property name="pitest.sysprops" value="-Dlucene.version=${version},-Dtest.seed=${pitest.seed},-Djava.security.manager=org.apache.lucene.util.TestSecurityManager,-Djava.security.policy=${common.dir}/tools/junit4/tests.policy,-Djava.io.tmpdir=${tests.workDir},-Djunit4.childvm.cwd=${tests.workDir},-Djunit4.tempDir=${tests.workDir}" />
+ <property name="pitest.sysprops" value="-Dversion=${version},-Dtest.seed=${pitest.seed},-Djava.security.manager=org.apache.lucene.util.TestSecurityManager,-Djava.security.policy=${common.dir}/tools/junit4/tests.policy,-Djava.io.tmpdir=${tests.workDir},-Djunit4.childvm.cwd=${tests.workDir},-Djunit4.tempDir=${tests.workDir}" />
<pitest
classPath="pitest.classpath"
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/analysis/Analyzer.java Fri Aug 15 19:15:17 2014
@@ -72,7 +72,7 @@ import java.util.Map;
public abstract class Analyzer implements Closeable {
private final ReuseStrategy reuseStrategy;
- private Version version = Version.LUCENE_CURRENT;
+ private Version version = Version.LATEST;
// non final as it gets nulled if closed; pkg private for access by ReuseStrategy's final helper methods:
CloseableThreadLocal<Object> storedValue = new CloseableThreadLocal<>();
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoReader.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoReader.java Fri Aug 15 19:15:17 2014
@@ -30,6 +30,7 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.Version;
/**
* Lucene 4.0 implementation of {@link SegmentInfoReader}.
@@ -54,7 +55,7 @@ public class Lucene40SegmentInfoReader e
CodecUtil.checkHeader(input, Lucene40SegmentInfoFormat.CODEC_NAME,
Lucene40SegmentInfoFormat.VERSION_START,
Lucene40SegmentInfoFormat.VERSION_CURRENT);
- final String version = input.readString();
+ final Version version = Version.parse(input.readString());
final int docCount = input.readInt();
if (docCount < 0) {
throw new CorruptIndexException("invalid docCount: " + docCount + " (resource=" + input + ")");
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoWriter.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfoWriter.java Fri Aug 15 19:15:17 2014
@@ -55,7 +55,7 @@ public class Lucene40SegmentInfoWriter e
try {
CodecUtil.writeHeader(output, Lucene40SegmentInfoFormat.CODEC_NAME, Lucene40SegmentInfoFormat.VERSION_CURRENT);
// Write the Lucene version that created this segment, since 3.1
- output.writeString(si.getVersion());
+ output.writeString(si.getVersion().toString());
output.writeInt(si.getDocCount());
output.writeByte((byte) (si.getUseCompoundFile() ? SegmentInfo.YES : SegmentInfo.NO));
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene45/Lucene45DocValuesProducer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene45/Lucene45DocValuesProducer.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene45/Lucene45DocValuesProducer.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene45/Lucene45DocValuesProducer.java Fri Aug 15 19:15:17 2014
@@ -91,8 +91,8 @@ class Lucene45DocValuesProducer extends
/** expert: instantiates a new reader */
@SuppressWarnings("deprecation")
protected Lucene45DocValuesProducer(SegmentReadState state, String dataCodec, String dataExtension, String metaCodec, String metaExtension) throws IOException {
- String ver = state.segmentInfo.getVersion();
- lenientFieldInfoCheck = StringHelper.getVersionComparator().compare(ver, "4.9.0") < 0;
+ Version ver = state.segmentInfo.getVersion();
+ lenientFieldInfoCheck = Version.LUCENE_4_9_0.onOrAfter(ver);
String metaName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, metaExtension);
// read in the entries from the metadata file.
ChecksumIndexInput in = state.directory.openChecksumInput(metaName, state.context);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoReader.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoReader.java Fri Aug 15 19:15:17 2014
@@ -30,6 +30,7 @@ import org.apache.lucene.store.ChecksumI
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.Version;
/**
* Lucene 4.6 implementation of {@link SegmentInfoReader}.
@@ -52,7 +53,7 @@ public class Lucene46SegmentInfoReader e
int codecVersion = CodecUtil.checkHeader(input, Lucene46SegmentInfoFormat.CODEC_NAME,
Lucene46SegmentInfoFormat.VERSION_START,
Lucene46SegmentInfoFormat.VERSION_CURRENT);
- final String version = input.readString();
+ final Version version = Version.parse(input.readString());
final int docCount = input.readInt();
if (docCount < 0) {
throw new CorruptIndexException("invalid docCount: " + docCount + " (resource=" + input + ")");
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoWriter.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/codecs/lucene46/Lucene46SegmentInfoWriter.java Fri Aug 15 19:15:17 2014
@@ -53,7 +53,7 @@ public class Lucene46SegmentInfoWriter e
try {
CodecUtil.writeHeader(output, Lucene46SegmentInfoFormat.CODEC_NAME, Lucene46SegmentInfoFormat.VERSION_CURRENT);
// Write the Lucene version that created this segment, since 3.1
- output.writeString(si.getVersion());
+ output.writeString(si.getVersion().toString());
output.writeInt(si.getDocCount());
output.writeByte((byte) (si.getUseCompoundFile() ? SegmentInfo.YES : SegmentInfo.NO));
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java Fri Aug 15 19:15:17 2014
@@ -22,7 +22,6 @@ import java.io.IOException;
import java.io.PrintStream;
import java.text.NumberFormat;
import java.util.ArrayList;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -46,7 +45,7 @@ import org.apache.lucene.util.CommandLin
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LongBitSet;
-import org.apache.lucene.util.StringHelper;
+import org.apache.lucene.util.Version;
/**
@@ -409,21 +408,19 @@ public class CheckIndex {
}
// find the oldest and newest segment versions
- String oldest = Integer.toString(Integer.MAX_VALUE), newest = Integer.toString(Integer.MIN_VALUE);
+ Version oldest = null;
+ Version newest = null;
String oldSegs = null;
- boolean foundNonNullVersion = false;
- Comparator<String> versionComparator = StringHelper.getVersionComparator();
for (SegmentCommitInfo si : sis) {
- String version = si.info.getVersion();
+ Version version = si.info.getVersion();
if (version == null) {
// pre-3.1 segment
oldSegs = "pre-3.1";
} else {
- foundNonNullVersion = true;
- if (versionComparator.compare(version, oldest) < 0) {
+ if (oldest == null || version.onOrAfter(oldest) == false) {
oldest = version;
}
- if (versionComparator.compare(version, newest) > 0) {
+ if (newest == null || version.onOrAfter(newest)) {
newest = version;
}
}
@@ -475,14 +472,14 @@ public class CheckIndex {
userDataString = "";
}
- String versionString = null;
+ String versionString = "";
if (oldSegs != null) {
- if (foundNonNullVersion) {
+ if (newest != null) {
versionString = "versions=[" + oldSegs + " .. " + newest + "]";
} else {
versionString = "version=" + oldSegs;
}
- } else {
+ } else if (newest != null) { // implies oldest != null
versionString = oldest.equals(newest) ? ( "version=" + oldest ) : ("versions=[" + oldest + " .. " + newest + "]");
}
@@ -527,8 +524,8 @@ public class CheckIndex {
segInfoStat.name = info.info.name;
segInfoStat.docCount = info.info.getDocCount();
- final String version = info.info.getVersion();
- if (info.info.getDocCount() <= 0 && version != null && versionComparator.compare(version, "4.5") >= 0) {
+ final Version version = info.info.getVersion();
+ if (info.info.getDocCount() <= 0 && version != null && version.onOrAfter(Version.LUCENE_4_5_0)) {
throw new RuntimeException("illegal number of documents: maxDoc=" + info.info.getDocCount());
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java Fri Aug 15 19:15:17 2014
@@ -34,12 +34,12 @@ import org.apache.lucene.store.IOContext
import org.apache.lucene.store.TrackingDirectoryWrapper;
import org.apache.lucene.util.ByteBlockPool.Allocator;
import org.apache.lucene.util.ByteBlockPool.DirectTrackingAllocator;
-import org.apache.lucene.util.Constants;
import org.apache.lucene.util.Counter;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.IntBlockPool;
import org.apache.lucene.util.MutableBits;
import org.apache.lucene.util.RamUsageEstimator;
+import org.apache.lucene.util.Version;
import static org.apache.lucene.util.ByteBlockPool.BYTE_BLOCK_MASK;
import static org.apache.lucene.util.ByteBlockPool.BYTE_BLOCK_SIZE;
@@ -178,7 +178,7 @@ class DocumentsWriterPerThread {
pendingUpdates.clear();
deleteSlice = deleteQueue.newSlice();
- segmentInfo = new SegmentInfo(directoryOrig, Constants.LUCENE_MAIN_VERSION, segmentName, -1, false, codec, null);
+ segmentInfo = new SegmentInfo(directoryOrig, Version.LATEST, segmentName, -1, false, codec, null);
assert numDocsInRAM == 0;
if (INFO_VERBOSE && infoStream.isEnabled("DWPT")) {
infoStream.message("DWPT", Thread.currentThread().getName() + " init seg=" + segmentName + " delQueue=" + deleteQueue);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java Fri Aug 15 19:15:17 2014
@@ -20,9 +20,9 @@ package org.apache.lucene.index;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.CommandLineUtil;
-import org.apache.lucene.util.Constants;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.PrintStreamInfoStream;
+import org.apache.lucene.util.Version;
import java.io.File;
import java.io.IOException;
@@ -160,11 +160,11 @@ public final class IndexUpgrader {
try {
InfoStream infoStream = iwc.getInfoStream();
if (infoStream.isEnabled("IndexUpgrader")) {
- infoStream.message("IndexUpgrader", "Upgrading all pre-" + Constants.LUCENE_MAIN_VERSION + " segments of index directory '" + dir + "' to version " + Constants.LUCENE_MAIN_VERSION + "...");
+ infoStream.message("IndexUpgrader", "Upgrading all pre-" + Version.LATEST + " segments of index directory '" + dir + "' to version " + Version.LATEST + "...");
}
w.forceMerge(1);
if (infoStream.isEnabled("IndexUpgrader")) {
- infoStream.message("IndexUpgrader", "All segments upgraded to version " + Constants.LUCENE_MAIN_VERSION);
+ infoStream.message("IndexUpgrader", "All segments upgraded to version " + Version.LATEST);
}
} finally {
w.close();
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Fri Aug 15 19:15:17 2014
@@ -64,6 +64,7 @@ import org.apache.lucene.util.Constants;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.ThreadInterruptedException;
+import org.apache.lucene.util.Version;
/**
An <code>IndexWriter</code> creates and maintains an index.
@@ -883,7 +884,7 @@ public class IndexWriter implements Clos
didMessageState = true;
infoStream.message("IW", "\ndir=" + directory + "\n" +
"index=" + segString() + "\n" +
- "version=" + Constants.LUCENE_VERSION + "\n" +
+ "version=" + Version.LATEST.toString() + "\n" +
config.toString());
}
}
@@ -2569,7 +2570,7 @@ public class IndexWriter implements Clos
// abortable so that IW.close(false) is able to stop it
TrackingDirectoryWrapper trackingDir = new TrackingDirectoryWrapper(directory);
- SegmentInfo info = new SegmentInfo(directory, Constants.LUCENE_MAIN_VERSION, mergedName, -1,
+ SegmentInfo info = new SegmentInfo(directory, Version.LATEST, mergedName, -1,
false, codec, null);
SegmentMerger merger = new SegmentMerger(mergeReaders, info, infoStream, trackingDir,
@@ -3793,7 +3794,7 @@ public class IndexWriter implements Clos
// ConcurrentMergePolicy we keep deterministic segment
// names.
final String mergeSegmentName = newSegmentName();
- SegmentInfo si = new SegmentInfo(directory, Constants.LUCENE_MAIN_VERSION, mergeSegmentName, -1, false, codec, null);
+ SegmentInfo si = new SegmentInfo(directory, Version.LATEST, mergeSegmentName, -1, false, codec, null);
Map<String,String> details = new HashMap<>();
details.put("mergeMaxNumSegments", "" + merge.maxNumSegments);
details.put("mergeFactor", Integer.toString(merge.segments.size()));
@@ -3817,7 +3818,7 @@ public class IndexWriter implements Clos
private static void setDiagnostics(SegmentInfo info, String source, Map<String,String> details) {
Map<String,String> diagnostics = new HashMap<>();
diagnostics.put("source", source);
- diagnostics.put("lucene.version", Constants.LUCENE_VERSION);
+ diagnostics.put("lucene.version", Version.LATEST.toString());
diagnostics.put("os", Constants.OS_NAME);
diagnostics.put("os.arch", Constants.OS_ARCH);
diagnostics.put("os.version", Constants.OS_VERSION);
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java Fri Aug 15 19:15:17 2014
@@ -27,6 +27,9 @@ import java.util.regex.Matcher;
import org.apache.lucene.codecs.Codec;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.TrackingDirectoryWrapper;
+import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.StringHelper;
+import org.apache.lucene.util.Version;
/**
* Information about a segment such as it's name, directory, and files related
@@ -62,9 +65,9 @@ public final class SegmentInfo {
// Tracks the Lucene version this segment was created with, since 3.1. Null
// indicates an older than 3.0 index, and it's used to detect a too old index.
// The format expected is "x.y" - "2.x" for pre-3.0 indexes (or null), and
- // specific versions afterwards ("3.0", "3.1" etc.).
- // see Constants.LUCENE_MAIN_VERSION.
- private String version;
+ // specific versions afterwards ("3.0.0", "3.1.0" etc.).
+ // see o.a.l.util.Version.
+ private Version version;
void setDiagnostics(Map<String, String> diagnostics) {
this.diagnostics = diagnostics;
@@ -81,7 +84,7 @@ public final class SegmentInfo {
* <p>Note: this is public only to allow access from
* the codecs package.</p>
*/
- public SegmentInfo(Directory dir, String version, String name, int docCount,
+ public SegmentInfo(Directory dir, Version version, String name, int docCount,
boolean isCompoundFile, Codec codec, Map<String,String> diagnostics) {
assert !(dir instanceof TrackingDirectoryWrapper);
this.dir = dir;
@@ -203,23 +206,9 @@ public final class SegmentInfo {
return dir.hashCode() + name.hashCode();
}
- /**
- * Used by DefaultSegmentInfosReader to upgrade a 3.0 segment to record its
- * version is "3.0". This method can be removed when we're not required to
- * support 3x indexes anymore, e.g. in 5.0.
- * <p>
- * <b>NOTE:</b> this method is used for internal purposes only - you should
- * not modify the version of a SegmentInfo, or it may result in unexpected
- * exceptions thrown when you attempt to open the index.
- *
- * @lucene.internal
+ /** Returns the version of the code which wrote the segment.
*/
- public void setVersion(String version) {
- this.version = version;
- }
-
- /** Returns the version of the code which wrote the segment. */
- public String getVersion() {
+ public Version getVersion() {
return version;
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java Fri Aug 15 19:15:17 2014
@@ -200,8 +200,8 @@ public final class SegmentReader extends
return;
}
- String ver = si.info.getVersion();
- if (ver != null && StringHelper.getVersionComparator().compare(ver, "4.9.0") >= 0) {
+ Version ver = si.info.getVersion();
+ if (ver != null && ver.onOrAfter(Version.LUCENE_4_9_0)) {
DocValuesProducer baseProducer = null;
for (FieldInfo fi : fieldInfos) {
if (!fi.hasDocValues()) continue;
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java Fri Aug 15 19:15:17 2014
@@ -17,7 +17,7 @@ package org.apache.lucene.index;
* limitations under the License.
*/
-import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.Version;
import java.io.IOException;
import java.util.ArrayList;
@@ -60,12 +60,12 @@ public class UpgradeIndexMergePolicy ext
}
/** Returns if the given segment should be upgraded. The default implementation
- * will return {@code !Constants.LUCENE_MAIN_VERSION.equals(si.getVersion())},
+ * will return {@code !Version.LATEST.equals(si.getVersion())},
* so all segments created with a different version number than this Lucene version will
* get upgraded.
*/
protected boolean shouldUpgradeSegment(SegmentCommitInfo si) {
- return !Constants.LUCENE_MAIN_VERSION.equals(si.info.getVersion());
+ return !Version.LATEST.equals(si.info.getVersion());
}
@Override
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/NRTCachingDirectory.java Fri Aug 15 19:15:17 2014
@@ -52,7 +52,7 @@ import org.apache.lucene.util.IOUtils;
* <pre class="prettyprint">
* Directory fsDir = FSDirectory.open(new File("/path/to/index"));
* NRTCachingDirectory cachedFSDir = new NRTCachingDirectory(fsDir, 5.0, 60.0);
- * IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_5_0, analyzer);
+ * IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_5_0_0, analyzer);
* IndexWriter writer = new IndexWriter(cachedFSDir, conf);
* </pre>
*
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Constants.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Constants.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Constants.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Constants.java Fri Aug 15 19:15:17 2014
@@ -19,7 +19,6 @@ package org.apache.lucene.util;
import java.lang.reflect.Field;
import java.util.Collections;
-import org.apache.lucene.LucenePackage;
/**
* Some useful constants.
@@ -93,45 +92,18 @@ public final class Constants {
JRE_IS_MINIMUM_JAVA8 = v8;
}
- // this method prevents inlining the final version constant in compiled classes,
- // see: http://www.javaworld.com/community/node/3400
- private static String ident(final String s) {
- return s.toString();
- }
-
- // We should never change index format with minor versions, so it should always be x.y or x.y.0.z for alpha/beta versions!
- /**
- * This is the internal Lucene version, recorded into each segment.
- * NOTE: we track per-segment version as a String with the {@code "X.Y"} format
- * (no minor version), e.g. {@code "4.0", "3.1", "3.0"}.
- * <p>Alpha and Beta versions will have numbers like {@code "X.Y.0.Z"},
- * anything else is not allowed. This is done to prevent people from
- * using indexes created with ALPHA/BETA versions with the released version.
- */
- public static final String LUCENE_MAIN_VERSION = ident("5.0");
-
/**
- * This is the Lucene version for display purposes.
+ * This is the internal Lucene version, including bugfix versions, recorded into each segment.
+ * @deprecated Use {@link Version#LATEST}
*/
- public static final String LUCENE_VERSION;
- static {
- Package pkg = LucenePackage.get();
- String v = (pkg == null) ? null : pkg.getImplementationVersion();
- if (v == null) {
- v = mainVersionWithoutAlphaBeta() + "-SNAPSHOT";
- }
- LUCENE_VERSION = ident(v);
- }
+ @Deprecated
+ public static final String LUCENE_MAIN_VERSION = Version.LATEST.toString();
/**
- * Returns a LUCENE_MAIN_VERSION without any ALPHA/BETA qualifier
- * Used by test only!
+ * Don't use this constant because the name is not self-describing!
+ * @deprecated Use {@link Version#LATEST}
*/
- static String mainVersionWithoutAlphaBeta() {
- final String parts[] = LUCENE_MAIN_VERSION.split("\\.");
- if (parts.length == 4 && "0".equals(parts[2])) {
- return parts[0] + "." + parts[1];
- }
- return LUCENE_MAIN_VERSION;
- }
+ @Deprecated
+ public static final String LUCENE_VERSION = Version.LATEST.toString();
+
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/StringHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/StringHelper.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/StringHelper.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/StringHelper.java Fri Aug 15 19:15:17 2014
@@ -66,45 +66,6 @@ public abstract class StringHelper {
private StringHelper() {
}
-
- /**
- * @return a Comparator over versioned strings such as X.YY.Z
- * @lucene.internal
- */
- public static Comparator<String> getVersionComparator() {
- return versionComparator;
- }
-
- private static Comparator<String> versionComparator = new Comparator<String>() {
- @Override
- public int compare(String a, String b) {
- StringTokenizer aTokens = new StringTokenizer(a, ".");
- StringTokenizer bTokens = new StringTokenizer(b, ".");
-
- while (aTokens.hasMoreTokens()) {
- int aToken = Integer.parseInt(aTokens.nextToken());
- if (bTokens.hasMoreTokens()) {
- int bToken = Integer.parseInt(bTokens.nextToken());
- if (aToken != bToken) {
- return aToken < bToken ? -1 : 1;
- }
- } else {
- // a has some extra trailing tokens. if these are all zeroes, thats ok.
- if (aToken != 0) {
- return 1;
- }
- }
- }
-
- // b has some extra trailing tokens. if these are all zeroes, thats ok.
- while (bTokens.hasMoreTokens()) {
- if (Integer.parseInt(bTokens.nextToken()) != 0)
- return -1;
- }
-
- return 0;
- }
- };
public static boolean equals(String s1, String s2) {
if (s1 == null) {
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/Version.java Fri Aug 15 19:15:17 2014
@@ -29,95 +29,158 @@ import java.util.Locale;
* change the version at search-time, but instead also adjust
* your indexing code to match, and re-index.
*/
-// remove me when java 5 is no longer supported
-// this is a workaround for a JDK bug that wrongly emits a warning.
-@SuppressWarnings("dep-ann")
-public enum Version {
+public final class Version {
+
+ /**
+ * Match settings and bugs in Lucene's 4.0.0-ALPHA release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_0_0_ALPHA = new Version(4, 0, 0, 1);
+
/**
- * Match settings and bugs in Lucene's 4.0 release.
+ * Match settings and bugs in Lucene's 4.0.0-BETA release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_0,
+ public static final Version LUCENE_4_0_0_BETA = new Version(4, 0, 0, 2);
+
+ /**
+ * Match settings and bugs in Lucene's 4.0.0 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_0_0 = new Version(4, 0, 0);
/**
- * Match settings and bugs in Lucene's 4.1 release.
+ * Match settings and bugs in Lucene's 4.1.0 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_1_0 = new Version(4, 1, 0);
+
+ /**
+ * Match settings and bugs in Lucene's 4.2.0 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_2_0 = new Version(4, 2, 0);
+
+ /**
+ * Match settings and bugs in Lucene's 4.2.1 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_2_1 = new Version(4, 2, 1);
+
+ /**
+ * Match settings and bugs in Lucene's 4.3.0 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_3_0 = new Version(4, 3, 0);
+
+ /**
+ * Match settings and bugs in Lucene's 4.3.1 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_1,
+ public static final Version LUCENE_4_3_1 = new Version(4, 3, 1);
/**
- * Match settings and bugs in Lucene's 4.2 release.
+ * Match settings and bugs in Lucene's 4.4.0 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_2,
+ public static final Version LUCENE_4_4_0 = new Version(4, 4, 0);
/**
- * Match settings and bugs in Lucene's 4.3 release.
+ * Match settings and bugs in Lucene's 4.5.0 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_3,
+ public static final Version LUCENE_4_5_0 = new Version(4, 5, 0);
/**
- * Match settings and bugs in Lucene's 4.4 release.
+ * Match settings and bugs in Lucene's 4.5.1 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_4,
+ public static final Version LUCENE_4_5_1 = new Version(4, 5, 1);
/**
- * Match settings and bugs in Lucene's 4.5 release.
+ * Match settings and bugs in Lucene's 4.6.0 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_5,
+ public static final Version LUCENE_4_6_0 = new Version(4, 6, 0);
/**
- * Match settings and bugs in Lucene's 4.6 release.
+ * Match settings and bugs in Lucene's 4.6.1 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_6,
+ public static final Version LUCENE_4_6_1 = new Version(4, 6, 1);
/**
- * Match settings and bugs in Lucene's 4.7 release.
+ * Match settings and bugs in Lucene's 4.7.0 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_7_0 = new Version(4, 7, 0);
+
+ /**
+ * Match settings and bugs in Lucene's 4.7.1 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_7,
+ public static final Version LUCENE_4_7_1 = new Version(4, 7, 1);
+
+ /**
+ * Match settings and bugs in Lucene's 4.7.2 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_7_2 = new Version(4, 7, 2);
/**
- * Match settings and bugs in Lucene's 4.8 release.
+ * Match settings and bugs in Lucene's 4.8.0 release.
+ * @deprecated (5.0) Use latest
+ */
+ @Deprecated
+ public static final Version LUCENE_4_8_0 = new Version(4, 8, 0);
+
+ /**
+ * Match settings and bugs in Lucene's 4.8.1 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_8,
+ public static final Version LUCENE_4_8_1 = new Version(4, 8, 1);
/**
- * Match settings and bugs in Lucene's 4.9 release.
+ * Match settings and bugs in Lucene's 4.9.0 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_9,
+ public static final Version LUCENE_4_9_0 = new Version(4, 9, 0);
/**
* Match settings and bugs in Lucene's 4.10 release.
* @deprecated (5.0) Use latest
*/
@Deprecated
- LUCENE_4_10,
+ public static final Version LUCENE_4_10_0 = new Version(4, 10, 0);
/** Match settings and bugs in Lucene's 5.0 release.
* <p>
* Use this to get the latest & greatest settings, bug
* fixes, etc, for Lucene.
*/
- LUCENE_5_0,
-
- /* Add new constants for later versions **here** to respect order! */
+ public static final Version LUCENE_5_0_0 = new Version(5, 0, 0);
+
+ // To add a new version:
+ // * Only add above this comment
+ // * If the new version is the newest, change LATEST below and deprecate the previous LATEST
/**
* <p><b>WARNING</b>: if you use this setting, and then
@@ -132,21 +195,158 @@ public enum Version {
* Additionally, you may need to <b>re-test your entire
* application</b> to ensure it behaves as expected, as
* some defaults may have changed and may break functionality
- * in your application.
- * @deprecated Use an actual version instead.
+ * in your application.
+ */
+ public static final Version LATEST = LUCENE_5_0_0;
+
+ /**
+ * Constant for backwards compatibility.
+ * @deprecated Use {@link #LATEST}
*/
@Deprecated
- LUCENE_CURRENT;
+ public static final Version LUCENE_CURRENT = LATEST;
- public boolean onOrAfter(Version other) {
- return compareTo(other) >= 0;
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_0_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_0 = LUCENE_4_0_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_1_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_1 = LUCENE_4_1_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_2_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_2 = LUCENE_4_2_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_3_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_3 = LUCENE_4_3_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_4_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_4 = LUCENE_4_4_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_5_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_5 = LUCENE_4_5_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_6_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_6 = LUCENE_4_6_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_7_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_7 = LUCENE_4_7_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_8_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_8 = LUCENE_4_8_0;
+
+ /** @deprecated Bad naming of constant; use {@link #LUCENE_4_9_0} instead. */
+ @Deprecated
+ public static final Version LUCENE_4_9 = LUCENE_4_9_0;
+
+
+ /**
+ * Parse a version number of the form {@code "major.minor.bugfix.prerelease"}.
+ *
+ * Part {@code ".bugfix"} and part {@code ".prerelease"} are optional.
+ * Note that this is forwards compatible: the parsed version does not have to exist as
+ * a constant.
+ */
+ public static Version parse(String version) {
+ String[] pieces = version.split("\\.");
+ if (pieces.length < 2 || pieces.length > 4) {
+ throw new IllegalArgumentException("Version is not in form major.minor.bugfix(.prerelease): " + version);
+ }
+
+ int major = Integer.parseInt(pieces[0]);
+ int minor = Integer.parseInt(pieces[1]);
+ int bugfix = 0;
+ int prerelease = 0;
+ if (pieces.length > 2) {
+ bugfix = Integer.parseInt(pieces[2]);
+ }
+ if (pieces.length > 3) {
+ prerelease = Integer.parseInt(pieces[3]);
+ if (prerelease == 0) {
+ throw new IllegalArgumentException("Invalid value " + prerelease + " for prelrease of version " + version +", should be 1 or 2");
+ }
+ }
+
+ return new Version(major, minor, bugfix, prerelease);
}
-
+
+ /**
+ * Parse the given version number as a constant or dot based version.
+ * <p>This method allows to use {@code "LUCENE_X_Y"} constant names,
+ * or version numbers in the format {@code "x.y.z"}.
+ */
public static Version parseLeniently(String version) {
+ if (version.equals("LATEST") || version.equals("LUCENE_CURRENT")) return LATEST;
final String parsedMatchVersion = version
.toUpperCase(Locale.ROOT)
- .replaceFirst("^(\\d+)\\.(\\d+)$", "LUCENE_$1_$2")
- .replaceFirst("^LUCENE_(\\d)(\\d)$", "LUCENE_$1_$2");
- return Version.valueOf(parsedMatchVersion);
+ .replaceFirst("^LUCENE_(\\d+)_(\\d+)_(\\d+)$", "$1.$2.$3")
+ .replaceFirst("^LUCENE_(\\d+)_(\\d+)$", "$1.$2.0")
+ .replaceFirst("^LUCENE_(\\d)(\\d)$", "$1.$2.0");
+ return parse(parsedMatchVersion);
+ }
+
+ // stores the version pieces, with most significant pieces in high bits
+ // ie: | 1 byte | 1 byte | 1 byte | 2 bits |
+ // major minor bugfix prerelease
+ private final int encodedValue;
+
+ private Version(int major, int minor, int bugfix) {
+ this(major, minor, bugfix, 0);
+ }
+
+ private Version(int major, int minor, int bugfix, int prerelease) {
+ if (major > 5 || major < 4) {
+ throw new IllegalArgumentException("Lucene 5.x only supports 5.x and 4.x versions");
+ }
+ if (minor > 255 | minor < 0) {
+ throw new IllegalArgumentException("Illegal minor version: " + minor);
+ }
+ if (bugfix > 255 | bugfix < 0) {
+ throw new IllegalArgumentException("Illegal bugfix version: " + bugfix);
+ }
+ if (prerelease > 2 | prerelease < 0) {
+ throw new IllegalArgumentException("Illegal prerelease version: " + prerelease);
+ }
+ if (prerelease != 0 && (minor != 0 || bugfix != 0)) {
+ throw new IllegalArgumentException("Prerelease version only supported with major release");
+ }
+
+ if (prerelease == 0) {
+ // final release should sort after alpha/beta
+ prerelease = 3;
+ }
+
+ encodedValue = major << 18 | minor << 10 | bugfix << 2 | prerelease;
+ }
+
+ /**
+ * Returns true if this version is the same or after the version from the argument.
+ */
+ public boolean onOrAfter(Version other) {
+ return encodedValue >= other.encodedValue;
+ }
+
+ @Override
+ public String toString() {
+ int major = (encodedValue >>> 18) & 0xFF;
+ int minor = (encodedValue >>> 10) & 0xFF;
+ int bugfix = (encodedValue >>> 2) & 0xFF;
+ int prerelease = encodedValue & 0x3;
+ if (prerelease == 3) { // ie unencoded value is 0
+ return "" + major + "." + minor + "." + bugfix;
+ }
+ return "" + major + "." + minor + "." + bugfix + "." + prerelease;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return o != null && o instanceof Version && ((Version)o).encodedValue == encodedValue;
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Fri Aug 15 19:15:17 2014
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -59,14 +58,13 @@ import org.apache.lucene.store.RAMDirect
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.Constants;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.NumericUtils;
-import org.apache.lucene.util.StringHelper;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.Version;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -846,23 +844,21 @@ public class TestBackwardsCompatibility
riw.close();
DirectoryReader ir = DirectoryReader.open(currentDir);
SegmentReader air = (SegmentReader)ir.leaves().get(0).reader();
- String currentVersion = air.getSegmentInfo().info.getVersion();
+ Version currentVersion = air.getSegmentInfo().info.getVersion();
assertNotNull(currentVersion); // only 3.0 segments can have a null version
ir.close();
currentDir.close();
- Comparator<String> comparator = StringHelper.getVersionComparator();
-
// now check all the old indexes, their version should be < the current version
for (String name : oldNames) {
Directory dir = oldIndexDirs.get(name);
DirectoryReader r = DirectoryReader.open(dir);
for (AtomicReaderContext context : r.leaves()) {
air = (SegmentReader) context.reader();
- String oldVersion = air.getSegmentInfo().info.getVersion();
+ Version oldVersion = air.getSegmentInfo().info.getVersion();
assertNotNull(oldVersion); // only 3.0 segments can have a null version
- assertTrue("current Constants.LUCENE_MAIN_VERSION is <= an old index: did you forget to bump it?!",
- comparator.compare(oldVersion, currentVersion) < 0);
+ assertTrue("current Version.LATEST is <= an old index: did you forget to bump it?!",
+ currentVersion.onOrAfter(oldVersion));
}
r.close();
}
@@ -920,7 +916,7 @@ public class TestBackwardsCompatibility
System.out.println("checkAllSegmentsUpgraded: " + infos);
}
for (SegmentCommitInfo si : infos) {
- assertEquals(Constants.LUCENE_MAIN_VERSION, si.info.getVersion());
+ assertEquals(Version.LATEST, si.info.getVersion());
}
return infos.size();
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java Fri Aug 15 19:15:17 2014
@@ -43,11 +43,11 @@ import org.apache.lucene.search.ScoreDoc
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.Constants;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.Version;
import org.junit.BeforeClass;
// TODO: test multiple codecs here?
@@ -252,7 +252,7 @@ public class TestCodecs extends LuceneTe
final Directory dir = newDirectory();
this.write(fieldInfos, dir, fields);
Codec codec = Codec.getDefault();
- final SegmentInfo si = new SegmentInfo(dir, Constants.LUCENE_MAIN_VERSION, SEGMENT, 10000, false, codec, null);
+ final SegmentInfo si = new SegmentInfo(dir, Version.LATEST, SEGMENT, 10000, false, codec, null);
final FieldsProducer reader = codec.postingsFormat().fieldsProducer(new SegmentReadState(dir, si, fieldInfos, newIOContext(random())));
@@ -309,7 +309,7 @@ public class TestCodecs extends LuceneTe
this.write(fieldInfos, dir, fields);
Codec codec = Codec.getDefault();
- final SegmentInfo si = new SegmentInfo(dir, Constants.LUCENE_MAIN_VERSION, SEGMENT, 10000, false, codec, null);
+ final SegmentInfo si = new SegmentInfo(dir, Version.LATEST, SEGMENT, 10000, false, codec, null);
if (VERBOSE) {
System.out.println("TEST: now read postings");
@@ -804,7 +804,7 @@ public class TestCodecs extends LuceneTe
private void write(final FieldInfos fieldInfos, final Directory dir, final FieldData[] fields) throws Throwable {
final Codec codec = Codec.getDefault();
- final SegmentInfo si = new SegmentInfo(dir, Constants.LUCENE_MAIN_VERSION, SEGMENT, 10000, false, codec, null);
+ final SegmentInfo si = new SegmentInfo(dir, Version.LATEST, SEGMENT, 10000, false, codec, null);
final SegmentWriteState state = new SegmentWriteState(InfoStream.getDefault(), dir, si, fieldInfos, null, newIOContext(random()));
Arrays.sort(fields);
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDoc.java?rev=1618263&r1=1618262&r2=1618263&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDoc.java Fri Aug 15 19:15:17 2014
@@ -41,9 +41,9 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.store.TrackingDirectoryWrapper;
-import org.apache.lucene.util.Constants;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.Version;
/** JUnit adaptation of an older test case DocTest. */
@@ -217,7 +217,7 @@ public class TestDoc extends LuceneTestC
final Codec codec = Codec.getDefault();
TrackingDirectoryWrapper trackingDir = new TrackingDirectoryWrapper(si1.info.dir);
- final SegmentInfo si = new SegmentInfo(si1.info.dir, Constants.LUCENE_MAIN_VERSION, merged, -1, false, codec, null);
+ final SegmentInfo si = new SegmentInfo(si1.info.dir, Version.LATEST, merged, -1, false, codec, null);
SegmentMerger merger = new SegmentMerger(Arrays.<AtomicReader>asList(r1, r2),
si, InfoStream.getDefault(), trackingDir,
@@ -226,7 +226,7 @@ public class TestDoc extends LuceneTestC
MergeState mergeState = merger.merge();
r1.close();
r2.close();
- final SegmentInfo info = new SegmentInfo(si1.info.dir, Constants.LUCENE_MAIN_VERSION, merged,
+ final SegmentInfo info = new SegmentInfo(si1.info.dir, Version.LATEST, merged,
si1.info.getDocCount() + si2.info.getDocCount(),
false, codec, null);
info.setFiles(new HashSet<>(trackingDir.getCreatedFiles()));