You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2019/12/18 16:39:06 UTC

[lucene-solr] 28/36: Merge branch 'master' into jira/solr-13579

This is an automated email from the ASF dual-hosted git repository.

ab pushed a commit to branch jira/solr-13579
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 25972bfaf9f33139a999e23a7a1c15d0e7f7ced7
Merge: e44e822 0857bb6
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Mon Nov 18 13:19:30 2019 +0100

    Merge branch 'master' into jira/solr-13579

 .asf.yaml                                          |   19 +
 .github/PULL_REQUEST_TEMPLATE.md                   |    1 +
 .github/workflows/ant.yml                          |   22 +
 README.md                                          |    2 +-
 dev-tools/doap/lucene.rdf                          |    7 +
 dev-tools/doap/solr.rdf                            |    7 +
 dev-tools/maven/README.maven                       |    8 +-
 dev-tools/maven/pom.xml.template                   |   24 +-
 dev-tools/maven/solr/pom.xml.template              |   10 +-
 dev-tools/scripts/jenkins.build.ref.guide.sh       |    9 +-
 lucene/CHANGES.txt                                 |  175 +-
 lucene/MIGRATE.txt                                 |   23 +
 .../lucene/analysis/custom/CustomAnalyzer.java     |   12 +-
 .../analysis/el/GreekLowerCaseFilterFactory.java   |    2 +-
 .../analysis/ga/IrishLowerCaseFilterFactory.java   |    2 +-
 .../miscellaneous/ConcatenateGraphFilter.java      |   37 +-
 .../ConcatenateGraphFilterFactory.java             |   35 +-
 .../miscellaneous/WordDelimiterGraphFilter.java    |   14 +-
 .../analysis/query/QueryAutoStopWordAnalyzer.java  |    8 +-
 .../standard/UAX29URLEmailTokenizerFactory.java    |    2 +-
 .../analysis/synonym/WordnetSynonymParser.java     |    6 +-
 .../analysis/tr/TurkishLowerCaseFilterFactory.java |    2 +-
 .../analysis/util/AbstractAnalysisFactory.java     |    3 +
 .../miscellaneous/TestConcatenateGraphFilter.java  |   56 +-
 .../TestConcatenateGraphFilterFactory.java         |   36 +-
 .../TestWordDelimiterGraphFilter.java              |   31 +
 .../analysis/synonym/TestSolrSynonymParser.java    |   23 +
 .../analysis/synonym/TestWordnetSynonymParser.java |    5 +
 lucene/analysis/icu/src/data/utr30/nfc.txt         |   17 +-
 lucene/analysis/icu/src/data/utr30/nfkc.txt        |    2 +-
 lucene/analysis/icu/src/data/utr30/nfkc_cf.txt     |   81 +-
 .../icu/ICUNormalizer2CharFilterFactory.java       |    6 +-
 .../analysis/icu/ICUNormalizer2FilterFactory.java  |    6 +-
 .../org/apache/lucene/analysis/icu/utr30.nrm       |  Bin 59232 -> 59664 bytes
 .../icu/TestICUNormalizer2CharFilterFactory.java   |   14 +-
 .../icu/TestICUNormalizer2FilterFactory.java       |   12 +
 .../analysis/icu/GenerateUTR30DataFiles.java       |    2 +-
 .../lucene/analysis/ja/JapaneseTokenizer.java      |   40 +-
 .../lucene/analysis/ja/dict/BinaryDictionary.java  |   13 +-
 .../lucene/analysis/ja/dict/ConnectionCosts.java   |   14 +-
 .../analysis/ja/dict/TokenInfoDictionary.java      |    2 +-
 .../lucene/analysis/ja/dict/UnknownDictionary.java |    9 +
 .../lucene/analysis/ja/dict/UserDictionary.java    |   14 +-
 .../lucene/analysis/ja/util/DictionaryBuilder.java |   12 +-
 .../analysis/ja/dict/TokenInfoDictionary$fst.dat   |  Bin 1698570 -> 1707541 bytes
 .../lucene/analysis/ja/TestJapaneseTokenizer.java  |   20 +
 .../analysis/ja/dict/UserDictionaryTest.java       |   22 +
 .../lucene/analysis/ko/GraphvizFormatter.java      |   19 +-
 .../apache/lucene/analysis/ko/KoreanAnalyzer.java  |    3 +-
 .../lucene/analysis/ko/KoreanNumberFilter.java     |    9 +-
 .../analysis/ko/KoreanPartOfSpeechStopFilter.java  |    6 +-
 .../apache/lucene/analysis/ko/KoreanTokenizer.java |   36 +-
 .../lucene/analysis/ko/dict/BinaryDictionary.java  |   18 +-
 .../analysis/ko/dict/CharacterDefinition.java      |    8 +-
 .../lucene/analysis/ko/dict/ConnectionCosts.java   |    2 +-
 .../lucene/analysis/ko/dict/TokenInfoFST.java      |    4 +-
 .../lucene/analysis/ko/dict/UserDictionary.java    |   16 +-
 .../analysis/ko/util/BinaryDictionaryWriter.java   |    4 +-
 .../apache/lucene/analysis/ko/util/CSVUtil.java    |    4 +-
 .../ko/util/TokenInfoDictionaryBuilder.java        |    2 +-
 .../analysis/ko/dict/TokenInfoDictionary$fst.dat   |  Bin 5641400 -> 6009053 bytes
 .../analysis/ko/StringMockResourceLoader.java      |    2 +-
 .../lucene/analysis/ko/TestKoreanAnalyzer.java     |    4 +-
 .../analysis/ko/TestKoreanNumberFilterFactory.java |   12 +-
 .../TestKoreanPartOfSpeechStopFilterFactory.java   |   16 +-
 .../ko/TestKoreanReadingFormFilterFactory.java     |   17 +-
 .../lucene/analysis/ko/TestKoreanTokenizer.java    |   16 +
 .../analysis/ko/TestKoreanTokenizerFactory.java    |   41 +-
 .../analysis/ko/dict/TokenInfoDictionaryTest.java  |    6 +-
 .../analysis/ko/dict/UserDictionaryTest.java       |    5 +-
 .../lucene/index/TestBackwardsCompatibility.java   |    7 +-
 .../org/apache/lucene/index/index.8.3.0-cfs.zip    |  Bin 0 -> 15684 bytes
 .../org/apache/lucene/index/index.8.3.0-nocfs.zip  |  Bin 0 -> 15690 bytes
 .../test/org/apache/lucene/index/sorted.8.3.0.zip  |  Bin 0 -> 62474 bytes
 .../lucene/benchmark/byTask/utils/Config.java      |   19 +-
 .../blocktreeords/OrdsBlockTreeTermsReader.java    |    3 +-
 .../codecs/blocktreeords/OrdsSegmentTermsEnum.java |    2 +-
 .../codecs/bloom/BloomFilteringPostingsFormat.java |    3 +-
 .../codecs/memory/DirectDocValuesConsumer.java     |  350 --
 .../codecs/memory/DirectDocValuesFormat.java       |   83 -
 .../codecs/memory/DirectDocValuesProducer.java     |  780 ----
 .../lucene/codecs/memory/FSTOrdTermsReader.java    |    3 +-
 .../lucene/codecs/memory/FSTTermsReader.java       |    3 +-
 .../lucene/codecs/uniformsplit/BlockDecoder.java   |   48 +
 .../lucene/codecs/uniformsplit/BlockEncoder.java   |   59 +
 .../lucene/codecs/uniformsplit/BlockHeader.java    |  167 +
 .../lucene/codecs/uniformsplit/BlockLine.java      |  260 ++
 .../lucene/codecs/uniformsplit/BlockReader.java    |  537 +++
 .../lucene/codecs/uniformsplit/BlockWriter.java    |  258 ++
 .../uniformsplit/DeltaBaseTermStateSerializer.java |  219 ++
 .../uniformsplit/DictionaryBrowserSupplier.java    |   81 +
 .../lucene/codecs/uniformsplit/FSTDictionary.java  |  234 ++
 .../lucene/codecs/uniformsplit/FieldMetadata.java  |  256 ++
 .../codecs/uniformsplit/IndexDictionary.java       |  127 +
 .../codecs/uniformsplit/IntersectBlockReader.java  |  558 +++
 .../lucene/codecs/uniformsplit/RamUsageUtil.java   |   87 +
 .../lucene/codecs/uniformsplit/TermBytes.java      |  123 +
 .../uniformsplit/UniformSplitPostingsFormat.java   |  136 +
 .../codecs/uniformsplit/UniformSplitTerms.java     |  153 +
 .../uniformsplit/UniformSplitTermsReader.java      |  204 +
 .../uniformsplit/UniformSplitTermsWriter.java      |  315 ++
 .../lucene/codecs/uniformsplit/package-info.java   |   33 +
 .../sharedterms/FieldMetadataTermState.java        |   37 +
 .../uniformsplit/sharedterms/STBlockLine.java      |  194 +
 .../uniformsplit/sharedterms/STBlockReader.java    |  139 +
 .../uniformsplit/sharedterms/STBlockWriter.java    |  105 +
 .../sharedterms/STIntersectBlockReader.java        |  112 +
 .../sharedterms/STMergingBlockReader.java          |  111 +
 .../sharedterms/STMergingTermsEnum.java            |  243 ++
 .../sharedterms/STUniformSplitPostingsFormat.java  |   84 +
 .../sharedterms/STUniformSplitTerms.java           |   65 +
 .../sharedterms/STUniformSplitTermsReader.java     |   98 +
 .../sharedterms/STUniformSplitTermsWriter.java     |  477 +++
 .../sharedterms/UnionFieldMetadataBuilder.java     |   60 +
 .../uniformsplit/sharedterms/package-info.java     |   30 +
 .../org.apache.lucene.codecs.DocValuesFormat       |   16 -
 .../org.apache.lucene.codecs.PostingsFormat        |    3 +-
 .../codecs/lucene50/MockTermStateFactory.java      |   31 +
 .../codecs/memory/TestDirectDocValuesFormat.java   |   34 -
 .../codecs/uniformsplit/TestBlockWriter.java       |  126 +
 .../codecs/uniformsplit/TestFSTDictionary.java     |  145 +
 .../lucene/codecs/uniformsplit/TestTermBytes.java  |  217 ++
 .../uniformsplit/TestTermBytesComparator.java      |  189 +
 .../TestUniformSplitPostingFormat.java             |   59 +
 .../sharedterms/STBlockReaderTest.java             |  352 ++
 .../TestSTUniformSplitPostingFormat.java           |   35 +
 lucene/common-build.xml                            |   26 +-
 .../codecs/blocktree/BlockTreeTermsReader.java     |    3 +-
 .../lucene/codecs/blocktree/SegmentTermsEnum.java  |    4 +
 .../org/apache/lucene/document/DoublePoint.java    |    9 +-
 .../org/apache/lucene/document/FeatureField.java   |    2 +-
 .../org/apache/lucene/document/FloatPoint.java     |    9 +-
 .../java/org/apache/lucene/document/IntPoint.java  |    9 +-
 .../lucene/document/LatLonDocValuesField.java      |   16 +
 .../LatLonDocValuesPointInPolygonQuery.java        |  147 +
 .../lucene/document/LatLonPointDistanceQuery.java  |    2 +-
 .../lucene/document/LatLonPointInPolygonQuery.java |  167 +-
 .../java/org/apache/lucene/document/LongPoint.java |    9 +-
 .../apache/lucene/document/RangeFieldQuery.java    |    2 +-
 .../java/org/apache/lucene/geo/Component2D.java    |   96 +
 .../java/org/apache/lucene/geo/ComponentTree.java  |  206 +
 .../src/java/org/apache/lucene/geo/EdgeTree.java   |  503 +--
 .../org/apache/lucene/geo/GeoEncodingUtils.java    |   17 +-
 .../src/java/org/apache/lucene/geo/GeoUtils.java   |    9 +-
 .../src/java/org/apache/lucene/geo/Polygon2D.java  |  224 +-
 .../src/java/org/apache/lucene/geo/Rectangle.java  |   15 +-
 .../lucene/geo/SimpleGeoJSONPolygonParser.java     |    2 +
 .../apache/lucene/index/BaseCompositeReader.java   |   24 +-
 .../org/apache/lucene/index/DirectoryReader.java   |    1 -
 .../org/apache/lucene/index/IndexFileDeleter.java  |    4 +-
 .../org/apache/lucene/index/IndexFileNames.java    |    3 -
 .../java/org/apache/lucene/index/IndexReader.java  |    7 +-
 .../java/org/apache/lucene/index/PointValues.java  |   28 +-
 .../java/org/apache/lucene/index/SegmentInfos.java |   11 +-
 .../org/apache/lucene/search/BooleanQuery.java     |   14 +-
 .../apache/lucene/search/HitsThresholdChecker.java |  119 +
 .../org/apache/lucene/search/IndexSearcher.java    |   51 +-
 .../org/apache/lucene/search/LRUQueryCache.java    |   61 +-
 .../apache/lucene/search/MaxScoreAccumulator.java  |   90 +
 .../org/apache/lucene/search/MultiPhraseQuery.java |    7 +-
 .../java/org/apache/lucene/search/PhraseQuery.java |    6 +-
 .../org/apache/lucene/search/PointRangeQuery.java  |    2 +-
 .../org/apache/lucene/search/QueryRescorer.java    |   39 +-
 .../org/apache/lucene/search/SynonymQuery.java     |    7 +-
 .../org/apache/lucene/search/TermInSetQuery.java   |    4 +-
 .../java/org/apache/lucene/search/TermQuery.java   |    2 +-
 .../org/apache/lucene/search/TopDocsCollector.java |   15 +-
 .../apache/lucene/search/TopFieldCollector.java    |  152 +-
 .../apache/lucene/search/TopScoreDocCollector.java |  132 +-
 .../org/apache/lucene/search/spans/SpanWeight.java |    8 +-
 .../src/java/org/apache/lucene/util/ArrayUtil.java |   23 +-
 .../src/java/org/apache/lucene/util/BitUtil.java   |  125 +
 .../java/org/apache/lucene/util/IntroSelector.java |   97 +-
 .../src/java/org/apache/lucene/util/SetOnce.java   |   36 +-
 .../java/org/apache/lucene/util/SloppyMath.java    |   31 +-
 .../src/java/org/apache/lucene/util/Version.java   |    7 +
 .../java/org/apache/lucene/util/bkd/BKDReader.java |  236 +-
 .../java/org/apache/lucene/util/bkd/BKDWriter.java |   97 +-
 .../java/org/apache/lucene/util/fst/Builder.java   |  115 +-
 .../org/apache/lucene/util/fst/BytesStore.java     |   21 +
 .../src/java/org/apache/lucene/util/fst/FST.java   |  771 ++--
 .../java/org/apache/lucene/util/fst/FSTEnum.java   |  236 +-
 .../java/org/apache/lucene/util/fst/NodeHash.java  |   17 +-
 .../src/java/org/apache/lucene/util/fst/Util.java  |   29 +-
 .../org/apache/lucene/util/packed/Direct16.java    |  106 -
 .../org/apache/lucene/util/packed/Direct32.java    |  106 -
 .../org/apache/lucene/util/packed/Direct64.java    |   96 -
 .../org/apache/lucene/util/packed/Direct8.java     |  104 -
 .../lucene/util/packed/Packed16ThreeBlocks.java    |  125 -
 .../lucene/util/packed/Packed8ThreeBlocks.java     |  123 -
 .../org/apache/lucene/util/packed/PackedInts.java  |   65 +-
 .../codecs/lucene60/TestLucene60PointsFormat.java  |  310 +-
 .../perfield/TestPerFieldDocValuesFormat.java      |    2 +-
 .../apache/lucene/document/TestFeatureSort.java    |    2 +-
 .../test/org/apache/lucene/geo/TestPolygon.java    |   17 +
 .../test/org/apache/lucene/geo/TestPolygon2D.java  |   88 +-
 .../lucene/index/TestFilterDirectoryReader.java    |   72 +
 .../lucene/search/TestIndexOrDocValuesQuery.java   |   67 +
 .../apache/lucene/search/TestIndexSearcher.java    |   82 +
 .../apache/lucene/search/TestLRUQueryCache.java    |  190 +-
 .../lucene/search/TestLatLonDocValuesQueries.java  |    5 +-
 .../lucene/search/TestMaxScoreAccumulator.java     |   57 +
 .../apache/lucene/search/TestMinShouldMatch2.java  |    4 +-
 .../apache/lucene/search/TestQueryRescorer.java    |   92 +
 .../org/apache/lucene/search/TestQueryVisitor.java |   18 +
 .../apache/lucene/search/TestTopDocsCollector.java |  308 +-
 .../lucene/search/TestTopFieldCollector.java       |  231 ++
 .../TestUsageTrackingFilterCachingPolicy.java      |    2 +-
 .../test/org/apache/lucene/util/TestBitUtil.java   |   85 +
 .../org/apache/lucene/util/TestIntroSelector.java  |    2 +-
 .../test/org/apache/lucene/util/TestSetOnce.java   |    9 +
 .../test/org/apache/lucene/util/bkd/TestBKD.java   |   18 +-
 .../test/org/apache/lucene/util/fst/TestFSTs.java  |   33 +-
 .../org/apache/lucene/util/fst/TestFstDirect.java  |  106 -
 .../lucene/util/fst/TestFstDirectAddressing.java   |  212 +
 .../test/org/apache/lucene/util/fst/TestUtil.java  |   21 +-
 .../apache/lucene/util/packed/TestPackedInts.java  |   55 +-
 lucene/default-nested-ivy-settings.xml             |    2 +-
 .../lucene/demo/facet/DistanceFacetsExample.java   |   27 +-
 .../lucene/search/grouping/TopGroupsTest.java      |  235 ++
 lucene/ivy-versions.properties                     |   32 +-
 .../search/join/GlobalOrdinalsWithScoreQuery.java  |    7 +
 .../app/desktop/components/MenuBarProvider.java    |    2 +-
 .../dialog/menubar/ExportTermsDialogFactory.java   |   54 +-
 .../lucene/luke/models/tools/IndexTools.java       |    3 +-
 .../lucene/luke/models/tools/IndexToolsImpl.java   |    4 +-
 .../luke/models/overview/OverviewTestBase.java     |    6 +-
 .../search/TestDiversifiedTopDocsCollector.java    |   12 +-
 .../monitor/MultipassTermFilteredPresearcher.java  |    4 +-
 .../lucene/monitor/TermFilteredPresearcher.java    |    4 +-
 .../apache/lucene/queries/intervals/Intervals.java |   30 +
 .../apache/lucene/queries/mlt/MoreLikeThis.java    |    6 +-
 .../lucene/queries/intervals/TestIntervals.java    |   52 +-
 .../lucene/queries/mlt/TestMoreLikeThis.java       |   59 +
 .../builders/MultiPhraseQueryNodeBuilder.java      |   10 +-
 .../apache/lucene/queryparser/xml/CoreParser.java  |    4 +
 .../xml/builders/SpanPositionRangeBuilder.java     |   50 +
 .../queryparser/xml/SpanPositionRangeQuery.xml     |   21 +
 .../lucene/queryparser/xml/TestCoreParser.java     |    9 +
 .../lucene/replicator/IndexReplicationHandler.java |    5 +-
 .../idversion/VersionBlockTreeTermsReader.java     |    3 +-
 .../document/DoublePointMultiRangeBuilder.java     |   54 +
 .../document/FloatPointMultiRangeBuilder.java      |   55 +
 .../lucene/document/FloatPointNearestNeighbor.java |  186 +-
 .../lucene/document/IntPointMultiRangeBuilder.java |   53 +
 .../document/LatLonShapeBoundingBoxQuery.java      |   25 +-
 .../lucene/document/LatLonShapeLineQuery.java      |   28 +-
 .../lucene/document/LatLonShapePolygonQuery.java   |   28 +-
 .../document/LongPointMultiRangeBuilder.java       |   53 +
 .../org/apache/lucene/document/ShapeField.java     |  198 +-
 .../org/apache/lucene/document/ShapeQuery.java     |  488 ++-
 .../lucene/document/XYShapeBoundingBoxQuery.java   |   25 +-
 .../apache/lucene/document/XYShapeLineQuery.java   |   36 +-
 .../lucene/document/XYShapePolygonQuery.java       |   31 +-
 .../src/java/org/apache/lucene/geo/Line2D.java     |  134 +-
 .../java/org/apache/lucene/geo/Rectangle2D.java    |   77 +-
 .../java/org/apache/lucene/geo/Tessellator.java    |  210 +-
 .../java/org/apache/lucene/geo/XYPolygon2D.java    |   10 +-
 .../java/org/apache/lucene/search/BM25FQuery.java  |    7 +-
 .../apache/lucene/search/DocValuesTermsQuery.java  |   14 +
 .../lucene/search/LatLonPointPrototypeQueries.java |    4 +-
 .../org/apache/lucene/search/MultiRangeQuery.java  |  389 ++
 .../org/apache/lucene/search/NearestNeighbor.java  |   75 +-
 .../apache/lucene/search/TermAutomatonQuery.java   |    6 +-
 .../lucene/document/BaseLatLonShapeTestCase.java   |   21 +-
 .../lucene/document/BaseShapeEncodingTestCase.java |  384 +-
 .../apache/lucene/document/BaseShapeTestCase.java  |   21 +-
 .../lucene/document/BaseXYShapeTestCase.java       |   21 +-
 .../document/TestFloatPointNearestNeighbor.java    |   11 +-
 .../document/TestLatLonLineShapeQueries.java       |   27 +-
 .../document/TestLatLonMultiLineShapeQueries.java  |   22 +-
 .../document/TestLatLonMultiPointShapeQueries.java |   22 +-
 .../TestLatLonMultiPolygonShapeQueries.java        |   22 +-
 .../document/TestLatLonPointShapeQueries.java      |   18 +-
 .../document/TestLatLonPolygonShapeQueries.java    |   30 +-
 .../apache/lucene/document/TestLatLonShape.java    |   20 +-
 .../lucene/document/TestLatLonShapeEncoding.java   |    3 +-
 .../lucene/document/TestXYLineShapeQueries.java    |   27 +-
 .../document/TestXYMultiLineShapeQueries.java      |   22 +-
 .../document/TestXYMultiPointShapeQueries.java     |   22 +-
 .../document/TestXYMultiPolygonShapeQueries.java   |   22 +-
 .../lucene/document/TestXYPointShapeQueries.java   |   18 +-
 .../lucene/document/TestXYPolygonShapeQueries.java |   30 +-
 .../lucene/document/TestXYShapeEncoding.java       |    3 +-
 .../test/org/apache/lucene/geo/ShapeTestUtil.java  |    5 +-
 .../src/test/org/apache/lucene/geo/TestLine2D.java |   18 +-
 .../org/apache/lucene/geo/TestRectangle2D.java     |   58 +-
 .../org/apache/lucene/geo/TestTessellator.java     |   76 +
 .../lucene/search/TestMultiRangeQueries.java       |  590 +++
 .../test/org/apache/lucene/search/TestNearest.java |   29 +-
 .../spatial/prefix/tree/PackedQuadPrefixTree.java  |   68 +-
 .../lucene/spatial/prefix/tree/QuadPrefixTree.java |  104 +-
 .../prefix/tree/SpatialPrefixTreeFactory.java      |   33 +-
 .../lucene/spatial3d/geom/StandardObjects.java     |    4 +-
 .../apache/lucene/spatial3d/geom/GeoPathTest.java  |   16 +-
 .../search/suggest/document/ContextQuery.java      |    6 +-
 .../lucene/analysis/BaseTokenStreamTestCase.java   |   17 +-
 .../codecs/uniformsplit/Rot13CypherTestUtil.java   |   72 +
 .../UniformSplitRot13PostingsFormat.java           |  147 +
 .../apache/lucene/codecs/uniformsplit/package.html |   43 +
 .../STUniformSplitRot13PostingsFormat.java         |   59 +
 .../codecs/uniformsplit/sharedterms/package.html   |   43 +
 .../java/org/apache/lucene/geo/EarthDebugger.java  |    4 +-
 .../java/org/apache/lucene/geo/GeoTestUtil.java    |    8 +-
 .../java/org/apache/lucene/index/RandomCodec.java  |    4 +-
 .../lucene/search/ShardSearchingTestBase.java      |   35 +-
 .../org/apache/lucene/util/LuceneTestCase.java     |  154 +-
 .../org.apache.lucene.codecs.PostingsFormat        |    2 +
 .../org/apache/lucene/util/TestExpectThrows.java   |  155 +
 lucene/tools/forbiddenApis/lucene.txt              |    4 -
 lucene/tools/forbiddenApis/solr.txt                |    4 +
 .../tools/src/groovy/check-source-patterns.groovy  |   12 +
 .../dependencies/GetMavenDependenciesTask.java     |   22 +-
 solr/CHANGES.txt                                   |  312 +-
 solr/bin/solr                                      |   86 +-
 solr/bin/solr.cmd                                  | 4070 ++++++++++----------
 solr/bin/solr.in.cmd                               |    2 +
 solr/bin/solr.in.sh                                |    4 +-
 solr/cloud-dev/clean.sh                            |   20 -
 solr/cloud-dev/cli-test-solrcloud-start.sh         |   53 -
 solr/cloud-dev/cloud.sh                            |  383 ++
 solr/cloud-dev/control.sh                          |   37 -
 solr/cloud-dev/example1.sh                         |   26 -
 solr/cloud-dev/example2.sh                         |   36 -
 solr/cloud-dev/example3.sh                         |   35 -
 solr/cloud-dev/functions.sh                        |   77 -
 solr/cloud-dev/solrcloud-start-existing.sh         |   39 -
 solr/cloud-dev/solrcloud-start.sh                  |   74 -
 solr/cloud-dev/stop.sh                             |   64 -
 .../solr/collection1/conf/schema-folding-extra.xml |    2 +-
 .../solr/analytics/AnalyticsRequestManager.java    |    6 +-
 .../org/apache/solr/analytics/facet/PivotNode.java |    6 +-
 solr/contrib/clustering/ivy.xml                    |    2 +-
 .../solr/collection1/conf/solrconfig.xml           |   12 +-
 .../collection1/conf/dataimport-solrconfig.xml     |   12 +-
 .../solr/handler/dataimport/DataImportHandler.java |    8 +-
 .../solr/handler/dataimport/RegexTransformer.java  |    3 +-
 .../dataimport/config/ConfigNameConstants.java     |    9 +-
 .../collection1/conf/contentstream-solrconfig.xml  |   12 +-
 .../conf/dataimport-nodatasource-solrconfig.xml    |   12 +-
 .../collection1/conf/dataimport-solrconfig.xml     |   12 +-
 .../solr/collection1/conf/solrconfig.xml           |    8 +-
 .../apache/solr/ltr/model/DefaultWrapperModel.java |    2 +-
 .../solr/collection1/conf/solrconfig-ltr.xml       |    4 +-
 .../collection1/conf/solrconfig-ltr_Th10_10.xml    |    4 +-
 .../solr/collection1/conf/solrconfig-multiseg.xml  |    4 +-
 .../org/apache/solr/ltr/TestLTRQParserExplain.java |   12 +-
 .../test/org/apache/solr/ltr/TestLTRWithFacet.java |   21 +-
 .../test/org/apache/solr/ltr/TestLTRWithSort.java  |   20 +-
 .../test/org/apache/solr/ltr/TestRerankBase.java   |   11 +-
 .../solr/ltr/feature/TestEdisMaxSolrFeature.java   |   12 +-
 .../solr/ltr/feature/TestFeatureLogging.java       |   12 +-
 .../solr/ltr/feature/TestFieldLengthFeature.java   |   12 +-
 .../solr/ltr/feature/TestFieldValueFeature.java    |   12 +-
 .../solr/ltr/feature/TestFilterSolrFeature.java    |   12 +-
 .../solr/ltr/feature/TestNoMatchSolrFeature.java   |   12 +-
 .../solr/ltr/feature/TestOriginalScoreFeature.java |   12 +-
 .../solr/ltr/feature/TestRankingFeature.java       |   13 +-
 .../solr/ltr/feature/TestUserTermScoreWithQ.java   |   12 +-
 .../solr/ltr/feature/TestUserTermScorerQuery.java  |   12 +-
 .../solr/ltr/feature/TestUserTermScorereQDF.java   |   12 +-
 .../apache/solr/ltr/feature/TestValueFeature.java  |   12 +-
 .../apache/solr/ltr/model/TestAdapterModel.java    |   15 +-
 .../solr/ltr/model/TestDefaultWrapperModel.java    |   17 +-
 .../org/apache/solr/ltr/model/TestLinearModel.java |   15 +-
 .../ltr/model/TestMultipleAdditiveTreesModel.java  |   13 +-
 .../solr/ltr/model/TestNeuralNetworkModel.java     |   12 +-
 .../ltr/store/rest/TestManagedFeatureStore.java    |   15 +-
 .../store/rest/TestModelManagerPersistence.java    |   11 +-
 solr/contrib/prometheus-exporter/bin/solr-exporter |   23 +-
 .../prometheus-exporter/bin/solr-exporter.cmd      |    7 +-
 .../solr/prometheus/collector/MetricSamples.java   |    7 +-
 .../solr/collection1/conf/solrconfig.xml           |    8 +-
 .../exporter/SolrExporterIntegrationTest.java      |    1 +
 .../prometheus/exporter/SolrExporterTestBase.java  |    2 +-
 .../solr/response/VelocityResponseWriter.java      |    5 +-
 solr/core/ivy.xml                                  |    4 +-
 .../src/java/org/apache/solr/api/AnnotatedApi.java |  272 ++
 solr/core/src/java/org/apache/solr/api/ApiBag.java |   26 +-
 .../core/src/java/org/apache/solr/api/Command.java |   35 +
 .../src/java/org/apache/solr/api/EndPoint.java     |   36 +
 .../src/java/org/apache/solr/api/PayloadObj.java   |   35 +
 .../client/solrj/embedded/EmbeddedSolrServer.java  |  101 +-
 .../solr/client/solrj/embedded/JettyConfig.java    |   14 +-
 .../client/solrj/embedded/JettySolrRunner.java     |   25 +-
 .../src/java/org/apache/solr/cloud/CloudUtil.java  |    6 +-
 .../org/apache/solr/cloud/NodesSysPropsCacher.java |  204 -
 .../apache/solr/cloud/OverseerTaskProcessor.java   |    6 +-
 .../org/apache/solr/cloud/RecoveryStrategy.java    |    5 +-
 .../org/apache/solr/cloud/ReplicateFromLeader.java |    2 +-
 .../java/org/apache/solr/cloud/ZkController.java   |    8 +-
 .../java/org/apache/solr/cloud/ZkShardTerms.java   |   38 +-
 .../cloud/api/collections/CategoryRoutedAlias.java |   10 +-
 .../cloud/api/collections/CreateCollectionCmd.java |    5 +-
 .../solr/cloud/api/collections/CreateShardCmd.java |   10 +-
 .../cloud/api/collections/DeleteReplicaCmd.java    |    5 +-
 .../solr/cloud/api/collections/MoveReplicaCmd.java |    8 +-
 .../OverseerCollectionMessageHandler.java          |   10 +-
 .../api/collections/ReindexCollectionCmd.java      |    3 +-
 .../solr/cloud/api/collections/SplitShardCmd.java  |   46 +-
 .../cloud/api/collections/TimeRoutedAlias.java     |   29 +-
 .../solr/cloud/autoscaling/AutoScalingHandler.java |    2 +-
 .../solr/cloud/autoscaling/ExecutePlanAction.java  |   82 +-
 .../autoscaling/InactiveMarkersPlanAction.java     |   11 +-
 .../solr/cloud/autoscaling/IndexSizeTrigger.java   |   28 +-
 .../solr/cloud/autoscaling/NodeAddedTrigger.java   |   16 +
 .../solr/cloud/autoscaling/NodeLostTrigger.java    |   21 +-
 .../cloud/autoscaling/OverseerTriggerThread.java   |   30 +-
 .../solr/cloud/autoscaling/ScheduledTriggers.java  |   66 +-
 .../cloud/autoscaling/sim/FakeDocIterator.java     |   56 +
 .../cloud/autoscaling/sim/SimCloudManager.java     |   13 +-
 .../autoscaling/sim/SimClusterStateProvider.java   |  119 +-
 .../autoscaling/sim/SimNodeStateProvider.java      |   21 +-
 .../solr/cloud/autoscaling/sim/SimScenario.java    | 1091 ++++++
 .../solr/cloud/autoscaling/sim/SimUtils.java       |   64 +-
 .../autoscaling/sim/SnapshotCloudManager.java      |   44 +-
 .../sim/SnapshotClusterStateProvider.java          |    5 +-
 .../sim/SnapshotDistribStateManager.java           |   33 +-
 .../autoscaling/sim/SnapshotNodeStateProvider.java |   20 +-
 .../java/org/apache/solr/core/BlobRepository.java  |    9 +-
 .../java/org/apache/solr/core/CoreContainer.java   |  146 +-
 .../java/org/apache/solr/core/CoreDescriptor.java  |    6 +-
 .../org/apache/solr/core/HdfsDirectoryFactory.java |   20 +-
 .../solr/core/IndexDeletionPolicyWrapper.java      |  388 +-
 .../src/java/org/apache/solr/core/InitParams.java  |    3 +-
 .../src/java/org/apache/solr/core/LibListener.java |  273 --
 .../java/org/apache/solr/core/MemClassLoader.java  |   17 +-
 .../src/java/org/apache/solr/core/PluginBag.java   |  304 +-
 .../src/java/org/apache/solr/core/PluginInfo.java  |   51 +-
 .../java/org/apache/solr/core/RequestParams.java   |    9 +
 .../src/java/org/apache/solr/core/RuntimeLib.java  |  220 --
 .../src/java/org/apache/solr/core/SolrConfig.java  |   24 +-
 .../src/java/org/apache/solr/core/SolrCore.java    |  132 +-
 .../src/java/org/apache/solr/core/SolrCores.java   |   11 +-
 .../java/org/apache/solr/core/SolrInfoBean.java    |   52 +-
 .../org/apache/solr/core/SolrResourceLoader.java   |  348 +-
 .../apache/solr/filestore/DistribPackageStore.java |  489 +++
 .../org/apache/solr/filestore/PackageStore.java    |  124 +
 .../org/apache/solr/filestore/PackageStoreAPI.java |  360 ++
 .../org/apache/solr/filestore/package-info.java    |   21 +
 .../java/org/apache/solr/handler/BlobHandler.java  |    4 +-
 .../java/org/apache/solr/handler/CatStream.java    |   15 +-
 .../apache/solr/handler/CdcrReplicatorManager.java |   29 -
 .../apache/solr/handler/CdcrRequestHandler.java    |   15 +
 .../apache/solr/handler/ReplicationHandler.java    |  219 +-
 .../apache/solr/handler/RequestHandlerBase.java    |  102 +-
 .../java/org/apache/solr/handler/SnapShooter.java  |  117 +-
 .../org/apache/solr/handler/SolrConfigHandler.java |  544 ++-
 .../org/apache/solr/handler/admin/ColStatus.java   |    5 +
 .../solr/handler/admin/CollectionHandlerApi.java   |  300 +-
 .../solr/handler/admin/CollectionsHandler.java     |    7 +-
 .../solr/handler/admin/CoreAdminHandler.java       |   15 +-
 .../solr/handler/admin/CoreAdminOperation.java     |    2 +
 .../solr/handler/admin/CreateSnapshotOp.java       |   31 +-
 .../solr/handler/admin/IndexSizeEstimator.java     |    8 +-
 .../apache/solr/handler/admin/MetricsHandler.java  |    4 +-
 .../solr/handler/admin/PluginInfoHandler.java      |    4 +-
 .../handler/admin/SegmentsInfoRequestHandler.java  |    3 +-
 .../solr/handler/admin/SolrInfoMBeanHandler.java   |    4 +-
 .../org/apache/solr/handler/admin/SplitOp.java     |   14 +-
 .../solr/handler/admin/ZookeeperInfoHandler.java   |    8 +-
 .../solr/handler/component/DebugComponent.java     |   16 +-
 .../solr/handler/component/ExpandComponent.java    |   80 +-
 .../solr/handler/component/HttpShardHandler.java   |    1 +
 .../handler/component/HttpShardHandlerFactory.java |  327 +-
 .../solr/handler/component/QueryComponent.java     |   15 +-
 .../handler/component/ReplicaListTransformer.java  |   35 -
 .../solr/handler/component/ResponseBuilder.java    |   14 -
 .../solr/handler/component/SearchComponent.java    |   18 +-
 .../solr/handler/component/SearchHandler.java      |   63 +-
 .../component/ShufflingReplicaListTransformer.java |   39 -
 .../solr/handler/component/SuggestComponent.java   |   23 +-
 .../solr/handler/component/TermsComponent.java     |   35 +-
 .../apache/solr/handler/loader/CSVLoaderBase.java  |    6 +-
 .../solr/highlight/HighlightingPluginBase.java     |   27 +-
 .../apache/solr/logging/log4j2/Log4j2Watcher.java  |    4 +-
 .../solr/metrics/FilteringSolrMetricReporter.java  |    3 +
 .../apache/solr/metrics/SolrCoreMetricManager.java |   56 +-
 .../org/apache/solr/metrics/SolrMetricManager.java |  210 +-
 .../apache/solr/metrics/SolrMetricProducer.java    |   62 +-
 .../apache/solr/metrics/SolrMetricsContext.java    |  158 +
 .../solr/metrics/reporters/SolrJmxReporter.java    |    2 +-
 .../metrics/reporters/jmx/JmxMetricsReporter.java  |    7 +-
 .../solr/metrics/reporters/solr/SolrReporter.java  |    3 +
 .../packagemanager/DefaultPackageRepository.java   |  116 +
 .../apache/solr/packagemanager/PackageManager.java |  416 ++
 .../solr/packagemanager/PackageRepository.java     |   53 +
 .../apache/solr/packagemanager/PackageUtils.java   |  238 ++
 .../solr/packagemanager/RepositoryManager.java     |  317 ++
 .../apache/solr/packagemanager/SolrPackage.java    |  140 +
 .../solr/packagemanager/SolrPackageInstance.java   |   66 +
 .../apache/solr/packagemanager/package-info.java   |   21 +
 .../src/java/org/apache/solr/pkg/PackageAPI.java   |  410 ++
 .../java/org/apache/solr/pkg/PackageListeners.java |  111 +
 .../java/org/apache/solr/pkg/PackageLoader.java    |  303 ++
 .../org/apache/solr/pkg/PackagePluginHolder.java   |  123 +
 .../src/java/org/apache/solr/pkg/package-info.java |   23 +
 .../java/org/apache/solr/query/SolrRangeQuery.java |    3 +
 .../org/apache/solr/request/DocValuesFacets.java   |    4 +
 .../org/apache/solr/request/IntervalFacets.java    |    2 +-
 .../org/apache/solr/request/NumericFacets.java     |   20 +-
 .../request/PerSegmentSingleValuedFaceting.java    |   10 +
 .../java/org/apache/solr/request/SimpleFacets.java |   19 +-
 .../org/apache/solr/request/json/ObjectUtil.java   |    8 +-
 .../org/apache/solr/request/json/RequestUtil.java  |    9 +-
 .../solr/response/PHPSerializedResponseWriter.java |   11 +-
 .../org/apache/solr/response/SchemaXmlWriter.java  |    2 +
 .../java/org/apache/solr/rest/ManagedResource.java |    6 +-
 .../apache/solr/rest/ManagedResourceStorage.java   |   12 +-
 .../src/java/org/apache/solr/rest/RestManager.java |   10 +-
 .../solr/rest/schema/FieldTypeXmlAdapter.java      |    9 +-
 .../analysis/ManagedSynonymFilterFactory.java      |   23 +-
 .../analysis/ManagedSynonymGraphFilterFactory.java |   21 +-
 .../schema/AbstractSpatialPrefixTreeFieldType.java |    2 +
 .../java/org/apache/solr/schema/BinaryField.java   |    3 +
 .../src/java/org/apache/solr/schema/BoolField.java |    6 +-
 .../src/java/org/apache/solr/schema/FieldType.java |   47 +-
 .../apache/solr/schema/FieldTypePluginLoader.java  |   57 +-
 .../solr/schema/FileExchangeRateProvider.java      |    6 +-
 .../java/org/apache/solr/schema/IndexSchema.java   |  115 +-
 .../apache/solr/schema/JsonPreAnalyzedParser.java  |    2 +-
 .../org/apache/solr/schema/ManagedIndexSchema.java |   40 +-
 .../solr/schema/RptWithGeometrySpatialField.java   |   13 +-
 .../java/org/apache/solr/schema/SchemaManager.java |    1 +
 .../java/org/apache/solr/search/CacheConfig.java   |  168 +-
 .../java/org/apache/solr/search/CaffeineCache.java |  389 ++
 .../java/org/apache/solr/search/DisMaxQParser.java |    6 +-
 .../apache/solr/search/ExtendedDismaxQParser.java  |    6 +-
 .../java/org/apache/solr/search/FastLRUCache.java  |  412 --
 .../src/java/org/apache/solr/search/Grouping.java  |    5 +-
 .../src/java/org/apache/solr/search/LFUCache.java  |  414 --
 .../src/java/org/apache/solr/search/LRUCache.java  |  423 --
 .../java/org/apache/solr/search/PointMerger.java   |    4 +
 .../java/org/apache/solr/search/QParserPlugin.java |   11 +-
 .../src/java/org/apache/solr/search/SolrCache.java |   59 +-
 .../org/apache/solr/search/SolrCacheHolder.java    |   70 +-
 .../apache/solr/search/SolrDocumentFetcher.java    |   55 +-
 .../org/apache/solr/search/SolrFieldCacheBean.java |   27 +-
 .../org/apache/solr/search/SolrIndexSearcher.java  |  124 +-
 .../org/apache/solr/search/ValueSourceParser.java  |    8 +
 .../solr/search/facet/FacetFieldProcessor.java     |   12 +-
 .../org/apache/solr/search/facet/FacetRange.java   |  279 +-
 .../org/apache/solr/search/facet/FacetRequest.java |  119 +-
 .../org/apache/solr/search/facet/MissingAgg.java   |   81 +
 .../apache/solr/search/facet/UnInvertedField.java  |  117 +-
 .../distance/GeoDistValueSourceParser.java         |   15 +-
 .../distributed/command/GroupConverter.java        |   13 +-
 .../grouping/distributed/command/QueryCommand.java |   53 +-
 .../StoredFieldsShardRequestFactory.java           |   15 +-
 .../TopGroupsShardRequestFactory.java              |    3 +-
 .../SearchGroupShardResponseProcessor.java         |   10 +-
 .../TopGroupsShardResponseProcessor.java           |   18 +-
 .../TopGroupsResultTransformer.java                |    2 +-
 .../solr/search/join/BlockJoinChildQParser.java    |    2 +-
 .../solr/search/join/BlockJoinParentQParser.java   |   34 +-
 .../search/join/ChildFieldValueSourceParser.java   |    4 +-
 .../apache/solr/search/mlt/SimpleMLTQParser.java   |    8 +-
 .../solr/search/stats/ExactSharedStatsCache.java   |   24 +-
 .../apache/solr/search/stats/ExactStatsCache.java  |  194 +-
 .../apache/solr/search/stats/LRUStatsCache.java    |  173 +-
 .../apache/solr/search/stats/LocalStatsCache.java  |   31 +-
 .../apache/solr/search/stats/LocalStatsSource.java |   11 +-
 .../org/apache/solr/search/stats/StatsCache.java   |  196 +-
 .../org/apache/solr/search/stats/StatsSource.java  |    3 +-
 .../org/apache/solr/search/stats/StatsUtil.java    |  239 +-
 .../org/apache/solr/search/stats/TermStats.java    |    4 +-
 .../java/org/apache/solr/security/AuditEvent.java  |   22 +-
 .../apache/solr/security/AuditLoggerPlugin.java    |   52 +-
 .../apache/solr/security/AuthenticationPlugin.java |   65 +-
 .../apache/solr/security/AuthorizationContext.java |    5 +
 .../org/apache/solr/security/BasicAuthPlugin.java  |    2 +-
 .../org/apache/solr/security/JWTAuthPlugin.java    |  533 ++-
 .../org/apache/solr/security/JWTIssuerConfig.java  |  438 +++
 .../solr/security/JWTVerificationkeyResolver.java  |  153 +
 .../solr/security/MultiDestinationAuditLogger.java |   10 +-
 .../solr/security/PermissionNameProvider.java      |    6 +-
 .../security/RuleBasedAuthorizationPlugin.java     |   57 +-
 .../security/Sha256AuthenticationProvider.java     |   17 +-
 .../java/org/apache/solr/servlet/HttpSolrCall.java |   57 +-
 .../apache/solr/servlet/SolrDispatchFilter.java    |    3 +-
 .../apache/solr/servlet/SolrRequestParsers.java    |    9 +-
 .../org/apache/solr/store/blockcache/Metrics.java  |   28 +-
 .../solr/store/hdfs/HdfsLocalityReporter.java      |   27 +-
 .../apache/solr/update/DirectUpdateHandler2.java   |   66 +-
 .../org/apache/solr/update/DocumentBuilder.java    |    4 +-
 .../src/java/org/apache/solr/update/PeerSync.java  |   17 +-
 .../org/apache/solr/update/PeerSyncWithLeader.java |   17 +-
 .../org/apache/solr/update/SolrCmdDistributor.java |    5 -
 .../org/apache/solr/update/SolrIndexWriter.java    |   38 +-
 .../java/org/apache/solr/update/UpdateHandler.java |   17 +-
 .../src/java/org/apache/solr/update/UpdateLog.java |   29 +-
 .../org/apache/solr/update/UpdateShardHandler.java |   33 +-
 .../AddSchemaFieldsUpdateProcessorFactory.java     |   14 +-
 .../processor/AtomicUpdateDocumentMerger.java      |   11 +-
 .../CloneFieldUpdateProcessorFactory.java          |    4 +-
 .../processor/DistributedUpdateProcessor.java      |   21 +-
 .../processor/DistributedZkUpdateProcessor.java    |   56 +-
 .../processor/UpdateRequestProcessorChain.java     |   29 +-
 .../org/apache/solr/util/ConcurrentLFUCache.java   |  545 ---
 .../org/apache/solr/util/ConcurrentLRUCache.java   |  233 +-
 .../src/java/org/apache/solr/util/CryptoKeys.java  |   49 +-
 .../src/java/org/apache/solr/util/ExportTool.java  |  512 +++
 .../src/java/org/apache/solr/util/FileUtils.java   |   30 +-
 .../src/java/org/apache/solr/util/JmxUtil.java     |    9 +-
 .../src/java/org/apache/solr/util/PackageTool.java |  293 ++
 .../java/org/apache/solr/util/RedactionUtils.java  |   83 +-
 .../java/org/apache/solr/util/SimplePostTool.java  |    6 +-
 .../src/java/org/apache/solr/util/SolrCLI.java     |   93 +-
 .../solr/util/SolrJacksonAnnotationInspector.java  |   95 +
 .../java/org/apache/solr/util/SolrPluginUtils.java |   38 +-
 .../java/org/apache/solr/util/TestInjection.java   |   14 +-
 .../java/org/apache/solr/util/TimeZoneUtils.java   |   11 +-
 .../solr/util/plugin/AbstractPluginLoader.java     |   11 +-
 .../stats/InstrumentedHttpListenerFactory.java     |   22 +-
 .../stats/InstrumentedHttpRequestExecutor.java     |   22 +-
 ...rumentedPoolingHttpClientConnectionManager.java |   40 +-
 .../org/apache/solr/util/stats/MetricUtils.java    |   10 +-
 ....apache.lucene.analysis.util.TokenFilterFactory |   19 +
 .../src/test-files/cryptokeys/priv_key2048.pem     |   27 -
 .../core/src/test-files/cryptokeys/pub_key2048.der |  Bin 294 -> 0 bytes
 solr/core/src/test-files/runtimecode/sig.txt       |   44 +-
 .../conf/bad-schema-analyzer-by-name.xml           |   32 +
 .../conf/bad-schema-analyzer-class-and-name-cf.xml |   33 +
 .../conf/bad-schema-analyzer-class-and-name-tf.xml |   33 +
 .../bad-schema-analyzer-class-and-name-tok.xml     |   32 +
 .../collection1/conf/schema-analyzer-by-name.xml   |   78 +
 .../solr/collection1/conf/schema-spatial.xml       |    8 +-
 .../solr/collection1/conf/schema-tiny.xml          |    2 +
 .../test-files/solr/collection1/conf/schema.xml    |   39 +
 .../solr/collection1/conf/schema_codec.xml         |    5 +-
 .../conf/solrconfig-analytics-query.xml            |   10 +-
 .../conf/solrconfig-cache-enable-disable.xml       |    6 +-
 .../solr/collection1/conf/solrconfig-caching.xml   |    6 +-
 .../conf/solrconfig-collapseqparser.xml            |   10 +-
 .../collection1/conf/solrconfig-deeppaging.xml     |    4 +-
 .../conf/solrconfig-delaying-component.xml         |    6 +-
 .../solr/collection1/conf/solrconfig-elevate.xml   |    6 +-
 .../collection1/conf/solrconfig-managed-schema.xml |    6 +-
 .../solr/collection1/conf/solrconfig-minhash.xml   |   10 +-
 .../solr/collection1/conf/solrconfig-noopregen.xml |    2 +-
 .../collection1/conf/solrconfig-plugcollector.xml  |   10 +-
 .../conf/solrconfig-sortingresponse.xml            |    2 +-
 .../solr/collection1/conf/solrconfig-spatial.xml   |    4 +-
 .../solr/collection1/conf/solrconfig-tlog.xml      |    8 +-
 .../solr/collection1/conf/solrconfig.xml           |   10 +-
 .../solr/collection1/conf/solrconfig_perf.xml      |    6 +-
 .../solr/configsets/_default/conf/managed-schema   |  494 +--
 .../solr/configsets/_default/conf/solrconfig.xml   |   31 +-
 .../configsets/cloud-dynamic/conf/solrconfig.xml   |    2 +
 .../exitable-directory/conf/solrconfig.xml         |    8 +-
 .../question-answer-repository-private-key.pem     |    9 +
 .../solr/question-answer-repository/publickey.der  |  Bin 0 -> 94 bytes
 .../question-answer-request-handler-1.0.jar.tmp    |  Bin 0 -> 5652 bytes
 .../question-answer-request-handler-1.1.jar.tmp    |  Bin 0 -> 6324 bytes
 .../question-answer-repository/repository.json     |   56 +
 .../solr/security/auditlog_plugin_security.json    |    4 +-
 .../solr/security/jwt_plugin_jwk_security.json     |    6 +-
 .../solr/security/jwt_plugin_jwk_url_security.json |    2 +-
 .../solr/simSnapshot/autoscalingState.json         | 3923 +++++++++++++++++++
 .../test-files/solr/simSnapshot/clusterState.json  | 2854 ++++++++++++++
 .../test-files/solr/simSnapshot/distribState.json  |  206 +
 .../test-files/solr/simSnapshot/managerState.json  |    1 +
 .../src/test-files/solr/simSnapshot/nodeState.json | 3823 ++++++++++++++++++
 .../test-files/solr/simSnapshot/statistics.json    | 2045 ++++++++++
 .../src/test/org/apache/solr/SolrInfoBeanTest.java |   10 +-
 .../test/org/apache/solr/SolrTestCaseJ4Test.java   |   22 +
 .../org/apache/solr/TestDistributedGrouping.java   |  142 +-
 .../test/org/apache/solr/TestGroupingSearch.java   |   40 +
 .../test/org/apache/solr/TestRandomFaceting.java   |   19 +-
 .../apache/solr/cloud/AliasIntegrationTest.java    |   76 +-
 .../apache/solr/cloud/BasicDistributedZk2Test.java |   31 +-
 .../cloud/CloudExitableDirectoryReaderTest.java    |   52 +-
 .../apache/solr/cloud/CollectionsAPISolrJTest.java |   14 +
 .../org/apache/solr/cloud/MoveReplicaTest.java     |   49 +-
 .../apache/solr/cloud/PackageManagerCLITest.java   |  201 +
 .../cloud/RoutingToNodesWithPropertiesTest.java    |    9 +-
 .../test/org/apache/solr/cloud/SplitShardTest.java |  157 +
 .../apache/solr/cloud/TestBaseStatsCacheCloud.java |  221 ++
 .../apache/solr/cloud/TestClusterProperties.java   |    6 +-
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   |    1 +
 .../test/org/apache/solr/cloud/TestCryptoKeys.java |    2 +-
 .../solr/cloud/TestExactSharedStatsCacheCloud.java |   34 +
 .../solr/cloud/TestExactStatsCacheCloud.java       |   36 +
 .../apache/solr/cloud/TestLRUStatsCacheCloud.java  |   35 +
 .../solr/cloud/TestLocalStatsCacheCloud.java       |   46 +
 .../solr/cloud/TestQueryingOnDownCollection.java   |  151 +
 .../cloud/TestSolrCloudWithDelegationTokens.java   |   64 +-
 .../org/apache/solr/cloud/TestTlogReplica.java     |  213 +-
 .../org/apache/solr/cloud/ZkShardTermsTest.java    |   22 +
 .../cloud/api/collections/SplitByPrefixTest.java   |   16 +-
 .../AutoAddReplicasIntegrationTest.java            |  339 +-
 .../autoscaling/AutoAddReplicasPlanActionTest.java |    2 +-
 .../cloud/autoscaling/ExecutePlanActionTest.java   |  144 +
 .../cloud/autoscaling/IndexSizeTriggerTest.java    |   53 +-
 .../autoscaling/NodeMarkersRegistrationTest.java   |   23 +-
 .../autoscaling/sim/TestSimExtremeIndexing.java    |   35 -
 .../cloud/autoscaling/sim/TestSimLargeCluster.java |   87 +
 .../cloud/autoscaling/sim/TestSimScenario.java     |  138 +
 .../autoscaling/sim/TestSimTriggerIntegration.java |  133 +-
 .../autoscaling/sim/TestSnapshotCloudManager.java  |   79 +-
 .../apache/solr/cloud/cdcr/CdcrBootstrapTest.java  |   52 +
 .../apache/solr/core/HdfsDirectoryFactoryTest.java |    3 +-
 .../test/org/apache/solr/core/MockInfoBean.java    |   24 +-
 .../core/MockQuerySenderListenerReqHandler.java    |    8 +-
 .../org/apache/solr/core/RequestHandlersTest.java  |    5 +-
 .../org/apache/solr/core/ResourceLoaderTest.java   |   19 +
 .../test/org/apache/solr/core/TestBadConfig.java   |    2 +-
 .../org/apache/solr/core/TestCodecSupport.java     |   10 +-
 .../org/apache/solr/core/TestCoreContainer.java    |   16 +-
 .../org/apache/solr/core/TestDynamicLoading.java   |   31 +-
 .../apache/solr/core/TestSolrConfigHandler.java    |   20 +-
 .../solr/filestore/TestDistribPackageStore.java    |  265 ++
 .../apache/solr/handler/BackupStatusChecker.java   |  294 ++
 .../org/apache/solr/handler/CheckBackupStatus.java |   69 -
 .../org/apache/solr/handler/TestBlobHandler.java   |   12 +-
 .../org/apache/solr/handler/TestCSVLoader.java     |   21 +-
 .../solr/handler/TestContainerReqHandler.java      |  565 ---
 .../org/apache/solr/handler/TestCoreBackup.java    |  331 +-
 .../solr/handler/TestHdfsBackupRestoreCore.java    |    8 +-
 .../solr/handler/TestReplicationHandler.java       |   84 +-
 .../solr/handler/TestReplicationHandlerBackup.java |  154 +-
 .../org/apache/solr/handler/TestReqParamsAPI.java  |   10 +
 .../org/apache/solr/handler/TestRestoreCore.java   |   40 +-
 .../solr/handler/TestSolrConfigHandlerCloud.java   |    9 +
 .../solr/handler/TestStressThreadBackup.java       |  381 ++
 .../solr/handler/admin/IndexSizeEstimatorTest.java |   25 +
 .../solr/handler/admin/MBeansHandlerTest.java      |   20 +-
 .../solr/handler/admin/MetricsHandlerTest.java     |  146 +-
 .../handler/admin/MetricsHistoryHandlerTest.java   |    7 +-
 .../handler/admin/SecurityConfHandlerTest.java     |    9 +-
 .../solr/handler/admin/SplitHandlerTest.java       |    6 +-
 .../solr/handler/admin/TestApiFramework.java       |  191 +-
 .../solr/handler/component/DebugComponentTest.java |    4 +-
 .../component/DistributedExpandComponentTest.java  |   17 +-
 .../component/DistributedFacetPivotLargeTest.java  |   36 +-
 .../component/DistributedTermsComponentTest.java   |   26 +-
 .../handler/component/FacetPivotSmallTest.java     |   12 +
 .../component/ReplicaListTransformerTest.java      |  164 -
 .../ShufflingReplicaListTransformerTest.java       |   76 -
 .../solr/handler/component/TermsComponentTest.java |  102 +-
 .../TestDistributedStatsComponentCardinality.java  |    1 -
 .../handler/component/TestExpandComponent.java     |  230 +-
 .../component/TestHttpShardHandlerFactory.java     |  110 -
 .../solr/handler/export/TestExportWriter.java      |    5 +-
 .../apache/solr/metrics/SolrMetricTestUtils.java   |   11 +-
 .../reporters/SolrJmxReporterCloudTest.java        |    7 +-
 .../metrics/reporters/SolrJmxReporterTest.java     |   66 +-
 .../src/test/org/apache/solr/pkg/TestPackages.java |  508 +++
 .../org/apache/solr/request/SimpleFacetsTest.java  |   83 +-
 .../apache/solr/rest/schema/TestBulkSchemaAPI.java |   81 +-
 .../solr/schema/ResolveAnalyzerByNameTest.java     |  135 +
 .../org/apache/solr/search/QueryEqualityTest.java  |    3 +
 .../org/apache/solr/search/TestCaffeineCache.java  |  288 ++
 .../solr/search/TestExtendedDismaxParser.java      |   11 +-
 .../org/apache/solr/search/TestFastLRUCache.java   |  512 ---
 .../test/org/apache/solr/search/TestLFUCache.java  |  637 ---
 .../test/org/apache/solr/search/TestLRUCache.java  |  258 --
 .../test/org/apache/solr/search/TestRecovery.java  |   53 +-
 .../org/apache/solr/search/TestSolr4Spatial2.java  |   20 +
 .../org/apache/solr/search/TestSolrCachePerf.java  |  150 +
 .../apache/solr/search/TestSolrFieldCacheBean.java |    7 +-
 ...stributedFacetSimpleRefinementLongTailTest.java |   36 +-
 .../solr/search/facet/RangeFacetCloudTest.java     |  164 +-
 .../solr/search/facet/TestJsonFacetRefinement.java |   38 +-
 .../apache/solr/search/facet/TestJsonFacets.java   |  389 +-
 .../solr/search/function/TestFunctionQuery.java    |    5 +-
 .../solr/search/join/TestCloudNestedDocsSort.java  |   16 +-
 .../solr/search/join/TestNestedDocsSort.java       |    4 +-
 .../join/another/BJQFilterAccessibleTest.java      |   52 +
 .../apache/solr/search/json/TestJsonRequest.java   |   12 +-
 .../solr/search/mlt/SimpleMLTQParserTest.java      |   39 +-
 .../solr/search/stats/TestDefaultStatsCache.java   |    1 +
 .../solr/security/AuditLoggerIntegrationTest.java  |  413 +-
 .../solr/security/BasicAuthIntegrationTest.java    |   41 +-
 .../solr/security/BasicAuthOnSingleNodeTest.java   |   18 +-
 .../solr/security/CallbackAuditLoggerPlugin.java   |   29 +-
 .../security/JWTAuthPluginIntegrationTest.java     |   59 +-
 .../apache/solr/security/JWTAuthPluginTest.java    |  239 +-
 .../apache/solr/security/JWTIssuerConfigTest.java  |  156 +
 .../security/JWTVerificationkeyResolverTest.java   |  156 +
 .../security/PKIAuthenticationIntegrationTest.java |   15 +-
 .../security/TestSha256AuthenticationProvider.java |   58 +-
 .../org/apache/solr/servlet/CacheHeaderTest.java   |   24 +-
 .../solr/store/blockcache/BlockCacheTest.java      |   85 +-
 .../solr/store/blockcache/BufferStoreTest.java     |    4 +-
 .../apache/solr/update/DocumentBuilderTest.java    |   25 +
 .../test/org/apache/solr/update/RootFieldTest.java |    4 +-
 .../apache/solr/update/SolrCmdDistributorTest.java |   19 +
 .../AbstractAtomicUpdatesMultivalueTestBase.java   |  427 ++
 .../AtomicUpdateProcessorFactoryTest.java          |  117 +-
 .../solr/update/processor/AtomicUpdatesTest.java   |  139 +-
 .../DimensionalRoutedAliasUpdateProcessorTest.java |    3 +-
 .../JavaBinAtomicUpdateMultivalueTest.java         |   28 +
 .../processor/TestNamedUpdateProcessors.java       |   21 +-
 .../TimeRoutedAliasUpdateProcessorTest.java        |   70 +
 .../UpdateRequestProcessorFactoryTest.java         |   10 +-
 .../processor/XMLAtomicUpdateMultivalueTest.java   |   28 +
 .../org/apache/solr/util/SolrPluginUtilsTest.java  |   20 +
 .../test/org/apache/solr/util/TestExportTool.java  |  231 ++
 .../solr/util/TestSolrJacksonAnnotation.java       |   82 +
 .../example-DIH/solr/atom/conf/managed-schema      |   36 +-
 .../example-DIH/solr/db/conf/managed-schema        |  488 +--
 .../example-DIH/solr/db/conf/solrconfig.xml        |   29 +-
 .../example-DIH/solr/mail/conf/managed-schema      |  490 +--
 .../example-DIH/solr/mail/conf/solrconfig.xml      |   29 +-
 .../example-DIH/solr/solr/conf/managed-schema      |  488 +--
 .../example-DIH/solr/solr/conf/solrconfig.xml      |   29 +-
 .../example-DIH/solr/tika/conf/managed-schema      |    4 +-
 solr/example/files/conf/managed-schema             |  438 +--
 solr/example/files/conf/solrconfig.xml             |   29 +-
 .../asciidoctor-ant-1.6.0-alpha.5.jar.sha1         |    1 -
 solr/licenses/asciidoctor-ant-1.6.2.jar.sha1       |    1 +
 solr/licenses/caffeine-2.4.0.jar.sha1              |    1 -
 solr/licenses/caffeine-2.8.0.jar.sha1              |    1 +
 solr/licenses/commons-beanutils-1.9.3.jar.sha1     |    1 -
 solr/licenses/commons-beanutils-NOTICE.txt         |    5 -
 solr/licenses/jackson-annotations-2.9.8.jar.sha1   |    1 -
 solr/licenses/jackson-annotations-2.9.9.jar.sha1   |    1 +
 solr/licenses/jackson-core-2.9.8.jar.sha1          |    1 -
 solr/licenses/jackson-core-2.9.9.jar.sha1          |    1 +
 solr/licenses/jackson-databind-2.9.8.jar.sha1      |    1 -
 solr/licenses/jackson-databind-2.9.9.3.jar.sha1    |    1 +
 .../jackson-dataformat-smile-2.9.8.jar.sha1        |    1 -
 .../jackson-dataformat-smile-2.9.9.jar.sha1        |    1 +
 solr/licenses/java-semver-0.9.0.jar.sha1           |    1 +
 solr/licenses/java-semver-LICENSE-MIT.txt          |   21 +
 solr/licenses/netty-all-4.0.52.Final.jar.sha1      |    1 -
 solr/licenses/netty-all-4.1.29.Final.jar.sha1      |    1 +
 solr/licenses/netty-buffer-4.1.29.Final.jar.sha1   |    1 +
 ...ICENSE-ASL.txt => netty-buffer-LICENSE-ASL.txt} |    0
 solr/licenses/netty-buffer-NOTICE.txt              |  223 ++
 solr/licenses/netty-codec-4.1.29.Final.jar.sha1    |    1 +
 ...LICENSE-ASL.txt => netty-codec-LICENSE-ASL.txt} |    0
 solr/licenses/netty-codec-NOTICE.txt               |  223 ++
 solr/licenses/netty-common-4.1.29.Final.jar.sha1   |    1 +
 ...ICENSE-ASL.txt => netty-common-LICENSE-ASL.txt} |    0
 solr/licenses/netty-common-NOTICE.txt              |  223 ++
 solr/licenses/netty-handler-4.1.29.Final.jar.sha1  |    1 +
 ...CENSE-ASL.txt => netty-handler-LICENSE-ASL.txt} |    0
 solr/licenses/netty-handler-NOTICE.txt             |  223 ++
 solr/licenses/netty-resolver-4.1.29.Final.jar.sha1 |    1 +
 ...ENSE-ASL.txt => netty-resolver-LICENSE-ASL.txt} |    0
 solr/licenses/netty-resolver-NOTICE.txt            |  223 ++
 .../licenses/netty-transport-4.1.29.Final.jar.sha1 |    1 +
 ...NSE-ASL.txt => netty-transport-LICENSE-ASL.txt} |    0
 solr/licenses/netty-transport-NOTICE.txt           |  223 ++
 ...ty-transport-native-epoll-4.1.29.Final.jar.sha1 |    1 +
 ...> netty-transport-native-epoll-LICENSE-ASL.txt} |    0
 .../netty-transport-native-epoll-NOTICE.txt        |  223 ++
 ...nsport-native-unix-common-4.1.29.Final.jar.sha1 |    1 +
 ...y-transport-native-unix-common-LICENSE-ASL.txt} |    0
 .../netty-transport-native-unix-common-NOTICE.txt  |  223 ++
 solr/licenses/simple-xml-2.7.1.jar.sha1            |    1 -
 solr/licenses/simple-xml-NOTICE.txt                |    2 -
 solr/licenses/simple-xml-safe-2.7.1.jar.sha1       |    1 +
 ...NSE-ASL.txt => simple-xml-safe-LICENSE-ASL.txt} |    0
 solr/licenses/simple-xml-safe-NOTICE.txt           |    2 +
 solr/server/etc/jetty-ssl.xml                      |    1 +
 .../solr/configsets/_default/conf/managed-schema   |  494 +--
 .../solr/configsets/_default/conf/solrconfig.xml   |   31 +-
 .../conf/managed-schema                            |  534 +--
 .../conf/solrconfig.xml                            |   33 +-
 solr/solr-ref-guide/README.adoc                    |   26 +-
 solr/solr-ref-guide/src/_config.yml.template       |    4 +-
 solr/solr-ref-guide/src/about-filters.adoc         |   21 +
 solr/solr-ref-guide/src/about-tokenizers.adoc      |   19 +
 .../adding-custom-plugins-in-solrcloud-mode.adoc   |   13 +-
 solr/solr-ref-guide/src/aliases.adoc               |    6 +-
 solr/solr-ref-guide/src/analyzers.adoc             |   64 +-
 .../authentication-and-authorization-plugins.adoc  |   10 +-
 .../src/basic-authentication-plugin.adoc           |    4 +-
 solr/solr-ref-guide/src/charfilterfactories.adoc   |   79 +-
 .../src/cluster-node-management.adoc               |    2 +-
 solr/solr-ref-guide/src/collection-management.adoc |    2 +-
 .../src/common-query-parameters.adoc               |    2 +-
 solr/solr-ref-guide/src/distributed-requests.adoc  |   20 +-
 solr/solr-ref-guide/src/enabling-ssl.adoc          |    8 +-
 solr/solr-ref-guide/src/filter-descriptions.adoc   |  963 ++++-
 solr/solr-ref-guide/src/format-of-solr-xml.adoc    |   14 +
 solr/solr-ref-guide/src/how-solrcloud-works.adoc   |    6 +
 solr/solr-ref-guide/src/json-facet-api.adoc        |   92 +-
 .../src/jwt-authentication-plugin.adoc             |  119 +-
 .../src/kerberos-authentication-plugin.adoc        |    2 +-
 solr/solr-ref-guide/src/language-analysis.adoc     | 1025 ++++-
 solr/solr-ref-guide/src/learning-to-rank.adoc      |    2 +-
 .../src/major-changes-in-solr-9.adoc               |   46 +
 .../src/making-and-restoring-backups.adoc          |    6 +
 solr/solr-ref-guide/src/metrics-reporting.adoc     |    6 +-
 ...onitoring-solr-with-prometheus-and-grafana.adoc |   24 +-
 solr/solr-ref-guide/src/other-parsers.adoc         |    1 +
 .../src/package-manager-internals.adoc             |  357 ++
 solr/solr-ref-guide/src/package-manager.adoc       |  159 +
 .../src/performance-statistics-reference.adoc      |    2 +-
 solr/solr-ref-guide/src/ping.adoc                  |   11 +-
 .../src/query-settings-in-solrconfig.adoc          |   37 +-
 .../solr-ref-guide/src/request-parameters-api.adoc |   29 +-
 .../src/resource-and-plugin-loading.adoc           |    2 +-
 .../src/rule-based-authorization-plugin.adoc       |  246 +-
 solr/solr-ref-guide/src/schema-api.adoc            |   24 +-
 .../setting-up-an-external-zookeeper-ensemble.adoc |    6 +-
 solr/solr-ref-guide/src/shard-management.adoc      |   29 +
 .../src/solr-control-script-reference.adoc         |   33 +-
 .../src/solr-system-requirements.adoc              |    2 +-
 solr/solr-ref-guide/src/solr-tracing.adoc          |    2 +-
 solr/solr-ref-guide/src/solr-tutorial.adoc         |    2 +-
 solr/solr-ref-guide/src/solr-upgrade-notes.adoc    |   67 +-
 .../src/solrcloud-autoscaling-api.adoc             |   12 +-
 .../solrcloud-autoscaling-policy-preferences.adoc  |  143 +-
 .../src/solrcloud-autoscaling-trigger-actions.adoc |   15 +-
 .../src/solrcloud-autoscaling-triggers.adoc        |   57 +-
 solr/solr-ref-guide/src/spatial-search.adoc        |    2 +-
 .../src/taking-solr-to-production.adoc             |   27 +-
 .../src/the-standard-query-parser.adoc             |    4 +-
 .../src/the-well-configured-solr-instance.adoc     |    4 +-
 solr/solr-ref-guide/src/tokenizers.adoc            |  368 +-
 .../src/transforming-result-documents.adoc         |    3 +-
 .../src/updating-parts-of-documents.adoc           |    2 +-
 ...ding-data-with-solr-cell-using-apache-tika.adoc |    6 +-
 ...ng-zookeeper-to-manage-configuration-files.adoc |    2 +-
 solr/solrj/ivy.xml                                 |    9 +
 .../org/apache/solr/client/solrj/SolrClient.java   |   16 +
 .../org/apache/solr/client/solrj/SolrRequest.java  |    8 +-
 .../cloud/autoscaling/MoveReplicaSuggester.java    |    9 +-
 .../client/solrj/cloud/autoscaling/Policy.java     |    2 +-
 .../solrj/cloud/autoscaling/ReplicaInfo.java       |    2 +-
 .../cloud/autoscaling/SplitShardSuggester.java     |    4 +
 .../client/solrj/cloud/autoscaling/Variable.java   |    8 +-
 .../client/solrj/impl/BaseCloudSolrClient.java     |    7 +-
 .../solr/client/solrj/impl/CloudSolrClient.java    |    9 +-
 .../impl/ConcurrentUpdateHttp2SolrClient.java      |   20 +-
 .../solrj/impl/DelegationTokenHttpSolrClient.java  |    4 +-
 .../solr/client/solrj/impl/Http2SolrClient.java    |   10 +-
 .../solr/client/solrj/impl/HttpSolrClient.java     |   11 +-
 .../solr/client/solrj/impl/PreferenceRule.java     |   47 -
 .../solrj/impl/SolrClientNodeStateProvider.java    |    2 +-
 .../java/org/apache/solr/client/solrj/io/Lang.java |    6 +-
 .../org/apache/solr/client/solrj/io/Tuple.java     |    3 +-
 .../solr/client/solrj/io/eval/ColumnEvaluator.java |    2 +-
 .../client/solrj/io/eval/ConversionEvaluator.java  |    2 +-
 .../client/solrj/io/eval/CorrelationEvaluator.java |   25 +
 .../solrj/io/eval/CosineDistanceEvaluator.java     |   60 +
 .../solrj/io/eval/CosineSimilarityEvaluator.java   |    6 +-
 .../client/solrj/io/eval/CovarianceEvaluator.java  |    6 +-
 .../solr/client/solrj/io/eval/DbscanEvaluator.java |  141 +
 .../client/solrj/io/eval/DerivativeEvaluator.java  |   14 +-
 .../client/solrj/io/eval/DistanceEvaluator.java    |    6 +-
 .../solr/client/solrj/io/eval/DoubleEvaluator.java |    6 +-
 .../client/solrj/io/eval/FuzzyKmeansEvaluator.java |    6 +
 .../client/solrj/io/eval/IntegrateEvaluator.java   |   52 +-
 .../solrj/io/eval/KolmogorovSmirnovEvaluator.java  |    8 +-
 .../solr/client/solrj/io/eval/LongEvaluator.java   |    6 +-
 .../client/solrj/io/eval/NormalizeEvaluator.java   |    5 +-
 .../solrj/io/eval/NormalizeSumEvaluator.java       |    5 +-
 .../client/solrj/io/eval/RecursiveEvaluator.java   |   21 +-
 .../client/solrj/io/eval/SetValueEvaluator.java    |    3 +-
 .../client/solrj/io/eval/TermVectorsEvaluator.java |    3 +-
 .../client/solrj/io/eval/TopFeaturesEvaluator.java |   22 +-
 .../solr/client/solrj/io/eval/TruncEvaluator.java  |   53 +
 .../solr/client/solrj/io/eval/UnitEvaluator.java   |    2 +-
 .../client/solrj/io/graph/ShortestPathStream.java  |    3 +-
 .../solr/client/solrj/io/ops/GroupOperation.java   |    6 +-
 .../client/solrj/io/stream/CloudSolrStream.java    |    6 +-
 .../client/solrj/io/stream/DeepRandomStream.java   |    6 +-
 .../solrj/io/stream/FeaturesSelectionStream.java   |    4 +-
 .../solr/client/solrj/io/stream/KnnStream.java     |   10 +-
 .../client/solrj/io/stream/RandomFacadeStream.java |    4 +-
 .../solr/client/solrj/io/stream/RandomStream.java  |   10 +-
 .../solr/client/solrj/io/stream/SearchStream.java  |    4 +-
 .../solrj/io/stream/SignificantTermsStream.java    |   10 +-
 .../solr/client/solrj/io/stream/StatsStream.java   |    6 +-
 .../client/solrj/io/stream/TextLogitStream.java    |    4 +-
 .../solr/client/solrj/io/stream/ZplotStream.java   |  146 +-
 .../client/solrj/request/CollectionApiMapping.java |   17 -
 .../solrj/request/JavaBinUpdateRequestCodec.java   |   40 +-
 .../solr/client/solrj/request/V2Request.java       |   54 +
 .../solr/client/solrj/request/beans/Package.java   |   50 +
 .../client/solrj/request/beans/package-info.java   |   23 +
 .../client/solrj/request/json/TermsFacetMap.java   |    7 +-
 .../solrj/response/json/NestableJsonFacet.java     |   25 +-
 .../solrj/response/schema/SchemaResponse.java      |    9 +-
 .../routing/AffinityReplicaListTransformer.java    |  105 +
 .../AffinityReplicaListTransformerFactory.java     |   91 +
 .../routing/NodePreferenceRulesComparator.java     |  179 +
 .../solr/client/solrj/routing/PreferenceRule.java  |   47 +
 .../solrj/routing/ReplicaListTransformer.java      |   35 +
 .../routing/ReplicaListTransformerFactory.java     |   34 +
 .../RequestReplicaListTransformerGenerator.java    |  168 +
 .../routing/ShufflingReplicaListTransformer.java   |   39 +
 .../solr/client/solrj/routing/package-info.java    |   23 +
 .../solr/common/ConditionalKeyMapWriter.java       |   88 +
 .../org/apache/solr/common/SolrInputDocument.java  |   53 +-
 .../solr/common/annotation/JsonProperty.java       |   39 +
 .../solr/common/annotation/package-info.java       |   23 +
 .../solr/common/cloud/ClusterProperties.java       |   14 +-
 .../solr/common/cloud/NodesSysPropsCacher.java     |  200 +
 .../org/apache/solr/common/cloud/SolrZkClient.java |    9 +-
 .../apache/solr/common/cloud/ZkStateReader.java    |   97 +-
 .../solr/common/cloud/rule/ImplicitSnitch.java     |    3 +-
 .../apache/solr/common/params/CommonParams.java    |   14 +-
 .../org/apache/solr/common/params/ShardParams.java |   20 +-
 .../apache/solr/common/util/CommandOperation.java  |   14 +-
 .../solr/common/util/CommonTestInjection.java      |   42 +
 .../org/apache/solr/common/util/ExecutorUtil.java  |    1 +
 .../org/apache/solr/common/util/JavaBinCodec.java  |   11 +-
 .../apache/solr/common/util/JsonSchemaCreator.java |   85 +
 .../org/apache/solr/common/util/NamedList.java     |   11 +-
 .../java/org/apache/solr/common/util/PathTrie.java |   44 +-
 .../apache/solr/common/util/ReflectMapWriter.java  |   59 +
 .../java/org/apache/solr/common/util/StrUtils.java |  207 +-
 .../java/org/apache/solr/common/util/Utils.java    |  394 +-
 .../apache/solr/common/util/ValidatingJsonMap.java |    3 +-
 solr/solrj/src/java/org/noggit/ObjectBuilder.java  |   43 +-
 .../src/resources/apispec/cluster.Commands.json    |   37 -
 .../cluster.Commands.runtimelib.properties.json    |   23 -
 ...nfig.Commands.addRequestHandler.properties.json |    2 +-
 .../apispec/core.config.Commands.generic.json      |    2 +-
 .../apispec/core.config.Params.Commands.json       |    2 +-
 solr/solrj/src/resources/apispec/node.ext.json     |   13 -
 .../ref_guide_examples/JsonRequestApiTest.java     |   26 +-
 .../org/apache/solr/client/solrj/GetByIdTest.java  |   34 +-
 .../solr/client/solrj/LargeVolumeTestBase.java     |   14 +-
 .../apache/solr/client/solrj/SolrExampleTests.java |   50 +-
 .../autoscaling/MoveReplicaSuggesterTest.java      |  104 +
 .../client/solrj/cloud/autoscaling/TestPolicy.java |  130 +-
 .../solrj/embedded/LargeVolumeBinaryJettyTest.java |    2 +-
 .../solrj/embedded/LargeVolumeJettyTest.java       |    2 +-
 .../solrj/embedded/MergeIndexesEmbeddedTest.java   |    2 +-
 .../solrj/embedded/SolrExampleEmbeddedTest.java    |    2 +-
 .../client/solrj/embedded/TestSolrProperties.java  |    6 +-
 .../client/solrj/impl/CloudSolrClientTest.java     |   13 +
 .../org/apache/solr/client/solrj/io/TestLang.java  |   19 +-
 .../client/solrj/io/stream/MathExpressionTest.java |  455 ++-
 .../solrj/io/stream/StreamExpressionTest.java      |   43 +
 .../io/stream/eval/AbsoluteValueEvaluatorTest.java |    9 +-
 .../solrj/io/stream/eval/AddEvaluatorTest.java     |   24 +-
 .../solrj/io/stream/eval/AppendEvaluatorTest.java  |    4 +-
 .../solrj/io/stream/eval/ArrayEvaluatorTest.java   |   12 +-
 .../solrj/io/stream/eval/AscEvaluatorTest.java     |    4 +-
 .../solrj/io/stream/eval/CeilingEvaluatorTest.java |    9 +-
 .../io/stream/eval/CoalesceEvaluatorTest.java      |    2 +-
 .../solrj/io/stream/eval/DivideEvaluatorTest.java  |    3 +-
 .../solrj/io/stream/eval/FloorEvaluatorTest.java   |    9 +-
 .../solrj/io/stream/eval/ModuloEvaluatorTest.java  |   11 +-
 .../io/stream/eval/MultiplyEvaluatorTest.java      |   12 +-
 .../io/stream/eval/RecursiveEvaluatorTest.java     |    3 +-
 .../io/stream/eval/SubtractEvaluatorTest.java      |   15 +-
 .../solr/client/solrj/request/SchemaTest.java      |    8 +-
 .../solr/client/solrj/request/SolrPingTest.java    |    8 +-
 .../solr/client/solrj/request/TestCoreAdmin.java   |    2 +-
 .../solrj/request/TestUpdateRequestCodec.java      |  125 +-
 .../solr/client/solrj/request/TestV2Request.java   |   29 +-
 ...DirectJsonQueryRequestFacetingEmbeddedTest.java |  592 +++
 ...ectJsonQueryRequestFacetingIntegrationTest.java |    4 +-
 .../JsonQueryRequestFacetingIntegrationTest.java   |    4 +-
 .../solrj/request/json/TermsFacetMapTest.java      |   15 +-
 .../solrj/response/NestableJsonFacetTest.java      |   85 +
 .../client/solrj/response/TermsResponseTest.java   |   20 +-
 .../solrj/response/TestSpellCheckResponse.java     |   33 +-
 .../solrj/response/TestSuggesterResponse.java      |    8 +-
 .../routing/NodePreferenceRulesComparatorTest.java |  155 +
 .../solrj/routing/ReplicaListTransformerTest.java  |  165 +
 ...RequestReplicaListTransformerGeneratorTest.java |  152 +
 .../ShufflingReplicaListTransformerTest.java       |   76 +
 .../org/apache/solr/common/util/NamedListTest.java |   10 +
 .../org/apache/solr/common/util/TestPathTrie.java  |   13 +
 .../src/test/org/noggit/TestObjectBuilder.java     |   33 +-
 .../apache/solr/EmbeddedSolrServerTestBase.java    |  160 +
 .../java/org/apache/solr/SolrJettyTestBase.java    |   54 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |   63 +-
 .../solr/analysis/MockCharFilterFactory.java       |    4 +
 .../solr/analysis/MockTokenFilterFactory.java      |    4 +
 .../apache/solr/analysis/MockTokenizerFactory.java |    4 +
 .../solr/cloud/AbstractDistribZkTestBase.java      |    1 +
 .../solr/cloud/AbstractFullDistribZkTestBase.java  |   13 +-
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |    6 +-
 .../apache/solr/cloud/SolrCloudAuthTestCase.java   |   50 +-
 .../org/apache/solr/cloud/SolrCloudTestCase.java   |   74 +-
 .../java/org/apache/solr/cloud/ZkTestServer.java   |    2 +
 .../org/apache/solr/util/TestSSLTestConfig.java    |   17 +
 solr/webapp/web/css/angular/collections.css        |   38 +-
 solr/webapp/web/css/angular/overview.css           |   42 +
 solr/webapp/web/index.html                         |   17 +-
 solr/webapp/web/js/angular/app.js                  |   59 +-
 .../web/js/angular/controllers/alias-overview.js   |   27 +
 .../web/js/angular/controllers/collections.js      |   43 +-
 solr/webapp/web/js/angular/services.js             |    6 +
 solr/webapp/web/partials/alias_overview.html       |   46 +
 solr/webapp/web/partials/collection_overview.html  |    2 +-
 solr/webapp/web/partials/collections.html          |  223 +-
 1089 files changed, 66974 insertions(+), 21681 deletions(-)

