You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ho...@apache.org on 2024/01/30 21:00:33 UTC

(solr) branch jira/SOLR-16858 updated (68d2c743f30 -> c398951f6ac)

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

hossman pushed a change to branch jira/SOLR-16858
in repository https://gitbox.apache.org/repos/asf/solr.git


    from 68d2c743f30 SOLR-16858: new localparams for knn to override pre-filtering behavior: fq, includeTags, & excludeTags
     add 0b2326d701f SOLR-17066: Add 'defaultCollection' to SolrClients (#2066)
     add c89813a6756 SOLR-16949: Handle inputStream leaks
     add 602edbd7ce8 Copy the file from the "solrj" module (#2158)
     add 5e87f8ecef5 Update outdated link in PULL_REQUEST_TEMPLATE.md (#2163)
     add 5876c530c6e SOLR-17060 CoreContainer#create may deadlock with concurrent requests for metrics (#2101)
     add 65920af2055 Update outdated link in docker-networking.adoc (#2164)
     add e2bf1f434aa SOLR-17098: Only use ZK ACLs for default ZK Host
     add 17f8ee445e5 SOLR-17022: Support for glob patterns for fields in Export handler, Stream handler and with SelectStream streaming expression (#1996)
     add a04ec07eadf SOLR-17094: Close ObjectCache when closing CoreContainer (#2166)
     add afa6cfcdba1 SOLR-17108: Prometheus Exporter: do not throw NullPointerException. (#2057)
     add e9d0454e249 Update dependency com.fasterxml.jackson:jackson-bom to v2.16.1 (#2135)
     add 0589a9c063d Update org.slf4j:* to v2.0.10 (#2174)
     add c34570890ff Update dependency commons-cli:commons-cli to v1.6.0 (#2048)
     add d30cfc61ce3 Update io.netty:* to v4.1.104.Final (#2159)
     add 53eba0adb98 Update org.eclipse.jetty*:* to v10.0.19 (#2165)
     add 10bbabb473b SOLR-15960 Unified use of system properties and environment variables (#1935)
     add 8201bf81d79 SOLR-16203: Initialize schema plugins loaded by SPI name (#2175)
     add ad586a8b446 Add missing SOLR-17036 in CHANGES.txt
     add 91a19404fc9 SOLR-16397: Tweak v2 'MERGEINDEXES' API to be more REST-ful (#2128)
     add 1043632f56c SOLR-17066: Ensure default only applied to coll-aware requests (#2177)
     add a6b8fe43af4 Correct the log.error to include the file name instead of hard-coded … (#2186)
     add 421d17b24b8 Auto-label PRs with labeler action (#2180)
     add 81b81f0886b SOLR-16876: Remove extra /solr from calls that generates extra WARNING in logs (#1833)
     add ac1aae44bdd githubPRs script: Exclude solrbot and draft PRs (#2187)
     add 0b1d6649e09 Various asf.yaml updates (#2185)
     add 84c5eccc406 SOLR-15960: Move EnvUtils to Solrj common (#2192)
     add 4bf1917b068 ReleaseWizard commands to protect new minor branch (#2191)
     add 8e9c513f4a6 SOLR-17066: Switch HttpSolrClient away from core URLs, pt 1 (#2173)
     add 878c8984a25 Update copyright year in NOTICE.txt file. (#2170)
     add 556fbaaee40 add "test history where?" to dev-docs/FAQ.adoc (#2171)
     add 2fdaad770df Update org.mockito:mockito* from v5.5.0 to v5.8.0 (#2055)
     add b5db1791649 Build: validation.git.failOnModified default to isCIBuild (#2196)
     new cf26b6c1f45 Merge branch 'main' into jira/SOLR-16858
     add 16e4c239cc9 SOLR-16986: log cpuTime of requests (#2118)
     add 6a84361ea52 SOLR-16986: Test: Ignore; needs fix!
     add 1de6d081009 SOLR-17096: Cluster Singleton plugin support in solr.xml (#2126)
     add d7e53fefe39  SOLR-15960:  Fix EnvUtils.camelCaseToDotsMap thread-safety (#2204)
     add 0e8e4fefb13 SOLR-16986: precommit fixes
     add 16cb80a3f59 SOLR-17096: CHANGES.txt move to 9.5 Improvements
     add b8ddfef0849 DOAP changes for release 9.4.1
     add c0eee5950fb Add bugfix version 9.4.1
     add 51c8280cade Sync CHANGES for 9.4.1
     add 1624b4d7d2e SOLR-17121: Fix SchemaCodecFactory to get PostingsFormat and DocValues from field. (#2206)
     add 9246075c654 SOLR-17066: Replace 'data store' term in code and docs (#2201)
     add 2a85f47c209 SOLR-17116: Fix INSTALLSHARDDATA async reporting (#2188)
     add a5337ee3fb9 Give NPM registry option for downloading node tools (#2208)
     add 97192c90ebf Add npmRegistry for nodeSetup as well (#2208)
     add 750a409ab2c SOLR-15960: Rename getProp as getProperty (#2194)
     add a7441c175a4 SOLR-17074: Fixed not correctly escaped quote in bin/solr script (#2200)
     add 10268a3cfcb solr-ref-guide: fix typo in result-clustering.adoc (#2210)
     add 976ced1f407 SOLR-17089: Upgrade Jersey to 3.1.5 (#2178)
     add 9a874ec7689 Add next minor version 9.6.0
     add c2af5fa1a07 Fix nodeSetup, use node distBaseUrl instead of registry (#2208)
     add 23dd73877f4 SOLR-16397: Fix warning in merge-indices docs
     add 909de37a632 Final fix for node problems (#2208)
     add e2a333e3e1f SOLR-15960 Cut over System.getProperty() to EnvUtils for modules (#2193)
     add f8160ebdfa6 SOLR-17119: Fix exception swallowing in /cluster/plugins (#2202)
     add 571c8871278 SOLR-17120: handle null value when merging partials (#2214)
     add 06a3751c698 SOLR-16397: Tweak v2 'REQUESTSTATUS' API to be more REST-ful  (#2144)
     add 3cc92cf7fec Update protected-branches to include branch_9_5 (#2211)
     add f99935db824 SOLR-17112 - bin/solr script doesn't do ps properly on some systems (#2225)
     add 7c5bd4a1898 SOLR-17126: SOLR-15960: Changes entry for 9.6 and new JIRA number (#2216)
     add e53bf109ba2 Introduce stale bot for marking PRs stale after 60 days (#2184)
     add 0830423afd7 SOLR-15781: Document v2 API syntax conventions (#2219)
     new 68ec852ca80 Merge branch 'main' into jira/SOLR-16858
     new b22740f7797 Switch localparam name: fq -> preFilter
     new 0cbddc971e4 demonstrate post-filters are excluded from fq slurping
     new c398951f6ac Update ref-guide to explain knn pre-filtering and new localparams

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .asf.yaml                                          |  22 +-
 .github/PULL_REQUEST_TEMPLATE.md                   |   2 +-
 .github/labeler.yml                                | 172 +++++++++++++
 .github/workflows/labeler.yml                      |  13 +
 .github/workflows/stale.yml                        |  38 +++
 NOTICE.txt                                         |   2 +-
 dev-docs/FAQ.adoc                                  |   7 +
 dev-docs/apis.adoc                                 |  13 +-
 dev-docs/v2-api-conventions.adoc                   |  76 ++++++
 dev-tools/doap/solr.rdf                            |   7 +
 dev-tools/scripts/githubPRs.py                     |   6 +-
 dev-tools/scripts/releaseWizard.yaml               |  13 +-
 dev-tools/scripts/requirements.txt                 |   2 +-
 gradle/globals.gradle                              |   2 +-
 gradle/node.gradle                                 |  23 +-
 gradle/validation/git-status.gradle                |  14 +-
 help/localSettings.txt                             |  16 ++
 solr/CHANGES.txt                                   | 136 +++++++++-
 solr/api/build.gradle                              |   7 +-
 .../client/api/endpoint/AddReplicaPropertyApi.java |   6 +-
 .../client/api/endpoint/AliasPropertyApis.java     |  10 +-
 .../client/api/endpoint/BalanceReplicasApi.java    |   4 +-
 .../client/api/endpoint/BalanceShardUniqueApi.java |   6 +-
 .../client/api/endpoint/CollectionPropertyApi.java |   8 +-
 .../solr/client/api/endpoint/CoreSnapshotApi.java  |  12 +-
 .../client/api/endpoint/CreateCollectionApi.java   |   4 +-
 .../api/endpoint/CreateCollectionBackupApi.java    |   6 +-
 .../api/endpoint/CreateCollectionSnapshotApi.java  |   6 +-
 .../client/api/endpoint/CreateCoreBackupApi.java   |   6 +-
 .../solr/client/api/endpoint/CreateReplicaApi.java |   6 +-
 .../solr/client/api/endpoint/CreateShardApi.java   |   6 +-
 .../solr/client/api/endpoint/DeleteAliasApi.java   |   8 +-
 .../client/api/endpoint/DeleteCollectionApi.java   |   8 +-
 .../api/endpoint/DeleteCollectionBackupApi.java    |  10 +-
 .../api/endpoint/DeleteCollectionSnapshotApi.java  |  10 +-
 .../solr/client/api/endpoint/DeleteNodeApi.java    |   6 +-
 .../solr/client/api/endpoint/DeleteReplicaApi.java |  10 +-
 .../api/endpoint/DeleteReplicaPropertyApi.java     |   6 +-
 .../solr/client/api/endpoint/DeleteShardApi.java   |   8 +-
 .../solr/client/api/endpoint/ForceLeaderApi.java   |   6 +-
 .../api/endpoint/GetNodeCommandStatusApi.java      |  50 ++++
 .../solr/client/api/endpoint/GetPublicKeyApi.java  |   4 +-
 .../solr/client/api/endpoint/GetSchemaApi.java     |  12 +-
 .../client/api/endpoint/InstallCoreDataApi.java    |   6 +-
 .../client/api/endpoint/InstallShardDataApi.java   |   6 +-
 .../solr/client/api/endpoint/ListAliasesApi.java   |   6 +-
 .../api/endpoint/ListCollectionBackupsApi.java     |   8 +-
 .../client/api/endpoint/ListCollectionsApi.java    |   4 +-
 .../client/api/endpoint/ListConfigsetsApi.java     |   4 +-
 .../{ReloadCoreApi.java => MergeIndexesApi.java}   |  36 +--
 .../client/api/endpoint/MigrateReplicasApi.java    |   4 +-
 .../client/api/endpoint/ReloadCollectionApi.java   |   6 +-
 .../solr/client/api/endpoint/ReloadCoreApi.java    |   6 +-
 .../client/api/endpoint/RenameCollectionApi.java   |   6 +-
 .../solr/client/api/endpoint/RenameCoreApi.java    |   6 +-
 .../solr/client/api/endpoint/ReplaceNodeApi.java   |   6 +-
 .../solr/client/api/endpoint/RestoreCoreApi.java   |   6 +-
 .../apache/solr/client/api/endpoint/SelectApi.java |  12 +-
 .../solr/client/api/endpoint/SwapCoresApi.java     |   6 +-
 .../solr/client/api/endpoint/SyncShardApi.java     |   6 +-
 .../solr/client/api/endpoint/UnloadCoreApi.java    |   6 +-
 ...Type.java => GetNodeCommandStatusResponse.java} |  18 +-
 .../api/model/{StoreType.java => IndexType.java}   |   4 +-
 ...StoreType.java => MergeIndexesRequestBody.java} |  27 +-
 .../org/apache/solr/client/api/util/Constants.java |   8 +-
 .../solr/client/api/util/StoreApiParameters.java   |  12 +-
 solr/bin/solr                                      |  48 +---
 solr/bin/solr.cmd                                  |  10 +-
 solr/bin/solr.in.cmd                               |   5 +-
 solr/bin/solr.in.sh                                |   5 +-
 solr/core/build.gradle                             |  14 +-
 .../org/apache/solr/api/ClusterPluginsSource.java  |  83 ++++++
 .../apache/solr/api/ContainerPluginsRegistry.java  |  14 +-
 .../java/org/apache/solr/api/JerseyResource.java   |   4 +-
 .../solr/api/NodeConfigClusterPluginsSource.java   | 106 ++++++++
 .../apache/solr/api/ZkClusterPluginsSource.java    | 114 +++++++++
 .../core/src/java/org/apache/solr/cli/SolrCLI.java |  16 +-
 .../org/apache/solr/cloud/RecoveryStrategy.java    |  34 ++-
 .../api/collections/CollectionHandlingUtils.java   |   9 +-
 .../cloud/api/collections/InstallShardDataCmd.java |   2 +-
 .../api/collections/ReindexCollectionCmd.java      |  44 ++--
 .../impl/PlacementPluginFactoryLoader.java         |  42 +---
 .../java/org/apache/solr/core/CoreContainer.java   |  28 ++-
 .../solr/core/FileSystemConfigSetService.java      |   5 +-
 .../src/java/org/apache/solr/core/NodeConfig.java  |  44 ++--
 .../org/apache/solr/core/SchemaCodecFactory.java   |   4 +-
 .../src/java/org/apache/solr/core/SolrCore.java    |  17 +-
 .../java/org/apache/solr/core/SolrXmlConfig.java   |  68 ++++-
 .../org/apache/solr/core/TracerConfigurator.java   |   5 +-
 .../java/org/apache/solr/handler/IndexFetcher.java |  54 ++--
 .../apache/solr/handler/ReplicationHandler.java    |   4 +-
 .../apache/solr/handler/RequestHandlerBase.java    |  23 ++
 .../org/apache/solr/handler/SolrConfigHandler.java |  38 +--
 .../solr/handler/admin/ContainerPluginsApi.java    | 115 ++-------
 .../solr/handler/admin/CoreAdminHandler.java       |  10 +-
 .../solr/handler/admin/CoreAdminOperation.java     |  40 +--
 .../apache/solr/handler/admin/MergeIndexesOp.java  | 128 ++--------
 .../solr/handler/admin/ZookeeperReadAPI.java       |  14 +-
 .../solr/handler/admin/api/AddReplicaProperty.java |   2 +-
 .../solr/handler/admin/api/AliasProperty.java      |   2 +-
 .../solr/handler/admin/api/BalanceReplicas.java    |   2 +-
 .../solr/handler/admin/api/BalanceShardUnique.java |   2 +-
 .../solr/handler/admin/api/CoreReplicationAPI.java |  12 +-
 .../solr/handler/admin/api/CoreSnapshot.java       |   2 +-
 .../solr/handler/admin/api/CreateAliasAPI.java     |  10 +-
 .../solr/handler/admin/api/CreateCollection.java   |   2 +-
 .../handler/admin/api/CreateCollectionBackup.java  |   2 +-
 .../admin/api/CreateCollectionSnapshot.java        |   2 +-
 .../solr/handler/admin/api/CreateCoreBackup.java   |   2 +-
 .../solr/handler/admin/api/CreateReplica.java      |   2 +-
 .../apache/solr/handler/admin/api/CreateShard.java |   2 +-
 .../apache/solr/handler/admin/api/DeleteAlias.java |   2 +-
 .../solr/handler/admin/api/DeleteCollection.java   |   2 +-
 .../handler/admin/api/DeleteCollectionBackup.java  |   2 +-
 .../admin/api/DeleteCollectionSnapshot.java        |   2 +-
 .../apache/solr/handler/admin/api/DeleteNode.java  |   2 +-
 .../solr/handler/admin/api/DeleteReplica.java      |   2 +-
 .../handler/admin/api/DeleteReplicaProperty.java   |   2 +-
 .../apache/solr/handler/admin/api/DeleteShard.java |   2 +-
 .../apache/solr/handler/admin/api/ForceLeader.java |   2 +-
 .../handler/admin/api/GetNodeCommandStatus.java    |  75 ++++++
 .../apache/solr/handler/admin/api/GetSchema.java   |   2 +-
 .../solr/handler/admin/api/GetSchemaFieldAPI.java  |  12 +-
 .../solr/handler/admin/api/InstallShardData.java   |   2 +-
 .../apache/solr/handler/admin/api/ListAliases.java |   2 +-
 .../handler/admin/api/ListCollectionBackups.java   |   2 +-
 .../admin/api/ListCollectionSnapshotsAPI.java      |  10 +-
 .../solr/handler/admin/api/ListCollections.java    |   2 +-
 .../solr/handler/admin/api/MergeIndexes.java       | 211 ++++++++++++++++
 .../solr/handler/admin/api/MergeIndexesAPI.java    |  88 -------
 .../solr/handler/admin/api/MigrateReplicas.java    |   2 +-
 .../solr/handler/admin/api/NodeLoggingAPI.java     |  12 +-
 .../handler/admin/api/ReloadCollectionAPI.java     |   2 +-
 .../apache/solr/handler/admin/api/ReloadCore.java  |   2 +-
 .../solr/handler/admin/api/RenameCollection.java   |   2 +-
 .../apache/solr/handler/admin/api/RenameCore.java  |   2 +-
 .../apache/solr/handler/admin/api/ReplaceNode.java |   2 +-
 .../admin/api/RequestCoreCommandStatusAPI.java     |  62 -----
 .../handler/admin/api/RestoreCollectionAPI.java    |  10 +-
 .../apache/solr/handler/admin/api/RestoreCore.java |   2 +-
 .../solr/handler/admin/api/SnapshotBackupAPI.java  |  10 +-
 .../apache/solr/handler/admin/api/SwapCores.java   |   2 +-
 .../apache/solr/handler/admin/api/SyncShard.java   |   2 +-
 .../apache/solr/handler/admin/api/UnloadCore.java  |   2 +-
 .../solr/handler/admin/api/V2NodeLoggingAPI.java   |  10 +-
 .../handler/component/IterativeMergeStrategy.java  |  10 +-
 .../solr/handler/component/SearchHandler.java      |  33 +++
 .../solr/handler/configsets/ListConfigSets.java    |   6 +-
 .../apache/solr/handler/export/ExportWriter.java   |  77 +++---
 .../solr/jersey/APIConfigProviderBinder.java       |   2 +-
 .../solr/jersey/CatchAllExceptionMapper.java       |  14 +-
 .../org/apache/solr/jersey/InjectionFactories.java |   4 +-
 .../solr/jersey/MediaTypeOverridingFilter.java     |  15 +-
 .../org/apache/solr/jersey/MessageBodyReaders.java |  19 +-
 .../org/apache/solr/jersey/MessageBodyWriters.java |  16 +-
 .../solr/jersey/NotFoundExceptionMapper.java       |  12 +-
 .../solr/jersey/PostRequestDecorationFilter.java   |   8 +-
 .../solr/jersey/PostRequestLoggingFilter.java      |  16 +-
 .../org/apache/solr/jersey/RequestContextKeys.java |   4 +-
 .../apache/solr/jersey/RequestMetricHandling.java  |  12 +-
 .../org/apache/solr/jersey/SolrJacksonMapper.java  |   4 +-
 .../apache/solr/jersey/SolrRequestAuthorizer.java  |  12 +-
 .../jersey/container/ContainerRequestUtils.java    |   4 +-
 .../container/JettyBridgeResponseWriter.java       |   2 +-
 .../src/java/org/apache/solr/pkg/PackageAPI.java   |   4 +-
 .../java/org/apache/solr/schema/IndexSchema.java   |  77 +++++-
 .../org/apache/solr/schema/ManagedIndexSchema.java | 126 ++--------
 .../org/apache/solr/search/SolrReturnFields.java   |   5 +-
 .../solr/search/function/FileFloatSource.java      |   3 +-
 .../org/apache/solr/search/neural/KnnQParser.java  |  29 +--
 .../org/apache/solr/security/GetPublicKey.java     |   2 +-
 .../org/apache/solr/update/PeerSyncWithLeader.java |  10 +-
 .../apache/solr/update/StreamingSolrClients.java   |   7 +-
 .../src/java/org/apache/solr/update/UpdateLog.java |   9 +-
 .../org/apache/solr/util/FileTypeMagicUtil.java    |  93 ++++---
 .../src/java/org/apache/solr/util/ModuleUtils.java |  14 +-
 .../org/apache/solr/util/StartupLoggingUtils.java  |   3 +-
 .../src/java/org/apache/solr/util/ThreadStats.java |  94 +++++++
 .../circuitbreaker/CircuitBreakerRegistry.java     |   5 +-
 .../src/resources/EnvToSyspropMappings.properties  |  97 ++++++++
 .../collection1/conf/schema_postingsformat.xml     |   6 +-
 solr/core/src/test-files/solr/solr-50-all.xml      |   3 +
 .../test/org/apache/solr/TestCpuTimeSearch.java    | 124 +++++++++
 .../org/apache/solr/api/JerseyResourceTest.java    |   2 +-
 .../api/NodeConfigClusterPluginsSourceTest.java    | 219 ++++++++++++++++
 .../impl/NodeConfigPlacementPluginTest.java        |  63 +++++
 .../impl/PlacementPluginIntegrationTest.java       |  19 --
 .../solr/core/ConfigureRecoveryStrategyTest.java   |   4 +-
 .../test/org/apache/solr/core/SolrCoreTest.java    |  60 +++++
 .../src/test/org/apache/solr/core/TestSolrXml.java | 126 +++++++++-
 .../apache/solr/handler/TestContainerPlugin.java   |  46 ++++
 .../solr/handler/admin/MetricsHandlerTest.java     |   4 +
 .../admin/api/GetNodeCommandStatusTest.java        |  94 +++++++
 .../solr/handler/admin/api/MergeIndexesTest.java   | 115 +++++++++
 .../solr/handler/admin/api/NodeLoggingAPITest.java |  69 ++---
 .../handler/admin/api/SnapshotBackupAPITest.java   |  97 +++-----
 .../handler/admin/api/V2CoreAPIMappingTest.java    |  40 ---
 .../handler/configsets/ListConfigSetsAPITest.java  |  77 +-----
 .../solr/handler/export/TestExportWriter.java      |  37 +++
 .../solr/jersey/PostRequestLoggingFilterTest.java  |   6 +-
 .../solr/schema/ResolveAnalyzerByNameTest.java     |  10 +
 .../org/apache/solr/schema/TestSchemaField.java    |  30 ++-
 .../org/apache/solr/search/QueryEqualityTest.java  |  36 ++-
 .../apache/solr/search/neural/KnnQParserTest.java  |  55 ++--
 .../apache/solr/update/SolrCmdDistributorTest.java |  27 +-
 .../apache/solr/util/FileTypeMagicUtilTest.java    |  58 ++---
 .../licenses/aopalliance-repackaged-2.6.1.jar.sha1 |   1 -
 .../licenses/aopalliance-repackaged-3.0.5.jar.sha1 |   1 +
 solr/licenses/bcutil-jdk18on-NOTICE.txt            |   2 -
 solr/licenses/byte-buddy-1.14.10.jar.sha1          |   1 +
 solr/licenses/byte-buddy-1.14.6.jar.sha1           |   1 -
 solr/licenses/commons-cli-1.5.0.jar.sha1           |   1 -
 solr/licenses/commons-cli-1.6.0.jar.sha1           |   1 +
 solr/licenses/grizzly-framework-2.4.4.jar.sha1     |   1 -
 solr/licenses/grizzly-framework-LICENSE-EPL.txt    | 277 ---------------------
 solr/licenses/grizzly-http-2.4.4.jar.sha1          |   1 -
 solr/licenses/grizzly-http-LICENSE-EPL.txt         | 277 ---------------------
 solr/licenses/grizzly-http-server-2.4.4.jar.sha1   |   1 -
 solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1  |   1 -
 solr/licenses/hk2-api-2.6.1.jar.sha1               |   1 -
 solr/licenses/hk2-api-3.0.5.jar.sha1               |   1 +
 solr/licenses/hk2-locator-2.6.1.jar.sha1           |   1 -
 solr/licenses/hk2-locator-3.0.5.jar.sha1           |   1 +
 solr/licenses/hk2-utils-2.6.1.jar.sha1             |   1 -
 solr/licenses/hk2-utils-3.0.5.jar.sha1             |   1 +
 solr/licenses/http2-client-10.0.18.jar.sha1        |   1 -
 solr/licenses/http2-client-10.0.19.jar.sha1        |   1 +
 solr/licenses/http2-common-10.0.18.jar.sha1        |   1 -
 solr/licenses/http2-common-10.0.19.jar.sha1        |   1 +
 solr/licenses/http2-hpack-10.0.18.jar.sha1         |   1 -
 solr/licenses/http2-hpack-10.0.19.jar.sha1         |   1 +
 .../http2-http-client-transport-10.0.18.jar.sha1   |   1 -
 .../http2-http-client-transport-10.0.19.jar.sha1   |   1 +
 solr/licenses/http2-server-10.0.18.jar.sha1        |   1 -
 solr/licenses/http2-server-10.0.19.jar.sha1        |   1 +
 solr/licenses/jackson-annotations-2.15.3.jar.sha1  |   1 -
 solr/licenses/jackson-annotations-2.16.1.jar.sha1  |   1 +
 solr/licenses/jackson-core-2.15.3.jar.sha1         |   1 -
 solr/licenses/jackson-core-2.16.1.jar.sha1         |   1 +
 solr/licenses/jackson-databind-2.15.3.jar.sha1     |   1 -
 solr/licenses/jackson-databind-2.16.1.jar.sha1     |   1 +
 .../jackson-dataformat-cbor-2.15.3.jar.sha1        |   1 -
 .../jackson-dataformat-cbor-2.16.1.jar.sha1        |   1 +
 .../jackson-dataformat-smile-2.15.3.jar.sha1       |   1 -
 .../jackson-dataformat-smile-2.16.1.jar.sha1       |   1 +
 .../jackson-dataformat-xml-2.15.3.jar.sha1         |   1 -
 .../jackson-dataformat-xml-2.16.1.jar.sha1         |   1 +
 .../licenses/jackson-datatype-jdk8-2.15.3.jar.sha1 |   1 -
 .../licenses/jackson-datatype-jdk8-2.16.1.jar.sha1 |   1 +
 .../jackson-datatype-jsr310-2.15.3.jar.sha1        |   1 -
 .../jackson-datatype-jsr310-2.16.1.jar.sha1        |   1 +
 ...ule-jakarta-xmlbind-annotations-2.16.1.jar.sha1 |   1 +
 ...jackson-module-jaxb-annotations-2.15.3.jar.sha1 |   1 -
 .../licenses/jackson-module-kotlin-2.15.3.jar.sha1 |   1 -
 .../licenses/jackson-module-kotlin-2.16.1.jar.sha1 |   1 +
 .../jackson-module-parameter-names-2.15.3.jar.sha1 |   1 -
 .../jackson-module-parameter-names-2.16.1.jar.sha1 |   1 +
 .../licenses/jakarta.annotation-api-1.3.5.jar.sha1 |   1 -
 .../licenses/jakarta.annotation-api-2.1.1.jar.sha1 |   1 +
 solr/licenses/jakarta.inject-api-2.0.1.jar.sha1    |   1 +
 .../licenses/jakarta.validation-api-2.0.2.jar.sha1 |   1 -
 .../licenses/jakarta.validation-api-3.0.2.jar.sha1 |   1 +
 solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1     |   1 -
 solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1     |   1 +
 solr/licenses/javassist-3.29.0-GA.jar.sha1         |   1 -
 solr/licenses/javassist-3.29.2-GA.jar.sha1         |   1 +
 solr/licenses/jcl-over-slf4j-2.0.10.jar.sha1       |   1 +
 solr/licenses/jcl-over-slf4j-2.0.9.jar.sha1        |   1 -
 solr/licenses/jersey-client-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-client-3.1.5.jar.sha1         |   1 +
 solr/licenses/jersey-common-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-common-3.1.5.jar.sha1         |   1 +
 .../jersey-container-grizzly2-http-2.39.1.jar.sha1 |   1 -
 ...rsey-container-grizzly2-servlet-2.39.1.jar.sha1 |   1 -
 .../jersey-container-servlet-2.39.1.jar.sha1       |   1 -
 .../jersey-container-servlet-core-2.39.1.jar.sha1  |   1 -
 .../jersey-entity-filtering-2.39.1.jar.sha1        |   1 -
 .../jersey-entity-filtering-3.1.5.jar.sha1         |   1 +
 solr/licenses/jersey-hk2-2.39.1.jar.sha1           |   1 -
 solr/licenses/jersey-hk2-3.1.5.jar.sha1            |   1 +
 solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1    |   1 -
 .../jersey-media-json-jackson-2.39.1.jar.sha1      |   1 -
 .../jersey-media-json-jackson-3.1.5.jar.sha1       |   1 +
 solr/licenses/jersey-server-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-server-3.1.5.jar.sha1         |   1 +
 .../jersey-test-framework-core-2.39.1.jar.sha1     |   1 -
 ...est-framework-provider-grizzly2-2.39.1.jar.sha1 |   1 -
 solr/licenses/jetty-alpn-client-10.0.18.jar.sha1   |   1 -
 solr/licenses/jetty-alpn-client-10.0.19.jar.sha1   |   1 +
 .../jetty-alpn-java-client-10.0.18.jar.sha1        |   1 -
 .../jetty-alpn-java-client-10.0.19.jar.sha1        |   1 +
 .../jetty-alpn-java-server-10.0.18.jar.sha1        |   1 -
 .../jetty-alpn-java-server-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-alpn-server-10.0.18.jar.sha1   |   1 -
 solr/licenses/jetty-alpn-server-10.0.19.jar.sha1   |   1 +
 solr/licenses/jetty-client-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-client-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-deploy-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-deploy-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-http-10.0.18.jar.sha1          |   1 -
 solr/licenses/jetty-http-10.0.19.jar.sha1          |   1 +
 solr/licenses/jetty-io-10.0.18.jar.sha1            |   1 -
 solr/licenses/jetty-io-10.0.19.jar.sha1            |   1 +
 solr/licenses/jetty-jmx-10.0.18.jar.sha1           |   1 -
 solr/licenses/jetty-jmx-10.0.19.jar.sha1           |   1 +
 solr/licenses/jetty-rewrite-10.0.18.jar.sha1       |   1 -
 solr/licenses/jetty-rewrite-10.0.19.jar.sha1       |   1 +
 solr/licenses/jetty-security-10.0.18.jar.sha1      |   1 -
 solr/licenses/jetty-security-10.0.19.jar.sha1      |   1 +
 solr/licenses/jetty-server-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-server-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-servlet-10.0.18.jar.sha1       |   1 -
 solr/licenses/jetty-servlet-10.0.19.jar.sha1       |   1 +
 solr/licenses/jetty-servlets-10.0.18.jar.sha1      |   1 -
 solr/licenses/jetty-servlets-10.0.19.jar.sha1      |   1 +
 solr/licenses/jetty-start-10.0.18-shaded.jar.sha1  |   1 -
 solr/licenses/jetty-start-10.0.19-shaded.jar.sha1  |   1 +
 solr/licenses/jetty-util-10.0.18.jar.sha1          |   1 -
 solr/licenses/jetty-util-10.0.19.jar.sha1          |   1 +
 solr/licenses/jetty-webapp-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-webapp-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-xml-10.0.18.jar.sha1           |   1 -
 solr/licenses/jetty-xml-10.0.19.jar.sha1           |   1 +
 solr/licenses/jul-to-slf4j-2.0.10.jar.sha1         |   1 +
 solr/licenses/jul-to-slf4j-2.0.9.jar.sha1          |   1 -
 solr/licenses/junit-jupiter-5.9.1.jar.sha1         |   1 -
 solr/licenses/junit-jupiter-api-5.9.1.jar.sha1     |   1 -
 solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1  |   1 -
 solr/licenses/junit-jupiter-params-5.9.1.jar.sha1  |   1 -
 .../licenses/junit-platform-commons-1.9.1.jar.sha1 |   1 -
 solr/licenses/junit-platform-engine-1.9.1.jar.sha1 |   1 -
 solr/licenses/mockito-core-5.5.0.jar.sha1          |   1 -
 solr/licenses/mockito-core-5.8.0.jar.sha1          |   1 +
 ....0.jar.sha1 => mockito-subclass-5.8.0.jar.sha1} |   0
 solr/licenses/netty-buffer-4.1.101.Final.jar.sha1  |   1 -
 solr/licenses/netty-buffer-4.1.104.Final.jar.sha1  |   1 +
 solr/licenses/netty-codec-4.1.101.Final.jar.sha1   |   1 -
 solr/licenses/netty-codec-4.1.104.Final.jar.sha1   |   1 +
 .../netty-codec-http-4.1.101.Final.jar.sha1        |   1 -
 .../netty-codec-http-4.1.104.Final.jar.sha1        |   1 +
 .../netty-codec-http2-4.1.101.Final.jar.sha1       |   1 -
 .../netty-codec-http2-4.1.104.Final.jar.sha1       |   1 +
 .../netty-codec-socks-4.1.101.Final.jar.sha1       |   1 -
 .../netty-codec-socks-4.1.104.Final.jar.sha1       |   1 +
 solr/licenses/netty-common-4.1.101.Final.jar.sha1  |   1 -
 solr/licenses/netty-common-4.1.104.Final.jar.sha1  |   1 +
 solr/licenses/netty-handler-4.1.101.Final.jar.sha1 |   1 -
 solr/licenses/netty-handler-4.1.104.Final.jar.sha1 |   1 +
 .../netty-handler-proxy-4.1.101.Final.jar.sha1     |   1 -
 .../netty-handler-proxy-4.1.104.Final.jar.sha1     |   1 +
 .../licenses/netty-resolver-4.1.101.Final.jar.sha1 |   1 -
 .../licenses/netty-resolver-4.1.104.Final.jar.sha1 |   1 +
 .../netty-transport-4.1.101.Final.jar.sha1         |   1 -
 .../netty-transport-4.1.104.Final.jar.sha1         |   1 +
 ...-transport-classes-epoll-4.1.101.Final.jar.sha1 |   1 -
 ...-transport-classes-epoll-4.1.104.Final.jar.sha1 |   1 +
 ...ative-epoll-4.1.101.Final-linux-x86_64.jar.sha1 |   1 -
 ...ative-epoll-4.1.104.Final-linux-x86_64.jar.sha1 |   1 +
 ...sport-native-unix-common-4.1.101.Final.jar.sha1 |   1 -
 ...sport-native-unix-common-4.1.104.Final.jar.sha1 |   1 +
 solr/licenses/opentest4j-1.2.0.jar.sha1            |   1 -
 solr/licenses/opentest4j-LICENSE-ASL.txt           | 201 ---------------
 solr/licenses/opentest4j-NOTICE.txt                |  13 -
 solr/licenses/slf4j-api-2.0.10.jar.sha1            |   1 +
 solr/licenses/slf4j-api-2.0.9.jar.sha1             |   1 -
 solr/licenses/swagger-annotations-2.2.17.jar.sha1  |   1 -
 .../swagger-annotations-jakarta-2.2.17.jar.sha1    |   1 +
 .../extraction/ExtractingRequestHandlerTest.java   |   3 +-
 .../solr/security/hadoop/HadoopAuthPlugin.java     |   3 +-
 .../solr/security/hadoop/KerberosPlugin.java       |  33 +--
 .../hadoop/HadoopSSLCredentialProvider.java        |   5 +-
 .../client/solrj/impl/Krb5HttpClientUtils.java     |   3 +-
 .../solr/security/hadoop/HadoopTestUtil.java       |   3 +-
 .../solr/security/hadoop/ImpersonationUtil.java    |   3 +-
 .../solr/security/hadoop/KerberosTestServices.java |   3 +-
 .../hadoop/TestImpersonationWithHadoopAuth.java    |   3 +-
 .../TestSolrCloudWithSecureImpersonation.java      |   6 +-
 .../configuration/HadoopSSLConfigurationsTest.java |   5 +-
 .../org/apache/solr/hdfs/HdfsDirectoryFactory.java |   9 +-
 .../org/apache/solr/hdfs/index/CheckHdfsIndex.java |   3 +-
 .../org/apache/hadoop/fs/RawLocalFileSystem.java   |   5 +-
 .../test/org/apache/hadoop/util/PlatformName.java  |  11 +-
 .../apache/solr/hdfs/HdfsDirectoryFactoryTest.java |   3 +-
 .../org/apache/solr/hdfs/cloud/HdfsTestUtil.java   |  16 +-
 .../apache/solr/security/jwt/JWTIssuerConfig.java  |   3 +-
 .../solr/security/jwt/JWTAuthPluginTest.java       |   3 +-
 .../algorithms/TeamDraftInterleaving.java          |   3 +-
 .../solr/opentelemetry/OtelTracerConfigurator.java |  17 +-
 .../CustomTestOtelTracerConfigurator.java          |   3 +-
 .../opentelemetry/OtelTracerConfiguratorTest.java  |   3 +-
 .../apache/solr/s3/S3BackupRepositoryConfig.java   |  15 +-
 solr/packaging/test/test_auth.bats                 |  14 ++
 .../solr/prometheus/scraper/SolrScraper.java       |  10 +-
 .../configuration-guide/pages/cluster-plugins.adoc |   4 +-
 .../pages/configuring-solr-xml.adoc                |  19 ++
 .../configuration-guide/pages/coreadmin-api.adoc   |  74 +++++-
 .../pages/property-substitution.adoc               |   6 +-
 .../deployment-guide/pages/docker-networking.adoc  |   2 +-
 .../pages/jwt-authentication-plugin.adoc           |   2 +-
 .../pages/solr-control-script-reference.adoc       |   8 +-
 .../getting-started/pages/solr-glossary.adoc       |   3 +-
 .../query-guide/pages/dense-vector-search.adoc     | 114 +++++++--
 .../query-guide/pages/exporting-result-sets.adoc   |   5 +-
 .../query-guide/pages/result-clustering.adoc       |   2 +-
 .../pages/stream-decorator-reference.adoc          |   3 +-
 .../query-guide/pages/stream-source-reference.adoc |   3 +
 .../pages/major-changes-in-solr-9.adoc             |   3 +
 .../solr/client/solrj/io/SolrClientCache.java      |  45 +++-
 .../solr/client/solrj/io/stream/SelectStream.java  |  30 ++-
 .../src/test-files/log4j2.xml                      |   0
 .../solr/client/solrj/io/SolrClientCacheTest.java  |  77 ++++++
 .../io/stream/StreamExpressionToExpessionTest.java |   3 +-
 .../solrj/impl/ZkClientClusterStateProvider.java   |  11 +-
 .../org/apache/solr/common/cloud/SolrZkClient.java |  24 +-
 .../apache/solr/common/cloud/ZkStateReader.java    |  15 +-
 .../org/apache/solr/client/solrj/SolrClient.java   |  10 +
 .../org/apache/solr/client/solrj/SolrRequest.java  |  13 +
 .../solrj/impl/BaseHttpClusterStateProvider.java   |   1 +
 .../client/solrj/impl/CloudHttp2SolrClient.java    |  14 +-
 .../client/solrj/impl/CloudLegacySolrClient.java   |  17 +-
 .../solr/client/solrj/impl/CloudSolrClient.java    |   6 -
 .../client/solrj/impl/ClusterStateProvider.java    |   6 +-
 .../impl/ConcurrentUpdateHttp2SolrClient.java      |  11 +
 .../solrj/impl/ConcurrentUpdateSolrClient.java     |   3 +
 .../solr/client/solrj/impl/Http2SolrClient.java    |  11 +-
 .../solr/client/solrj/impl/HttpSolrClient.java     |   6 +-
 .../solr/client/solrj/impl/LBHttp2SolrClient.java  |  21 +-
 .../solr/client/solrj/impl/LBHttpSolrClient.java   |   4 +
 .../solr/client/solrj/impl/LBSolrClient.java       |   3 +
 .../solr/client/solrj/impl/SolrClientBuilder.java  |   7 +
 .../solrj/request/AbstractUpdateRequest.java       |   3 +-
 .../request/CollectionRequiringSolrRequest.java}   |  20 +-
 .../client/solrj/request/DirectXmlRequest.java     |   4 +-
 .../solrj/request/DocumentAnalysisRequest.java     |   4 +-
 .../client/solrj/request/FieldAnalysisRequest.java |   3 +-
 .../solr/client/solrj/request/LukeRequest.java     |   3 +-
 .../solr/client/solrj/request/QueryRequest.java    |   3 +-
 .../apache/solr/client/solrj/request/SolrPing.java |   3 +-
 .../request/schema/AbstractSchemaRequest.java      |   5 +-
 .../apache/solr/client/solrj/util/ClientUtils.java |  14 ++
 .../java/org/apache/solr/common/util/EnvUtils.java | 271 ++++++++++++++++++++
 .../util/{URLUtil.java => GlobPatternUtil.java}    |  45 ++--
 .../apache/solr/common/util/PropertiesUtil.java    |   2 +-
 .../java/org/apache/solr/common/util/URLUtil.java  |  37 +++
 solr/solrj/src/test-files/solrj/solr/solr.xml      |   3 +
 .../impl/CloudHttp2SolrClientBuilderTest.java      |  11 +
 .../solrj/impl/CloudSolrClientBuilderTest.java     |  10 +
 .../ConcurrentUpdateSolrClientBuilderTest.java     |  11 +
 .../solrj/impl/HttpSolrClientBuilderTest.java      |   9 +
 .../solrj/impl/LBHttpSolrClientBuilderTest.java    |  11 +
 .../solrj/response/TestSuggesterResponse.java      |   3 +-
 .../solr/client/solrj/util/ClientUtilsTest.java    |  19 ++
 .../org/apache/solr/common/util/EnvUtilsTest.java  | 120 +++++++++
 .../{URLUtilTest.java => TestGlobPatternUtil.java} |  22 +-
 .../org/apache/solr/common/util/URLUtilTest.java   |  63 +++++
 .../apache/solr/BaseDistributedSearchTestCase.java |  11 +-
 .../src/java/org/apache/solr/SolrTestCase.java     |   3 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |   8 +
 .../java/org/apache/solr/cloud/ConfigRequest.java  |   3 +-
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |   1 +
 .../api/collections/AbstractInstallShardTest.java  |  45 +++-
 versions.lock                                      | 169 ++++++-------
 versions.props                                     |  20 +-
 463 files changed, 4935 insertions(+), 2735 deletions(-)
 create mode 100644 .github/labeler.yml
 create mode 100644 .github/workflows/labeler.yml
 create mode 100644 .github/workflows/stale.yml
 create mode 100644 dev-docs/v2-api-conventions.adoc
 create mode 100644 solr/api/src/java/org/apache/solr/client/api/endpoint/GetNodeCommandStatusApi.java
 copy solr/api/src/java/org/apache/solr/client/api/endpoint/{ReloadCoreApi.java => MergeIndexesApi.java} (56%)
 copy solr/api/src/java/org/apache/solr/client/api/model/{StoreType.java => GetNodeCommandStatusResponse.java} (77%)
 copy solr/api/src/java/org/apache/solr/client/api/model/{StoreType.java => IndexType.java} (94%)
 copy solr/api/src/java/org/apache/solr/client/api/model/{StoreType.java => MergeIndexesRequestBody.java} (53%)
 create mode 100644 solr/core/src/java/org/apache/solr/api/ClusterPluginsSource.java
 create mode 100644 solr/core/src/java/org/apache/solr/api/NodeConfigClusterPluginsSource.java
 create mode 100644 solr/core/src/java/org/apache/solr/api/ZkClusterPluginsSource.java
 create mode 100644 solr/core/src/java/org/apache/solr/handler/admin/api/GetNodeCommandStatus.java
 create mode 100644 solr/core/src/java/org/apache/solr/handler/admin/api/MergeIndexes.java
 delete mode 100644 solr/core/src/java/org/apache/solr/handler/admin/api/MergeIndexesAPI.java
 delete mode 100644 solr/core/src/java/org/apache/solr/handler/admin/api/RequestCoreCommandStatusAPI.java
 create mode 100644 solr/core/src/java/org/apache/solr/util/ThreadStats.java
 create mode 100644 solr/core/src/resources/EnvToSyspropMappings.properties
 create mode 100644 solr/core/src/test/org/apache/solr/TestCpuTimeSearch.java
 create mode 100644 solr/core/src/test/org/apache/solr/api/NodeConfigClusterPluginsSourceTest.java
 create mode 100644 solr/core/src/test/org/apache/solr/cluster/placement/impl/NodeConfigPlacementPluginTest.java
 create mode 100644 solr/core/src/test/org/apache/solr/handler/admin/api/GetNodeCommandStatusTest.java
 create mode 100644 solr/core/src/test/org/apache/solr/handler/admin/api/MergeIndexesTest.java
 delete mode 100644 solr/licenses/aopalliance-repackaged-2.6.1.jar.sha1
 create mode 100644 solr/licenses/aopalliance-repackaged-3.0.5.jar.sha1
 delete mode 100644 solr/licenses/bcutil-jdk18on-NOTICE.txt
 create mode 100644 solr/licenses/byte-buddy-1.14.10.jar.sha1
 delete mode 100644 solr/licenses/byte-buddy-1.14.6.jar.sha1
 delete mode 100644 solr/licenses/commons-cli-1.5.0.jar.sha1
 create mode 100644 solr/licenses/commons-cli-1.6.0.jar.sha1
 delete mode 100644 solr/licenses/grizzly-framework-2.4.4.jar.sha1
 delete mode 100644 solr/licenses/grizzly-framework-LICENSE-EPL.txt
 delete mode 100644 solr/licenses/grizzly-http-2.4.4.jar.sha1
 delete mode 100644 solr/licenses/grizzly-http-LICENSE-EPL.txt
 delete mode 100644 solr/licenses/grizzly-http-server-2.4.4.jar.sha1
 delete mode 100644 solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1
 delete mode 100644 solr/licenses/hk2-api-2.6.1.jar.sha1
 create mode 100644 solr/licenses/hk2-api-3.0.5.jar.sha1
 delete mode 100644 solr/licenses/hk2-locator-2.6.1.jar.sha1
 create mode 100644 solr/licenses/hk2-locator-3.0.5.jar.sha1
 delete mode 100644 solr/licenses/hk2-utils-2.6.1.jar.sha1
 create mode 100644 solr/licenses/hk2-utils-3.0.5.jar.sha1
 delete mode 100644 solr/licenses/http2-client-10.0.18.jar.sha1
 create mode 100644 solr/licenses/http2-client-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/http2-common-10.0.18.jar.sha1
 create mode 100644 solr/licenses/http2-common-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/http2-hpack-10.0.18.jar.sha1
 create mode 100644 solr/licenses/http2-hpack-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/http2-http-client-transport-10.0.18.jar.sha1
 create mode 100644 solr/licenses/http2-http-client-transport-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/http2-server-10.0.18.jar.sha1
 create mode 100644 solr/licenses/http2-server-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jackson-annotations-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-annotations-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-core-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-core-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-databind-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-databind-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-dataformat-cbor-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-dataformat-cbor-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-dataformat-smile-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-dataformat-smile-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-dataformat-xml-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-dataformat-xml-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-datatype-jdk8-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-datatype-jdk8-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-datatype-jsr310-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-datatype-jsr310-2.16.1.jar.sha1
 create mode 100644 solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-module-jaxb-annotations-2.15.3.jar.sha1
 delete mode 100644 solr/licenses/jackson-module-kotlin-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-module-kotlin-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jackson-module-parameter-names-2.15.3.jar.sha1
 create mode 100644 solr/licenses/jackson-module-parameter-names-2.16.1.jar.sha1
 delete mode 100644 solr/licenses/jakarta.annotation-api-1.3.5.jar.sha1
 create mode 100644 solr/licenses/jakarta.annotation-api-2.1.1.jar.sha1
 create mode 100644 solr/licenses/jakarta.inject-api-2.0.1.jar.sha1
 delete mode 100644 solr/licenses/jakarta.validation-api-2.0.2.jar.sha1
 create mode 100644 solr/licenses/jakarta.validation-api-3.0.2.jar.sha1
 delete mode 100644 solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1
 create mode 100644 solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1
 delete mode 100644 solr/licenses/javassist-3.29.0-GA.jar.sha1
 create mode 100644 solr/licenses/javassist-3.29.2-GA.jar.sha1
 create mode 100644 solr/licenses/jcl-over-slf4j-2.0.10.jar.sha1
 delete mode 100644 solr/licenses/jcl-over-slf4j-2.0.9.jar.sha1
 delete mode 100644 solr/licenses/jersey-client-2.39.1.jar.sha1
 create mode 100644 solr/licenses/jersey-client-3.1.5.jar.sha1
 delete mode 100644 solr/licenses/jersey-common-2.39.1.jar.sha1
 create mode 100644 solr/licenses/jersey-common-3.1.5.jar.sha1
 delete mode 100644 solr/licenses/jersey-container-grizzly2-http-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jersey-container-grizzly2-servlet-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jersey-container-servlet-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jersey-container-servlet-core-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jersey-entity-filtering-2.39.1.jar.sha1
 create mode 100644 solr/licenses/jersey-entity-filtering-3.1.5.jar.sha1
 delete mode 100644 solr/licenses/jersey-hk2-2.39.1.jar.sha1
 create mode 100644 solr/licenses/jersey-hk2-3.1.5.jar.sha1
 delete mode 100644 solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jersey-media-json-jackson-2.39.1.jar.sha1
 create mode 100644 solr/licenses/jersey-media-json-jackson-3.1.5.jar.sha1
 delete mode 100644 solr/licenses/jersey-server-2.39.1.jar.sha1
 create mode 100644 solr/licenses/jersey-server-3.1.5.jar.sha1
 delete mode 100644 solr/licenses/jersey-test-framework-core-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jersey-test-framework-provider-grizzly2-2.39.1.jar.sha1
 delete mode 100644 solr/licenses/jetty-alpn-client-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-alpn-client-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-alpn-java-client-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-alpn-java-client-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-alpn-java-server-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-alpn-java-server-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-alpn-server-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-alpn-server-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-client-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-client-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-deploy-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-deploy-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-http-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-http-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-io-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-io-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-jmx-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-jmx-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-rewrite-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-rewrite-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-security-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-security-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-server-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-server-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-servlet-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-servlet-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-servlets-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-servlets-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-start-10.0.18-shaded.jar.sha1
 create mode 100644 solr/licenses/jetty-start-10.0.19-shaded.jar.sha1
 delete mode 100644 solr/licenses/jetty-util-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-util-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-webapp-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-webapp-10.0.19.jar.sha1
 delete mode 100644 solr/licenses/jetty-xml-10.0.18.jar.sha1
 create mode 100644 solr/licenses/jetty-xml-10.0.19.jar.sha1
 create mode 100644 solr/licenses/jul-to-slf4j-2.0.10.jar.sha1
 delete mode 100644 solr/licenses/jul-to-slf4j-2.0.9.jar.sha1
 delete mode 100644 solr/licenses/junit-jupiter-5.9.1.jar.sha1
 delete mode 100644 solr/licenses/junit-jupiter-api-5.9.1.jar.sha1
 delete mode 100644 solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1
 delete mode 100644 solr/licenses/junit-jupiter-params-5.9.1.jar.sha1
 delete mode 100644 solr/licenses/junit-platform-commons-1.9.1.jar.sha1
 delete mode 100644 solr/licenses/junit-platform-engine-1.9.1.jar.sha1
 delete mode 100644 solr/licenses/mockito-core-5.5.0.jar.sha1
 create mode 100644 solr/licenses/mockito-core-5.8.0.jar.sha1
 rename solr/licenses/{mockito-subclass-5.5.0.jar.sha1 => mockito-subclass-5.8.0.jar.sha1} (100%)
 delete mode 100644 solr/licenses/netty-buffer-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-buffer-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-codec-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-codec-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-codec-http-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-codec-http-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-codec-http2-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-codec-http2-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-codec-socks-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-codec-socks-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-common-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-common-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-handler-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-handler-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-handler-proxy-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-handler-proxy-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-resolver-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-resolver-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-transport-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-transport-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-transport-classes-epoll-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-transport-classes-epoll-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/netty-transport-native-epoll-4.1.101.Final-linux-x86_64.jar.sha1
 create mode 100644 solr/licenses/netty-transport-native-epoll-4.1.104.Final-linux-x86_64.jar.sha1
 delete mode 100644 solr/licenses/netty-transport-native-unix-common-4.1.101.Final.jar.sha1
 create mode 100644 solr/licenses/netty-transport-native-unix-common-4.1.104.Final.jar.sha1
 delete mode 100644 solr/licenses/opentest4j-1.2.0.jar.sha1
 delete mode 100644 solr/licenses/opentest4j-LICENSE-ASL.txt
 delete mode 100644 solr/licenses/opentest4j-NOTICE.txt
 create mode 100644 solr/licenses/slf4j-api-2.0.10.jar.sha1
 delete mode 100644 solr/licenses/slf4j-api-2.0.9.jar.sha1
 delete mode 100644 solr/licenses/swagger-annotations-2.2.17.jar.sha1
 create mode 100644 solr/licenses/swagger-annotations-jakarta-2.2.17.jar.sha1
 copy solr/{modules/analysis-extras => solrj-streaming}/src/test-files/log4j2.xml (100%)
 create mode 100644 solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/SolrClientCacheTest.java
 rename solr/{api/src/java/org/apache/solr/client/api/model/StoreType.java => solrj/src/java/org/apache/solr/client/solrj/request/CollectionRequiringSolrRequest.java} (63%)
 create mode 100644 solr/solrj/src/java/org/apache/solr/common/util/EnvUtils.java
 copy solr/solrj/src/java/org/apache/solr/common/util/{URLUtil.java => GlobPatternUtil.java} (51%)
 create mode 100644 solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
 copy solr/solrj/src/test/org/apache/solr/common/util/{URLUtilTest.java => TestGlobPatternUtil.java} (60%)


(solr) 02/05: Merge branch 'main' into jira/SOLR-16858

Posted by ho...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch jira/SOLR-16858
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 68ec852ca80a38d08fc22e4a7253e309f2388aa9
Merge: cf26b6c1f45 0830423afd7
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Mon Jan 29 14:39:07 2024 -0700

    Merge branch 'main' into jira/SOLR-16858

 .asf.yaml                                          |   3 +-
 .github/workflows/stale.yml                        |  38 +++
 dev-docs/apis.adoc                                 |  13 +-
 dev-docs/v2-api-conventions.adoc                   |  76 ++++++
 dev-tools/doap/solr.rdf                            |   7 +
 gradle/node.gradle                                 |  23 +-
 help/localSettings.txt                             |  16 ++
 solr/CHANGES.txt                                   | 128 ++++++++--
 solr/api/build.gradle                              |   7 +-
 .../client/api/endpoint/AddReplicaPropertyApi.java |   6 +-
 .../client/api/endpoint/AliasPropertyApis.java     |  10 +-
 .../client/api/endpoint/BalanceReplicasApi.java    |   4 +-
 .../client/api/endpoint/BalanceShardUniqueApi.java |   6 +-
 .../client/api/endpoint/CollectionPropertyApi.java |   8 +-
 .../solr/client/api/endpoint/CoreSnapshotApi.java  |  12 +-
 .../client/api/endpoint/CreateCollectionApi.java   |   4 +-
 .../api/endpoint/CreateCollectionBackupApi.java    |   6 +-
 .../api/endpoint/CreateCollectionSnapshotApi.java  |   6 +-
 .../client/api/endpoint/CreateCoreBackupApi.java   |   6 +-
 .../solr/client/api/endpoint/CreateReplicaApi.java |   6 +-
 .../solr/client/api/endpoint/CreateShardApi.java   |   6 +-
 .../solr/client/api/endpoint/DeleteAliasApi.java   |   8 +-
 .../client/api/endpoint/DeleteCollectionApi.java   |   8 +-
 .../api/endpoint/DeleteCollectionBackupApi.java    |  10 +-
 .../api/endpoint/DeleteCollectionSnapshotApi.java  |  10 +-
 .../solr/client/api/endpoint/DeleteNodeApi.java    |   6 +-
 .../solr/client/api/endpoint/DeleteReplicaApi.java |  10 +-
 .../api/endpoint/DeleteReplicaPropertyApi.java     |   6 +-
 .../solr/client/api/endpoint/DeleteShardApi.java   |   8 +-
 .../solr/client/api/endpoint/ForceLeaderApi.java   |   6 +-
 .../api/endpoint/GetNodeCommandStatusApi.java      |  50 ++++
 .../solr/client/api/endpoint/GetPublicKeyApi.java  |   4 +-
 .../solr/client/api/endpoint/GetSchemaApi.java     |  12 +-
 .../client/api/endpoint/InstallCoreDataApi.java    |   6 +-
 .../client/api/endpoint/InstallShardDataApi.java   |   6 +-
 .../solr/client/api/endpoint/ListAliasesApi.java   |   6 +-
 .../api/endpoint/ListCollectionBackupsApi.java     |   8 +-
 .../client/api/endpoint/ListCollectionsApi.java    |   4 +-
 .../client/api/endpoint/ListConfigsetsApi.java     |   4 +-
 .../solr/client/api/endpoint/MergeIndexesApi.java  |   6 +-
 .../client/api/endpoint/MigrateReplicasApi.java    |   4 +-
 .../client/api/endpoint/ReloadCollectionApi.java   |   6 +-
 .../solr/client/api/endpoint/ReloadCoreApi.java    |   6 +-
 .../client/api/endpoint/RenameCollectionApi.java   |   6 +-
 .../solr/client/api/endpoint/RenameCoreApi.java    |   6 +-
 .../solr/client/api/endpoint/ReplaceNodeApi.java   |   6 +-
 .../solr/client/api/endpoint/RestoreCoreApi.java   |   6 +-
 .../apache/solr/client/api/endpoint/SelectApi.java |  12 +-
 .../solr/client/api/endpoint/SwapCoresApi.java     |   6 +-
 .../solr/client/api/endpoint/SyncShardApi.java     |   6 +-
 .../solr/client/api/endpoint/UnloadCoreApi.java    |   6 +-
 ...Type.java => GetNodeCommandStatusResponse.java} |  18 +-
 .../api/model/{StoreType.java => IndexType.java}   |   4 +-
 .../org/apache/solr/client/api/util/Constants.java |   8 +-
 .../solr/client/api/util/StoreApiParameters.java   |  12 +-
 solr/bin/solr                                      |   6 +-
 solr/core/build.gradle                             |  14 +-
 .../org/apache/solr/api/ClusterPluginsSource.java  |  83 ++++++
 .../apache/solr/api/ContainerPluginsRegistry.java  |  14 +-
 .../java/org/apache/solr/api/JerseyResource.java   |   4 +-
 .../solr/api/NodeConfigClusterPluginsSource.java   | 106 ++++++++
 .../apache/solr/api/ZkClusterPluginsSource.java    | 114 +++++++++
 .../org/apache/solr/cloud/RecoveryStrategy.java    |   2 +-
 .../api/collections/CollectionHandlingUtils.java   |   2 +-
 .../cloud/api/collections/InstallShardDataCmd.java |   2 +-
 .../api/collections/ReindexCollectionCmd.java      |   2 +-
 .../impl/PlacementPluginFactoryLoader.java         |  42 +---
 .../java/org/apache/solr/core/CoreContainer.java   |  21 +-
 .../src/java/org/apache/solr/core/NodeConfig.java  |  44 ++--
 .../org/apache/solr/core/SchemaCodecFactory.java   |   4 +-
 .../java/org/apache/solr/core/SolrXmlConfig.java   |  68 ++++-
 .../org/apache/solr/core/TracerConfigurator.java   |   4 +-
 .../apache/solr/handler/RequestHandlerBase.java    |  23 ++
 .../org/apache/solr/handler/SolrConfigHandler.java |  11 +-
 .../solr/handler/admin/ContainerPluginsApi.java    | 115 ++-------
 .../solr/handler/admin/CoreAdminHandler.java       |   6 +-
 .../solr/handler/admin/CoreAdminOperation.java     |  40 +--
 .../solr/handler/admin/ZookeeperReadAPI.java       |  14 +-
 .../solr/handler/admin/api/AddReplicaProperty.java |   2 +-
 .../solr/handler/admin/api/AliasProperty.java      |   2 +-
 .../solr/handler/admin/api/BalanceReplicas.java    |   2 +-
 .../solr/handler/admin/api/BalanceShardUnique.java |   2 +-
 .../solr/handler/admin/api/CoreReplicationAPI.java |  12 +-
 .../solr/handler/admin/api/CoreSnapshot.java       |   2 +-
 .../solr/handler/admin/api/CreateAliasAPI.java     |  10 +-
 .../solr/handler/admin/api/CreateCollection.java   |   2 +-
 .../handler/admin/api/CreateCollectionBackup.java  |   2 +-
 .../admin/api/CreateCollectionSnapshot.java        |   2 +-
 .../solr/handler/admin/api/CreateCoreBackup.java   |   2 +-
 .../solr/handler/admin/api/CreateReplica.java      |   2 +-
 .../apache/solr/handler/admin/api/CreateShard.java |   2 +-
 .../apache/solr/handler/admin/api/DeleteAlias.java |   2 +-
 .../solr/handler/admin/api/DeleteCollection.java   |   2 +-
 .../handler/admin/api/DeleteCollectionBackup.java  |   2 +-
 .../admin/api/DeleteCollectionSnapshot.java        |   2 +-
 .../apache/solr/handler/admin/api/DeleteNode.java  |   2 +-
 .../solr/handler/admin/api/DeleteReplica.java      |   2 +-
 .../handler/admin/api/DeleteReplicaProperty.java   |   2 +-
 .../apache/solr/handler/admin/api/DeleteShard.java |   2 +-
 .../apache/solr/handler/admin/api/ForceLeader.java |   2 +-
 .../handler/admin/api/GetNodeCommandStatus.java    |  75 ++++++
 .../apache/solr/handler/admin/api/GetSchema.java   |   2 +-
 .../solr/handler/admin/api/GetSchemaFieldAPI.java  |  12 +-
 .../solr/handler/admin/api/InstallShardData.java   |   2 +-
 .../apache/solr/handler/admin/api/ListAliases.java |   2 +-
 .../handler/admin/api/ListCollectionBackups.java   |   2 +-
 .../admin/api/ListCollectionSnapshotsAPI.java      |  10 +-
 .../solr/handler/admin/api/ListCollections.java    |   2 +-
 .../solr/handler/admin/api/MergeIndexes.java       |   2 +-
 .../solr/handler/admin/api/MigrateReplicas.java    |   2 +-
 .../solr/handler/admin/api/NodeLoggingAPI.java     |  12 +-
 .../handler/admin/api/ReloadCollectionAPI.java     |   2 +-
 .../apache/solr/handler/admin/api/ReloadCore.java  |   2 +-
 .../solr/handler/admin/api/RenameCollection.java   |   2 +-
 .../apache/solr/handler/admin/api/RenameCore.java  |   2 +-
 .../apache/solr/handler/admin/api/ReplaceNode.java |   2 +-
 .../admin/api/RequestCoreCommandStatusAPI.java     |  62 -----
 .../handler/admin/api/RestoreCollectionAPI.java    |  10 +-
 .../apache/solr/handler/admin/api/RestoreCore.java |   2 +-
 .../solr/handler/admin/api/SnapshotBackupAPI.java  |  10 +-
 .../apache/solr/handler/admin/api/SwapCores.java   |   2 +-
 .../apache/solr/handler/admin/api/SyncShard.java   |   2 +-
 .../apache/solr/handler/admin/api/UnloadCore.java  |   2 +-
 .../solr/handler/admin/api/V2NodeLoggingAPI.java   |  10 +-
 .../handler/component/IterativeMergeStrategy.java  |   2 +-
 .../solr/handler/component/SearchHandler.java      |  33 +++
 .../solr/handler/configsets/ListConfigSets.java    |   6 +-
 .../solr/jersey/APIConfigProviderBinder.java       |   2 +-
 .../solr/jersey/CatchAllExceptionMapper.java       |  14 +-
 .../org/apache/solr/jersey/InjectionFactories.java |   4 +-
 .../solr/jersey/MediaTypeOverridingFilter.java     |  15 +-
 .../org/apache/solr/jersey/MessageBodyReaders.java |  19 +-
 .../org/apache/solr/jersey/MessageBodyWriters.java |  16 +-
 .../solr/jersey/NotFoundExceptionMapper.java       |  12 +-
 .../solr/jersey/PostRequestDecorationFilter.java   |   8 +-
 .../solr/jersey/PostRequestLoggingFilter.java      |  16 +-
 .../org/apache/solr/jersey/RequestContextKeys.java |   4 +-
 .../apache/solr/jersey/RequestMetricHandling.java  |  12 +-
 .../org/apache/solr/jersey/SolrJacksonMapper.java  |   4 +-
 .../apache/solr/jersey/SolrRequestAuthorizer.java  |  12 +-
 .../jersey/container/ContainerRequestUtils.java    |   4 +-
 .../container/JettyBridgeResponseWriter.java       |   2 +-
 .../src/java/org/apache/solr/pkg/PackageAPI.java   |   2 +-
 .../org/apache/solr/schema/ManagedIndexSchema.java |   8 +-
 .../org/apache/solr/security/GetPublicKey.java     |   2 +-
 .../org/apache/solr/update/PeerSyncWithLeader.java |   2 +-
 .../apache/solr/update/StreamingSolrClients.java   |   2 +-
 .../src/java/org/apache/solr/update/UpdateLog.java |   9 +-
 .../src/java/org/apache/solr/util/ModuleUtils.java |   2 +-
 .../org/apache/solr/util/StartupLoggingUtils.java  |   2 +-
 .../src/java/org/apache/solr/util/ThreadStats.java |  94 +++++++
 .../circuitbreaker/CircuitBreakerRegistry.java     |   2 +-
 .../collection1/conf/schema_postingsformat.xml     |   6 +-
 solr/core/src/test-files/solr/solr-50-all.xml      |   3 +
 .../test/org/apache/solr/TestCpuTimeSearch.java    | 124 +++++++++
 .../org/apache/solr/api/JerseyResourceTest.java    |   2 +-
 .../api/NodeConfigClusterPluginsSourceTest.java    | 219 ++++++++++++++++
 .../impl/NodeConfigPlacementPluginTest.java        |  63 +++++
 .../impl/PlacementPluginIntegrationTest.java       |  19 --
 .../src/test/org/apache/solr/core/TestSolrXml.java | 126 +++++++++-
 .../apache/solr/handler/TestContainerPlugin.java   |  46 ++++
 .../admin/api/GetNodeCommandStatusTest.java        |  94 +++++++
 .../solr/handler/admin/api/NodeLoggingAPITest.java |  69 ++---
 .../handler/admin/api/SnapshotBackupAPITest.java   |  97 +++-----
 .../handler/admin/api/V2CoreAPIMappingTest.java    |  13 -
 .../handler/configsets/ListConfigSetsAPITest.java  |  77 +-----
 .../solr/jersey/PostRequestLoggingFilterTest.java  |   6 +-
 .../org/apache/solr/schema/TestSchemaField.java    |  30 ++-
 .../licenses/aopalliance-repackaged-2.6.1.jar.sha1 |   1 -
 .../licenses/aopalliance-repackaged-3.0.5.jar.sha1 |   1 +
 solr/licenses/bcutil-jdk18on-NOTICE.txt            |   2 -
 solr/licenses/grizzly-framework-2.4.4.jar.sha1     |   1 -
 solr/licenses/grizzly-framework-LICENSE-EPL.txt    | 277 ---------------------
 solr/licenses/grizzly-http-2.4.4.jar.sha1          |   1 -
 solr/licenses/grizzly-http-LICENSE-EPL.txt         | 277 ---------------------
 solr/licenses/grizzly-http-server-2.4.4.jar.sha1   |   1 -
 solr/licenses/grizzly-http-servlet-2.4.4.jar.sha1  |   1 -
 solr/licenses/hk2-api-2.6.1.jar.sha1               |   1 -
 solr/licenses/hk2-api-3.0.5.jar.sha1               |   1 +
 solr/licenses/hk2-locator-2.6.1.jar.sha1           |   1 -
 solr/licenses/hk2-locator-3.0.5.jar.sha1           |   1 +
 solr/licenses/hk2-utils-2.6.1.jar.sha1             |   1 -
 solr/licenses/hk2-utils-3.0.5.jar.sha1             |   1 +
 ...ule-jakarta-xmlbind-annotations-2.16.1.jar.sha1 |   1 +
 ...jackson-module-jaxb-annotations-2.16.1.jar.sha1 |   1 -
 .../licenses/jakarta.annotation-api-1.3.5.jar.sha1 |   1 -
 .../licenses/jakarta.annotation-api-2.1.1.jar.sha1 |   1 +
 solr/licenses/jakarta.inject-api-2.0.1.jar.sha1    |   1 +
 .../licenses/jakarta.validation-api-2.0.2.jar.sha1 |   1 -
 .../licenses/jakarta.validation-api-3.0.2.jar.sha1 |   1 +
 solr/licenses/jakarta.ws.rs-api-2.1.6.jar.sha1     |   1 -
 solr/licenses/jakarta.ws.rs-api-3.1.0.jar.sha1     |   1 +
 solr/licenses/javassist-3.29.0-GA.jar.sha1         |   1 -
 solr/licenses/javassist-3.29.2-GA.jar.sha1         |   1 +
 solr/licenses/jersey-client-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-client-3.1.5.jar.sha1         |   1 +
 solr/licenses/jersey-common-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-common-3.1.5.jar.sha1         |   1 +
 .../jersey-container-grizzly2-http-2.39.1.jar.sha1 |   1 -
 ...rsey-container-grizzly2-servlet-2.39.1.jar.sha1 |   1 -
 .../jersey-container-servlet-2.39.1.jar.sha1       |   1 -
 .../jersey-container-servlet-core-2.39.1.jar.sha1  |   1 -
 .../jersey-entity-filtering-2.39.1.jar.sha1        |   1 -
 .../jersey-entity-filtering-3.1.5.jar.sha1         |   1 +
 solr/licenses/jersey-hk2-2.39.1.jar.sha1           |   1 -
 solr/licenses/jersey-hk2-3.1.5.jar.sha1            |   1 +
 solr/licenses/jersey-media-jaxb-2.39.1.jar.sha1    |   1 -
 .../jersey-media-json-jackson-2.39.1.jar.sha1      |   1 -
 .../jersey-media-json-jackson-3.1.5.jar.sha1       |   1 +
 solr/licenses/jersey-server-2.39.1.jar.sha1        |   1 -
 solr/licenses/jersey-server-3.1.5.jar.sha1         |   1 +
 .../jersey-test-framework-core-2.39.1.jar.sha1     |   1 -
 ...est-framework-provider-grizzly2-2.39.1.jar.sha1 |   1 -
 solr/licenses/junit-jupiter-5.9.1.jar.sha1         |   1 -
 solr/licenses/junit-jupiter-api-5.9.1.jar.sha1     |   1 -
 solr/licenses/junit-jupiter-engine-5.9.1.jar.sha1  |   1 -
 solr/licenses/junit-jupiter-params-5.9.1.jar.sha1  |   1 -
 .../licenses/junit-platform-commons-1.9.1.jar.sha1 |   1 -
 solr/licenses/junit-platform-engine-1.9.1.jar.sha1 |   1 -
 solr/licenses/opentest4j-1.2.0.jar.sha1            |   1 -
 solr/licenses/opentest4j-LICENSE-ASL.txt           | 201 ---------------
 solr/licenses/opentest4j-NOTICE.txt                |  13 -
 solr/licenses/swagger-annotations-2.2.17.jar.sha1  |   1 -
 .../swagger-annotations-jakarta-2.2.17.jar.sha1    |   1 +
 .../extraction/ExtractingRequestHandlerTest.java   |   3 +-
 .../solr/security/hadoop/HadoopAuthPlugin.java     |   3 +-
 .../solr/security/hadoop/KerberosPlugin.java       |  33 +--
 .../hadoop/HadoopSSLCredentialProvider.java        |   5 +-
 .../client/solrj/impl/Krb5HttpClientUtils.java     |   3 +-
 .../solr/security/hadoop/HadoopTestUtil.java       |   3 +-
 .../solr/security/hadoop/ImpersonationUtil.java    |   3 +-
 .../solr/security/hadoop/KerberosTestServices.java |   3 +-
 .../hadoop/TestImpersonationWithHadoopAuth.java    |   3 +-
 .../TestSolrCloudWithSecureImpersonation.java      |   6 +-
 .../configuration/HadoopSSLConfigurationsTest.java |   5 +-
 .../org/apache/solr/hdfs/HdfsDirectoryFactory.java |   9 +-
 .../org/apache/solr/hdfs/index/CheckHdfsIndex.java |   3 +-
 .../org/apache/hadoop/fs/RawLocalFileSystem.java   |   5 +-
 .../test/org/apache/hadoop/util/PlatformName.java  |  11 +-
 .../apache/solr/hdfs/HdfsDirectoryFactoryTest.java |   3 +-
 .../org/apache/solr/hdfs/cloud/HdfsTestUtil.java   |  16 +-
 .../apache/solr/security/jwt/JWTIssuerConfig.java  |   3 +-
 .../solr/security/jwt/JWTAuthPluginTest.java       |   3 +-
 .../algorithms/TeamDraftInterleaving.java          |   3 +-
 .../solr/opentelemetry/OtelTracerConfigurator.java |  17 +-
 .../CustomTestOtelTracerConfigurator.java          |   3 +-
 .../opentelemetry/OtelTracerConfiguratorTest.java  |   3 +-
 .../apache/solr/s3/S3BackupRepositoryConfig.java   |  15 +-
 .../configuration-guide/pages/cluster-plugins.adoc |   4 +-
 .../pages/configuring-solr-xml.adoc                |  19 ++
 .../configuration-guide/pages/coreadmin-api.adoc   |  29 ++-
 .../getting-started/pages/solr-glossary.adoc       |   3 +-
 .../query-guide/pages/result-clustering.adoc       |   2 +-
 .../org/apache/solr/client/solrj/SolrRequest.java  |  12 +-
 .../client/solrj/impl/CloudLegacySolrClient.java   |  12 +-
 .../impl/ConcurrentUpdateHttp2SolrClient.java      |  12 +-
 .../solrj/impl/ConcurrentUpdateSolrClient.java     |   4 +-
 .../solr/client/solrj/impl/Http2SolrClient.java    |  12 +-
 .../solr/client/solrj/impl/HttpSolrClient.java     |   4 +-
 .../solr/client/solrj/impl/LBHttp2SolrClient.java  |  10 +-
 .../solr/client/solrj/impl/LBHttpSolrClient.java   |   4 +-
 .../solr/client/solrj/impl/LBSolrClient.java       |   2 +-
 .../solr/client/solrj/impl/SolrClientBuilder.java  |   8 +-
 .../solrj/request/AbstractUpdateRequest.java       |   2 +-
 ...st.java => CollectionRequiringSolrRequest.java} |   8 +-
 .../client/solrj/request/DirectXmlRequest.java     |   2 +-
 .../solrj/request/DocumentAnalysisRequest.java     |   3 +-
 .../client/solrj/request/FieldAnalysisRequest.java |   2 +-
 .../solr/client/solrj/request/LukeRequest.java     |   2 +-
 .../solr/client/solrj/request/QueryRequest.java    |   2 +-
 .../apache/solr/client/solrj/request/SolrPing.java |   2 +-
 .../request/schema/AbstractSchemaRequest.java      |   4 +-
 .../apache/solr/client/solrj/util/ClientUtils.java |   4 +-
 .../java/org/apache/solr/common/util/EnvUtils.java |  58 ++---
 .../apache/solr/common/util/PropertiesUtil.java    |   2 +-
 .../ConcurrentUpdateSolrClientBuilderTest.java     |   2 +-
 .../solrj/impl/HttpSolrClientBuilderTest.java      |   2 +-
 .../solrj/impl/LBHttpSolrClientBuilderTest.java    |   2 +-
 .../solrj/response/TestSuggesterResponse.java      |   2 +-
 .../solr/client/solrj/util/ClientUtilsTest.java    |   8 +-
 .../org/apache/solr/common/util/EnvUtilsTest.java  |  53 ++--
 .../src/java/org/apache/solr/SolrTestCase.java     |   2 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |   2 +-
 .../java/org/apache/solr/cloud/ConfigRequest.java  |   4 +-
 .../api/collections/AbstractInstallShardTest.java  |  45 +++-
 versions.lock                                      |  69 ++---
 versions.props                                     |   8 +-
 287 files changed, 2495 insertions(+), 1938 deletions(-)


(solr) 05/05: Update ref-guide to explain knn pre-filtering and new localparams

Posted by ho...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch jira/SOLR-16858
in repository https://gitbox.apache.org/repos/asf/solr.git

commit c398951f6ac5b7e72b21b4648dcb8ffbb076aaf6
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Tue Jan 30 12:58:29 2024 -0700

    Update ref-guide to explain knn pre-filtering and new localparams
---
 .../query-guide/pages/dense-vector-search.adoc     | 114 ++++++++++++++++-----
 1 file changed, 91 insertions(+), 23 deletions(-)

diff --git a/solr/solr-ref-guide/modules/query-guide/pages/dense-vector-search.adoc b/solr/solr-ref-guide/modules/query-guide/pages/dense-vector-search.adoc
index 24d7859bb39..4380235ebfd 100644
--- a/solr/solr-ref-guide/modules/query-guide/pages/dense-vector-search.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/dense-vector-search.adoc
@@ -240,7 +240,7 @@ client.add(Arrays.asList(d1, d2));
 This is the Apache Solr query approach designed to support dense vector search:
 
 === knn Query Parser
-The `knn` k-nearest neighbors query parser allows to find the k-nearest documents to the target vector according to indexed dense vectors in the given field.
+The `knn` k-nearest neighbors query parser allows to find the k-nearest documents to the target vector according to indexed dense vectors in the given field.  The set of documents can be Pre-Riltered to reduce the number of vector distance calculations that must be computed, and ensure the best `topK` are returned.
 
 The score for a retrieved document is the approximate distance to the target vector(defined by the similarityFunction configured at indexing time).
 
@@ -264,45 +264,113 @@ The `DenseVectorField` to search in.
 +
 How many k-nearest results to return.
 
-Here's how to run a KNN search:
+`preFilter`::
++
+[%autowidth,frame=none]
+|===
+|Optional |Default: Depends on usage, see below.
+|===
++
+Specifies an explicit list of Pre-Filter query strings to use.
 
-[source,text]
-&q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]
+`includeTags`::
++
+[%autowidth,frame=none]
+|===
+|Optional |Default: none
+|===
++
+Indicates that only `fq` filters with the specified `tag` should be considered for implicit Pre-Filtering.  May not be combind with `preFilter`.
 
-The search results retrieved are the k-nearest to the vector in input `[1.0, 2.0, 3.0, 4.0]`, ranked by the similarityFunction configured at indexing time.
 
-==== Usage with Filter Queries
-The `knn` query parser can be used in filter queries:
+`excludeTags`::
++
+[%autowidth,frame=none]
+|===
+|Optional |Default: none
+|===
++
+Indicates that `fq` filters with the specified `tag` should be excluded from consideration for implicit Pre-Filtering.  May not be combind with `preFilter`.
+
+
+Here's how to run a simple KNN search:
+
 [source,text]
-&q=id:(1 2 3)&fq={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]
+?q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]
+
+The search results retrieved are the k=10 nearest documents to the vector in input `[1.0, 2.0, 3.0, 4.0]`, ranked by the `similarityFunction` configured at indexing time.
+
+
+==== Explicit KNN Pre-Filtering
+
+The `knn` query parser's `preFilter` parameter can be specified to reduce the number of candidate documents evaluated for the k-nearest distance calculation:
 
-The `knn` query parser can be used with filter queries:
 [source,text]
-&q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]&fq=id:(1 2 3)
+?q={!knn f=vector topK=10 preFilter=inStock:true}[1.0, 2.0, 3.0, 4.0]
 
-[IMPORTANT]
-====
-Filter queries are executed as pre-filters: the main query refines the sub-set of search results derived from the application of all the filter queries combined as 'MUST' clauses(boolean AND).
+In the above example, only documents matching the Pre-Filter `inStock:true` will be candidates for consideration when evaluating the k-nearest search against the specified vector.
+
+The `preFilter` parameter may be blank (ex: `preFilter=""`) to indicate that no Pre-Filtering should be performed; or it may be multi-valued -- either through repetition, or via duplicated xref:local-params.adoc#parameter-dereferencing[Parameter References].
+
+These two examples are equivilent:
+
+[source,text]
+?q={!knn f=vector topK=10 preFilter=category:AAA preFilter=inStock:true}[1.0, 2.0, 3.0, 4.0]
 
-This means that in
 [source,text]
-&q=id:(1 2 3)&fq={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]
+----
+?q={!knn f=vector topK=10 preFilter=$knnPreFilter}[1.0, 2.0, 3.0, 4.0]
+&knnPreFilter=category:AAA
+&knnPreFilter=inStock:true
+----
 
-The results are prefiltered by the topK knn retrieval and then only the documents from this subset, matching the query 'q=id:(1 2 3)' are returned.
+==== Implicit KNN Pre-Filtering
+
+While the `preFilter` parameter may be explicitly specified on *_any_* usage of the `knn` query parser, the default Pre-Filtering behavior (when no `preFilter` parameter is specified) will vary based on how the `knn` query parser is used:
+
+* When used as the main `q` param: `fq` filters in the request (that are not xref:common-query-parameters.adoc#cache-local-parameter[Solr Post Filters]) will be combined to form an implicit KNN Pre-Filter.
+** This default behavior optimizes the number of vector distance calculations considered, eliminating documents that would eventually be excluded by an `fq` filter anyway.
+** `includeTags` and `excludeTags` may be used to limit the set of `fq` filters used in the Pre-Filter.
+* When used as an `fq` param, or as a subquery clause in a larger query: No implicit Pre-Filter is used.
+** `includeTags` and `excludeTags` may not be used in these situations.
+
+
+The example request below shows two usages of the `knn` query parser that will get _no_ implicit Pre-Filtering from any of the `fq` parameters, because neither usage is as the main `q` param:
 
-In
 [source,text]
-&q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]&fq=id:(1 2 3)
+----
+?q=(color_str:red OR {!knn f=color_vector topK=10 v="[1.0, 2.0, 3.0, 4.0]"})
+&fq={!knn f=title_vector topK=10}[9.0, 8.0, 7.0, 6.0]
+&fq=inStock:true
+----
 
-The results are prefiltered by the fq=id:(1 2 3) and then only the documents from this subset are considered as candidates for the topK knn retrieval.
 
-If you want to run some of the filter queries as post-filters you can follow the standard approach for post-filtering in Apache Solr, using the cache and cost local parameters.
+However, the next example shows a basic request where all `fq` parameters will be used as implicit Pre-Filters on the main `knn` query:
 
-e.g.
+[source,text]
+----
+?q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]
+&fq=category:AAA
+&fq=inStock:true
+----
+
+If we modify the above request to add tags to the `fq` parameters, we can specify an `includeTags` option on the `knn` parser to limit which `fq` filters are used for Pre-Filtering:
 
 [source,text]
-&q={!knn f=vector topK=10}[1.0, 2.0, 3.0, 4.0]&fq={!frange cache=false l=0.99}$q
-====
+----
+?q={!knn f=vector topK=10 includeTags=for_knn}[1.0, 2.0, 3.0, 4.0]
+&fq=category:AAA
+&fq={!tag=for_knn}inStock:true
+----
+
+In this example, only the `inStock:true` filter will be used for KNN Pre-Filtering to find the the `topK=10` documents, and the `category:AAA` filter will be applied independently; possibly resulting in less then 10 total matches.
+
+
+Some use case where `includeTags` and/or `excludeTags` may be more useful then an explicit `preFilter` parameters:
+
+* You have some `fq` parameters that are xref:configuration-guide:requesthandlers-searchcomponents.adoc#paramsets-and-useparams[re-used on many requests] (even when you don't use the `knn` parser) that you wish to be used as KNN Pre-Filters when you _do_ use the `knn` query parser.
+* You typically want all `fq` params to be used as KNN Pre-Filters, but when users "drill down" on Facets, you want the `fq` parameters you add to be excluded from the KNN Pre-Filtering so that the result set gets smaller; instead of just computing a new `topK` set.
+
 
 
 ==== Usage as Re-Ranking Query


(solr) 04/05: demonstrate post-filters are excluded from fq slurping

Posted by ho...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch jira/SOLR-16858
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 0cbddc971e49cf4e60bc1252374409fff6afe9e9
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Mon Jan 29 16:19:30 2024 -0700

    demonstrate post-filters are excluded from fq slurping
---
 .../test/org/apache/solr/search/QueryEqualityTest.java   | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java b/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
index 034da7f92ec..8eb1c3da71f 100644
--- a/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
+++ b/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
@@ -1350,8 +1350,10 @@ public class QueryEqualityTest extends SolrTestCaseJ4 {
     assertU(adoc(doc));
     assertU(commit());
 
+    final String qvec = "[1.0,2.0,3.0,4.0]";
+
     try (SolrQueryRequest req0 = req()) {
-      final String qvec = "[1.0,2.0,3.0,4.0]";
+
       // no filters
       final Query fqNull =
           assertQueryEqualsAndReturn(
@@ -1395,6 +1397,18 @@ public class QueryEqualityTest extends SolrTestCaseJ4 {
           QueryUtils.checkEqual(fqNull, fqNullOverride);
         }
       }
+
+      try (SolrQueryRequest reqPostFilter = req("fq", "{!tag=post frange cache=false l=0}9.9")) {
+        // global post-filter fq should always be ignored
+        final Query fqPostFilter =
+            assertQueryEqualsAndReturn(
+                "knn",
+                reqPostFilter,
+                "{!knn f=vector}" + qvec,
+                "{!knn f=vector includeTags=post}" + qvec);
+        QueryUtils.checkEqual(fqNull, fqPostFilter);
+      }
+
     } finally {
       delQ("id:0");
       assertU(commit());


(solr) 03/05: Switch localparam name: fq -> preFilter

Posted by ho...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch jira/SOLR-16858
in repository https://gitbox.apache.org/repos/asf/solr.git

commit b22740f7797e067dadad406e38865c3e04ebfcbe
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Mon Jan 29 15:24:34 2024 -0700

    Switch localparam name: fq -> preFilter
---
 .../org/apache/solr/search/neural/KnnQParser.java  | 29 ++++++------
 .../org/apache/solr/search/QueryEqualityTest.java  | 20 ++++----
 .../apache/solr/search/neural/KnnQParserTest.java  | 55 +++++++++++++---------
 3 files changed, 57 insertions(+), 47 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/search/neural/KnnQParser.java b/solr/core/src/java/org/apache/solr/search/neural/KnnQParser.java
index 5599fd8dbe2..252a4fcabc7 100644
--- a/solr/core/src/java/org/apache/solr/search/neural/KnnQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/neural/KnnQParser.java
@@ -22,7 +22,6 @@ import java.util.Collections;
 import java.util.List;
 import org.apache.lucene.search.Query;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.StrUtils;
 import org.apache.solr.request.SolrQueryRequest;
@@ -36,6 +35,7 @@ import org.apache.solr.search.SyntaxError;
 
 public class KnnQParser extends QParser {
 
+  static final String PRE_FILTER = "preFilter";
   static final String EXCLUDE_TAGS = "excludeTags";
   static final String INCLUDE_TAGS = "includeTags";
 
@@ -123,19 +123,20 @@ public class KnnQParser extends QParser {
       }
     }
 
-    // Explicit fq local params specifying the filter(s) to wrap
-    final String[] localFQs = getLocalParams().getParams(CommonParams.FQ);
-    if (null != localFQs) {
+    // Explicit local params specifying the filter(s) to wrap
+    final String[] preFilters = getLocalParams().getParams(PRE_FILTER);
+    if (null != preFilters) {
 
-      // We don't particularly care if localFQs is empty, the usage below will still work,
+      // We don't particularly care if preFilters is empty, the usage below will still work,
       // but SolrParams API says it should be null not empty...
-      assert 0 != localFQs.length : "SolrParams.getParams should return null, never zero len array";
+      assert 0 != preFilters.length
+          : "SolrParams.getParams should return null, never zero len array";
 
       if (haveGlobalFQTags) {
         throw new SolrException(
             SolrException.ErrorCode.BAD_REQUEST,
             "Knn Query Parser does not support combining "
-                + CommonParams.FQ
+                + PRE_FILTER
                 + " localparam with either "
                 + INCLUDE_TAGS
                 + " or "
@@ -143,25 +144,25 @@ public class KnnQParser extends QParser {
                 + " localparams");
       }
 
-      final List<Query> localParamFilters = new ArrayList<>(localFQs.length);
-      for (String fq : localFQs) {
-        final QParser parser = subQuery(fq, null);
+      final List<Query> preFilterQueries = new ArrayList<>(preFilters.length);
+      for (String f : preFilters) {
+        final QParser parser = subQuery(f, null);
         parser.setIsFilter(true);
 
-        // maybe null, ie: `fq=""`
+        // maybe null, ie: `preFilter=""`
         final Query filter = parser.getQuery();
         if (null != filter) {
-          localParamFilters.add(filter);
+          preFilterQueries.add(filter);
         }
       }
       try {
-        return req.getSearcher().getProcessedFilter(localParamFilters).filter;
+        return req.getSearcher().getProcessedFilter(preFilterQueries).filter;
       } catch (IOException e) {
         throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
       }
     }
 
-    // No explicit `fq` localparams specifying what we should filter on.
+    // No explicit `preFilter` localparams specifying what we should filter on.
     //
     // So now, if we're either a filter or a subquery, we have to default to
     // not wrapping anything...
diff --git a/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java b/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
index a72de3efd72..034da7f92ec 100644
--- a/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
+++ b/solr/core/src/test/org/apache/solr/search/QueryEqualityTest.java
@@ -1358,40 +1358,40 @@ public class QueryEqualityTest extends SolrTestCaseJ4 {
               "knn",
               req0,
               "{!knn f=vector}" + qvec,
-              "{!knn f=vector fq=''}" + qvec,
+              "{!knn f=vector preFilter=''}" + qvec,
               "{!knn f=vector v=" + qvec + "}");
 
       try (SolrQueryRequest req1 = req("fq", "{!tag=t1}id:1", "xxx", "id:1")) {
-        // either global fq, or (same) fq as localparam
+        // either global fq, or (same) preFilter as localparam
         final Query fqOne =
             assertQueryEqualsAndReturn(
                 "knn",
                 req1,
                 "{!knn f=vector}" + qvec,
                 "{!knn f=vector includeTags=t1}" + qvec,
-                "{!knn f=vector fq='id:1'}" + qvec,
-                "{!knn f=vector fq=$xxx}" + qvec,
+                "{!knn f=vector preFilter='id:1'}" + qvec,
+                "{!knn f=vector preFilter=$xxx}" + qvec,
                 "{!knn f=vector v=" + qvec + "}");
         QueryUtils.checkUnequal(fqNull, fqOne);
 
         try (SolrQueryRequest req2 = req("fq", "{!tag=t2}id:2", "xxx", "id:1", "yyy", "")) {
-          // override global fq with local param to use different filter
+          // override global fq with local param to use different preFilter
           final Query fqOneOverride =
               assertQueryEqualsAndReturn(
                   "knn",
                   req2,
-                  "{!knn f=vector fq='id:1'}" + qvec,
-                  "{!knn f=vector fq=$xxx}" + qvec);
+                  "{!knn f=vector preFilter='id:1'}" + qvec,
+                  "{!knn f=vector preFilter=$xxx}" + qvec);
           QueryUtils.checkEqual(fqOne, fqOneOverride);
 
-          // override global fq with local param to use no filters
+          // override global fq with local param to use no preFilters
           final Query fqNullOverride =
               assertQueryEqualsAndReturn(
                   "knn",
                   req2,
-                  "{!knn f=vector fq=''}" + qvec,
+                  "{!knn f=vector preFilter=''}" + qvec,
                   "{!knn f=vector excludeTags=t2}" + qvec,
-                  "{!knn f=vector fq=$yyy}" + qvec);
+                  "{!knn f=vector preFilter=$yyy}" + qvec);
           QueryUtils.checkEqual(fqNull, fqNullOverride);
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/search/neural/KnnQParserTest.java b/solr/core/src/test/org/apache/solr/search/neural/KnnQParserTest.java
index 197540b2c7b..12dd843b05d 100644
--- a/solr/core/src/test/org/apache/solr/search/neural/KnnQParserTest.java
+++ b/solr/core/src/test/org/apache/solr/search/neural/KnnQParserTest.java
@@ -470,13 +470,13 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
         "//result[@numFound='1']",
         "//result/doc[1]/str[@name='id'][.='4']");
 
-    // topK=4 w/localparam fq -> 1,4,7,9
+    // topK=4 w/localparam preFilter -> 1,4,7,9
     assertQ(
         req(
             CommonParams.Q,
             "id:(3 4 9 2)",
             "fq",
-            "{!knn f=vector topK=4 fq='id:(1 4 7 8 9)'}" + vectorToSearch,
+            "{!knn f=vector topK=4 preFilter='id:(1 4 7 8 9)'}" + vectorToSearch,
             "fq",
             "id:(4 20 9)",
             "fl",
@@ -519,10 +519,10 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
         "//result/doc[3]/str[@name='id'][.='3']",
         "//result/doc[4]/str[@name='id'][.='8']");
 
-    // knn subquery should still accept `fq` local param
+    // knn subquery should still accept `preFilter` local param
     // filt -> topK -> 4,2,3,7,9
     assertQ(
-        req(common, "q", "*:* AND {!knn f=vector topK=5 fq='" + filt + "' v=$vec}"),
+        req(common, "q", "*:* AND {!knn f=vector topK=5 preFilter='" + filt + "' v=$vec}"),
         "//result[@numFound='5']",
         "//result/doc[1]/str[@name='id'][.='4']",
         "//result/doc[2]/str[@name='id'][.='2']",
@@ -530,7 +530,8 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
         "//result/doc[4]/str[@name='id'][.='7']",
         "//result/doc[5]/str[@name='id'][.='9']");
 
-    // knn subquery should still accept `fq` local param, and not pre-filter on any global fq params
+    // knn subquery should still accept `preFilter` local param, and not pre-filter on any global fq
+    // params
     // filt -> topK -> 4,2,3,7,9 -> fq -> 3,9
     assertQ(
         req(
@@ -538,7 +539,7 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
             "fq",
             "id:(1 9 20 3 5 6 8)",
             "q",
-            "*:* AND {!knn f=vector topK=5 fq='" + filt + "' v=$vec}"),
+            "*:* AND {!knn f=vector topK=5 preFilter='" + filt + "' v=$vec}"),
         "//result[@numFound='2']",
         "//result/doc[1]/str[@name='id'][.='3']",
         "//result/doc[2]/str[@name='id'][.='9']");
@@ -549,7 +550,7 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
             "fq",
             "id:(1 9 20 3 5 6 8)",
             "q",
-            "id:8^=100 OR {!knn f=vector topK=5 fq='" + filt + "' v=$vec}"),
+            "id:8^=100 OR {!knn f=vector topK=5 preFilter='" + filt + "' v=$vec}"),
         "//result[@numFound='3']",
         "//result/doc[1]/str[@name='id'][.='8']",
         "//result/doc[2]/str[@name='id'][.='3']",
@@ -577,11 +578,14 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
       for (SolrQueryRequest req :
           Arrays.asList(
               req(common, "q", "{!knn f=vector topK=10}" + vectorToSearch, "fq", filt),
-              req(common, "q", "{!knn f=vector fq=\"" + filt + "\" topK=10}" + vectorToSearch),
               req(
                   common,
                   "q",
-                  "{!knn f=vector fq=$my_filt topK=10}" + vectorToSearch,
+                  "{!knn f=vector preFilter=\"" + filt + "\" topK=10}" + vectorToSearch),
+              req(
+                  common,
+                  "q",
+                  "{!knn f=vector preFilter=$my_filt topK=10}" + vectorToSearch,
                   "my_filt",
                   filt))) {
         assertQ(
@@ -602,11 +606,16 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
               req(
                   common,
                   "q",
-                  "{!knn f=vector fq=\"" + fx + "\" fq=\"" + fy + "\" topK=4}" + vectorToSearch),
+                  "{!knn f=vector preFilter=\""
+                      + fx
+                      + "\" preFilter=\""
+                      + fy
+                      + "\" topK=4}"
+                      + vectorToSearch),
               req(
                   common,
                   "q",
-                  "{!knn f=vector fq=$fx fq=$fy topK=4}" + vectorToSearch,
+                  "{!knn f=vector preFilter=$fx preFilter=$fy topK=4}" + vectorToSearch,
                   "fx",
                   fx,
                   "fy",
@@ -614,7 +623,7 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
               req(
                   common,
                   "q",
-                  "{!knn f=vector fq=$multi_filt topK=4}" + vectorToSearch,
+                  "{!knn f=vector preFilter=$multi_filt topK=4}" + vectorToSearch,
                   "multi_filt",
                   fx,
                   "multi_filt",
@@ -630,16 +639,16 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
     }
 
     assertQEx(
-        "knn fq localparm incompatible with include/exclude localparams",
-        "does not support combining fq localparam with either",
+        "knn preFilter localparm incompatible with include/exclude localparams",
+        "does not support combining preFilter localparam with either",
         // shouldn't matter if global fq w/tag even exists, usage is an error
-        req("q", "{!knn f=vector fq='id:1' includeTags=xxx}" + vectorToSearch),
+        req("q", "{!knn f=vector preFilter='id:1' includeTags=xxx}" + vectorToSearch),
         SolrException.ErrorCode.BAD_REQUEST);
     assertQEx(
-        "knn fq localparm incompatible with include/exclude localparams",
-        "does not support combining fq localparam with either",
+        "knn preFilter localparm incompatible with include/exclude localparams",
+        "does not support combining preFilter localparam with either",
         // shouldn't matter if global fq w/tag even exists, usage is an error
-        req("q", "{!knn f=vector fq='id:1' excludeTags=xxx}" + vectorToSearch),
+        req("q", "{!knn f=vector preFilter='id:1' excludeTags=xxx}" + vectorToSearch),
         SolrException.ErrorCode.BAD_REQUEST);
   }
 
@@ -647,10 +656,10 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
   public void knnQueryWithFilterQuery_localParamOverridesGlobalFilters() {
     final String vectorToSearch = "[1.0, 2.0, 3.0, 4.0]";
 
-    // trivial case: empty fq localparam means no pre-filtering
+    // trivial case: empty preFilter localparam means no pre-filtering
     assertQ(
         req(
-            "q", "{!knn f=vector fq='' topK=5}" + vectorToSearch,
+            "q", "{!knn f=vector preFilter='' topK=5}" + vectorToSearch,
             "fq", "-id:4",
             "fl", "id"),
         "//result[@numFound='4']",
@@ -662,7 +671,7 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
     // localparam prefiltering, global fqs applied independently
     assertQ(
         req(
-            "q", "{!knn f=vector fq='id:(3 4 9 2 7 8)' topK=5}" + vectorToSearch,
+            "q", "{!knn f=vector preFilter='id:(3 4 9 2 7 8)' topK=5}" + vectorToSearch,
             "fq", "-id:4",
             "fl", "id"),
         "//result[@numFound='4']",
@@ -715,8 +724,8 @@ public class KnnQParserTest extends SolrTestCaseJ4 {
     // Only 7 matches both of the the regular fq params
     for (SolrQueryRequest req :
         Arrays.asList(
-            // explicit local empty fq
-            req(common, "q", "{!knn f=vector fq='' topK=6}" + vectorToSearch),
+            // explicit local empty preFilter
+            req(common, "q", "{!knn f=vector preFilter='' topK=6}" + vectorToSearch),
             // diff ways of explicitly including none of the global fq params
             req(common, "q", "{!knn f=vector includeTags='' topK=6}" + vectorToSearch),
             req(common, "q", "{!knn f=vector includeTags=bogus topK=6}" + vectorToSearch),


(solr) 01/05: Merge branch 'main' into jira/SOLR-16858

Posted by ho...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch jira/SOLR-16858
in repository https://gitbox.apache.org/repos/asf/solr.git

commit cf26b6c1f451677efde2cee877722b0332610a0e
Merge: 68d2c743f30 b5db1791649
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Tue Jan 16 16:14:07 2024 -0700

    Merge branch 'main' into jira/SOLR-16858

 .asf.yaml                                          |  19 ++
 .github/PULL_REQUEST_TEMPLATE.md                   |   2 +-
 .github/labeler.yml                                | 172 +++++++++++++
 .github/workflows/labeler.yml                      |  13 +
 NOTICE.txt                                         |   2 +-
 dev-docs/FAQ.adoc                                  |   7 +
 dev-tools/scripts/githubPRs.py                     |   6 +-
 dev-tools/scripts/releaseWizard.yaml               |  13 +-
 dev-tools/scripts/requirements.txt                 |   2 +-
 gradle/globals.gradle                              |   2 +-
 gradle/validation/git-status.gradle                |  14 +-
 solr/CHANGES.txt                                   |  22 ++
 .../solr/client/api/endpoint/MergeIndexesApi.java  |  52 ++++
 .../client/api/model/MergeIndexesRequestBody.java} |  42 ++--
 solr/bin/solr                                      |  42 +---
 solr/bin/solr.cmd                                  |  10 +-
 solr/bin/solr.in.cmd                               |   5 +-
 solr/bin/solr.in.sh                                |   5 +-
 .../core/src/java/org/apache/solr/cli/SolrCLI.java |  16 +-
 .../org/apache/solr/cloud/RecoveryStrategy.java    |  34 ++-
 .../api/collections/CollectionHandlingUtils.java   |   9 +-
 .../api/collections/ReindexCollectionCmd.java      |  44 ++--
 .../java/org/apache/solr/core/CoreContainer.java   |   7 +-
 .../solr/core/FileSystemConfigSetService.java      |   5 +-
 .../src/java/org/apache/solr/core/SolrCore.java    |  17 +-
 .../org/apache/solr/core/TracerConfigurator.java   |   5 +-
 .../java/org/apache/solr/handler/IndexFetcher.java |  54 ++--
 .../apache/solr/handler/ReplicationHandler.java    |   4 +-
 .../org/apache/solr/handler/SolrConfigHandler.java |  33 +--
 .../solr/handler/admin/CoreAdminHandler.java       |   6 +-
 .../apache/solr/handler/admin/MergeIndexesOp.java  | 128 ++--------
 .../solr/handler/admin/api/MergeIndexes.java       | 211 ++++++++++++++++
 .../solr/handler/admin/api/MergeIndexesAPI.java    |  88 -------
 .../handler/component/IterativeMergeStrategy.java  |  10 +-
 .../apache/solr/handler/export/ExportWriter.java   |  77 +++---
 .../src/java/org/apache/solr/pkg/PackageAPI.java   |   4 +-
 .../java/org/apache/solr/schema/IndexSchema.java   |  77 +++++-
 .../org/apache/solr/schema/ManagedIndexSchema.java | 124 ++--------
 .../org/apache/solr/search/SolrReturnFields.java   |   5 +-
 .../solr/search/function/FileFloatSource.java      |   3 +-
 .../org/apache/solr/update/PeerSyncWithLeader.java |  10 +-
 .../apache/solr/update/StreamingSolrClients.java   |   7 +-
 .../org/apache/solr/util/FileTypeMagicUtil.java    |  93 ++++---
 .../src/java/org/apache/solr/util/ModuleUtils.java |  14 +-
 .../org/apache/solr/util/StartupLoggingUtils.java  |   3 +-
 .../circuitbreaker/CircuitBreakerRegistry.java     |   5 +-
 .../src/resources/EnvToSyspropMappings.properties  |  97 ++++++++
 .../solr/core/ConfigureRecoveryStrategyTest.java   |   4 +-
 .../test/org/apache/solr/core/SolrCoreTest.java    |  60 +++++
 .../solr/handler/admin/MetricsHandlerTest.java     |   4 +
 .../solr/handler/admin/api/MergeIndexesTest.java   | 115 +++++++++
 .../handler/admin/api/V2CoreAPIMappingTest.java    |  27 --
 .../solr/handler/export/TestExportWriter.java      |  37 +++
 .../solr/schema/ResolveAnalyzerByNameTest.java     |  10 +
 .../apache/solr/update/SolrCmdDistributorTest.java |  27 +-
 .../apache/solr/util/FileTypeMagicUtilTest.java    |  58 ++---
 solr/licenses/byte-buddy-1.14.10.jar.sha1          |   1 +
 solr/licenses/byte-buddy-1.14.6.jar.sha1           |   1 -
 solr/licenses/commons-cli-1.5.0.jar.sha1           |   1 -
 solr/licenses/commons-cli-1.6.0.jar.sha1           |   1 +
 solr/licenses/http2-client-10.0.18.jar.sha1        |   1 -
 solr/licenses/http2-client-10.0.19.jar.sha1        |   1 +
 solr/licenses/http2-common-10.0.18.jar.sha1        |   1 -
 solr/licenses/http2-common-10.0.19.jar.sha1        |   1 +
 solr/licenses/http2-hpack-10.0.18.jar.sha1         |   1 -
 solr/licenses/http2-hpack-10.0.19.jar.sha1         |   1 +
 .../http2-http-client-transport-10.0.18.jar.sha1   |   1 -
 .../http2-http-client-transport-10.0.19.jar.sha1   |   1 +
 solr/licenses/http2-server-10.0.18.jar.sha1        |   1 -
 solr/licenses/http2-server-10.0.19.jar.sha1        |   1 +
 solr/licenses/jackson-annotations-2.15.3.jar.sha1  |   1 -
 solr/licenses/jackson-annotations-2.16.1.jar.sha1  |   1 +
 solr/licenses/jackson-core-2.15.3.jar.sha1         |   1 -
 solr/licenses/jackson-core-2.16.1.jar.sha1         |   1 +
 solr/licenses/jackson-databind-2.15.3.jar.sha1     |   1 -
 solr/licenses/jackson-databind-2.16.1.jar.sha1     |   1 +
 .../jackson-dataformat-cbor-2.15.3.jar.sha1        |   1 -
 .../jackson-dataformat-cbor-2.16.1.jar.sha1        |   1 +
 .../jackson-dataformat-smile-2.15.3.jar.sha1       |   1 -
 .../jackson-dataformat-smile-2.16.1.jar.sha1       |   1 +
 .../jackson-dataformat-xml-2.15.3.jar.sha1         |   1 -
 .../jackson-dataformat-xml-2.16.1.jar.sha1         |   1 +
 .../licenses/jackson-datatype-jdk8-2.15.3.jar.sha1 |   1 -
 .../licenses/jackson-datatype-jdk8-2.16.1.jar.sha1 |   1 +
 .../jackson-datatype-jsr310-2.15.3.jar.sha1        |   1 -
 .../jackson-datatype-jsr310-2.16.1.jar.sha1        |   1 +
 ...jackson-module-jaxb-annotations-2.15.3.jar.sha1 |   1 -
 ...jackson-module-jaxb-annotations-2.16.1.jar.sha1 |   1 +
 .../licenses/jackson-module-kotlin-2.15.3.jar.sha1 |   1 -
 .../licenses/jackson-module-kotlin-2.16.1.jar.sha1 |   1 +
 .../jackson-module-parameter-names-2.15.3.jar.sha1 |   1 -
 .../jackson-module-parameter-names-2.16.1.jar.sha1 |   1 +
 solr/licenses/jcl-over-slf4j-2.0.10.jar.sha1       |   1 +
 solr/licenses/jcl-over-slf4j-2.0.9.jar.sha1        |   1 -
 solr/licenses/jetty-alpn-client-10.0.18.jar.sha1   |   1 -
 solr/licenses/jetty-alpn-client-10.0.19.jar.sha1   |   1 +
 .../jetty-alpn-java-client-10.0.18.jar.sha1        |   1 -
 .../jetty-alpn-java-client-10.0.19.jar.sha1        |   1 +
 .../jetty-alpn-java-server-10.0.18.jar.sha1        |   1 -
 .../jetty-alpn-java-server-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-alpn-server-10.0.18.jar.sha1   |   1 -
 solr/licenses/jetty-alpn-server-10.0.19.jar.sha1   |   1 +
 solr/licenses/jetty-client-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-client-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-deploy-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-deploy-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-http-10.0.18.jar.sha1          |   1 -
 solr/licenses/jetty-http-10.0.19.jar.sha1          |   1 +
 solr/licenses/jetty-io-10.0.18.jar.sha1            |   1 -
 solr/licenses/jetty-io-10.0.19.jar.sha1            |   1 +
 solr/licenses/jetty-jmx-10.0.18.jar.sha1           |   1 -
 solr/licenses/jetty-jmx-10.0.19.jar.sha1           |   1 +
 solr/licenses/jetty-rewrite-10.0.18.jar.sha1       |   1 -
 solr/licenses/jetty-rewrite-10.0.19.jar.sha1       |   1 +
 solr/licenses/jetty-security-10.0.18.jar.sha1      |   1 -
 solr/licenses/jetty-security-10.0.19.jar.sha1      |   1 +
 solr/licenses/jetty-server-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-server-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-servlet-10.0.18.jar.sha1       |   1 -
 solr/licenses/jetty-servlet-10.0.19.jar.sha1       |   1 +
 solr/licenses/jetty-servlets-10.0.18.jar.sha1      |   1 -
 solr/licenses/jetty-servlets-10.0.19.jar.sha1      |   1 +
 solr/licenses/jetty-start-10.0.18-shaded.jar.sha1  |   1 -
 solr/licenses/jetty-start-10.0.19-shaded.jar.sha1  |   1 +
 solr/licenses/jetty-util-10.0.18.jar.sha1          |   1 -
 solr/licenses/jetty-util-10.0.19.jar.sha1          |   1 +
 solr/licenses/jetty-webapp-10.0.18.jar.sha1        |   1 -
 solr/licenses/jetty-webapp-10.0.19.jar.sha1        |   1 +
 solr/licenses/jetty-xml-10.0.18.jar.sha1           |   1 -
 solr/licenses/jetty-xml-10.0.19.jar.sha1           |   1 +
 solr/licenses/jul-to-slf4j-2.0.10.jar.sha1         |   1 +
 solr/licenses/jul-to-slf4j-2.0.9.jar.sha1          |   1 -
 solr/licenses/mockito-core-5.5.0.jar.sha1          |   1 -
 solr/licenses/mockito-core-5.8.0.jar.sha1          |   1 +
 ....0.jar.sha1 => mockito-subclass-5.8.0.jar.sha1} |   0
 solr/licenses/netty-buffer-4.1.101.Final.jar.sha1  |   1 -
 solr/licenses/netty-buffer-4.1.104.Final.jar.sha1  |   1 +
 solr/licenses/netty-codec-4.1.101.Final.jar.sha1   |   1 -
 solr/licenses/netty-codec-4.1.104.Final.jar.sha1   |   1 +
 .../netty-codec-http-4.1.101.Final.jar.sha1        |   1 -
 .../netty-codec-http-4.1.104.Final.jar.sha1        |   1 +
 .../netty-codec-http2-4.1.101.Final.jar.sha1       |   1 -
 .../netty-codec-http2-4.1.104.Final.jar.sha1       |   1 +
 .../netty-codec-socks-4.1.101.Final.jar.sha1       |   1 -
 .../netty-codec-socks-4.1.104.Final.jar.sha1       |   1 +
 solr/licenses/netty-common-4.1.101.Final.jar.sha1  |   1 -
 solr/licenses/netty-common-4.1.104.Final.jar.sha1  |   1 +
 solr/licenses/netty-handler-4.1.101.Final.jar.sha1 |   1 -
 solr/licenses/netty-handler-4.1.104.Final.jar.sha1 |   1 +
 .../netty-handler-proxy-4.1.101.Final.jar.sha1     |   1 -
 .../netty-handler-proxy-4.1.104.Final.jar.sha1     |   1 +
 .../licenses/netty-resolver-4.1.101.Final.jar.sha1 |   1 -
 .../licenses/netty-resolver-4.1.104.Final.jar.sha1 |   1 +
 .../netty-transport-4.1.101.Final.jar.sha1         |   1 -
 .../netty-transport-4.1.104.Final.jar.sha1         |   1 +
 ...-transport-classes-epoll-4.1.101.Final.jar.sha1 |   1 -
 ...-transport-classes-epoll-4.1.104.Final.jar.sha1 |   1 +
 ...ative-epoll-4.1.101.Final-linux-x86_64.jar.sha1 |   1 -
 ...ative-epoll-4.1.104.Final-linux-x86_64.jar.sha1 |   1 +
 ...sport-native-unix-common-4.1.101.Final.jar.sha1 |   1 -
 ...sport-native-unix-common-4.1.104.Final.jar.sha1 |   1 +
 solr/licenses/slf4j-api-2.0.10.jar.sha1            |   1 +
 solr/licenses/slf4j-api-2.0.9.jar.sha1             |   1 -
 solr/packaging/test/test_auth.bats                 |  14 ++
 .../solr/prometheus/scraper/SolrScraper.java       |  10 +-
 .../configuration-guide/pages/coreadmin-api.adoc   |  53 +++-
 .../pages/property-substitution.adoc               |   6 +-
 .../deployment-guide/pages/docker-networking.adoc  |   2 +-
 .../pages/jwt-authentication-plugin.adoc           |   2 +-
 .../pages/solr-control-script-reference.adoc       |   8 +-
 .../query-guide/pages/exporting-result-sets.adoc   |   5 +-
 .../pages/stream-decorator-reference.adoc          |   3 +-
 .../query-guide/pages/stream-source-reference.adoc |   3 +
 .../pages/major-changes-in-solr-9.adoc             |   3 +
 .../solr/client/solrj/io/SolrClientCache.java      |  45 +++-
 .../solr/client/solrj/io/stream/SelectStream.java  |  30 ++-
 solr/solrj-streaming/src/test-files/log4j2.xml     |  42 ++++
 .../solr/client/solrj/io/SolrClientCacheTest.java  |  77 ++++++
 .../io/stream/StreamExpressionToExpessionTest.java |   3 +-
 .../solrj/impl/ZkClientClusterStateProvider.java   |  11 +-
 .../org/apache/solr/common/cloud/SolrZkClient.java |  24 +-
 .../apache/solr/common/cloud/ZkStateReader.java    |  15 +-
 .../org/apache/solr/client/solrj/SolrClient.java   |  10 +
 .../org/apache/solr/client/solrj/SolrRequest.java  |  13 +
 .../solrj/impl/BaseHttpClusterStateProvider.java   |   1 +
 .../client/solrj/impl/CloudHttp2SolrClient.java    |  14 +-
 .../client/solrj/impl/CloudLegacySolrClient.java   |  29 ++-
 .../solr/client/solrj/impl/CloudSolrClient.java    |   6 -
 .../client/solrj/impl/ClusterStateProvider.java    |   6 +-
 .../impl/ConcurrentUpdateHttp2SolrClient.java      |  11 +
 .../solrj/impl/ConcurrentUpdateSolrClient.java     |   3 +
 .../solr/client/solrj/impl/Http2SolrClient.java    |  11 +-
 .../solr/client/solrj/impl/HttpSolrClient.java     |   6 +-
 .../solr/client/solrj/impl/LBHttp2SolrClient.java  |  21 +-
 .../solr/client/solrj/impl/LBHttpSolrClient.java   |   4 +
 .../solr/client/solrj/impl/LBSolrClient.java       |   3 +
 .../solr/client/solrj/impl/SolrClientBuilder.java  |   7 +
 .../solrj/request/AbstractUpdateRequest.java       |   3 +-
 ...chemaRequest.java => DataStoreSolrRequest.java} |  23 +-
 .../client/solrj/request/DirectXmlRequest.java     |   4 +-
 .../solrj/request/DocumentAnalysisRequest.java     |   3 +-
 .../client/solrj/request/FieldAnalysisRequest.java |   3 +-
 .../solr/client/solrj/request/LukeRequest.java     |   3 +-
 .../solr/client/solrj/request/QueryRequest.java    |   3 +-
 .../apache/solr/client/solrj/request/SolrPing.java |   3 +-
 .../request/schema/AbstractSchemaRequest.java      |   5 +-
 .../apache/solr/client/solrj/util/ClientUtils.java |  14 ++
 .../java/org/apache/solr/common/util/EnvUtils.java | 275 +++++++++++++++++++++
 .../util/{URLUtil.java => GlobPatternUtil.java}    |  45 ++--
 .../apache/solr/common/util/PropertiesUtil.java    |   2 +-
 .../java/org/apache/solr/common/util/URLUtil.java  |  37 +++
 solr/solrj/src/test-files/solrj/solr/solr.xml      |   3 +
 .../impl/CloudHttp2SolrClientBuilderTest.java      |  11 +
 .../solrj/impl/CloudSolrClientBuilderTest.java     |  10 +
 .../ConcurrentUpdateSolrClientBuilderTest.java     |  11 +
 .../solrj/impl/HttpSolrClientBuilderTest.java      |   9 +
 .../solrj/impl/LBHttpSolrClientBuilderTest.java    |  11 +
 .../solrj/response/TestSuggesterResponse.java      |   3 +-
 .../solr/client/solrj/util/ClientUtilsTest.java    |  19 ++
 .../org/apache/solr/common/util/EnvUtilsTest.java  | 119 +++++++++
 .../{URLUtilTest.java => TestGlobPatternUtil.java} |  22 +-
 .../org/apache/solr/common/util/URLUtilTest.java   |  63 +++++
 .../apache/solr/BaseDistributedSearchTestCase.java |  11 +-
 .../src/java/org/apache/solr/SolrTestCase.java     |   3 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |   8 +
 .../java/org/apache/solr/cloud/ConfigRequest.java  |   3 +-
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |   1 +
 versions.lock                                      | 110 ++++-----
 versions.props                                     |  12 +-
 229 files changed, 2516 insertions(+), 905 deletions(-)