You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2013/05/22 17:51:12 UTC
svn commit: r1485259 [1/5] - in /lucene/dev/branches/lucene4956: ./
dev-tools/ dev-tools/idea/.idea/ dev-tools/idea/.idea/libraries/
dev-tools/idea/lucene/replicator/ dev-tools/maven/ dev-tools/maven/lucene/
dev-tools/maven/lucene/replicator/ dev-tools...
Author: sarowe
Date: Wed May 22 15:51:08 2013
New Revision: 1485259
URL: http://svn.apache.org/r1485259
Log:
Merged trunk r1479228 through r1485254
Added:
lucene/dev/branches/lucene4956/dev-tools/idea/lucene/replicator/
- copied from r1485254, lucene/dev/trunk/dev-tools/idea/lucene/replicator/
lucene/dev/branches/lucene4956/dev-tools/maven/lucene/replicator/
- copied from r1485254, lucene/dev/trunk/dev-tools/maven/lucene/replicator/
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/index/TestTryDelete.java
- copied unchanged from r1485254, lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestTryDelete.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/range/RangeFacetsAccumulatorWrapper.java
- copied unchanged from r1485254, lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/range/RangeFacetsAccumulatorWrapper.java
lucene/dev/branches/lucene4956/lucene/licenses/httpclient-4.2.3.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/httpclient-4.2.3.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/httpclient-LICENSE-ASL.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/httpclient-LICENSE-ASL.txt
lucene/dev/branches/lucene4956/lucene/licenses/httpclient-NOTICE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/httpclient-NOTICE.txt
lucene/dev/branches/lucene4956/lucene/licenses/httpcore-4.2.2.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/httpcore-4.2.2.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/httpcore-LICENSE-ASL.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/httpcore-LICENSE-ASL.txt
lucene/dev/branches/lucene4956/lucene/licenses/httpcore-NOTICE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/httpcore-NOTICE.txt
lucene/dev/branches/lucene4956/lucene/licenses/javax.servlet-3.0.0.v201112011016.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/javax.servlet-3.0.0.v201112011016.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/javax.servlet-LICENSE-CDDL.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/javax.servlet-LICENSE-CDDL.txt
lucene/dev/branches/lucene4956/lucene/licenses/javax.servlet-NOTICE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/javax.servlet-NOTICE.txt
lucene/dev/branches/lucene4956/lucene/licenses/jcl-over-slf4j-1.6.6.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jcl-over-slf4j-1.6.6.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/jcl-over-slf4j-LICENSE-BSD_LIKE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jcl-over-slf4j-LICENSE-BSD_LIKE.txt
lucene/dev/branches/lucene4956/lucene/licenses/jcl-over-slf4j-NOTICE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jcl-over-slf4j-NOTICE.txt
lucene/dev/branches/lucene4956/lucene/licenses/jetty-LICENSE-ASL.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-LICENSE-ASL.txt
lucene/dev/branches/lucene4956/lucene/licenses/jetty-NOTICE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-NOTICE.txt
lucene/dev/branches/lucene4956/lucene/licenses/jetty-continuation-8.1.10.v20130312.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-continuation-8.1.10.v20130312.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/jetty-http-8.1.10.v20130312.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-http-8.1.10.v20130312.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/jetty-io-8.1.10.v20130312.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-io-8.1.10.v20130312.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/jetty-server-8.1.10.v20130312.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-server-8.1.10.v20130312.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/jetty-servlet-8.1.10.v20130312.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-servlet-8.1.10.v20130312.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/jetty-util-8.1.10.v20130312.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/jetty-util-8.1.10.v20130312.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/junit4-ant-2.0.10.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/junit4-ant-2.0.10.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/randomizedtesting-runner-2.0.10.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/randomizedtesting-runner-2.0.10.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/slf4j-LICENSE-BSD_LIKE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/slf4j-LICENSE-BSD_LIKE.txt
lucene/dev/branches/lucene4956/lucene/licenses/slf4j-NOTICE.txt
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/slf4j-NOTICE.txt
lucene/dev/branches/lucene4956/lucene/licenses/slf4j-api-1.6.6.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/lucene/licenses/slf4j-api-1.6.6.jar.sha1
lucene/dev/branches/lucene4956/lucene/replicator/ (props changed)
- copied from r1485254, lucene/dev/trunk/lucene/replicator/
lucene/dev/branches/lucene4956/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleDelegate.java
- copied unchanged from r1485254, lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleDelegate.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/search/EarlyTerminatingCollector.java
- copied unchanged from r1485254, lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/EarlyTerminatingCollector.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/search/EarlyTerminatingCollectorException.java
- copied unchanged from r1485254, lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/EarlyTerminatingCollectorException.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java
- copied unchanged from r1485254, lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/MaxScoreQParser.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/search/MaxScoreQParserPlugin.java
- copied unchanged from r1485254, lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/MaxScoreQParserPlugin.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
- copied unchanged from r1485254, lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java
- copied unchanged from r1485254, lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestMaxScoreQueryParser.java
lucene/dev/branches/lucene4956/solr/example/cloud-scripts/log4j.properties
- copied unchanged from r1485254, lucene/dev/trunk/solr/example/cloud-scripts/log4j.properties
lucene/dev/branches/lucene4956/solr/licenses/junit4-ant-2.0.10.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/solr/licenses/junit4-ant-2.0.10.jar.sha1
lucene/dev/branches/lucene4956/solr/licenses/randomizedtesting-runner-2.0.10.jar.sha1
- copied unchanged from r1485254, lucene/dev/trunk/solr/licenses/randomizedtesting-runner-2.0.10.jar.sha1
Removed:
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/position/
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/position/
lucene/dev/branches/lucene4956/lucene/licenses/junit4-ant-2.0.9.jar.sha1
lucene/dev/branches/lucene4956/lucene/licenses/randomizedtesting-runner-2.0.9.jar.sha1
lucene/dev/branches/lucene4956/solr/licenses/junit4-ant-2.0.9.jar.sha1
lucene/dev/branches/lucene4956/solr/licenses/randomizedtesting-runner-2.0.9.jar.sha1
Modified:
lucene/dev/branches/lucene4956/ (props changed)
lucene/dev/branches/lucene4956/build.xml
lucene/dev/branches/lucene4956/dev-tools/ (props changed)
lucene/dev/branches/lucene4956/dev-tools/idea/.idea/ant.xml
lucene/dev/branches/lucene4956/dev-tools/idea/.idea/libraries/JUnit.xml
lucene/dev/branches/lucene4956/dev-tools/idea/.idea/modules.xml
lucene/dev/branches/lucene4956/dev-tools/idea/.idea/workspace.xml
lucene/dev/branches/lucene4956/dev-tools/maven/lucene/pom.xml.template
lucene/dev/branches/lucene4956/dev-tools/maven/pom.xml.template
lucene/dev/branches/lucene4956/dev-tools/scripts/buildAndPushRelease.py
lucene/dev/branches/lucene4956/dev-tools/scripts/checkJavadocLinks.py
lucene/dev/branches/lucene4956/dev-tools/scripts/poll-mirrors.pl
lucene/dev/branches/lucene4956/dev-tools/scripts/smokeTestRelease.py
lucene/dev/branches/lucene4956/lucene/ (props changed)
lucene/dev/branches/lucene4956/lucene/BUILD.txt (props changed)
lucene/dev/branches/lucene4956/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/lucene4956/lucene/LICENSE.txt (props changed)
lucene/dev/branches/lucene4956/lucene/MIGRATE.txt (props changed)
lucene/dev/branches/lucene4956/lucene/NOTICE.txt (contents, props changed)
lucene/dev/branches/lucene4956/lucene/analysis/ (props changed)
lucene/dev/branches/lucene4956/lucene/analysis/common/ (props changed)
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternKeywordMarkerFilter.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/resources/META-INF/services/org.apache.lucene.analysis.util.TokenFilterFactory
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilterTest.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerTest.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/ngram/TestNGramFilters.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymFilterFactory.java
lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/BaseTokenStreamFactoryTestCase.java
lucene/dev/branches/lucene4956/lucene/analysis/phonetic/src/java/org/apache/lucene/analysis/phonetic/BeiderMorseFilter.java
lucene/dev/branches/lucene4956/lucene/analysis/phonetic/src/test/org/apache/lucene/analysis/phonetic/TestBeiderMorseFilter.java
lucene/dev/branches/lucene4956/lucene/backwards/ (props changed)
lucene/dev/branches/lucene4956/lucene/benchmark/ (props changed)
lucene/dev/branches/lucene4956/lucene/build.xml (contents, props changed)
lucene/dev/branches/lucene4956/lucene/classification/ (props changed)
lucene/dev/branches/lucene4956/lucene/classification/src/test/org/apache/lucene/classification/SimpleNaiveBayesClassifierTest.java
lucene/dev/branches/lucene4956/lucene/codecs/ (props changed)
lucene/dev/branches/lucene4956/lucene/common-build.xml (contents, props changed)
lucene/dev/branches/lucene4956/lucene/core/ (props changed)
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/DocInverterPerField.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/DocumentsWriter.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/IndexFileNames.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/PersistentSnapshotDeletionPolicy.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/search/LiveFieldValues.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/util/BytesRef.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/util/CharsRef.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/util/IntsRef.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/util/LongsRef.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/util/Sorter.java
lucene/dev/branches/lucene4956/lucene/core/src/java/org/apache/lucene/util/TimSorter.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnJRECrash.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/index/TestPersistentSnapshotDeletionPolicy.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/search/TestLiveFieldValues.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/search/TestPhraseQuery.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/store/TestMockDirectoryWrapper.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/util/TestMaxFailuresRule.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/util/TestTimSorter.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
lucene/dev/branches/lucene4956/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java
lucene/dev/branches/lucene4956/lucene/demo/ (props changed)
lucene/dev/branches/lucene4956/lucene/facet/ (props changed)
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/associations/MultiAssociationsFacetsAggregator.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/range/RangeAccumulator.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/search/DrillDownQuery.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/search/DrillSideways.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/search/DrillSidewaysCollector.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/search/DrillSidewaysScorer.java
lucene/dev/branches/lucene4956/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsAccumulator.java
lucene/dev/branches/lucene4956/lucene/facet/src/test/org/apache/lucene/facet/range/TestRangeAccumulator.java
lucene/dev/branches/lucene4956/lucene/grouping/ (props changed)
lucene/dev/branches/lucene4956/lucene/highlighter/ (props changed)
lucene/dev/branches/lucene4956/lucene/ivy-settings.xml (props changed)
lucene/dev/branches/lucene4956/lucene/join/ (props changed)
lucene/dev/branches/lucene4956/lucene/licenses/ (props changed)
lucene/dev/branches/lucene4956/lucene/memory/ (props changed)
lucene/dev/branches/lucene4956/lucene/misc/ (props changed)
lucene/dev/branches/lucene4956/lucene/module-build.xml (contents, props changed)
lucene/dev/branches/lucene4956/lucene/queries/ (props changed)
lucene/dev/branches/lucene4956/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java
lucene/dev/branches/lucene4956/lucene/queryparser/ (props changed)
lucene/dev/branches/lucene4956/lucene/queryparser/src/java/org/apache/lucene/queryparser/analyzing/AnalyzingQueryParser.java
lucene/dev/branches/lucene4956/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java
lucene/dev/branches/lucene4956/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/CommonQueryParserConfiguration.java
lucene/dev/branches/lucene4956/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java
lucene/dev/branches/lucene4956/lucene/queryparser/src/test/org/apache/lucene/queryparser/analyzing/TestAnalyzingQueryParser.java
lucene/dev/branches/lucene4956/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java
lucene/dev/branches/lucene4956/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java
lucene/dev/branches/lucene4956/lucene/replicator/lib/ (props changed)
lucene/dev/branches/lucene4956/lucene/sandbox/ (props changed)
lucene/dev/branches/lucene4956/lucene/site/ (props changed)
lucene/dev/branches/lucene4956/lucene/spatial/ (props changed)
lucene/dev/branches/lucene4956/lucene/suggest/ (props changed)
lucene/dev/branches/lucene4956/lucene/test-framework/ (props changed)
lucene/dev/branches/lucene4956/lucene/test-framework/ivy.xml
lucene/dev/branches/lucene4956/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java
lucene/dev/branches/lucene4956/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
lucene/dev/branches/lucene4956/lucene/test-framework/src/java/org/apache/lucene/store/MockIndexOutputWrapper.java
lucene/dev/branches/lucene4956/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
lucene/dev/branches/lucene4956/lucene/tools/ (props changed)
lucene/dev/branches/lucene4956/lucene/tools/junit4/tests.policy
lucene/dev/branches/lucene4956/solr/ (props changed)
lucene/dev/branches/lucene4956/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/lucene4956/solr/NOTICE.txt (contents, props changed)
lucene/dev/branches/lucene4956/solr/build.xml (contents, props changed)
lucene/dev/branches/lucene4956/solr/cloud-dev/ (props changed)
lucene/dev/branches/lucene4956/solr/common-build.xml (props changed)
lucene/dev/branches/lucene4956/solr/contrib/ (props changed)
lucene/dev/branches/lucene4956/solr/contrib/velocity/src/test-files/velocity/solr/collection1/conf/velocity/numFound.vm (props changed)
lucene/dev/branches/lucene4956/solr/core/ (props changed)
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/ConfigSolrXmlOld.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/CoreContainer.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/SolrConfig.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/SolrCoreDiscoverer.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/core/ZkContainer.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/handler/component/SpellCheckComponent.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/search/QParserPlugin.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/spelling/SpellCheckCollator.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/update/SplitIndexCommand.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/update/UpdateLog.java
lucene/dev/branches/lucene4956/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
lucene/dev/branches/lucene4956/solr/core/src/test-files/log4j.properties
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/request/TestFaceting.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java
lucene/dev/branches/lucene4956/solr/core/src/test/org/apache/solr/update/processor/RegexBoostProcessorTest.java
lucene/dev/branches/lucene4956/solr/example/ (props changed)
lucene/dev/branches/lucene4956/solr/example/cloud-scripts/zkcli.bat
lucene/dev/branches/lucene4956/solr/example/cloud-scripts/zkcli.sh
lucene/dev/branches/lucene4956/solr/example/example-DIH/solr/rss/conf/rss-data-config.xml
lucene/dev/branches/lucene4956/solr/licenses/ (props changed)
lucene/dev/branches/lucene4956/solr/site/ (props changed)
lucene/dev/branches/lucene4956/solr/solrj/ (props changed)
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/common/cloud/HashBasedRouter.java
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/common/params/SpellingParams.java
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java
lucene/dev/branches/lucene4956/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
lucene/dev/branches/lucene4956/solr/solrj/src/test-files/solrj/log4j.properties
lucene/dev/branches/lucene4956/solr/solrj/src/test/org/apache/solr/common/util/NamedListTest.java
lucene/dev/branches/lucene4956/solr/test-framework/ (props changed)
lucene/dev/branches/lucene4956/solr/test-framework/ivy.xml
lucene/dev/branches/lucene4956/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
lucene/dev/branches/lucene4956/solr/webapp/ (props changed)
Modified: lucene/dev/branches/lucene4956/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/build.xml?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/build.xml (original)
+++ lucene/dev/branches/lucene4956/build.xml Wed May 22 15:51:08 2013
@@ -268,6 +268,7 @@
<property name="fakeRelease" location="lucene/build/fakeRelease"/>
<property name="fakeReleaseTmp" location="lucene/build/fakeReleaseTmp"/>
<property name="fakeReleaseVersion" value="5.0.0"/> <!-- *not* -SNAPSHOT, the real version -->
+ <property name="smokeTestRelease.testArgs" value=""/>
<target name="-load-env">
<!-- load the properties only here, so not on every invocation /usr/bin/env is called: -->
@@ -281,7 +282,6 @@
<target name="nightly-smoke" description="Builds an unsigned release and smoke tests it" depends="clean,-env-JAVA7_HOME">
<fail unless="JAVA7_HOME">JAVA7_HOME property or environment variable is not defined.</fail>
<property name="svnversion.exe" value="svnversion" />
- <exec dir="." executable="${svnversion.exe}" outputproperty="fakeReleaseSvnRevision" failifexecutionfails="false"/>
<subant target="prepare-release-no-sign" inheritall="false" failonerror="true">
<fileset dir="lucene" includes="build.xml" />
<fileset dir="solr" includes="build.xml" />
@@ -303,10 +303,12 @@
<arg value="-B"/>
<arg file="dev-tools/scripts/smokeTestRelease.py"/>
<arg value="${fakeRelease.uri}"/>
- <arg value="${fakeReleaseSvnRevision}"/>
+ <arg value="skip"/>
<arg value="${fakeReleaseVersion}"/>
<arg file="${fakeReleaseTmp}"/>
<arg value="false"/>
+ <arg value="-testArgs"/>
+ <arg value="${smokeTestRelease.testArgs}"/>
<env key="JAVA7_HOME" file="${JAVA7_HOME}"/>
</exec>
<delete dir="${fakeRelease}"/>
Modified: lucene/dev/branches/lucene4956/dev-tools/idea/.idea/ant.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/idea/.idea/ant.xml?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/idea/.idea/ant.xml (original)
+++ lucene/dev/branches/lucene4956/dev-tools/idea/.idea/ant.xml Wed May 22 15:51:08 2013
@@ -27,6 +27,7 @@
<buildFile url="file://$PROJECT_DIR$/lucene/misc/build.xml" />
<buildFile url="file://$PROJECT_DIR$/lucene/queries/build.xml" />
<buildFile url="file://$PROJECT_DIR$/lucene/queryparser/build.xml" />
+ <buildFile url="file://$PROJECT_DIR$/lucene/replicator/build.xml" />
<buildFile url="file://$PROJECT_DIR$/lucene/sandbox/build.xml" />
<buildFile url="file://$PROJECT_DIR$/lucene/spatial/build.xml" />
<buildFile url="file://$PROJECT_DIR$/lucene/suggest/build.xml" />
Modified: lucene/dev/branches/lucene4956/dev-tools/idea/.idea/libraries/JUnit.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/idea/.idea/libraries/JUnit.xml?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/idea/.idea/libraries/JUnit.xml (original)
+++ lucene/dev/branches/lucene4956/dev-tools/idea/.idea/libraries/JUnit.xml Wed May 22 15:51:08 2013
@@ -2,7 +2,7 @@
<library name="JUnit">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lucene/test-framework/lib/junit-4.10.jar!/" />
- <root url="jar://$PROJECT_DIR$/lucene/test-framework/lib/randomizedtesting-runner-2.0.9.jar!/" />
+ <root url="jar://$PROJECT_DIR$/lucene/test-framework/lib/randomizedtesting-runner-2.0.10.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
Modified: lucene/dev/branches/lucene4956/dev-tools/idea/.idea/modules.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/idea/.idea/modules.xml?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/idea/.idea/modules.xml (original)
+++ lucene/dev/branches/lucene4956/dev-tools/idea/.idea/modules.xml Wed May 22 15:51:08 2013
@@ -32,6 +32,7 @@
<module filepath="$PROJECT_DIR$/lucene/misc/misc.iml" />
<module filepath="$PROJECT_DIR$/lucene/queries/queries.iml" />
<module filepath="$PROJECT_DIR$/lucene/queryparser/queryparser.iml" />
+ <module filepath="$PROJECT_DIR$/lucene/replicator/replicator.iml" />
<module filepath="$PROJECT_DIR$/lucene/sandbox/sandbox.iml" />
<module filepath="$PROJECT_DIR$/lucene/spatial/spatial.iml" />
<module filepath="$PROJECT_DIR$/lucene/suggest/suggest.iml" />
Modified: lucene/dev/branches/lucene4956/dev-tools/idea/.idea/workspace.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/idea/.idea/workspace.xml?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/idea/.idea/workspace.xml (original)
+++ lucene/dev/branches/lucene4956/dev-tools/idea/.idea/workspace.xml Wed May 22 15:51:08 2013
@@ -151,6 +151,13 @@
<option name="VM_PARAMETERS" value="-ea -DtempDir=temp" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
+ <configuration default="false" name="Module replicator" type="JUnit" factoryName="JUnit">
+ <module name="replicator" />
+ <option name="TEST_OBJECT" value="package" />
+ <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/idea-build/lucene/replicator" />
+ <option name="VM_PARAMETERS" value="-ea -DtempDir=temp" />
+ <option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
+ </configuration>
<configuration default="false" name="Module sandbox" type="JUnit" factoryName="JUnit">
<module name="sandbox" />
<option name="TEST_OBJECT" value="package" />
@@ -242,7 +249,7 @@
<option name="VM_PARAMETERS" value="-ea" />
<option name="TEST_SEARCH_SCOPE"><value defaultName="singleModule" /></option>
</configuration>
- <list size="34">
+ <list size="35">
<item index="0" class="java.lang.String" itemvalue="JUnit.Lucene core" />
<item index="1" class="java.lang.String" itemvalue="JUnit.Module analyzers-arirang" />
<item index="2" class="java.lang.String" itemvalue="JUnit.Module analyzers-common" />
@@ -264,19 +271,20 @@
<item index="18" class="java.lang.String" itemvalue="JUnit.Module misc" />
<item index="19" class="java.lang.String" itemvalue="JUnit.Module queries" />
<item index="20" class="java.lang.String" itemvalue="JUnit.Module queryparser" />
- <item index="21" class="java.lang.String" itemvalue="JUnit.Module sandbox" />
- <item index="22" class="java.lang.String" itemvalue="JUnit.Module spatial" />
- <item index="23" class="java.lang.String" itemvalue="JUnit.Module suggest" />
- <item index="24" class="java.lang.String" itemvalue="JUnit.Solr core" />
- <item index="25" class="java.lang.String" itemvalue="JUnit.Solr analysis-extras contrib" />
- <item index="26" class="java.lang.String" itemvalue="JUnit.Solr clustering contrib" />
- <item index="27" class="java.lang.String" itemvalue="JUnit.Solr dataimporthandler contrib" />
- <item index="28" class="java.lang.String" itemvalue="JUnit.Solr dataimporthandler-extras contrib" />
- <item index="29" class="java.lang.String" itemvalue="JUnit.Solr extraction contrib" />
- <item index="30" class="java.lang.String" itemvalue="JUnit.Solr langid contrib" />
- <item index="31" class="java.lang.String" itemvalue="JUnit.Solr uima contrib" />
- <item index="32" class="java.lang.String" itemvalue="JUnit.Solr velocity contrib" />
- <item index="33" class="java.lang.String" itemvalue="JUnit.Solrj" />
+ <item index="21" class="java.lang.String" itemvalue="JUnit.Module replicator" />
+ <item index="22" class="java.lang.String" itemvalue="JUnit.Module sandbox" />
+ <item index="23" class="java.lang.String" itemvalue="JUnit.Module spatial" />
+ <item index="24" class="java.lang.String" itemvalue="JUnit.Module suggest" />
+ <item index="25" class="java.lang.String" itemvalue="JUnit.Solr core" />
+ <item index="26" class="java.lang.String" itemvalue="JUnit.Solr analysis-extras contrib" />
+ <item index="27" class="java.lang.String" itemvalue="JUnit.Solr clustering contrib" />
+ <item index="28" class="java.lang.String" itemvalue="JUnit.Solr dataimporthandler contrib" />
+ <item index="29" class="java.lang.String" itemvalue="JUnit.Solr dataimporthandler-extras contrib" />
+ <item index="30" class="java.lang.String" itemvalue="JUnit.Solr extraction contrib" />
+ <item index="31" class="java.lang.String" itemvalue="JUnit.Solr langid contrib" />
+ <item index="32" class="java.lang.String" itemvalue="JUnit.Solr uima contrib" />
+ <item index="33" class="java.lang.String" itemvalue="JUnit.Solr velocity contrib" />
+ <item index="34" class="java.lang.String" itemvalue="JUnit.Solrj" />
</list>
</component>
</project>
Modified: lucene/dev/branches/lucene4956/dev-tools/maven/lucene/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/maven/lucene/pom.xml.template?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/maven/lucene/pom.xml.template (original)
+++ lucene/dev/branches/lucene4956/dev-tools/maven/lucene/pom.xml.template Wed May 22 15:51:08 2013
@@ -55,6 +55,7 @@
<module>misc</module>
<module>queries</module>
<module>queryparser</module>
+ <module>replicator</module>
<module>sandbox</module>
<module>spatial</module>
<module>suggest</module>
Modified: lucene/dev/branches/lucene4956/dev-tools/maven/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/maven/pom.xml.template?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/maven/pom.xml.template (original)
+++ lucene/dev/branches/lucene4956/dev-tools/maven/pom.xml.template Wed May 22 15:51:08 2013
@@ -461,7 +461,7 @@
<dependency>
<groupId>com.carrotsearch.randomizedtesting</groupId>
<artifactId>randomizedtesting-runner</artifactId>
- <version>2.0.9</version>
+ <version>2.0.10</version>
</dependency>
</dependencies>
</dependencyManagement>
Modified: lucene/dev/branches/lucene4956/dev-tools/scripts/buildAndPushRelease.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/scripts/buildAndPushRelease.py?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/scripts/buildAndPushRelease.py (original)
+++ lucene/dev/branches/lucene4956/dev-tools/scripts/buildAndPushRelease.py Wed May 22 15:51:08 2013
@@ -310,7 +310,7 @@ def main():
if smokeTmpDir is not None:
import smokeTestRelease
smokeTestRelease.DEBUG = False
- smokeTestRelease.smokeTest(url, rev, version, smokeTmpDir, gpgKeyID is not None)
+ smokeTestRelease.smokeTest(url, rev, version, smokeTmpDir, gpgKeyID is not None, '')
if __name__ == '__main__':
try:
Modified: lucene/dev/branches/lucene4956/dev-tools/scripts/checkJavadocLinks.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/scripts/checkJavadocLinks.py?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/scripts/checkJavadocLinks.py (original)
+++ lucene/dev/branches/lucene4956/dev-tools/scripts/checkJavadocLinks.py Wed May 22 15:51:08 2013
@@ -65,7 +65,7 @@ class FindHyperlinks(HTMLParser):
pass
else:
self.printFile()
- print(' WARNING: anchor "%s" appears more than once' % name)
+ raise RuntimeError('anchor "%s" appears more than once' % name)
else:
self.anchors.add(name)
elif href is not None:
Modified: lucene/dev/branches/lucene4956/dev-tools/scripts/poll-mirrors.pl
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/scripts/poll-mirrors.pl?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/scripts/poll-mirrors.pl (original)
+++ lucene/dev/branches/lucene4956/dev-tools/scripts/poll-mirrors.pl Wed May 22 15:51:08 2013
@@ -51,7 +51,7 @@ my $previously_selected = select STDOUT;
$| = 1; # turn off buffering of STDOUT, so status is printed immediately
select $previously_selected;
-my $apache_url_suffix = "lucene/java/$version/lucene-$version.zip.asc";
+my $apache_url_suffix = "lucene/java/$version/KEYS";
my $apache_mirrors_list_url = "http://www.apache.org/mirrors/";
my $maven_url = "http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/$version/lucene-core-$version.pom.asc";
Modified: lucene/dev/branches/lucene4956/dev-tools/scripts/smokeTestRelease.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/dev-tools/scripts/smokeTestRelease.py?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/dev-tools/scripts/smokeTestRelease.py (original)
+++ lucene/dev/branches/lucene4956/dev-tools/scripts/smokeTestRelease.py Wed May 22 15:51:08 2013
@@ -198,8 +198,6 @@ def checkJARMetaData(desc, jarFile, svnR
'Ant-Version: Apache Ant 1.8',
# Make sure .class files are 1.7 format:
'X-Compile-Target-JDK: 1.7',
- # Make sure this matches the version and svn revision we think we are releasing:
- 'Implementation-Version: %s %s ' % (version, svnRevision),
'Specification-Version: %s' % version,
# Make sure the release was compiled with 1.7:
'Created-By: 1.7'):
@@ -207,6 +205,13 @@ def checkJARMetaData(desc, jarFile, svnR
raise RuntimeError('%s is missing "%s" inside its META-INF/MANIFEST.MF' % \
(desc, verify))
+ if svnRevision != 'skip':
+ # Make sure this matches the version and svn revision we think we are releasing:
+ verifyRevision = 'Implementation-Version: %s %s ' % (version, svnRevision)
+ if s.find(verifyRevision) == -1:
+ raise RuntimeError('%s is missing "%s" inside its META-INF/MANIFEST.MF (wrong svn revision?)' % \
+ (desc, verifyRevision))
+
notice = decodeUTF8(z.read(NOTICE_FILE_NAME))
license = decodeUTF8(z.read(LICENSE_FILE_NAME))
@@ -260,6 +265,9 @@ def checkAllJARs(topDir, project, svnRev
if normRoot.endswith('/contrib/dataimporthandler/lib') and (file.startswith('mail-') or file.startswith('activation-')):
print(' **WARNING**: skipping check of %s/%s: it has javax.* classes' % (root, file))
continue
+ else:
+ if normRoot.endswith('/replicator/lib') and file.startswith('javax.servlet'):
+ continue
fullPath = '%s/%s' % (root, file)
noJavaPackageClasses('JAR file "%s"' % fullPath, fullPath)
if file.lower().find('lucene') != -1 or file.lower().find('solr') != -1:
@@ -363,7 +371,7 @@ def checkSigs(project, urlString, versio
shutil.rmtree(gpgHomeDir)
os.makedirs(gpgHomeDir, 0o700)
run('gpg --homedir %s --import %s' % (gpgHomeDir, keysFile),
- '%s/%s.gpg.import.log 2>&1' % (tmpDir, project))
+ '%s/%s.gpg.import.log' % (tmpDir, project))
if mavenURL is None:
raise RuntimeError('%s is missing maven' % project)
@@ -396,7 +404,7 @@ def checkSigs(project, urlString, versio
# Test trust (this is done with the real users config)
run('gpg --import %s' % (keysFile),
- '%s/%s.gpg.trust.import.log 2>&1' % (tmpDir, project))
+ '%s/%s.gpg.trust.import.log' % (tmpDir, project))
print(' verify trust')
logFile = '%s/%s.%s.gpg.trust.log' % (tmpDir, project, artifact)
run('gpg --verify %s %s' % (sigFile, artifactFile), logFile)
@@ -567,7 +575,7 @@ def getDirEntries(urlString):
if text == 'Parent Directory' or text == '..':
return links[(i+1):]
-def unpackAndVerify(project, tmpDir, artifact, svnRevision, version):
+def unpackAndVerify(project, tmpDir, artifact, svnRevision, version, testArgs):
destDir = '%s/unpack' % tmpDir
if os.path.exists(destDir):
shutil.rmtree(destDir)
@@ -587,14 +595,14 @@ def unpackAndVerify(project, tmpDir, art
raise RuntimeError('unpack produced entries %s; expected only %s' % (l, expected))
unpackPath = '%s/%s' % (destDir, expected)
- verifyUnpacked(project, artifact, unpackPath, svnRevision, version, tmpDir)
+ verifyUnpacked(project, artifact, unpackPath, svnRevision, version, testArgs)
LUCENE_NOTICE = None
LUCENE_LICENSE = None
SOLR_NOTICE = None
SOLR_LICENSE = None
-def verifyUnpacked(project, artifact, unpackPath, svnRevision, version, tmpDir):
+def verifyUnpacked(project, artifact, unpackPath, svnRevision, version, testArgs):
global LUCENE_NOTICE
global LUCENE_LICENSE
global SOLR_NOTICE
@@ -643,7 +651,7 @@ def verifyUnpacked(project, artifact, un
if project == 'lucene':
# TODO: clean this up to not be a list of modules that we must maintain
- extras = ('analysis', 'benchmark', 'classification', 'codecs', 'core', 'demo', 'docs', 'facet', 'grouping', 'highlighter', 'join', 'memory', 'misc', 'queries', 'queryparser', 'sandbox', 'spatial', 'suggest', 'test-framework', 'licenses')
+ extras = ('analysis', 'benchmark', 'classification', 'codecs', 'core', 'demo', 'docs', 'facet', 'grouping', 'highlighter', 'join', 'memory', 'misc', 'queries', 'queryparser', 'replicator', 'sandbox', 'spatial', 'suggest', 'test-framework', 'licenses')
if isSrc:
extras += ('build.xml', 'common-build.xml', 'module-build.xml', 'ivy-settings.xml', 'backwards', 'tools', 'site')
else:
@@ -681,8 +689,8 @@ def verifyUnpacked(project, artifact, un
run('%s; ant validate' % javaExe('1.7'), '%s/validate.log' % unpackPath)
if project == 'lucene':
- print(' run tests w/ Java 7...')
- run('%s; ant clean test' % javaExe('1.7'), '%s/test.log' % unpackPath)
+ print(" run tests w/ Java 7 and testArgs='%s'..." % testArgs)
+ run('%s; ant clean test %s' % (javaExe('1.7'), testArgs), '%s/test.log' % unpackPath)
run('%s; ant jar' % javaExe('1.7'), '%s/compile.log' % unpackPath)
testDemo(isSrc, version, '1.7')
@@ -694,8 +702,8 @@ def verifyUnpacked(project, artifact, un
os.chdir('solr')
# DISABLED until solr tests consistently pass
- #print(' run tests w/ Java 7...')
- #run('%s; ant test' % javaExe('1.7'), '%s/test.log' % unpackPath)
+ #print(" run tests w/ Java 7 and testArgs='%s'..." % testArgs)
+ #run('%s; ant clean test %s' % (javaExe('1.7'), testArgs), '%s/test.log' % unpackPath)
# test javadocs
print(' generate javadocs w/ Java 7...')
@@ -1301,7 +1309,8 @@ def main():
if len(sys.argv) < 5:
print()
- print('Usage python -u %s BaseURL SvnRevision version tmpDir' % sys.argv[0])
+ print('Usage python -u %s BaseURL SvnRevision version tmpDir [ isSigned ] [ -testArgs "-Dwhat=ever [ ... ]" ]'
+ % sys.argv[0])
print()
print(' example: python3.2 -u dev-tools/scripts/smokeTestRelease.py http://people.apache.org/~whoever/staging_area/lucene-solr-4.3.0-RC1-rev1469340 1469340 4.3.0 /path/to/a/tmp/dir')
print()
@@ -1314,14 +1323,37 @@ def main():
if not reAllowedVersion.match(version):
raise RuntimeError('version "%s" does not match format X.Y.Z[-ALPHA|-BETA]' % version)
- tmpDir = os.path.abspath(sys.argv[4])
- isSigned = True
- if len(sys.argv) == 6:
- isSigned = (sys.argv[5] == "True")
+ tmpDirArgNum = 4
+ tmpDir = os.path.abspath(sys.argv[tmpDirArgNum])
+
+ # TODO: yuck: positional-only args with more than one optional arg totally sucks
+ # TODO: consider naming all args
+ isSigned = True
+ testArgs = ''
+ lastArgNum = len(sys.argv) - 1
+ if lastArgNum > tmpDirArgNum:
+ nextArgNum = tmpDirArgNum + 1
+ if sys.argv[nextArgNum] == '-testArgs':
+ if nextArgNum == lastArgNum:
+ raise RuntimeError('missing expected argument to -testArgs')
+ else:
+ # TODO: should there be arg validation here? E.g. starts with '-D'?
+ testArgs = sys.argv[nextArgNum + 1]
+ nextArgNum += 2
+ if nextArgNum <= lastArgNum:
+ isSigned = (sys.argv[nextArgNum] == "True")
+ nextArgNum += 1
+ if nextArgNum <= lastArgNum and testArgs == '':
+ if sys.argv[nextArgNum] == '-testArgs':
+ if nextArgNum == lastArgNum:
+ raise RuntimeError('missing expected argument to -testArgs')
+ else:
+ # TODO: should there be arg validation here? E.g. starts with '-D'?
+ testArgs = sys.argv[nextArgNum + 1]
- smokeTest(baseURL, svnRevision, version, tmpDir, isSigned)
+ smokeTest(baseURL, svnRevision, version, tmpDir, isSigned, testArgs)
-def smokeTest(baseURL, svnRevision, version, tmpDir, isSigned):
+def smokeTest(baseURL, svnRevision, version, tmpDir, isSigned, testArgs):
startTime = datetime.datetime.now()
@@ -1356,15 +1388,15 @@ def smokeTest(baseURL, svnRevision, vers
print('Test Lucene...')
checkSigs('lucene', lucenePath, version, tmpDir, isSigned)
for artifact in ('lucene-%s.tgz' % version, 'lucene-%s.zip' % version):
- unpackAndVerify('lucene', tmpDir, artifact, svnRevision, version)
- unpackAndVerify('lucene', tmpDir, 'lucene-%s-src.tgz' % version, svnRevision, version)
+ unpackAndVerify('lucene', tmpDir, artifact, svnRevision, version, testArgs)
+ unpackAndVerify('lucene', tmpDir, 'lucene-%s-src.tgz' % version, svnRevision, version, testArgs)
print()
print('Test Solr...')
checkSigs('solr', solrPath, version, tmpDir, isSigned)
for artifact in ('solr-%s.tgz' % version, 'solr-%s.zip' % version):
- unpackAndVerify('solr', tmpDir, artifact, svnRevision, version)
- unpackAndVerify('solr', tmpDir, 'solr-%s-src.tgz' % version, svnRevision, version)
+ unpackAndVerify('solr', tmpDir, artifact, svnRevision, version, testArgs)
+ unpackAndVerify('solr', tmpDir, 'solr-%s-src.tgz' % version, svnRevision, version, testArgs)
print()
print('Test Maven artifacts for Lucene and Solr...')
Modified: lucene/dev/branches/lucene4956/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/CHANGES.txt?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene4956/lucene/CHANGES.txt Wed May 22 15:51:08 2013
@@ -69,44 +69,48 @@ Changes in backwards compatibility polic
suggesters, you now need to call setPreservePositionIncrements(false) instead
of configuring the token filters to not increment positions. (Adrien Grand)
-Bug Fixes
+* LUCENE-3907: EdgeNGramTokenizer now supports maxGramSize > 1024, doesn't trim
+ the input, sets position increment = 1 for all tokens and doesn't support
+ backward grams anymore. (Adrien Grand)
+
+* LUCENE-3907: EdgeNGramTokenFilter does not support backward grams and does
+ not update offsets anymore. (Adrien Grand)
+
+* LUCENE-4981: PositionFilter is now deprecated as it can corrupt token stream
+ graphs. Since it main use-case was to make query parsers generate boolean
+ queries instead of phrase queries, it is now advised to use
+ QueryParser.setAutoGeneratePhraseQueries(false) (for simple cases) or to
+ override QueryParser.newFieldQuery. (Adrien Grand, Steve Rowe)
-* LUCENE-4935: CustomScoreQuery wrongly applied its query boost twice
- (boost^2). (Robert Muir)
+Bug Fixes
-* LUCENE-4948: Fixed ArrayIndexOutOfBoundsException in PostingsHighlighter
- if you had a 64-bit JVM without compressed OOPS: IBM J9, or Oracle with
- large heap/explicitly disabled. (Mike McCandless, Uwe Schindler, Robert Muir)
+* LUCENE-4997: Internal test framework's tests are sensitive to previous
+ test failures and tests.failfast. (Dawid Weiss, Shai Erera)
* LUCENE-4955: NGramTokenizer now supports inputs larger than 1024 chars.
(Adrien Grand)
-* LUCENE-4953: Fixed ParallelCompositeReader to inform ReaderClosedListeners of
- its synthetic subreaders. FieldCaches keyed on the atomic childs will be purged
- earlier and FC insanity prevented. In addition, ParallelCompositeReader's
- toString() was changed to better reflect the reader structure.
- (Mike McCandless, Uwe Schindler)
-
* LUCENE-4959: Fix incorrect return value in
SimpleNaiveBayesClassifier.assignClass. (Alexey Kutin via Adrien Grand)
-* LUCENE-4968: Fixed ToParentBlockJoinQuery/Collector: correctly handle parent
- hits that had no child matches, don't throw IllegalArgumentEx when
- the child query has no hits, more aggressively catch cases where childQuery
- incorrectly matches parent documents (Mike McCandless)
-
-* LUCENE-4970: Fix boost value of rewritten NGramPhraseQuery.
- (Shingo Sasaki via Adrien Grand)
-
-* LUCENE-4974: CommitIndexTask was broken if no params were set. (Shai Erera)
-
-* LUCENE-4972: DirectoryTaxonomyWriter created empty commits even if no changes
+* LUCENE-4972: DirectoryTaxonomyWriter created empty commits even if no changes
were made. (Shai Erera, Michael McCandless)
-Optimizations
+* LUCENE-949: AnalyzingQueryParser can't work with leading wildcards.
+ (Tim Allison, Robert Muir, Steve Rowe)
-* LUCENE-4938: Don't use an unnecessarily large priority queue in IndexSearcher
- methods that take top-N. (Uwe Schindler, Mike McCandless, Robert Muir)
+* LUCENE-4980: Fix issues preventing mixing of RangeFacetRequest and
+ non-RangeFacetRequest when using DrillSideways. (Mike McCandless,
+ Shai Erera)
+
+* LUCENE-4996: Ensure DocInverterPerField always includes field name
+ in exception messages. (Markus Jelsma via Robert Muir)
+
+* LUCENE-4992: Fix constructor of CustomScoreQuery to take FunctionQuery
+ for scoringQueries. Instead use QueryValueSource to safely wrap arbitrary
+ queries and use them with CustomScoreQuery. (John Wang, Robert Muir)
+
+Optimizations
* LUCENE-4936: Improve numeric doc values compression in case all values share
a common divisor. In particular, this improves the compression ratio of dates
@@ -143,6 +147,80 @@ New Features
* LUCENE-4965: Add dynamic (no taxonomy index used) numeric range
faceting to Lucene's facet module (Mike McCandless, Shai Erera)
+* LUCENE-4979: LiveFieldFields can work with any ReferenceManager, not
+ just ReferenceManager<IndexSearcher> (Mike McCandless).
+
+* LUCENE-4975: Added a new Replicator module which can replicate index
+ revisions between server and client. (Shai Erera, Mike McCandless)
+
+Build
+
+* LUCENE-4987: Upgrade randomized testing to version 2.0.10:
+ Test framework may fail internally due to overly aggresive J9 optimizations.
+ (Dawid Weiss, Shai Erera)
+
+Tests
+
+* LUCENE-4901: TestIndexWriterOnJRECrash should work on any
+ JRE vendor via Runtime.halt().
+ (Mike McCandless, Robert Muir, Uwe Schindler, Rodrigo Trujillo, Dawid Weiss)
+
+======================= Lucene 4.3.1 =======================
+
+Bug Fixes
+
+* SOLR-4813: Fix SynonymFilterFactory to allow init parameters for
+ tokenizer factory used when parsing synonyms file. (Shingo Sasaki, hossman)
+
+* LUCENE-4935: CustomScoreQuery wrongly applied its query boost twice
+ (boost^2). (Robert Muir)
+
+* LUCENE-4948: Fixed ArrayIndexOutOfBoundsException in PostingsHighlighter
+ if you had a 64-bit JVM without compressed OOPS: IBM J9, or Oracle with
+ large heap/explicitly disabled. (Mike McCandless, Uwe Schindler, Robert Muir)
+
+* LUCENE-4953: Fixed ParallelCompositeReader to inform ReaderClosedListeners of
+ its synthetic subreaders. FieldCaches keyed on the atomic childs will be purged
+ earlier and FC insanity prevented. In addition, ParallelCompositeReader's
+ toString() was changed to better reflect the reader structure.
+ (Mike McCandless, Uwe Schindler)
+
+* LUCENE-4968: Fixed ToParentBlockJoinQuery/Collector: correctly handle parent
+ hits that had no child matches, don't throw IllegalArgumentEx when
+ the child query has no hits, more aggressively catch cases where childQuery
+ incorrectly matches parent documents (Mike McCandless)
+
+* LUCENE-4970: Fix boost value of rewritten NGramPhraseQuery.
+ (Shingo Sasaki via Adrien Grand)
+
+* LUCENE-4974: CommitIndexTask was broken if no params were set. (Shai Erera)
+
+* LUCENE-4986: Fixed case where a newly opened near-real-time reader
+ fails to reflect a delete from IndexWriter.tryDeleteDocument (Reg,
+ Mike McCandless)
+
+* LUCENE-4994: Fix PatternKeywordMarkerFilter to have public constructor.
+ (Uwe Schindler)
+
+* LUCENE-4993: Fix BeiderMorseFilter to preserve custom attributes when
+ inserting tokens with position increment 0. (Uwe Schindler)
+
+* LUCENE-4991: Fix handling of synonyms in classic QueryParser.getFieldQuery for
+ terms not separated by whitespace. PositionIncrementAttribute was ignored, so with
+ default AND synonyms wrongly became mandatory clauses, and with OR, the
+ coordination factor was wrong. (æå¨, Robert Muir)
+
+* LUCENE-5002: IndexWriter#deleteAll() caused a deadlock in DWPT / DWSC if a
+ DwPT was flushing concurrently while deleteAll() aborted all DWPT. The IW
+ should never wait on DWPT via the flush control while holding on to the IW
+ Lock. (Simon Willnauer)
+
+Optimizations
+
+* LUCENE-4938: Don't use an unnecessarily large priority queue in IndexSearcher
+ methods that take top-N. (Uwe Schindler, Mike McCandless, Robert Muir)
+
+
======================= Lucene 4.3.0 =======================
Changes in backwards compatibility policy
Modified: lucene/dev/branches/lucene4956/lucene/NOTICE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/NOTICE.txt?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/NOTICE.txt (original)
+++ lucene/dev/branches/lucene4956/lucene/NOTICE.txt Wed May 22 15:51:08 2013
@@ -104,8 +104,8 @@ LGPL and Creative Commons ShareAlike.
Morfologic includes data from BSD-licensed dictionary of Polish (SGJP)
(http://sgjp.pl/morfeusz/)
-Servlet-api.jar is under the CDDL license, the original source
-code for this can be found at http://www.eclipse.org/jetty/downloads.php
+Servlet-api.jar and javax.servlet-*.jar are under the CDDL license, the original
+source code for this can be found at http://www.eclipse.org/jetty/downloads.php
===========================================================================
Kuromoji Japanese Morphological Analyzer - Apache Lucene Integration
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternKeywordMarkerFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternKeywordMarkerFilter.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternKeywordMarkerFilter.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternKeywordMarkerFilter.java Wed May 22 15:51:08 2013
@@ -42,7 +42,7 @@ public final class PatternKeywordMarkerF
* @param pattern
* the pattern to apply to the incoming term buffer
**/
- protected PatternKeywordMarkerFilter(TokenStream in, Pattern pattern) {
+ public PatternKeywordMarkerFilter(TokenStream in, Pattern pattern) {
super(in);
this.matcher = pattern.matcher("");
}
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramFilterFactory.java Wed May 22 15:51:08 2013
@@ -27,21 +27,19 @@ import org.apache.lucene.analysis.util.T
* <fieldType name="text_edgngrm" class="solr.TextField" positionIncrementGap="100">
* <analyzer>
* <tokenizer class="solr.WhitespaceTokenizerFactory"/>
- * <filter class="solr.EdgeNGramFilterFactory" side="front" minGramSize="1" maxGramSize="1"/>
+ * <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="1"/>
* </analyzer>
* </fieldType></pre>
*/
public class EdgeNGramFilterFactory extends TokenFilterFactory {
private final int maxGramSize;
private final int minGramSize;
- private final String side;
/** Creates a new EdgeNGramFilterFactory */
public EdgeNGramFilterFactory(Map<String, String> args) {
super(args);
minGramSize = getInt(args, "minGramSize", EdgeNGramTokenFilter.DEFAULT_MIN_GRAM_SIZE);
maxGramSize = getInt(args, "maxGramSize", EdgeNGramTokenFilter.DEFAULT_MAX_GRAM_SIZE);
- side = get(args, "side", EdgeNGramTokenFilter.Side.FRONT.getLabel());
if (!args.isEmpty()) {
throw new IllegalArgumentException("Unknown parameters: " + args);
}
@@ -49,6 +47,6 @@ public class EdgeNGramFilterFactory exte
@Override
public EdgeNGramTokenFilter create(TokenStream input) {
- return new EdgeNGramTokenFilter(input, side, minGramSize, maxGramSize);
+ return new EdgeNGramTokenFilter(luceneMatchVersion, input, minGramSize, maxGramSize);
}
}
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.java Wed May 22 15:51:08 2013
@@ -17,83 +17,53 @@ package org.apache.lucene.analysis.ngram
* limitations under the License.
*/
+import java.io.IOException;
+
import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
+import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-
-import java.io.IOException;
+import org.apache.lucene.analysis.tokenattributes.PositionLengthAttribute;
+import org.apache.lucene.util.Version;
/**
* Tokenizes the given token into n-grams of given size(s).
* <p>
- * This {@link TokenFilter} create n-grams from the beginning edge or ending edge of a input token.
- * </p>
+ * This {@link TokenFilter} create n-grams from the beginning edge of a input token.
*/
public final class EdgeNGramTokenFilter extends TokenFilter {
- public static final Side DEFAULT_SIDE = Side.FRONT;
public static final int DEFAULT_MAX_GRAM_SIZE = 1;
public static final int DEFAULT_MIN_GRAM_SIZE = 1;
- /** Specifies which side of the input the n-gram should be generated from */
- public static enum Side {
-
- /** Get the n-gram from the front of the input */
- FRONT {
- @Override
- public String getLabel() { return "front"; }
- },
-
- /** Get the n-gram from the end of the input */
- BACK {
- @Override
- public String getLabel() { return "back"; }
- };
-
- public abstract String getLabel();
-
- // Get the appropriate Side from a string
- public static Side getSide(String sideName) {
- if (FRONT.getLabel().equals(sideName)) {
- return FRONT;
- }
- if (BACK.getLabel().equals(sideName)) {
- return BACK;
- }
- return null;
- }
- }
-
private final int minGram;
private final int maxGram;
- private Side side;
private char[] curTermBuffer;
private int curTermLength;
private int curGramSize;
private int tokStart;
private int tokEnd; // only used if the length changed before this filter
- private boolean hasIllegalOffsets; // only if the length changed before this filter
private int savePosIncr;
- private boolean isFirstToken = true;
+ private int savePosLen;
private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
private final OffsetAttribute offsetAtt = addAttribute(OffsetAttribute.class);
private final PositionIncrementAttribute posIncrAtt = addAttribute(PositionIncrementAttribute.class);
+ private final PositionLengthAttribute posLenAtt = addAttribute(PositionLengthAttribute.class);
/**
* Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
*
+ * @param version the Lucene match version
* @param input {@link TokenStream} holding the input to be tokenized
- * @param side the {@link Side} from which to chop off an n-gram
* @param minGram the smallest n-gram to generate
* @param maxGram the largest n-gram to generate
*/
- public EdgeNGramTokenFilter(TokenStream input, Side side, int minGram, int maxGram) {
+ public EdgeNGramTokenFilter(Version version, TokenStream input, int minGram, int maxGram) {
super(input);
- if (side == null) {
- throw new IllegalArgumentException("sideLabel must be either front or back");
+ if (version == null) {
+ throw new IllegalArgumentException("version must not be null");
}
if (minGram < 1) {
@@ -106,19 +76,6 @@ public final class EdgeNGramTokenFilter
this.minGram = minGram;
this.maxGram = maxGram;
- this.side = side;
- }
-
- /**
- * Creates EdgeNGramTokenFilter that can generate n-grams in the sizes of the given range
- *
- * @param input {@link TokenStream} holding the input to be tokenized
- * @param sideLabel the name of the {@link Side} from which to chop off an n-gram
- * @param minGram the smallest n-gram to generate
- * @param maxGram the largest n-gram to generate
- */
- public EdgeNGramTokenFilter(TokenStream input, String sideLabel, int minGram, int maxGram) {
- this(input, Side.getSide(sideLabel), minGram, maxGram);
}
@Override
@@ -133,35 +90,25 @@ public final class EdgeNGramTokenFilter
curGramSize = minGram;
tokStart = offsetAtt.startOffset();
tokEnd = offsetAtt.endOffset();
- // if length by start + end offsets doesn't match the term text then assume
- // this is a synonym and don't adjust the offsets.
- hasIllegalOffsets = (tokStart + curTermLength) != tokEnd;
- savePosIncr = posIncrAtt.getPositionIncrement();
+ savePosIncr += posIncrAtt.getPositionIncrement();
+ savePosLen = posLenAtt.getPositionLength();
}
}
if (curGramSize <= maxGram) { // if we have hit the end of our n-gram size range, quit
if (curGramSize <= curTermLength) { // if the remaining input is too short, we can't generate any n-grams
// grab gramSize chars from front or back
- int start = side == Side.FRONT ? 0 : curTermLength - curGramSize;
- int end = start + curGramSize;
clearAttributes();
- if (hasIllegalOffsets) {
- offsetAtt.setOffset(tokStart, tokEnd);
- } else {
- offsetAtt.setOffset(tokStart + start, tokStart + end);
- }
+ offsetAtt.setOffset(tokStart, tokEnd);
// first ngram gets increment, others don't
if (curGramSize == minGram) {
- // Leave the first token position increment at the cleared-attribute value of 1
- if ( ! isFirstToken) {
- posIncrAtt.setPositionIncrement(savePosIncr);
- }
+ posIncrAtt.setPositionIncrement(savePosIncr);
+ savePosIncr = 0;
} else {
posIncrAtt.setPositionIncrement(0);
}
- termAtt.copyBuffer(curTermBuffer, start, curGramSize);
+ posLenAtt.setPositionLength(savePosLen);
+ termAtt.copyBuffer(curTermBuffer, 0, curGramSize);
curGramSize++;
- isFirstToken = false;
return true;
}
}
@@ -173,6 +120,6 @@ public final class EdgeNGramTokenFilter
public void reset() throws IOException {
super.reset();
curTermBuffer = null;
- isFirstToken = true;
+ savePosIncr = 0;
}
}
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.java Wed May 22 15:51:08 2013
@@ -24,118 +24,60 @@ import org.apache.lucene.analysis.Tokeni
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.util.AttributeSource;
+import org.apache.lucene.util.ArrayUtil;
+import org.apache.lucene.util.Version;
/**
* Tokenizes the input from an edge into n-grams of given size(s).
* <p>
- * This {@link Tokenizer} create n-grams from the beginning edge or ending edge of a input token.
- * MaxGram can't be larger than 1024 because of limitation.
- * </p>
+ * This {@link Tokenizer} create n-grams from the beginning edge of a input token.
*/
public final class EdgeNGramTokenizer extends Tokenizer {
- public static final Side DEFAULT_SIDE = Side.FRONT;
public static final int DEFAULT_MAX_GRAM_SIZE = 1;
public static final int DEFAULT_MIN_GRAM_SIZE = 1;
-
+
private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
private final OffsetAttribute offsetAtt = addAttribute(OffsetAttribute.class);
private final PositionIncrementAttribute posIncrAtt = addAttribute(PositionIncrementAttribute.class);
- /** Specifies which side of the input the n-gram should be generated from */
- public static enum Side {
-
- /** Get the n-gram from the front of the input */
- FRONT {
- @Override
- public String getLabel() { return "front"; }
- },
-
- /** Get the n-gram from the end of the input */
- BACK {
- @Override
- public String getLabel() { return "back"; }
- };
-
- public abstract String getLabel();
-
- // Get the appropriate Side from a string
- public static Side getSide(String sideName) {
- if (FRONT.getLabel().equals(sideName)) {
- return FRONT;
- }
- if (BACK.getLabel().equals(sideName)) {
- return BACK;
- }
- return null;
- }
- }
-
private int minGram;
private int maxGram;
private int gramSize;
- private Side side;
private boolean started;
private int inLen; // length of the input AFTER trim()
private int charsRead; // length of the input
private String inStr;
-
/**
* Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
*
+ * @param version the Lucene match version
* @param input {@link Reader} holding the input to be tokenized
- * @param side the {@link Side} from which to chop off an n-gram
* @param minGram the smallest n-gram to generate
* @param maxGram the largest n-gram to generate
*/
- public EdgeNGramTokenizer(Reader input, Side side, int minGram, int maxGram) {
+ public EdgeNGramTokenizer(Version version, Reader input, int minGram, int maxGram) {
super(input);
- init(side, minGram, maxGram);
+ init(version, minGram, maxGram);
}
/**
* Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
+ *
+ * @param version the Lucene match version
* @param factory {@link org.apache.lucene.util.AttributeSource.AttributeFactory} to use
* @param input {@link Reader} holding the input to be tokenized
- * @param side the {@link Side} from which to chop off an n-gram
* @param minGram the smallest n-gram to generate
* @param maxGram the largest n-gram to generate
*/
- public EdgeNGramTokenizer(AttributeFactory factory, Reader input, Side side, int minGram, int maxGram) {
+ public EdgeNGramTokenizer(Version version, AttributeFactory factory, Reader input, int minGram, int maxGram) {
super(factory, input);
- init(side, minGram, maxGram);
- }
-
- /**
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * @param input {@link Reader} holding the input to be tokenized
- * @param sideLabel the name of the {@link Side} from which to chop off an n-gram
- * @param minGram the smallest n-gram to generate
- * @param maxGram the largest n-gram to generate
- */
- public EdgeNGramTokenizer(Reader input, String sideLabel, int minGram, int maxGram) {
- this(input, Side.getSide(sideLabel), minGram, maxGram);
+ init(version, minGram, maxGram);
}
- /**
- * Creates EdgeNGramTokenizer that can generate n-grams in the sizes of the given range
- *
- * @param factory {@link org.apache.lucene.util.AttributeSource.AttributeFactory} to use
- * @param input {@link Reader} holding the input to be tokenized
- * @param sideLabel the name of the {@link Side} from which to chop off an n-gram
- * @param minGram the smallest n-gram to generate
- * @param maxGram the largest n-gram to generate
- */
- public EdgeNGramTokenizer(AttributeFactory factory, Reader input, String sideLabel, int minGram, int maxGram) {
- this(factory, input, Side.getSide(sideLabel), minGram, maxGram);
- }
-
- private void init(Side side, int minGram, int maxGram) {
- if (side == null) {
- throw new IllegalArgumentException("sideLabel must be either front or back");
+ private void init(Version version, int minGram, int maxGram) {
+ if (version == null) {
+ throw new IllegalArgumentException("version must not be null");
}
if (minGram < 1) {
@@ -148,7 +90,6 @@ public final class EdgeNGramTokenizer ex
this.minGram = minGram;
this.maxGram = maxGram;
- this.side = side;
}
/** Returns the next token in the stream, or null at EOS. */
@@ -159,20 +100,25 @@ public final class EdgeNGramTokenizer ex
if (!started) {
started = true;
gramSize = minGram;
- char[] chars = new char[1024];
+ char[] chars = new char[Math.min(1024, maxGram)];
charsRead = 0;
// TODO: refactor to a shared readFully somewhere:
- while (charsRead < chars.length) {
+ boolean exhausted = false;
+ while (charsRead < maxGram) {
final int inc = input.read(chars, charsRead, chars.length-charsRead);
if (inc == -1) {
+ exhausted = true;
break;
}
charsRead += inc;
+ if (charsRead == chars.length && charsRead < maxGram) {
+ chars = ArrayUtil.grow(chars);
+ }
}
- inStr = new String(chars, 0, charsRead).trim(); // remove any trailing empty strings
+ inStr = new String(chars, 0, charsRead);
- if (charsRead == chars.length) {
+ if (!exhausted) {
// Read extra throwaway chars so that on end() we
// report the correct offset:
char[] throwaway = new char[1024];
@@ -191,7 +137,7 @@ public final class EdgeNGramTokenizer ex
}
posIncrAtt.setPositionIncrement(1);
} else {
- posIncrAtt.setPositionIncrement(0);
+ posIncrAtt.setPositionIncrement(1);
}
// if the remaining input is too short, we can't generate any n-grams
@@ -200,15 +146,13 @@ public final class EdgeNGramTokenizer ex
}
// if we have hit the end of our n-gram size range, quit
- if (gramSize > maxGram) {
+ if (gramSize > maxGram || gramSize > inLen) {
return false;
}
// grab gramSize chars from front or back
- int start = side == Side.FRONT ? 0 : inLen - gramSize;
- int end = start + gramSize;
- termAtt.setEmpty().append(inStr, start, end);
- offsetAtt.setOffset(correctOffset(start), correctOffset(end));
+ termAtt.setEmpty().append(inStr, 0, gramSize);
+ offsetAtt.setOffset(correctOffset(0), correctOffset(gramSize));
gramSize++;
return true;
}
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/ngram/EdgeNGramTokenizerFactory.java Wed May 22 15:51:08 2013
@@ -28,21 +28,19 @@ import java.util.Map;
* <pre class="prettyprint">
* <fieldType name="text_edgngrm" class="solr.TextField" positionIncrementGap="100">
* <analyzer>
- * <tokenizer class="solr.EdgeNGramTokenizerFactory" side="front" minGramSize="1" maxGramSize="1"/>
+ * <tokenizer class="solr.EdgeNGramTokenizerFactory" minGramSize="1" maxGramSize="1"/>
* </analyzer>
* </fieldType></pre>
*/
public class EdgeNGramTokenizerFactory extends TokenizerFactory {
private final int maxGramSize;
private final int minGramSize;
- private final String side;
/** Creates a new EdgeNGramTokenizerFactory */
public EdgeNGramTokenizerFactory(Map<String, String> args) {
super(args);
minGramSize = getInt(args, "minGramSize", EdgeNGramTokenizer.DEFAULT_MIN_GRAM_SIZE);
maxGramSize = getInt(args, "maxGramSize", EdgeNGramTokenizer.DEFAULT_MAX_GRAM_SIZE);
- side = get(args, "side", EdgeNGramTokenFilter.Side.FRONT.getLabel());
if (!args.isEmpty()) {
throw new IllegalArgumentException("Unknown parameters: " + args);
}
@@ -50,6 +48,6 @@ public class EdgeNGramTokenizerFactory e
@Override
public EdgeNGramTokenizer create(AttributeFactory factory, Reader input) {
- return new EdgeNGramTokenizer(factory, input, side, minGramSize, maxGramSize);
+ return new EdgeNGramTokenizer(luceneMatchVersion, factory, input, minGramSize, maxGramSize);
}
}
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilterFactory.java Wed May 22 15:51:08 2013
@@ -26,6 +26,7 @@ import java.nio.charset.CharsetDecoder;
import java.nio.charset.CodingErrorAction;
import java.text.ParseException;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -48,9 +49,18 @@ import org.apache.lucene.util.Version;
* <tokenizer class="solr.WhitespaceTokenizerFactory"/>
* <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
* format="solr" ignoreCase="false" expand="true"
- * tokenizerFactory="solr.WhitespaceTokenizerFactory"/>
+ * tokenizerFactory="solr.WhitespaceTokenizerFactory"
+ * [optional tokenizer factory parameters]/>
* </analyzer>
* </fieldType></pre>
+ *
+ * <p>
+ * An optional param name prefix of "tokenizerFactory." may be used for any
+ * init params that the SynonymFilterFactory needs to pass to the specified
+ * TokenizerFactory. If the TokenizerFactory expects an init parameters with
+ * the same name as an init param used by the SynonymFilterFactory, the prefix
+ * is mandatory.
+ * </p>
*/
public class SynonymFilterFactory extends TokenFilterFactory implements ResourceLoaderAware {
private final boolean ignoreCase;
@@ -58,19 +68,27 @@ public class SynonymFilterFactory extend
private final String synonyms;
private final String format;
private final boolean expand;
+ private final Map<String, String> tokArgs = new HashMap<String, String>();
private SynonymMap map;
public SynonymFilterFactory(Map<String,String> args) {
super(args);
ignoreCase = getBoolean(args, "ignoreCase", false);
+ synonyms = require(args, "synonyms");
+ format = get(args, "format");
+ expand = getBoolean(args, "expand", true);
+
tokenizerFactory = get(args, "tokenizerFactory");
if (tokenizerFactory != null) {
assureMatchVersion();
+ tokArgs.put("luceneMatchVersion", getLuceneMatchVersion().toString());
+ for (Iterator<String> itr = args.keySet().iterator(); itr.hasNext();) {
+ String key = itr.next();
+ tokArgs.put(key.replaceAll("^tokenizerFactory\\.",""), args.get(key));
+ itr.remove();
+ }
}
- synonyms = require(args, "synonyms");
- format = get(args, "format");
- expand = getBoolean(args, "expand", true);
if (!args.isEmpty()) {
throw new IllegalArgumentException("Unknown parameters: " + args);
}
@@ -159,11 +177,9 @@ public class SynonymFilterFactory extend
// (there are no tests for this functionality)
private TokenizerFactory loadTokenizerFactory(ResourceLoader loader, String cname) throws IOException {
- Map<String,String> args = new HashMap<String,String>();
- args.put("luceneMatchVersion", getLuceneMatchVersion().toString());
Class<? extends TokenizerFactory> clazz = loader.findClass(cname, TokenizerFactory.class);
try {
- TokenizerFactory tokFactory = clazz.getConstructor(Map.class).newInstance(args);
+ TokenizerFactory tokFactory = clazz.getConstructor(Map.class).newInstance(tokArgs);
if (tokFactory instanceof ResourceLoaderAware) {
((ResourceLoaderAware) tokFactory).inform(loader);
}
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/resources/META-INF/services/org.apache.lucene.analysis.util.TokenFilterFactory
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/resources/META-INF/services/org.apache.lucene.analysis.util.TokenFilterFactory?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/resources/META-INF/services/org.apache.lucene.analysis.util.TokenFilterFactory (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/resources/META-INF/services/org.apache.lucene.analysis.util.TokenFilterFactory Wed May 22 15:51:08 2013
@@ -76,7 +76,6 @@ org.apache.lucene.analysis.payloads.Deli
org.apache.lucene.analysis.payloads.NumericPayloadTokenFilterFactory
org.apache.lucene.analysis.payloads.TokenOffsetPayloadTokenFilterFactory
org.apache.lucene.analysis.payloads.TypeAsPayloadTokenFilterFactory
-org.apache.lucene.analysis.position.PositionFilterFactory
org.apache.lucene.analysis.pt.PortugueseLightStemFilterFactory
org.apache.lucene.analysis.pt.PortugueseMinimalStemFilterFactory
org.apache.lucene.analysis.pt.PortugueseStemFilterFactory
Modified: lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java?rev=1485259&r1=1485258&r2=1485259&view=diff
==============================================================================
--- lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java (original)
+++ lucene/dev/branches/lucene4956/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java Wed May 22 15:51:08 2013
@@ -66,22 +66,15 @@ import org.apache.lucene.analysis.compou
import org.apache.lucene.analysis.hunspell.HunspellDictionary;
import org.apache.lucene.analysis.hunspell.HunspellDictionaryTest;
import org.apache.lucene.analysis.miscellaneous.HyphenatedWordsFilter;
-import org.apache.lucene.analysis.miscellaneous.KeepWordFilter;
-import org.apache.lucene.analysis.miscellaneous.LengthFilter;
import org.apache.lucene.analysis.miscellaneous.LimitTokenCountFilter;
import org.apache.lucene.analysis.miscellaneous.LimitTokenPositionFilter;
import org.apache.lucene.analysis.miscellaneous.StemmerOverrideFilter;
import org.apache.lucene.analysis.miscellaneous.StemmerOverrideFilter.StemmerOverrideMap;
-import org.apache.lucene.analysis.miscellaneous.TrimFilter;
import org.apache.lucene.analysis.miscellaneous.WordDelimiterFilter;
-import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter;
-import org.apache.lucene.analysis.ngram.EdgeNGramTokenizer;
-import org.apache.lucene.analysis.ngram.Lucene43NGramTokenizer;
import org.apache.lucene.analysis.path.PathHierarchyTokenizer;
import org.apache.lucene.analysis.path.ReversePathHierarchyTokenizer;
import org.apache.lucene.analysis.payloads.IdentityEncoder;
import org.apache.lucene.analysis.payloads.PayloadEncoder;
-import org.apache.lucene.analysis.position.PositionFilter;
import org.apache.lucene.analysis.snowball.TestSnowball;
import org.apache.lucene.analysis.standard.StandardTokenizer;
import org.apache.lucene.analysis.synonym.SynonymMap;
@@ -153,17 +146,6 @@ public class TestRandomChains extends Ba
// Not broken: we forcefully add this, so we shouldn't
// also randomly pick it:
ValidatingTokenFilter.class,
- // NOTE: these by themselves won't cause any 'basic assertions' to fail.
- // but see https://issues.apache.org/jira/browse/LUCENE-3920, if any
- // tokenfilter that combines words (e.g. shingles) comes after them,
- // this will create bogus offsets because their 'offsets go backwards',
- // causing shingle or whatever to make a single token with a
- // startOffset thats > its endOffset
- // (see LUCENE-3738 for a list of other offenders here)
- // broken!
- EdgeNGramTokenizer.class,
- // broken!
- EdgeNGramTokenFilter.class,
// broken!
WordDelimiterFilter.class)) {
for (Constructor<?> ctor : c.getConstructors()) {
@@ -185,8 +167,6 @@ public class TestRandomChains extends Ba
PathHierarchyTokenizer.class,
HyphenationCompoundWordTokenFilter.class,
DictionaryCompoundWordTokenFilter.class,
- // TODO: corrumpts graphs (offset consistency check):
- PositionFilter.class,
// TODO: it seems to mess up offsets!?
WikipediaTokenizer.class,
// TODO: doesn't handle graph inputs
@@ -195,6 +175,8 @@ public class TestRandomChains extends Ba
CJKBigramFilter.class,
// TODO: doesn't handle graph inputs (or even look at positionIncrement)
HyphenatedWordsFilter.class,
+ // TODO: LUCENE-4983
+ CommonGramsFilter.class,
// TODO: doesn't handle graph inputs
CommonGramsQueryFilter.class)) {
for (Constructor<?> ctor : c.getConstructors()) {
@@ -440,20 +422,6 @@ public class TestRandomChains extends Ba
}
}
});
- put(EdgeNGramTokenizer.Side.class, new ArgProducer() {
- @Override public Object create(Random random) {
- return random.nextBoolean()
- ? EdgeNGramTokenizer.Side.FRONT
- : EdgeNGramTokenizer.Side.BACK;
- }
- });
- put(EdgeNGramTokenFilter.Side.class, new ArgProducer() {
- @Override public Object create(Random random) {
- return random.nextBoolean()
- ? EdgeNGramTokenFilter.Side.FRONT
- : EdgeNGramTokenFilter.Side.BACK;
- }
- });
put(HyphenationTree.class, new ArgProducer() {
@Override public Object create(Random random) {
// TODO: make nastier