diff --cc solr/core/src/java/org/apache/solr/core/CoreContainer.java
index daff00f,62a0ce9..20a6914
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@@ -225,11 -224,8 +230,13 @@@ public class CoreContainer 
  
    protected volatile AutoscalingHistoryHandler autoscalingHistoryHandler;
  
 +  protected volatile ResourceManager resourceManager;
 +
 +  protected volatile ResourceManagerHandler resourceManagerHandler;
 +
 +  private final LibListener clusterPropertiesListener = new LibListener(this);
+   private PackageStoreAPI packageStoreAPI;
+   private PackageLoader packageLoader;
  
  
    // Bits for the state variable.
@@@ -666,25 -673,6 +688,25 @@@
  
      createMetricsHistoryHandler();
  
 +    Map<String, Object> resManConfig = new HashMap<>();
 +    Map<String, Object> poolConfigs = new HashMap<>(DefaultResourceManager.DEFAULT_NODE_POOLS);
 +    resManConfig.put(DefaultResourceManager.POOL_CONFIGS_PARAM, poolConfigs);
 +    if (isZooKeeperAware()) {
 +      Map<String, Object> clusterProps = getZkController().getZkStateReader().getClusterProperties();
 +      poolConfigs.putAll((Map<String, Object>)clusterProps.getOrDefault(DefaultResourceManager.POOL_CONFIGS_PARAM, Collections.emptyMap()));
 +    }
 +    try {
 +      resourceManager = ResourceManager.load(loader, TimeSource.NANO_TIME, DefaultResourceManager.class,
 +          new PluginInfo("resourceManager", Collections.emptyMap()), resManConfig);
 +    } catch (Exception e) {
 +      log.warn("Resource manager initialization error - disabling!", e);
 +      resourceManager = NoOpResourceManager.INSTANCE;
 +    }
 +
 +    resourceManagerHandler = new ResourceManagerHandler(resourceManager);
 +    containerHandlers.put(RESOURCE_MANAGER_PATH, resourceManagerHandler);
-     resourceManagerHandler.initializeMetrics(metricManager, SolrInfoBean.Group.node.toString(), metricTag, RESOURCE_MANAGER_PATH);
++    resourceManagerHandler.initializeMetrics(solrMetricsContext, RESOURCE_MANAGER_PATH);
 +
      autoscalingHistoryHandler = createHandler(AUTOSCALING_HISTORY_PATH, AutoscalingHistoryHandler.class.getName(), AutoscalingHistoryHandler.class);
      metricsCollectorHandler = createHandler(MetricsCollectorHandler.HANDLER_PATH, MetricsCollectorHandler.class.getName(), MetricsCollectorHandler.class);
      // may want to add some configuration here in the future
diff --cc solr/core/src/java/org/apache/solr/search/SolrCache.java
index b1d090d,c37cf9e..a714155
--- a/solr/core/src/java/org/apache/solr/search/SolrCache.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrCache.java
@@@ -17,33 -17,29 +17,31 @@@
  package org.apache.solr.search;
  
  import org.apache.solr.core.SolrInfoBean;
 +import org.apache.solr.managed.ManagedComponent;
 +import org.apache.solr.managed.types.ManagedCacheComponent;
- import org.apache.solr.metrics.SolrMetricProducer;
  
  import java.util.Map;
+ import java.util.function.Function;
  
  
  /**
   * Primary API for dealing with Solr's internal caches.
   */
- public interface SolrCache<K,V> extends SolrInfoBean, SolrMetricProducer, ManagedCacheComponent {
 -public interface SolrCache<K,V> extends SolrInfoBean {
++public interface SolrCache<K,V> extends SolrInfoBean, ManagedCacheComponent {
  
-   /** Current size of the cache. */
+   String HIT_RATIO_PARAM = "hitratio";
+   String HITS_PARAM = "hits";
+   String INSERTS_PARAM = "inserts";
+   String EVICTIONS_PARAM = "evictions";
+   String LOOKUPS_PARAM = "lookups";
    String SIZE_PARAM = "size";
-   /** Maximum size of the cache. */
    String MAX_SIZE_PARAM = "maxSize";
-   /** Minimum size of the cache. */
-   String MIN_SIZE_PARAM = "minSize";
-   /** Maximum RAM use in MB. */
-   String MAX_RAM_MB_PARAM = "maxRamMB";
-   /** Ram usage estimate. */
    String RAM_BYTES_USED_PARAM = "ramBytesUsed";
-   // not camelCase for back-compat
-   /** Cache hit ratio. */
-   String HIT_RATIO_PARAM = "hitratio";
- 
-   long MB = 1024L * 1024L;
+   String MAX_RAM_MB_PARAM = "maxRamMB";
+   String MAX_IDLE_TIME_PARAM = "maxIdleTime";
+   String INITIAL_SIZE_PARAM = "initialSize";
+   String CLEANUP_THREAD_PARAM = "cleanupThread";
+   String SHOW_ITEMS_PARAM = "showItems";
  
    /**
     * The initialization routine. Instance specific arguments are passed in
diff --cc solr/core/src/java/org/apache/solr/search/SolrCacheHolder.java
index fb562a2,3d572c8..2e0ea9f
--- a/solr/core/src/java/org/apache/solr/search/SolrCacheHolder.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrCacheHolder.java
@@@ -19,12 -19,9 +19,11 @@@ package org.apache.solr.search
  
  import java.lang.invoke.MethodHandles;
  import java.util.Map;
- import java.util.Set;
+ import java.util.function.Function;
  
- import com.codahale.metrics.MetricRegistry;
 +import org.apache.solr.managed.ManagedComponentId;
 +import org.apache.solr.managed.ManagedContext;
- import org.apache.solr.metrics.SolrMetricManager;
+ import org.apache.solr.metrics.SolrMetricsContext;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
@@@ -140,37 -143,8 +145,32 @@@ public class SolrCacheHolder<K, V> impl
    }
  
    @Override
-   public int getMaxSize() {
-     return delegate.getMaxSize();
-   }
- 
-   @Override
-   public int getMaxRamMB() {
-     return delegate.getMaxRamMB();
+   public SolrMetricsContext getSolrMetricsContext() {
+     return delegate.getSolrMetricsContext();
    }
  
 +  @Override
 +  public int getSize() {
 +    return delegate.getSize();
 +  }
 +
 +  @Override
 +  public float getHitRatio() {
 +    return delegate.getHitRatio();
 +  }
 +
 +  @Override
 +  public long ramBytesUsed() {
 +    return delegate.ramBytesUsed();
 +  }
 +
 +  @Override
 +  public ManagedComponentId getManagedComponentId() {
 +    return delegate.getManagedComponentId();
 +  }
 +
 +  @Override
 +  public ManagedContext getManagedContext() {
 +    return delegate.getManagedContext();
 +  }
  }
diff --cc solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index 143bf46,ae47aed..fba2aa1
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@@ -67,10 -65,9 +65,11 @@@ import org.apache.solr.core.SolrConfig
  import org.apache.solr.core.SolrCore;
  import org.apache.solr.core.SolrInfoBean;
  import org.apache.solr.index.SlowCompositeReaderWrapper;
 +import org.apache.solr.managed.DefaultResourceManager;
 +import org.apache.solr.managed.ResourceManager;
+ import org.apache.solr.metrics.MetricsMap;
  import org.apache.solr.metrics.SolrMetricManager;
- import org.apache.solr.metrics.SolrMetricProducer;
+ import org.apache.solr.metrics.SolrMetricsContext;
  import org.apache.solr.request.LocalSolrQueryRequest;
  import org.apache.solr.request.SolrQueryRequest;
  import org.apache.solr.request.SolrRequestInfo;
@@@ -425,18 -430,11 +432,17 @@@ public class SolrIndexSearcher extends 
        cache.setState(SolrCache.State.LIVE);
        infoRegistry.put(cache.name(), cache);
      }
-     metricManager = core.getCoreContainer().getMetricManager();
 +    ResourceManager resourceManager = core.getCoreContainer().getResourceManager();
-     registryName = core.getCoreMetricManager().getRegistryName();
+     this.solrMetricsContext = core.getSolrMetricsContext().getChildContext(this);
      for (SolrCache cache : cacheList) {
-       cache.initializeMetrics(metricManager, registryName, core.getMetricTag(), SolrMetricManager.mkName(cache.name(), STATISTICS_KEY));
+       cache.initializeMetrics(solrMetricsContext, SolrMetricManager.mkName(cache.name(), STATISTICS_KEY));
 +      try {
 +        resourceManager.registerComponent(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache);
 +      } catch (Exception e) {
 +        log.warn("Exception adding cache '" + cache.getManagedComponentId() + "' to the resource manager pool", e);
 +      }
      }
-     initializeMetrics(metricManager, registryName, core.getMetricTag(), STATISTICS_KEY);
+     initializeMetrics(solrMetricsContext, STATISTICS_KEY);
      registerTime = new Date();
    }
  
@@@ -479,8 -477,11 +485,12 @@@
      }
  
      for (SolrCache cache : cacheList) {
-       core.getCoreContainer().getResourceManager().unregisterComponent(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache.getManagedComponentId().toString());
-       cache.close();
+       try {
++        core.getCoreContainer().getResourceManager().unregisterComponent(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache.getManagedComponentId().toString());
+         cache.close();
+       } catch (Exception e) {
+         SolrException.log(log, "Exception closing cache " + cache.name(), e);
+       }
      }
  
      if (releaseDirectory) {