You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2018/07/29 15:08:48 UTC
[26/26] lucene-solr:starburst: The Star Burst Upgrade - a work in
progress - the branch gets replaced often.
The Star Burst Upgrade - a work in progress - the branch gets replaced often.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/74a9b54c
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/74a9b54c
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/74a9b54c
Branch: refs/heads/starburst
Commit: 74a9b54c3a7dbdb919656057d8d4fe0792ee0a4d
Parents: eea4197
Author: markrmiller <ma...@apache.org>
Authored: Sat Jun 16 22:05:49 2018 -0500
Committer: markrmiller <ma...@apache.org>
Committed: Sat Jun 16 22:05:49 2018 -0500
----------------------------------------------------------------------
README.md | 100 +-
dev-tools/eclipse/run-test-cases.launch | 2 +-
.../byTask/tasks/WriteLineDocTask.java | 2 +-
.../lucene/benchmark/byTask/utils/Config.java | 91 +-
.../lucene/benchmark/byTask/utils/Format.java | 22 +
.../lucene/benchmark/utils/PropertiesUtil.java | 145 +++
lucene/common-build.xml | 2 +
lucene/ivy-versions.properties | 11 +
lucene/tools/junit4/solr-tests.policy | 5 +
solr/benchmark/.gitignore | 2 +
solr/benchmark/build.xml | 86 ++
solr/benchmark/conf/concurrent-vs-serial.alg | 80 ++
solr/benchmark/ivy.xml | 28 +
.../tasks/BlockSolrServerTillFinishTask.java | 47 +
.../byTask/tasks/InitSolrBenchTask.java | 253 ++++
.../benchmark/byTask/tasks/SolrAddDocTask.java | 200 +++
.../byTask/tasks/SolrClearIndexTask.java | 46 +
.../benchmark/byTask/tasks/SolrCommitTask.java | 81 ++
.../benchmark/byTask/tasks/SolrSearchTask.java | 86 ++
.../byTask/tasks/StartSolrServerTask.java | 99 ++
.../byTask/tasks/StopSolrServerTask.java | 76 ++
.../solr/benchmark/byTask/util/StreamEater.java | 98 ++
.../stream/AnalyticsShardRequestManager.java | 6 +-
.../apache/solr/handler/AnalyticsHandler.java | 1 +
.../handler/component/AnalyticsComponent.java | 2 +-
.../org/apache/solr/analytics/NoFacetTest.java | 6 +
.../solr/analytics/SolrAnalyticsTestCase.java | 1 -
.../facet/LegacyAbstractAnalyticsFacetTest.java | 17 +-
.../clustering/DocumentClusteringEngine.java | 2 +-
.../carrot2/LuceneCarrot2StemmerFactory.java | 1 -
.../carrot2/MockClusteringAlgorithm.java | 17 +-
.../handler/dataimport/SolrEntityProcessor.java | 16 +-
.../dataimport/TestContentStreamDataSource.java | 6 +-
.../TestSolrEntityProcessorEndToEnd.java | 10 +-
.../dataimport/TestSolrEntityProcessorUnit.java | 3 +
...DetectLanguageIdentifierUpdateProcessor.java | 6 +-
.../LanguageIdentifierUpdateProcessor.java | 20 +-
...dentifierUpdateProcessorFactoryTestCase.java | 7 +-
.../org/apache/solr/ltr/TestLTROnSolrCloud.java | 2 +-
.../solr/ltr/TestParallelWeightCreation.java | 4 +-
.../prometheus/collector/SolrCollector.java | 69 +-
.../solr/prometheus/exporter/SolrExporter.java | 43 +-
.../solr/prometheus/scraper/SolrScraper.java | 38 +-
.../solr/response/SolrParamResourceLoader.java | 12 +-
solr/core/ivy.xml | 2 +
.../solr/analysis/ReversedWildcardFilter.java | 2 +-
.../org/apache/solr/analysis/SolrAnalyzer.java | 4 +-
solr/core/src/java/org/apache/solr/api/Api.java | 5 +-
.../src/java/org/apache/solr/api/ApiBag.java | 15 +-
.../java/org/apache/solr/api/V2HttpCall.java | 24 +-
.../solrj/embedded/EmbeddedSolrServer.java | 7 +-
.../solr/client/solrj/embedded/JettyConfig.java | 34 +-
.../client/solrj/embedded/JettySolrRunner.java | 154 ++-
.../solr/client/solrj/embedded/SSLConfig.java | 3 +-
.../apache/solr/cloud/ActiveReplicaWatcher.java | 5 +-
.../org/apache/solr/cloud/ElectionContext.java | 66 +-
.../org/apache/solr/cloud/LeaderElector.java | 12 +-
.../cloud/LeaderInitiatedRecoveryThread.java | 23 +-
.../org/apache/solr/cloud/RecoveryStrategy.java | 66 +-
.../org/apache/solr/cloud/SyncStrategy.java | 66 +-
.../src/java/org/apache/solr/cloud/ZkCLI.java | 16 +-
.../org/apache/solr/cloud/ZkController.java | 79 +-
.../cloud/api/collections/DeleteReplicaCmd.java | 12 +-
.../api/collections/LeaderRecoveryWatcher.java | 4 +-
.../OverseerCollectionMessageHandler.java | 178 ++-
.../cloud/api/collections/ReplaceNodeCmd.java | 8 +-
.../solr/cloud/api/collections/RestoreCmd.java | 28 +-
.../org/apache/solr/core/BlobRepository.java | 24 +-
.../java/org/apache/solr/core/CloudConfig.java | 2 +-
.../org/apache/solr/core/CoreContainer.java | 81 +-
.../java/org/apache/solr/core/Diagnostics.java | 6 +-
.../org/apache/solr/core/DirectoryFactory.java | 2 +-
.../apache/solr/core/HdfsDirectoryFactory.java | 11 +-
.../java/org/apache/solr/core/InitParams.java | 13 +-
.../java/org/apache/solr/core/PluginInfo.java | 21 +-
.../apache/solr/core/QuerySenderListener.java | 4 +-
.../org/apache/solr/core/RequestParams.java | 7 +-
.../apache/solr/core/SchemaCodecFactory.java | 2 +-
.../java/org/apache/solr/core/SolrConfig.java | 15 +-
.../src/java/org/apache/solr/core/SolrCore.java | 17 +-
.../apache/solr/core/SolrResourceLoader.java | 2 +-
.../org/apache/solr/core/SolrXmlConfig.java | 14 +-
.../java/org/apache/solr/core/ZkContainer.java | 8 +-
.../apache/solr/core/backup/BackupManager.java | 3 +-
.../backup/repository/HdfsBackupRepository.java | 3 +-
.../core/snapshots/SolrSnapshotManager.java | 1 +
.../apache/solr/handler/AnalyzeEvaluator.java | 3 +-
.../solr/handler/CdcrReplicatorManager.java | 20 +-
.../apache/solr/handler/CdcrRequestHandler.java | 26 +-
.../solr/handler/CdcrUpdateLogSynchronizer.java | 34 +-
.../handler/DocumentAnalysisRequestHandler.java | 15 +-
.../apache/solr/handler/DumpRequestHandler.java | 4 +-
.../org/apache/solr/handler/ExportHandler.java | 4 +-
.../org/apache/solr/handler/ExportWriter.java | 10 +-
.../handler/FieldAnalysisRequestHandler.java | 14 +-
.../org/apache/solr/handler/GraphHandler.java | 4 +-
.../org/apache/solr/handler/IndexFetcher.java | 199 +--
.../apache/solr/handler/ReplicationHandler.java | 6 +-
.../solr/handler/RequestHandlerUtils.java | 15 +-
.../apache/solr/handler/SolrConfigHandler.java | 46 +-
.../handler/admin/BaseHandlerApiSupport.java | 11 +-
.../solr/handler/admin/CollectionsHandler.java | 259 ++--
.../handler/admin/MetricsHistoryHandler.java | 13 +-
.../solr/handler/admin/PrepRecoveryOp.java | 208 ++--
.../handler/component/HttpShardHandler.java | 236 +++-
.../component/HttpShardHandlerFactory.java | 142 ++-
.../component/IterativeMergeStrategy.java | 31 +-
.../handler/component/ShardHandlerFactory.java | 16 +-
.../solr/handler/component/ShardResponse.java | 8 +
.../solr/handler/loader/JavabinLoader.java | 9 +-
.../solr/logging/log4j2/Log4j2Watcher.java | 19 +-
.../reporters/solr/SolrClusterReporter.java | 4 +-
.../metrics/reporters/solr/SolrReporter.java | 22 +-
.../solr/metrics/rrd/SolrRrdBackendFactory.java | 3 +-
.../org/apache/solr/request/SimpleFacets.java | 27 +-
.../apache/solr/request/SolrQueryRequest.java | 16 +-
.../org/apache/solr/request/json/JSONUtil.java | 1 +
.../solr/request/macro/MacroExpander.java | 8 +-
.../response/BinaryQueryResponseWriter.java | 2 +-
.../apache/solr/schema/ManagedIndexSchema.java | 11 +-
.../java/org/apache/solr/search/SolrFilter.java | 8 +-
.../apache/solr/search/SolrIndexSearcher.java | 36 +-
.../apache/solr/search/SolrReturnFields.java | 16 +-
.../solr/security/PKIAuthenticationPlugin.java | 24 +-
.../solr/servlet/AdjustableSemaphore.java | 76 ++
.../solr/servlet/DirectSolrConnection.java | 2 +-
.../org/apache/solr/servlet/HttpSolrCall.java | 331 +++--
.../apache/solr/servlet/LoadAdminUiServlet.java | 18 +-
.../java/org/apache/solr/servlet/QoSFilter.java | 402 ++++++
.../apache/solr/servlet/SolrDispatchFilter.java | 108 +-
.../org/apache/solr/servlet/SolrQoSFilter.java | 80 ++
.../apache/solr/servlet/SolrRequestParsers.java | 34 +-
.../solr/servlet/cache/HttpCacheHeaderUtil.java | 11 +-
.../solr/spelling/FileBasedSpellChecker.java | 11 +-
.../solr/spelling/IndexBasedSpellChecker.java | 9 +-
.../solr/spelling/SpellCheckCollator.java | 4 +-
.../apache/solr/spelling/SpellingResult.java | 2 +-
.../solr/spelling/suggest/SolrSuggester.java | 6 +-
.../suggest/fst/BlendedInfixLookupFactory.java | 2 +-
.../apache/solr/store/hdfs/HdfsDirectory.java | 1 +
.../solr/store/hdfs/HdfsLocalityReporter.java | 3 +-
.../org/apache/solr/uninverting/FieldCache.java | 2 +-
.../org/apache/solr/update/CommitTracker.java | 3 +-
.../solr/update/DefaultSolrCoreState.java | 13 +-
.../solr/update/DirectUpdateHandler2.java | 3 +-
.../java/org/apache/solr/update/PeerSync.java | 20 +-
.../apache/solr/update/SolrCmdDistributor.java | 296 ++---
.../solr/update/StreamingSolrClients.java | 175 ---
.../apache/solr/update/UpdateShardHandler.java | 178 +--
.../solr/update/UpdateShardHandlerConfig.java | 2 +-
.../processor/AtomicUpdateProcessorFactory.java | 6 +-
.../processor/CdcrUpdateProcessorFactory.java | 3 +
.../ClassificationUpdateProcessorFactory.java | 4 +-
.../ConcatFieldUpdateProcessorFactory.java | 4 +-
.../processor/DistributedUpdateProcessor.java | 199 +--
.../DistributedUpdateProcessorFactory.java | 2 +
.../DocBasedVersionConstraintsProcessor.java | 10 +-
.../DocExpirationUpdateProcessorFactory.java | 6 +-
.../FieldLengthUpdateProcessorFactory.java | 6 +-
.../processor/FieldMutatingUpdateProcessor.java | 8 +-
.../FieldMutatingUpdateProcessorFactory.java | 4 +-
.../FieldValueMutatingUpdateProcessor.java | 1 -
.../FieldValueSubsetUpdateProcessorFactory.java | 4 +-
.../FirstFieldValueUpdateProcessorFactory.java | 4 +-
.../HTMLStripFieldUpdateProcessorFactory.java | 4 +-
...oreCommitOptimizeUpdateProcessorFactory.java | 3 +-
.../IgnoreFieldUpdateProcessorFactory.java | 4 +-
.../IgnoreLargeDocumentProcessorFactory.java | 6 +-
.../LastFieldValueUpdateProcessorFactory.java | 8 +-
.../MaxFieldValueUpdateProcessorFactory.java | 6 +-
.../processor/RegexReplaceProcessorFactory.java | 4 +-
.../processor/RegexpBoostProcessorFactory.java | 1 +
.../RemoveBlankFieldUpdateProcessorFactory.java | 6 +-
.../processor/RunUpdateProcessorFactory.java | 8 +-
.../SkipExistingDocumentsProcessorFactory.java | 14 +-
.../StatelessScriptUpdateProcessorFactory.java | 51 +-
.../TimeRoutedAliasUpdateProcessor.java | 11 +-
.../processor/TolerantUpdateProcessor.java | 9 +-
.../src/java/org/apache/solr/util/DOMUtil.java | 4 +-
.../org/apache/solr/util/DistanceUnits.java | 5 +-
.../org/apache/solr/util/SimplePostTool.java | 21 +-
.../src/java/org/apache/solr/util/SolrCLI.java | 166 +--
.../solr/util/SolrFileCleaningTracker.java | 17 +-
.../java/org/apache/solr/util/SpatialUtils.java | 2 +-
.../org/apache/solr/util/TestInjection.java | 35 +-
.../SSLCredentialProviderFactory.java | 3 +-
.../providers/HadoopSSLCredentialProvider.java | 4 +-
.../stats/InstrumentedHttpRequestExecutor.java | 7 +-
solr/core/src/test-files/log4j2.xml | 5 +-
.../org/apache/solr/BasicFunctionalityTest.java | 10 +-
.../org/apache/solr/ConvertedLegacyTest.java | 8 +-
.../test/org/apache/solr/CursorPagingTest.java | 48 +-
.../apache/solr/DisMaxRequestHandlerTest.java | 4 +-
.../solr/DistributedIntervalFacetingTest.java | 6 +-
.../solr/HelloWorldSolrCloudTestCase.java | 1 -
.../src/test/org/apache/solr/SampleTest.java | 4 +-
.../test/org/apache/solr/TestCrossCoreJoin.java | 3 +-
.../apache/solr/TestDistributedGrouping.java | 18 +-
.../apache/solr/TestDistributedMissingSort.java | 4 +
.../org/apache/solr/TestDistributedSearch.java | 56 +-
.../org/apache/solr/TestDocumentBuilder.java | 3 +-
.../org/apache/solr/TestGroupingSearch.java | 5 +-
.../apache/solr/TestHighlightDedupGrouping.java | 17 +-
.../org/apache/solr/TestRandomDVFaceting.java | 10 +-
.../org/apache/solr/TestRandomFaceting.java | 4 +
.../solr/TestSimpleTrackingShardHandler.java | 12 +-
.../org/apache/solr/TestTolerantSearch.java | 12 +-
.../backcompat/TestLuceneIndexBackCompat.java | 4 +
.../TestEmbeddedSolrServerAdminHandler.java | 2 +-
.../client/solrj/impl/ConnectionReuseTest.java | 18 +-
.../org/apache/solr/cloud/AddReplicaTest.java | 3 +
.../apache/solr/cloud/AliasIntegrationTest.java | 37 +-
.../solr/cloud/BasicDistributedZk2Test.java | 27 +-
.../solr/cloud/BasicDistributedZkTest.java | 202 +++-
.../test/org/apache/solr/cloud/BasicZkTest.java | 8 +-
.../cloud/ChaosMonkeyNothingIsSafeTest.java | 6 +-
...MonkeyNothingIsSafeWithPullReplicasTest.java | 7 +-
.../solr/cloud/ChaosMonkeySafeLeaderTest.java | 12 +-
...aosMonkeySafeLeaderWithPullReplicasTest.java | 5 +-
.../solr/cloud/ChaosMonkeyShardSplitTest.java | 10 +-
.../apache/solr/cloud/CleanupOldIndexTest.java | 8 +-
.../cloud/CloudExitableDirectoryReaderTest.java | 8 +
.../org/apache/solr/cloud/ClusterStateTest.java | 2 +-
.../apache/solr/cloud/CollectionPropsTest.java | 9 +-
.../solr/cloud/CollectionStateFormat2Test.java | 3 +
.../solr/cloud/CollectionsAPISolrJTest.java | 22 +-
.../solr/cloud/ConnectionManagerTest.java | 1 +
.../solr/cloud/CreateCollectionCleanupTest.java | 3 +
.../solr/cloud/CreateRoutedAliasTest.java | 103 +-
.../solr/cloud/DeleteInactiveReplicaTest.java | 6 +
.../apache/solr/cloud/DeleteReplicaTest.java | 14 +-
.../solr/cloud/DistribCursorPagingTest.java | 29 +-
...DistribDocExpirationUpdateProcessorTest.java | 8 +-
.../cloud/DistribJoinFromCollectionTest.java | 12 +-
.../solr/cloud/DistributedVersionInfoTest.java | 25 +-
.../solr/cloud/DocValuesNotIndexedTest.java | 13 +-
.../org/apache/solr/cloud/ForceLeaderTest.java | 1 +
.../cloud/FullSolrCloudDistribCmdsTest.java | 45 +-
.../FullThrottleStoppableIndexingThread.java | 34 +-
.../solr/cloud/HealthCheckHandlerTest.java | 19 +-
.../solr/cloud/HttpPartitionOnCommitTest.java | 16 +-
.../apache/solr/cloud/HttpPartitionTest.java | 43 +-
.../solr/cloud/LIROnShardRestartTest.java | 4 +-
.../solr/cloud/LIRRollingUpdatesTest.java | 23 +-
.../cloud/LeaderElectionContextKeyTest.java | 4 +-
.../apache/solr/cloud/LeaderElectionTest.java | 8 +-
.../cloud/LeaderFailoverAfterPartitionTest.java | 23 +-
.../cloud/LeaderFailureAfterFreshStartTest.java | 9 +-
.../solr/cloud/LeaderVoteWaitTimeoutTest.java | 20 +-
.../cloud/MetricsHistoryIntegrationTest.java | 5 +-
.../apache/solr/cloud/MigrateRouteKeyTest.java | 12 +-
.../solr/cloud/MoveReplicaHDFSFailoverTest.java | 12 +-
.../apache/solr/cloud/MoveReplicaHDFSTest.java | 10 +-
.../org/apache/solr/cloud/MoveReplicaTest.java | 10 +-
.../solr/cloud/MultiSolrCloudTestCaseTest.java | 6 +
.../apache/solr/cloud/MultiThreadedOCPTest.java | 22 +-
...verseerCollectionConfigSetProcessorTest.java | 33 +-
.../apache/solr/cloud/OverseerRolesTest.java | 6 +-
.../org/apache/solr/cloud/OverseerTest.java | 17 +-
.../solr/cloud/PeerSyncReplicationTest.java | 16 +-
.../solr/cloud/RecoveryAfterSoftCommitTest.java | 8 +-
.../org/apache/solr/cloud/RecoveryZkTest.java | 7 +-
.../solr/cloud/ReplaceNodeNoTargetTest.java | 4 +-
.../org/apache/solr/cloud/ReplaceNodeTest.java | 12 +-
.../solr/cloud/ReplicationFactorTest.java | 7 +-
.../apache/solr/cloud/RollingRestartTest.java | 6 +
.../org/apache/solr/cloud/SSLMigrationTest.java | 19 +-
.../solr/cloud/SaslZkACLProviderTest.java | 9 +-
.../cloud/SegmentTerminateEarlyTestState.java | 2 +-
.../solr/cloud/ShardRoutingCustomTest.java | 2 +-
.../org/apache/solr/cloud/ShardRoutingTest.java | 13 +-
.../cloud/SharedFSAutoReplicaFailoverTest.java | 8 +-
.../org/apache/solr/cloud/SliceStateTest.java | 10 +-
.../apache/solr/cloud/SolrCLIZkUtilsTest.java | 7 +
.../apache/solr/cloud/SolrCloudExampleTest.java | 12 +-
.../org/apache/solr/cloud/SyncSliceTest.java | 25 +-
.../solr/cloud/TestAuthenticationFramework.java | 8 +-
.../apache/solr/cloud/TestCloudConsistency.java | 28 +-
.../solr/cloud/TestCloudDeleteByQuery.java | 12 +-
.../cloud/TestCloudJSONFacetJoinDomain.java | 10 +-
.../solr/cloud/TestCloudJSONFacetSKG.java | 16 +-
.../apache/solr/cloud/TestCloudPivotFacet.java | 24 +-
.../solr/cloud/TestCloudPseudoReturnFields.java | 12 +-
.../apache/solr/cloud/TestCloudRecovery.java | 20 +-
.../solr/cloud/TestCloudSearcherWarming.java | 12 +-
.../solr/cloud/TestClusterProperties.java | 6 +
.../apache/solr/cloud/TestConfigSetsAPI.java | 27 +-
.../solr/cloud/TestConfigSetsAPIZkFailure.java | 2 +-
.../org/apache/solr/cloud/TestCryptoKeys.java | 12 +-
.../solr/cloud/TestDistribDocBasedVersion.java | 19 +-
.../solr/cloud/TestDownShardTolerantSearch.java | 7 +-
.../TestLeaderElectionWithEmptyReplica.java | 12 +-
.../solr/cloud/TestLeaderElectionZkExpiry.java | 3 +
.../solr/cloud/TestMiniSolrCloudClusterSSL.java | 83 +-
.../cloud/TestOnReconnectListenerSupport.java | 8 +-
.../org/apache/solr/cloud/TestPullReplica.java | 69 +-
.../cloud/TestPullReplicaErrorHandling.java | 28 +-
.../apache/solr/cloud/TestRandomFlRTGCloud.java | 9 +-
.../cloud/TestRandomRequestDistribution.java | 15 +-
.../apache/solr/cloud/TestRebalanceLeaders.java | 5 +
.../solr/cloud/TestRequestForwarding.java | 14 +-
.../apache/solr/cloud/TestSSLRandomization.java | 7 +-
.../apache/solr/cloud/TestSegmentSorting.java | 10 +-
.../solr/cloud/TestShortCircuitedRequests.java | 8 +-
.../solr/cloud/TestSkipOverseerOperations.java | 6 +
.../TestSolrCloudWithDelegationTokens.java | 89 +-
.../cloud/TestSolrCloudWithKerberosAlt.java | 9 +-
.../TestSolrCloudWithSecureImpersonation.java | 42 +-
.../TestStressCloudBlindAtomicUpdates.java | 9 +-
.../solr/cloud/TestStressInPlaceUpdates.java | 9 +-
.../apache/solr/cloud/TestStressLiveNodes.java | 8 +-
.../org/apache/solr/cloud/TestTlogReplica.java | 112 +-
.../cloud/TestTolerantUpdateProcessorCloud.java | 20 +-
.../TestTolerantUpdateProcessorRandomCloud.java | 31 +-
.../solr/cloud/UnloadDistributedZkTest.java | 36 +-
.../org/apache/solr/cloud/ZkControllerTest.java | 23 +-
.../org/apache/solr/cloud/ZkFailoverTest.java | 8 +
.../org/apache/solr/cloud/ZkShardTermsTest.java | 6 +
.../org/apache/solr/cloud/ZkSolrClientTest.java | 10 +-
.../AbstractCloudBackupRestoreTestCase.java | 4 +-
.../solr/cloud/api/collections/AssignTest.java | 18 +-
.../CollectionTooManyReplicasTest.java | 4 +
.../CollectionsAPIAsyncDistributedZkTest.java | 9 +-
.../CollectionsAPIDistributedZkTest.java | 23 +-
.../api/collections/CustomCollectionTest.java | 14 +-
.../HdfsCollectionsAPIDistributedZkTest.java | 15 +-
.../api/collections/ReplicaPropertiesBase.java | 12 +-
.../cloud/api/collections/ShardSplitTest.java | 73 +-
.../api/collections/TestCollectionAPI.java | 14 +-
.../TestCollectionsAPIViaSolrCloudCluster.java | 8 +-
.../collections/TestHdfsCloudBackupRestore.java | 18 +-
.../TestLocalFSCloudBackupRestore.java | 3 +
.../api/collections/TestReplicaProperties.java | 4 +
.../TestRequestStatusCollectionAPI.java | 12 +-
.../AutoAddReplicasIntegrationTest.java | 7 +-
.../AutoAddReplicasPlanActionTest.java | 7 +-
.../autoscaling/AutoScalingHandlerTest.java | 40 +-
.../autoscaling/ComputePlanActionTest.java | 13 +-
.../autoscaling/ExecutePlanActionTest.java | 12 +-
.../HdfsAutoAddReplicasIntegrationTest.java | 7 +-
.../autoscaling/HttpTriggerListenerTest.java | 16 +-
.../cloud/autoscaling/IndexSizeTriggerTest.java | 8 +-
.../MetricTriggerIntegrationTest.java | 12 +-
.../cloud/autoscaling/MetricTriggerTest.java | 6 +
.../NodeAddedTriggerIntegrationTest.java | 14 +-
.../cloud/autoscaling/NodeAddedTriggerTest.java | 12 +-
.../NodeLostTriggerIntegrationTest.java | 14 +-
.../cloud/autoscaling/NodeLostTriggerTest.java | 8 +-
.../NodeMarkersRegistrationTest.java | 8 +-
.../autoscaling/RestoreTriggerStateTest.java | 12 +-
.../ScheduledMaintenanceTriggerTest.java | 6 +-
.../ScheduledTriggerIntegrationTest.java | 4 +-
.../SearchRateTriggerIntegrationTest.java | 14 +-
.../autoscaling/SearchRateTriggerTest.java | 16 +-
.../autoscaling/SystemLogListenerTest.java | 7 +-
.../solr/cloud/autoscaling/TestPolicyCloud.java | 18 +-
.../TriggerCooldownIntegrationTest.java | 12 +-
.../autoscaling/TriggerIntegrationTest.java | 10 +-
.../TriggerSetPropertiesIntegrationTest.java | 11 +-
.../sim/GenericDistributedQueue.java | 9 +-
.../cloud/autoscaling/sim/SimCloudManager.java | 13 +-
.../sim/SimClusterStateProvider.java | 20 +-
.../autoscaling/sim/SimDistribStateManager.java | 2 +-
.../autoscaling/sim/SimSolrCloudTestCase.java | 4 +-
.../autoscaling/sim/TestComputePlanAction.java | 12 +-
.../autoscaling/sim/TestExecutePlanAction.java | 8 +-
.../cloud/autoscaling/sim/TestLargeCluster.java | 11 +-
.../autoscaling/sim/TestTriggerIntegration.java | 14 +-
.../cloud/cdcr/BaseCdcrDistributedZkTest.java | 20 +-
.../solr/cloud/cdcr/CdcrBidirectionalTest.java | 10 +-
.../solr/cloud/cdcr/CdcrBootstrapTest.java | 8 +
.../solr/cloud/cdcr/CdcrRequestHandlerTest.java | 4 +-
.../apache/solr/cloud/cdcr/CdcrTestsUtil.java | 6 +-
.../cloud/cdcr/CdcrVersionReplicationTest.java | 4 +-
.../solr/cloud/hdfs/HDFSCollectionsAPITest.java | 8 +-
.../hdfs/HdfsChaosMonkeyNothingIsSafeTest.java | 5 +-
.../solr/cloud/hdfs/HdfsNNFailoverTest.java | 2 +
.../solr/cloud/hdfs/HdfsRecoverLeaseTest.java | 5 +
.../solr/cloud/hdfs/HdfsRecoveryZkTest.java | 5 +-
.../apache/solr/cloud/hdfs/HdfsTestUtil.java | 2 +-
.../solr/cloud/hdfs/HdfsThreadLeakTest.java | 6 +
.../HdfsWriteToMultipleCollectionsTest.java | 4 +-
.../apache/solr/cloud/hdfs/StressHdfsTest.java | 29 +-
.../solr/cloud/rule/ImplicitSnitchTest.java | 12 +-
.../apache/solr/cloud/rule/RuleEngineTest.java | 13 +-
.../org/apache/solr/cloud/rule/RulesTest.java | 22 +-
.../solr/core/BlobRepositoryCloudTest.java | 1 +
.../solr/core/BlobRepositoryMockingTest.java | 17 +-
.../apache/solr/core/DirectoryFactoryTest.java | 20 +-
.../solr/core/ExitableDirectoryReaderTest.java | 8 +
.../apache/solr/core/FakeDeletionPolicy.java | 6 +-
.../solr/core/OpenCloseCoreStressTest.java | 56 +-
.../apache/solr/core/QueryResultKeyTest.java | 2 +-
.../solr/core/RAMDirectoryFactoryTest.java | 7 +-
.../apache/solr/core/RequestHandlersTest.java | 3 +-
.../apache/solr/core/ResourceLoaderTest.java | 7 +-
.../test/org/apache/solr/core/SOLR749Test.java | 2 +-
.../test/org/apache/solr/core/SolrCoreTest.java | 18 +-
.../test/org/apache/solr/core/TestConfig.java | 15 +-
.../org/apache/solr/core/TestConfigOverlay.java | 8 +-
.../solr/core/TestConfigSetProperties.java | 5 +-
.../org/apache/solr/core/TestCustomStream.java | 7 +-
.../apache/solr/core/TestDynamicLoading.java | 23 +-
.../org/apache/solr/core/TestDynamicURP.java | 11 +-
.../apache/solr/core/TestJmxIntegration.java | 30 +-
.../org/apache/solr/core/TestLazyCores.java | 8 +-
.../apache/solr/core/TestMergePolicyConfig.java | 6 +
.../apache/solr/core/TestSolrConfigHandler.java | 14 +-
.../core/snapshots/TestSolrCloudSnapshots.java | 5 +-
.../handler/AnalysisRequestHandlerTestBase.java | 2 +-
.../apache/solr/handler/BackupRestoreUtils.java | 23 +-
.../apache/solr/handler/CheckBackupStatus.java | 15 +-
.../DocumentAnalysisRequestHandlerTest.java | 16 +-
.../org/apache/solr/handler/JsonLoaderTest.java | 10 +-
.../solr/handler/PingRequestHandlerTest.java | 6 +
.../apache/solr/handler/RequestLoggingTest.java | 8 +
.../apache/solr/handler/TestBlobHandler.java | 80 +-
.../apache/solr/handler/TestConfigReload.java | 35 +-
.../solr/handler/TestHdfsBackupRestoreCore.java | 17 +-
.../solr/handler/TestReplicationHandler.java | 54 +-
.../handler/TestReplicationHandlerBackup.java | 60 +-
.../apache/solr/handler/TestReqParamsAPI.java | 6 +
.../apache/solr/handler/TestRestoreCore.java | 48 +-
.../org/apache/solr/handler/TestSQLHandler.java | 4 +
.../solr/handler/TestSQLHandlerNonCloud.java | 3 +
.../handler/TestSolrConfigHandlerCloud.java | 10 +-
.../TestSolrConfigHandlerConcurrent.java | 26 +-
.../solr/handler/TestSystemCollAutoCreate.java | 3 +
.../solr/handler/V2ApiIntegrationTest.java | 11 +-
.../apache/solr/handler/V2StandaloneTest.java | 27 +-
.../admin/AutoscalingHistoryHandlerTest.java | 8 +-
.../handler/admin/CoreAdminHandlerTest.java | 36 +-
.../solr/handler/admin/InfoHandlerTest.java | 1 +
.../handler/admin/LukeRequestHandlerTest.java | 2 +-
.../solr/handler/admin/MBeansHandlerTest.java | 8 +-
.../admin/MetricsHistoryHandlerTest.java | 2 +
.../handler/admin/SecurityConfHandlerTest.java | 8 +-
.../admin/SegmentsInfoRequestHandlerTest.java | 3 +-
.../admin/ShowFileRequestHandlerTest.java | 10 +-
.../handler/admin/SystemInfoHandlerTest.java | 7 +-
.../solr/handler/admin/TestApiFramework.java | 22 +-
.../solr/handler/admin/TestConfigsApi.java | 15 +-
.../component/CustomHighlightComponentTest.java | 6 +
.../DistributedDebugComponentTest.java | 26 +-
.../DistributedExpandComponentTest.java | 6 +-
.../DistributedFacetExistsSmallTest.java | 6 +
.../DistributedFacetPivotLargeTest.java | 6 +-
.../DistributedFacetPivotLongTailTest.java | 9 +-
.../DistributedFacetPivotSmallAdvancedTest.java | 4 +-
.../DistributedFacetPivotSmallTest.java | 9 +-
.../DistributedFacetPivotWhiteBoxTest.java | 4 +-
...DistributedQueryComponentCustomSortTest.java | 8 +-
...stributedQueryComponentOptimizationTest.java | 3 +
.../DistributedQueryElevationComponentTest.java | 10 +-
.../DistributedSpellCheckComponentTest.java | 10 +-
.../DistributedSuggestComponentTest.java | 8 +-
.../DistributedTermsComponentTest.java | 6 +
.../component/QueryElevationComponentTest.java | 1 +
.../component/ReplicaListTransformerTest.java | 25 +-
.../component/ResourceSharingTestComponent.java | 16 +-
.../handler/component/SearchHandlerTest.java | 14 +-
.../ShufflingReplicaListTransformerTest.java | 4 +-
.../component/SpatialHeatmapFacetsTest.java | 8 +-
.../component/SpellCheckComponentTest.java | 3 +-
.../handler/component/StatsComponentTest.java | 24 +-
.../SuggestComponentContextFilterQueryTest.java | 4 +-
.../handler/component/SuggestComponentTest.java | 7 +-
.../TermVectorComponentDistributedTest.java | 7 +-
...estDistributedStatsComponentCardinality.java | 18 +-
.../TestTrackingShardHandlerFactory.java | 6 +
.../apache/solr/highlight/DummyHighlighter.java | 4 +-
.../solr/highlight/HighlighterConfigTest.java | 2 +-
.../apache/solr/highlight/HighlighterTest.java | 2 +-
.../index/TestSlowCompositeReaderWrapper.java | 6 +-
.../solr/index/hdfs/CheckHdfsIndexTest.java | 5 +
.../org/apache/solr/logging/TestLogWatcher.java | 3 +
.../solr/metrics/SolrMetricReporterTest.java | 4 +-
.../reporters/SolrGangliaReporterTest.java | 19 +-
.../reporters/SolrSlf4jReporterTest.java | 5 +-
.../reporters/solr/SolrCloudReportersTest.java | 8 +-
.../reporters/solr/SolrShardReporterTest.java | 8 +-
.../metrics/rrd/SolrRrdBackendFactoryTest.java | 3 +
.../solr/request/RegexBytesRefFilterTest.java | 4 +-
.../request/SubstringBytesRefFilterTest.java | 4 +-
.../solr/request/TestIntervalFaceting.java | 6 +
.../solr/request/TestRemoteStreaming.java | 39 +-
.../solr/request/macro/TestMacroExpander.java | 6 +-
.../apache/solr/response/SmileWriterTest.java | 19 +-
.../solr/response/TestSolrQueryResponse.java | 6 +-
.../TestSubQueryTransformerDistrib.java | 3 +
.../org/apache/solr/rest/TestRestManager.java | 2 +-
.../solr/rest/schema/TestBulkSchemaAPI.java | 36 +-
.../TestDynamicFieldCollectionResource.java | 6 +
.../analysis/TestManagedStopFilterFactory.java | 3 +
.../TestManagedSynonymFilterFactory.java | 3 +
.../TestManagedSynonymGraphFilterFactory.java | 3 +
.../solr/schema/ChangedSchemaMergeTest.java | 5 +-
.../solr/schema/CurrencyFieldTypeTest.java | 9 +-
.../org/apache/solr/schema/DateFieldTest.java | 2 +-
.../org/apache/solr/schema/DocValuesTest.java | 6 +
.../solr/schema/ExternalFileFieldSortTest.java | 6 +-
.../org/apache/solr/schema/IndexSchemaTest.java | 8 +-
.../ManagedSchemaRoundRobinCloudTest.java | 7 +-
.../PreAnalyzedFieldManagedSchemaCloudTest.java | 3 +
.../solr/schema/PrimitiveFieldTypeTest.java | 2 +-
.../solr/schema/SchemaApiFailureTest.java | 7 +-
.../apache/solr/schema/SchemaWatcherTest.java | 8 +-
.../org/apache/solr/schema/TestBinaryField.java | 151 ++-
.../solr/schema/TestBulkSchemaConcurrent.java | 124 +-
.../solr/schema/TestCloudManagedSchema.java | 17 +-
.../apache/solr/schema/TestCloudSchemaless.java | 20 +-
.../apache/solr/schema/TestManagedSchema.java | 6 +
.../solr/schema/TestManagedSchemaAPI.java | 3 +
.../org/apache/solr/schema/TestPointFields.java | 8 +-
.../solr/schema/TestUseDocValuesAsStored.java | 17 +-
.../org/apache/solr/schema/UUIDFieldTest.java | 4 +-
.../solr/search/AnalyticsTestQParserPlugin.java | 15 +-
.../apache/solr/search/FooQParserPlugin.java | 6 +-
.../apache/solr/search/QueryEqualityTest.java | 3 +-
.../apache/solr/search/ReturnFieldsTest.java | 26 +-
.../apache/solr/search/SortSpecParsingTest.java | 4 +-
.../test/org/apache/solr/search/TestDocSet.java | 4 +-
.../apache/solr/search/TestFastLRUCache.java | 16 +-
.../solr/search/TestFilteredDocIdSet.java | 8 +-
.../apache/solr/search/TestIndexSearcher.java | 5 +
.../org/apache/solr/search/TestLFUCache.java | 4 +
.../org/apache/solr/search/TestLRUCache.java | 4 +-
.../TestLegacyNumericRangeQueryBuilder.java | 22 +-
.../search/TestRandomCollapseQParserPlugin.java | 13 +-
.../org/apache/solr/search/TestRangeQuery.java | 7 +
.../apache/solr/search/TestRankQueryPlugin.java | 2 +-
.../org/apache/solr/search/TestRecovery.java | 51 +-
.../apache/solr/search/TestRecoveryHdfs.java | 5 +
.../apache/solr/search/TestSmileRequest.java | 3 +-
.../apache/solr/search/TestSolrCoreParser.java | 5 +-
.../test/org/apache/solr/search/TestSolrJ.java | 16 +-
.../solr/search/TestStandardQParsers.java | 7 +-
.../org/apache/solr/search/TestXmlQParser.java | 8 +
...ibutedFacetSimpleRefinementLongTailTest.java | 6 +
.../search/facet/TestJsonFacetRefinement.java | 6 +
.../solr/search/facet/TestJsonFacets.java | 16 +-
.../solr/search/function/TestFunctionQuery.java | 6 +
.../function/TestMinMaxOnMultiValuedField.java | 8 +-
.../solr/search/function/TestOrdValues.java | 10 +-
.../function/distance/DistanceFunctionTest.java | 4 +-
.../search/join/BlockJoinFacetDistribTest.java | 6 +
.../search/join/TestCloudNestedDocsSort.java | 17 +
.../search/stats/TestDefaultStatsCache.java | 6 +
.../solr/search/stats/TestDistribIDF.java | 6 +
.../solr/search/stats/TestExactStatsCache.java | 7 +
.../solr/security/BasicAuthIntegrationTest.java | 38 +-
.../solr/security/BasicAuthStandaloneTest.java | 32 +-
.../HttpParamDelegationTokenPlugin.java | 1 -
.../PKIAuthenticationIntegrationTest.java | 21 +-
.../security/TestAuthorizationFramework.java | 8 +-
.../hadoop/TestDelegationWithHadoopAuth.java | 57 +-
.../hadoop/TestImpersonationWithHadoopAuth.java | 33 +-
.../TestSolrCloudWithHadoopAuthPlugin.java | 3 +
.../apache/solr/servlet/CacheHeaderTest.java | 53 +-
.../solr/servlet/CacheHeaderTestBase.java | 20 +-
.../solr/servlet/DirectSolrConnectionTest.java | 2 +-
.../solr/servlet/HttpSolrCallGetCoreTest.java | 7 +-
.../apache/solr/servlet/NoCacheHeaderTest.java | 26 +-
.../apache/solr/servlet/ResponseHeaderTest.java | 39 +-
.../solr/servlet/SolrRequestParserTest.java | 22 +-
.../ConjunctionSolrSpellCheckerTest.java | 4 +-
.../apache/solr/spelling/SampleComparator.java | 4 +-
.../solr/spelling/SpellCheckCollatorTest.java | 2 +-
.../spelling/SpellingQueryConverterTest.java | 4 +-
.../solr/store/blockcache/BlockCacheTest.java | 8 +-
.../store/blockcache/BlockDirectoryTest.java | 9 +-
.../solr/store/blockcache/BufferStoreTest.java | 4 +-
.../solr/store/hdfs/HdfsDirectoryTest.java | 16 +-
.../solr/uninverting/TestLegacyFieldCache.java | 4 +-
.../solr/update/DirectUpdateHandlerTest.java | 9 +-
.../apache/solr/update/DocumentBuilderTest.java | 3 +-
.../solr/update/MaxSizeAutoCommitTest.java | 8 +-
.../solr/update/MockStreamingSolrClients.java | 17 +-
.../org/apache/solr/update/PeerSyncTest.java | 10 +-
.../apache/solr/update/SoftAutoCommitTest.java | 8 +-
.../solr/update/SolrCmdDistributorTest.java | 105 +-
.../solr/update/SolrIndexSplitterTest.java | 5 +-
.../solr/update/TestInPlaceUpdatesDistrib.java | 41 +-
.../update/TestInPlaceUpdatesStandalone.java | 10 +-
.../apache/solr/update/TransactionLogTest.java | 4 +-
.../AtomicUpdateProcessorFactoryTest.java | 10 +
.../update/processor/AtomicUpdatesTest.java | 3 +-
...lassificationUpdateProcessorFactoryTest.java | 6 +-
.../ClassificationUpdateProcessorTest.java | 6 +-
...DocExpirationUpdateProcessorFactoryTest.java | 14 +-
.../FieldMutatingUpdateProcessorTest.java | 2 +-
...ommitOptimizeUpdateProcessorFactoryTest.java | 4 +-
...IgnoreLargeDocumentProcessorFactoryTest.java | 6 +-
.../RecordingUpdateProcessorFactory.java | 7 +-
.../processor/RegexBoostProcessorTest.java | 2 +-
.../solr/update/processor/ScriptEngineTest.java | 8 +-
...ipExistingDocumentsProcessorFactoryTest.java | 3 +-
.../processor/TemplateUpdateProcessorTest.java | 6 +
.../processor/TestNamedUpdateProcessors.java | 11 +-
.../TimeRoutedAliasUpdateProcessorTest.java | 3 +
.../org/apache/solr/util/CircularListTest.java | 4 +-
.../apache/solr/util/DateMathParserTest.java | 8 +-
.../org/apache/solr/util/DistanceUnitsTest.java | 4 +-
.../org/apache/solr/util/FileUtilsTest.java | 4 +-
.../apache/solr/util/OrderedExecutorTest.java | 4 +-
.../org/apache/solr/util/PrimUtilsTest.java | 6 +-
.../apache/solr/util/TestFastOutputStream.java | 8 +-
.../solr/util/TestObjectReleaseTracker.java | 6 +-
.../org/apache/solr/util/TestRTimerTree.java | 4 +-
.../apache/solr/util/TestSolrCLIRunExample.java | 13 +-
.../apache/solr/util/TestSystemIdResolver.java | 3 +-
.../org/apache/solr/util/TestTestInjection.java | 4 +-
.../org/apache/solr/util/TimeZoneUtilsTest.java | 12 +-
.../HadoopSSLCredentialProviderTest.java | 12 +-
.../BigEndianAscendingWordDeserializerTest.java | 8 +-
.../BigEndianAscendingWordSerializerTest.java | 4 +-
.../org/apache/solr/util/hll/BitVectorTest.java | 4 +-
.../apache/solr/util/hll/ExplicitHLLTest.java | 7 +-
.../org/apache/solr/util/hll/FullHLLTest.java | 4 +-
.../solr/util/hll/HLLSerializationTest.java | 21 +-
.../org/apache/solr/util/hll/HLLUtilTest.java | 4 +-
.../solr/util/hll/IntegrationTestGenerator.java | 6 +-
.../org/apache/solr/util/hll/SparseHLLTest.java | 4 +-
solr/example/.gitignore | 1 +
solr/server/etc/jetty-http.xml | 2 +-
solr/server/ivy.xml | 10 +-
.../conf/solrconfig.xml | 10 +-
solr/solr-ref-guide/ivy.xml | 1 -
solr/solrj/ivy.xml | 13 +
.../solr/client/solrj/ResponseParser.java | 3 +-
.../apache/solr/client/solrj/SolrRequest.java | 20 +-
.../solrj/beans/DocumentObjectBinder.java | 29 +-
.../apache/solr/client/solrj/beans/Field.java | 5 +-
.../cloud/autoscaling/AutoScalingConfig.java | 6 +-
.../client/solrj/cloud/autoscaling/Clause.java | 24 +-
.../solrj/cloud/autoscaling/ReplicaInfo.java | 4 +-
.../client/solrj/cloud/autoscaling/Row.java | 4 +-
.../solrj/cloud/autoscaling/Suggester.java | 4 +-
.../solrj/impl/AsyncLBHttpSolrClient.java | 1081 +++++++++++++++++
.../client/solrj/impl/BinaryRequestWriter.java | 4 +-
.../client/solrj/impl/BinaryResponseParser.java | 10 +-
.../solr/client/solrj/impl/CloudSolrClient.java | 46 +-
.../solrj/impl/ConcurrentUpdateSolrClient.java | 5 +-
.../impl/DelegationTokenHttpSolrClient.java | 4 +-
.../solr/client/solrj/impl/Http2SolrClient.java | 1143 ++++++++++++++++++
.../solrj/impl/HttpClusterStateProvider.java | 39 +-
.../solr/client/solrj/impl/HttpSolrClient.java | 12 +-
.../client/solrj/impl/LBHttpSolrClient.java | 209 ++--
.../client/solrj/impl/SolrClientBuilder.java | 9 +-
.../solrj/impl/SolrClientCloudManager.java | 125 +-
.../solrj/impl/SolrClientNodeStateProvider.java | 11 +-
.../solrj/impl/SolrHttpClientScheduler.java | 105 ++
.../org/apache/solr/client/solrj/io/Lang.java | 48 +-
.../solr/client/solrj/io/SolrClientCache.java | 24 +-
.../solrj/io/graph/GatherNodesStream.java | 4 +-
.../solrj/io/graph/ShortestPathStream.java | 15 +-
.../client/solrj/io/ops/GroupOperation.java | 4 +-
.../solrj/io/ops/ReplaceWithFieldOperation.java | 2 +-
.../solrj/io/ops/ReplaceWithValueOperation.java | 2 +-
.../solrj/io/sql/DatabaseMetaDataImpl.java | 2 +-
.../solr/client/solrj/io/sql/ResultSetImpl.java | 2 +-
.../client/solrj/io/stream/BiJoinStream.java | 1 +
.../client/solrj/io/stream/CloudSolrStream.java | 6 +-
.../client/solrj/io/stream/ExecutorStream.java | 4 +-
.../io/stream/FeaturesSelectionStream.java | 10 +-
.../client/solrj/io/stream/FetchStream.java | 6 +-
.../solr/client/solrj/io/stream/JDBCStream.java | 4 +-
.../solr/client/solrj/io/stream/KnnStream.java | 6 +-
.../solr/client/solrj/io/stream/LetStream.java | 3 +-
.../client/solrj/io/stream/RandomStream.java | 4 +-
.../solr/client/solrj/io/stream/RankStream.java | 4 +-
.../solrj/io/stream/ScoreNodesStream.java | 4 +-
.../solrj/io/stream/SignificantTermsStream.java | 9 +-
.../solr/client/solrj/io/stream/SolrStream.java | 7 +-
.../solr/client/solrj/io/stream/SortStream.java | 2 +-
.../client/solrj/io/stream/StatsStream.java | 4 +-
.../client/solrj/io/stream/TextLogitStream.java | 4 +-
.../client/solrj/io/stream/TopicStream.java | 16 +-
.../solrj/request/AbstractUpdateRequest.java | 2 +-
.../solrj/request/CollectionAdminRequest.java | 29 +-
.../solrj/request/CollectionApiMapping.java | 64 +-
.../solrj/request/ConfigSetAdminRequest.java | 11 +-
.../client/solrj/request/CoreAdminRequest.java | 2 +-
.../solrj/request/DelegationTokenRequest.java | 3 +-
.../client/solrj/request/DirectXmlRequest.java | 2 +-
.../solrj/request/DocumentAnalysisRequest.java | 6 +-
.../solrj/request/FieldAnalysisRequest.java | 2 +-
.../solrj/request/GenericSolrRequest.java | 2 +-
.../solrj/request/HealthCheckRequest.java | 10 +-
.../request/JavaBinUpdateRequestCodec.java | 1 -
.../solr/client/solrj/request/LukeRequest.java | 2 +-
.../solr/client/solrj/request/QueryRequest.java | 2 +-
.../solr/client/solrj/request/SolrPing.java | 2 +-
.../client/solrj/request/V1toV2ApiMapper.java | 7 +-
.../solr/client/solrj/request/V2Request.java | 15 +-
.../solrj/request/schema/SchemaRequest.java | 26 +-
.../solrj/response/AnalysisResponseBase.java | 4 +-
.../solrj/response/CoreAdminResponse.java | 1 +
.../response/DocumentAnalysisResponse.java | 4 +-
.../solrj/response/FieldAnalysisResponse.java | 4 +-
.../client/solrj/response/FieldStatsInfo.java | 4 +-
.../solr/client/solrj/response/Group.java | 4 +-
.../solrj/response/SpellCheckResponse.java | 4 +-
.../solrj/util/SolrInternalHttpClient.java | 188 +++
.../client/solrj/util/SolrQueuedThreadPool.java | 61 +
.../apache/solr/common/EmptyEntityResolver.java | 5 +-
.../solr/common/cloud/ClusterStateUtil.java | 1 -
.../common/cloud/CollectionStateWatcher.java | 2 +-
.../solr/common/cloud/CompositeIdRouter.java | 10 +-
.../org/apache/solr/common/cloud/DocRouter.java | 12 +-
.../solr/common/cloud/HashBasedRouter.java | 4 +-
.../solr/common/cloud/ImplicitDocRouter.java | 9 +-
.../apache/solr/common/cloud/SolrZkClient.java | 15 +-
.../apache/solr/common/cloud/SolrZooKeeper.java | 27 +-
.../solr/common/cloud/ZkCoreNodeProps.java | 5 +
.../apache/solr/common/cloud/ZkStateReader.java | 105 +-
.../solr/common/params/CollectionParams.java | 4 +-
.../apache/solr/common/params/QoSParams.java | 24 +
.../solr/common/params/RequiredSolrParams.java | 4 +-
.../solr/common/util/CommandOperation.java | 12 +-
.../solr/common/util/ContentStreamBase.java | 29 +-
.../apache/solr/common/util/ExecutorUtil.java | 23 +-
.../solr/common/util/FastInputStream.java | 5 +-
.../solr/common/util/FastOutputStream.java | 5 +-
.../solr/common/util/JsonRecordReader.java | 23 +-
.../solr/common/util/SimpleOrderedMap.java | 4 +-
solr/solrj/src/test-files/log4j2.xml | 3 +-
.../UsingSolrJRefGuideExamplesTest.java | 8 +-
...ollectionAdminRequestRequiredParamsTest.java | 7 +-
.../solr/client/solrj/LargeVolumeTestBase.java | 10 +-
.../client/solrj/SolrExampleBinaryTest.java | 13 +-
.../solr/client/solrj/SolrExampleTests.java | 32 +-
.../solr/client/solrj/SolrExampleTestsBase.java | 13 +-
.../solr/client/solrj/SolrExampleXMLTest.java | 13 +-
.../solr/client/solrj/SolrExceptionTest.java | 28 +-
.../client/solrj/SolrSchemalessExampleTest.java | 44 +-
.../solr/client/solrj/TestBatchUpdate.java | 10 +-
.../solr/client/solrj/TestLBHttpSolrClient.java | 165 ++-
.../client/solrj/TestSolrJErrorHandling.java | 20 +-
.../solrj/beans/TestDocumentObjectBinder.java | 17 +-
.../solrj/embedded/SolrExampleJettyTest.java | 26 +-
.../SolrExampleStreamingBinaryTest.java | 2 +
.../embedded/SolrExampleStreamingTest.java | 6 +
.../solrj/impl/BasicHttp2SolrClientTest.java | 305 +++++
.../solrj/impl/BasicHttpSolrClientTest.java | 835 -------------
.../solrj/impl/CloudSolrClientBuilderTest.java | 4 +-
.../CloudSolrClientMultiConstructorTest.java | 4 +-
.../client/solrj/impl/CloudSolrClientTest.java | 37 +-
.../ConcurrentUpdateSolrClientBuilderTest.java | 2 +
.../impl/ConcurrentUpdateSolrClientTest.java | 33 +-
.../client/solrj/impl/HttpClientUtilTest.java | 13 +-
.../solrj/impl/HttpSolrClientBuilderTest.java | 23 +-
.../solrj/impl/HttpSolrClientConPoolTest.java | 39 +-
.../impl/HttpSolrClientSSLAuthConPoolTest.java | 2 +
.../solrj/impl/LBHttpSolrClientBuilderTest.java | 23 +-
.../client/solrj/impl/LBHttpSolrClientTest.java | 43 +-
.../solrj/io/graph/GraphExpressionTest.java | 8 +-
.../solr/client/solrj/io/graph/GraphTest.java | 2 +
.../solr/client/solrj/io/sql/JdbcTest.java | 1 +
.../client/solrj/io/stream/JDBCStreamTest.java | 4 +-
.../solrj/io/stream/MathExpressionTest.java | 2 +
.../io/stream/SelectWithEvaluatorsTest.java | 2 +
.../solrj/io/stream/StreamDecoratorTest.java | 6 +-
.../solrj/io/stream/StreamExpressionTest.java | 2 +
.../stream/StreamExpressionToExpessionTest.java | 4 +-
.../StreamExpressionToExplanationTest.java | 7 +-
.../client/solrj/io/stream/StreamingTest.java | 1 +
.../solr/client/solrj/request/SchemaTest.java | 16 +-
.../solrj/request/TestUpdateRequestCodec.java | 10 +-
.../solrj/request/TestV1toV2ApiMapper.java | 2 +
.../client/solrj/request/TestV2Request.java | 4 +-
.../solrj/response/NoOpResponseParserTest.java | 4 +-
.../solrj/response/QueryResponseTest.java | 7 +-
.../cloud/TestCloudCollectionsListeners.java | 6 +
.../cloud/TestCollectionStateWatchers.java | 12 +-
.../solr/common/util/ContentStreamTest.java | 2 +
.../apache/solr/common/util/NamedListTest.java | 4 +-
.../solr/common/util/TestFastInputStream.java | 14 +-
.../solr/common/util/TestNamedListCodec.java | 20 +-
solr/test-framework/ivy.xml | 5 +
.../solr/BaseDistributedSearchTestCase.java | 62 +-
.../apache/solr/SolrIgnoredThreadsFilter.java | 23 +-
.../java/org/apache/solr/SolrJettyTestBase.java | 22 +-
.../java/org/apache/solr/SolrTestCaseHS.java | 2 +
.../java/org/apache/solr/SolrTestCaseJ4.java | 312 ++++-
.../solr/cloud/AbstractDistribZkTestBase.java | 92 +-
.../cloud/AbstractFullDistribZkTestBase.java | 170 ++-
.../java/org/apache/solr/cloud/ChaosMonkey.java | 4 +-
.../apache/solr/cloud/MiniSolrCloudCluster.java | 36 +-
.../apache/solr/cloud/SolrCloudTestCase.java | 6 +-
.../org/apache/solr/cloud/ZkTestServer.java | 55 +-
.../component/TrackingShardHandlerFactory.java | 4 +
.../solr/util/BadZookeeperThreadsFilter.java | 34 -
.../org/apache/solr/util/DOMUtilTestBase.java | 5 +-
.../java/org/apache/solr/util/RestTestBase.java | 18 +-
.../org/apache/solr/util/RestTestHarness.java | 64 +-
.../solr/cloud/MiniSolrCloudClusterTest.java | 12 +-
starburst.jpeg | Bin 0 -> 335095 bytes
798 files changed, 13099 insertions(+), 6587 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 0dac902..a9bf735 100644
--- a/README.md
+++ b/README.md
@@ -14,98 +14,30 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+
-# Apache Lucene and Solr
+# The Star Burst Upgrade
-Apache Lucene is a high-performance, full featured text search engine library
-written in Java.
+The themes of the Star Burst Upgrade are: Communication, Resource Usage, and Performance + Scale.
-Apache Solr is an enterprise search platform written using Apache Lucene.
-Major features include full-text search, index replication and sharding, and
-result faceting and highlighting.
+- A full on move from HTTP/1.1 to HTTP/2 resulting in resource usage and stability improvements across the board.
+- A new high performance and more feature packed low level HttpClient capable of non blocking IO as well as HTTP/1.1 and HTTP/2.
+- A brand new and improved HTTP/2 capable SolrJ SolrClient, offering asynchronous requests and performance improvements to the whole SolrJ client family.
+- All external and internal communication takes advantage of the above.
+- Configurable, dynamic and efficient resource usage throttling without massive thread waste or distributed deadlock.
+- Communication efficiency improvements and hardening across the board.
+- Tuned and improved resource usage across the board.
-## Online Documentation
-This README file only contains basic setup instructions. For more
-comprehensive documentation, visit:
+# Dev Notes
-- Lucene: <http://lucene.apache.org/core/documentation.html>
-- Solr: <http://lucene.apache.org/solr/guide/>
+Things are still rapidly changing. Don't count on much until more starts to stabilize.
-## Building Lucene/Solr
+Tests now need to have test specific timeouts if over 45 seconds might be required.
-(You do not need to do this if you downloaded a pre-built package.)
+# Testing State
-Lucene and Solr are built using [Apache Ant](http://ant.apache.org/). To build
-Lucene and Solr, run:
+always run tests with -Dtests.badapples=false
-`ant compile`
+ant -Dtests.badapples=false test should be passing and should remain passing
-If you see an error about Ivy missing while invoking Ant (e.g., `.ant/lib does
-not exist`), run `ant ivy-bootstrap` and retry.
-
-Sometimes you may face issues with Ivy (e.g., an incompletely downloaded artifact).
-Cleaning up the Ivy cache and retrying is a workaround for most of such issues:
-
-`rm -rf ~/.ivy2/cache`
-
-The Solr server can then be packaged and prepared for startup by running the
-following command from the `solr/` directory:
-
-`ant server`
-
-## Running Solr
-
-After [building Solr](#building-lucene-solr), the server can be started using
-the `bin/solr` control scripts. Solr can be run in either standalone or
-distributed (SolrCloud mode).
-
-To run Solr in standalone mode, run the following command from the `solr/`
-directory:
-
-`bin/solr start`
-
-To run Solr in SolrCloud mode, run the following command from the `solr/`
-directory:
-
-`bin/solr start -c`
-
-The `bin/solr` control script allows heavy modification of the started Solr.
-Common options are described in some detail in solr/README.txt. For an
-exhaustive treatment of options, run `bin/solr start -h` from the `solr/`
-directory.
-
-## Development/IDEs
-
-Ant can be used to generate project files compatible with most common IDEs.
-Run the ant command corresponding to your IDE of choice before attempting to
-import Lucene/Solr.
-
-- *Eclipse* - `ant eclipse`
-- *IntelliJ* - `ant idea`
-- *Netbeans* - `ant netbeans`
-
-## Running Tests
-
-The standard test suite can be run with the command:
-
-`ant test`
-
-Like Solr itself, the test-running can be customized or tailored in a number or
-ways. For an exhaustive discussion of the options available, run:
-
-`ant test-help`
-
-## Contributing
-
-Please review the [Contributing to Solr
-Guide](https://wiki.apache.org/solr/HowToContribute) for information on
-contributing.
-
-## Discussion and Support
-
-- [Users Mailing List](http://lucene.apache.org/solr/community.html#solr-user-list-solr-userluceneapacheorg)
-- [Developers Mailing List](http://lucene.apache.org/solr/community.html#developer-list-devluceneapacheorg)
-- [Lucene Issue Tracker](https://issues.apache.org/jira/browse/LUCENE)
-- [Solr Issue Tracker](https://issues.apache.org/jira/browse/SOLR)
-- IRC: `#solr` and `#solr-dev` on freenode.net
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/dev-tools/eclipse/run-test-cases.launch
----------------------------------------------------------------------
diff --git a/dev-tools/eclipse/run-test-cases.launch b/dev-tools/eclipse/run-test-cases.launch
index 3fcac78..30f0750 100644
--- a/dev-tools/eclipse/run-test-cases.launch
+++ b/dev-tools/eclipse/run-test-cases.launch
@@ -13,5 +13,5 @@
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="@ECLIPSEPROJECTNAME@"/>
- <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+ <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Djava.security.egd=file:/dev/./urandom -Dlog4j.configurationFile=/home/mark/solr-log4j2.xml"/>
</launchConfiguration>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTask.java
----------------------------------------------------------------------
diff --git a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTask.java b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTask.java
index 3bf9695..0a8e2e1 100644
--- a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTask.java
+++ b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTask.java
@@ -177,7 +177,7 @@ public class WriteLineDocTask extends PerfTask {
for (int i=0; i<fieldsToWrite.length; i++) {
IndexableField f = doc.getField(fieldsToWrite[i]);
String text = f == null ? "" : matcher.reset(f.stringValue()).replaceAll(" ").trim();
- sb.append(text).append(SEP);
+ sb.append(text.replaceAll(Character.toString(SEP), "")).append(SEP);
sufficient |= text.length()>0 && sufficientFields[i];
}
if (sufficient) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
----------------------------------------------------------------------
diff --git a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
index b7afcf2..6437ea5 100644
--- a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
+++ b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Config.java
@@ -28,6 +28,8 @@ import java.util.List;
import java.util.Properties;
import java.util.StringTokenizer;
+import org.apache.lucene.benchmark.utils.PropertiesUtil;
+
/**
* Perf run configuration properties.
* <p>
@@ -61,12 +63,13 @@ public class Config {
* @throws IOException If there is a low-level I/O error.
*/
public Config(Reader algReader) throws IOException {
+ System.out.println("found props:" + System.getProperties().keySet());
// read alg file to array of lines
ArrayList<String> lines = new ArrayList<>();
BufferedReader r = new BufferedReader(algReader);
int lastConfigLine = 0;
for (String line = r.readLine(); line != null; line = r.readLine()) {
- lines.add(line);
+ lines.add(PropertiesUtil.substituteProperty(line, null) );
if (line.indexOf('=') > 0) {
lastConfigLine = lines.size();
}
@@ -182,7 +185,7 @@ public class Config {
*/
public int get(String name, int dflt) {
// use value by round if already parsed
- int vals[] = (int[]) valByRound.get(name);
+ Integer vals[] = (Integer[]) valByRound.get(name);
if (vals != null) {
return vals[roundNumber % vals.length];
}
@@ -213,7 +216,7 @@ public class Config {
*/
public double get(String name, double dflt) {
// use value by round if already parsed
- double vals[] = (double[]) valByRound.get(name);
+ Double vals[] = (Double[]) valByRound.get(name);
if (vals != null) {
return vals[roundNumber % vals.length];
}
@@ -244,7 +247,7 @@ public class Config {
*/
public boolean get(String name, boolean dflt) {
// use value by round if already parsed
- boolean vals[] = (boolean[]) valByRound.get(name);
+ Boolean vals[] = (Boolean[]) valByRound.get(name);
if (vals != null) {
return vals[roundNumber % vals.length];
}
@@ -278,13 +281,13 @@ public class Config {
sb.append(": ");
for (final String name : valByRound.keySet()) {
Object a = valByRound.get(name);
- if (a instanceof int[]) {
- int ai[] = (int[]) a;
+ if (a instanceof Integer[]) {
+ Integer ai[] = (Integer[]) a;
int n1 = (roundNumber - 1) % ai.length;
int n2 = roundNumber % ai.length;
sb.append(" ").append(name).append(":").append(ai[n1]).append("-->").append(ai[n2]);
- } else if (a instanceof double[]) {
- double ad[] = (double[]) a;
+ } else if (a instanceof Double[]) {
+ Double ad[] = (Double[]) a;
int n1 = (roundNumber - 1) % ad.length;
int n2 = roundNumber % ad.length;
sb.append(" ").append(name).append(":").append(ad[n1]).append("-->").append(ad[n2]);
@@ -294,7 +297,7 @@ public class Config {
int n2 = roundNumber % ad.length;
sb.append(" ").append(name).append(":").append(ad[n1]).append("-->").append(ad[n2]);
} else {
- boolean ab[] = (boolean[]) a;
+ Boolean ab[] = (Boolean[]) a;
int n1 = (roundNumber - 1) % ab.length;
int n2 = roundNumber % ab.length;
sb.append(" ").append(name).append(":").append(ab[n1]).append("-->").append(ab[n2]);
@@ -324,9 +327,9 @@ public class Config {
}
// extract properties to array, e.g. for "10:100:5" return int[]{10,100,5}.
- private int[] propToIntArray(String s) {
+ private Integer[] propToIntArray(String s) {
if (s.indexOf(":") < 0) {
- return new int[]{Integer.parseInt(s)};
+ return new Integer[]{Integer.parseInt(s)};
}
ArrayList<Integer> a = new ArrayList<>();
@@ -335,7 +338,7 @@ public class Config {
String t = st.nextToken();
a.add(Integer.valueOf(t));
}
- int res[] = new int[a.size()];
+ Integer res[] = new Integer[a.size()];
for (int i = 0; i < a.size(); i++) {
res[i] = a.get(i).intValue();
}
@@ -343,9 +346,9 @@ public class Config {
}
// extract properties to array, e.g. for "10.7:100.4:-2.3" return int[]{10.7,100.4,-2.3}.
- private double[] propToDoubleArray(String s) {
+ private Double[] propToDoubleArray(String s) {
if (s.indexOf(":") < 0) {
- return new double[]{Double.parseDouble(s)};
+ return new Double[]{Double.parseDouble(s)};
}
ArrayList<Double> a = new ArrayList<>();
@@ -354,7 +357,7 @@ public class Config {
String t = st.nextToken();
a.add(Double.valueOf(t));
}
- double res[] = new double[a.size()];
+ Double res[] = new Double[a.size()];
for (int i = 0; i < a.size(); i++) {
res[i] = a.get(i).doubleValue();
}
@@ -362,9 +365,9 @@ public class Config {
}
// extract properties to array, e.g. for "true:true:false" return boolean[]{true,false,false}.
- private boolean[] propToBooleanArray(String s) {
+ private Boolean[] propToBooleanArray(String s) {
if (s.indexOf(":") < 0) {
- return new boolean[]{Boolean.valueOf(s).booleanValue()};
+ return new Boolean[]{Boolean.valueOf(s).booleanValue()};
}
ArrayList<Boolean> a = new ArrayList<>();
@@ -373,7 +376,7 @@ public class Config {
String t = st.nextToken();
a.add(new Boolean(t));
}
- boolean res[] = new boolean[a.size()];
+ Boolean res[] = new Boolean[a.size()];
for (int i = 0; i < a.size(); i++) {
res[i] = a.get(i).booleanValue();
}
@@ -390,8 +393,22 @@ public class Config {
StringBuilder sb = new StringBuilder();
for (final String name : colForValByRound.keySet()) {
String colName = colForValByRound.get(name);
- sb.append(" ").append(colName);
+
+ Object a = valByRound.get(name);
+ Object ad[] = null;
+
+ ad = (Object[]) a;
+
+ int longestVal = colName.length() + 1;
+ for (Object val : ad) {
+ if (val.toString().length() > longestVal) {
+ longestVal = val.toString().length();
+ }
+ }
+
+ sb.append(" ").append(Format.format(colName, longestVal));
}
+
return sb.toString();
}
@@ -408,24 +425,39 @@ public class Config {
String template = " " + colName;
if (roundNum < 0) {
// just append blanks
- sb.append(Format.formatPaddLeft("-", template));
+ Object a = valByRound.get(name);
+ Object ad[] = (Object[]) a;
+ int longestVal = colName.length() + 1;
+ for (Object val : ad) {
+ if (val.toString().length() > longestVal) {
+ longestVal = val.toString().length();
+ }
+ }
+
+ sb.append(" ").append(Format.formatPaddLeft("-", longestVal));
} else {
// append actual values, for that round
Object a = valByRound.get(name);
- if (a instanceof int[]) {
- int ai[] = (int[]) a;
+ if (a instanceof Integer[]) {
+ Integer ai[] = (Integer[]) a;
int n = roundNum % ai.length;
sb.append(Format.format(ai[n], template));
- } else if (a instanceof double[]) {
- double ad[] = (double[]) a;
+ } else if (a instanceof Double[]) {
+ Double ad[] = (Double[]) a;
int n = roundNum % ad.length;
sb.append(Format.format(2, ad[n], template));
} else if (a instanceof String[]) {
String ad[] = (String[]) a;
+ int longestVal = 0;
+ for (String val : ad) {
+ if (val.length() > longestVal) {
+ longestVal = val.length();
+ }
+ }
int n = roundNum % ad.length;
- sb.append(ad[n]);
+ sb.append(" ").append(Format.format(ad[n], longestVal));
} else {
- boolean ab[] = (boolean[]) a;
+ Boolean ab[] = (Boolean[]) a;
int n = roundNum % ab.length;
sb.append(Format.formatPaddLeft("" + ab[n], template));
}
@@ -448,4 +480,11 @@ public class Config {
return algorithmText;
}
+ /**
+ * @return props used.
+ */
+ public Properties getProps() {
+ return props;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Format.java
----------------------------------------------------------------------
diff --git a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Format.java b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Format.java
index a4636de..0fb72a3 100644
--- a/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Format.java
+++ b/lucene/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Format.java
@@ -96,6 +96,17 @@ public class Format {
String s1 = (s + padd);
return s1.substring(0, Math.min(col.length(), s1.length()));
}
+
+ /**
+ * Pad a string from right.
+ * @param s string to be formatted.
+ * @param len length.
+ * @return formatted string.
+ */
+ public static String format(String s, int len) {
+ String s1 = (s + padd);
+ return s1.substring(0, Math.min(len, s1.length()));
+ }
/**
* Pad a string from left.
@@ -107,5 +118,16 @@ public class Format {
String res = padd + s;
return res.substring(res.length() - col.length());
}
+
+ /**
+ * Pad a string from left.
+ * @param s string to be formatted.
+ * @param len length of to padd to.
+ * @return formatted string.
+ */
+ public static String formatPaddLeft(String s, int len) {
+ String res = padd + s;
+ return res.substring(res.length() - len);
+ }
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/PropertiesUtil.java
----------------------------------------------------------------------
diff --git a/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/PropertiesUtil.java b/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/PropertiesUtil.java
new file mode 100644
index 0000000..fbf803c
--- /dev/null
+++ b/lucene/benchmark/src/java/org/apache/lucene/benchmark/utils/PropertiesUtil.java
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.lucene.benchmark.utils;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+public class PropertiesUtil {
+ /*
+ * This method borrowed from Ant's PropertyHelper.replaceProperties:
+ * http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
+ */
+ public static String substituteProperty(String value, Map<Object,Object> additionalProperties) {
+ if (value == null || value.indexOf('$') == -1) {
+ return value;
+ }
+
+ List<String> fragments = new ArrayList<>();
+ List<String> propertyRefs = new ArrayList<>();
+ parsePropertyString(value, fragments, propertyRefs);
+
+ StringBuilder sb = new StringBuilder();
+ Iterator<String> i = fragments.iterator();
+ Iterator<String> j = propertyRefs.iterator();
+
+ while (i.hasNext()) {
+ String fragment = i.next();
+ if (fragment == null) {
+ String propertyName = j.next();
+ String defaultValue = null;
+ int colon_index = propertyName.indexOf(':');
+ if (colon_index > -1) {
+ defaultValue = propertyName.substring(colon_index + 1);
+ propertyName = propertyName.substring(0, colon_index);
+ }
+ if (additionalProperties != null) {
+ fragment = additionalProperties.get(propertyName).toString();
+ }
+ if (fragment == null) {
+ fragment = System.getProperty(propertyName, defaultValue);
+ }
+ if (fragment == null) {
+ throw new IllegalArgumentException("No system property or default value specified for " + propertyName + " value:" + value);
+ }
+ }
+ sb.append(fragment);
+ }
+ return sb.toString();
+ }
+
+ /*
+ * This method borrowed from Ant's PropertyHelper.parsePropertyStringDefault:
+ * http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
+ */
+ private static void parsePropertyString(String value, List<String> fragments, List<String> propertyRefs) {
+ int prev = 0;
+ int pos;
+ // search for the next instance of $ from the 'prev' position
+ while ((pos = value.indexOf("$", prev)) >= 0) {
+
+ // if there was any text before this, add it as a fragment
+ // TODO, this check could be modified to go if pos>prev;
+ // seems like this current version could stick empty strings
+ // into the list
+ if (pos > 0) {
+ fragments.add(value.substring(prev, pos));
+ }
+ // if we are at the end of the string, we tack on a $
+ // then move past it
+ if (pos == (value.length() - 1)) {
+ fragments.add("$");
+ prev = pos + 1;
+ } else if (value.charAt(pos + 1) != '{') {
+ // peek ahead to see if the next char is a property or not
+ // not a property: insert the char as a literal
+ /*
+ * fragments.addElement(value.substring(pos + 1, pos + 2)); prev = pos + 2;
+ */
+ if (value.charAt(pos + 1) == '$') {
+ // backwards compatibility two $ map to one mode
+ fragments.add("$");
+ prev = pos + 2;
+ } else {
+ // new behaviour: $X maps to $X for all values of X!='$'
+ fragments.add(value.substring(pos, pos + 2));
+ prev = pos + 2;
+ }
+
+ } else {
+ // property found, extract its name or bail on a typo
+ int endName = value.indexOf('}', pos);
+ if (endName < 0) {
+ throw new RuntimeException("Syntax error in property: " + value);
+ }
+ String propertyName = value.substring(pos + 2, endName);
+ fragments.add(null);
+ propertyRefs.add(propertyName);
+ prev = endName + 1;
+ }
+ }
+ // no more $ signs found
+ // if there is any tail to the string, append it
+ if (prev < value.length()) {
+ fragments.add(value.substring(prev));
+ }
+ }
+
+ /**
+ * Parse the given String value as an integer. If the string cannot be parsed, returns the default
+ *
+ * @param value
+ * the value to parse
+ * @param defValue
+ * the default to return if the value cannot be parsed
+ * @return an integer version of the passed in value
+ */
+ public static Integer toInteger(String value, Integer defValue) {
+ try {
+ return Integer.parseInt(value);
+ } catch (NumberFormatException e) {
+ return defValue;
+ }
+ }
+
+ public static boolean toBoolean(String value) {
+ return "true".equalsIgnoreCase(value) || "on".equalsIgnoreCase(value);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/common-build.xml
----------------------------------------------------------------------
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index dafe935..5ac55d7 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -1008,6 +1008,7 @@
<property name="tests.useSecurityManager" value="true" />
<property name="tests.heapdump.args" value=""/>
+
<!-- turn on security manager? -->
<condition property="java.security.manager" value="org.apache.lucene.util.TestSecurityManager">
@@ -1159,6 +1160,7 @@
<sysproperty key="tests.LUCENE_VERSION" value="${version.base}"/>
<sysproperty key="jetty.testMode" value="1"/>
+ <sysproperty key="log4j2.contextSelector" value="org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"/>
<sysproperty key="jetty.insecurerandom" value="1"/>
<sysproperty key="solr.directoryFactory" value="org.apache.solr.core.MockDirectoryFactory"/>
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/ivy-versions.properties
----------------------------------------------------------------------
diff --git a/lucene/ivy-versions.properties b/lucene/ivy-versions.properties
index 49a1190..aad53d4 100644
--- a/lucene/ivy-versions.properties
+++ b/lucene/ivy-versions.properties
@@ -252,12 +252,22 @@ org.codehaus.janino.version = 2.7.6
/org.codehaus.woodstox/woodstox-core-asl = 4.4.1
org.eclipse.jetty.version = 9.4.10.v20180503
+/org.eclipse.jetty.http2/http2-client = ${org.eclipse.jetty.version}
+/org.eclipse.jetty.http2/http2-common = ${org.eclipse.jetty.version}
+/org.eclipse.jetty.http2/http2-server = ${org.eclipse.jetty.version}
+/org.eclipse.jetty.http2/http2-hpack = ${org.eclipse.jetty.version}
+/org.eclipse.jetty.http2/http2-http-client-transport = ${org.eclipse.jetty.version}
+/org.eclipse.jetty/jetty-alpn-client = ${org.eclipse.jetty.version}
+/org.eclipse.jetty/jetty-alpn-conscrypt-client = ${org.eclipse.jetty.version}
+/org.eclipse.jetty/jetty-alpn-conscrypt-server = ${org.eclipse.jetty.version}
+/org.eclipse.jetty/jetty-alpn-server = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-continuation = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-deploy = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-http = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-io = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-jmx = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-rewrite = ${org.eclipse.jetty.version}
+/org.eclipse.jetty/jetty-proxy = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-security = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-server = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-servlet = ${org.eclipse.jetty.version}
@@ -266,6 +276,7 @@ org.eclipse.jetty.version = 9.4.10.v20180503
/org.eclipse.jetty/jetty-util = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-webapp = ${org.eclipse.jetty.version}
/org.eclipse.jetty/jetty-xml = ${org.eclipse.jetty.version}
+/org.eclipse.jetty/jetty-client = ${org.eclipse.jetty.version}
org.gagravarr.vorbis.java.version = 0.8
/org.gagravarr/vorbis-java-core = ${org.gagravarr.vorbis.java.version}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/lucene/tools/junit4/solr-tests.policy
----------------------------------------------------------------------
diff --git a/lucene/tools/junit4/solr-tests.policy b/lucene/tools/junit4/solr-tests.policy
index 1c46a78..1b810b0 100644
--- a/lucene/tools/junit4/solr-tests.policy
+++ b/lucene/tools/junit4/solr-tests.policy
@@ -76,6 +76,11 @@ grant {
// SSL related properties for Solr tests
permission java.security.SecurityPermission "getProperty.ssl.*";
permission javax.net.ssl.SSLPermission "setDefaultSSLContext";
+ permission java.security.SecurityPermission "insertProvider.*";
+ permission java.security.SecurityPermission "putProviderProperty.*";
+ permission java.security.SecurityPermission "getProviderProperty.*";
+ permission java.security.SecurityPermission "getProperty.conscrypt.*";
+ permission java.security.SecurityPermission "putProperty.conscrypt.*";
// SASL/Kerberos related properties for Solr tests
permission javax.security.auth.PrivateCredentialPermission "javax.security.auth.kerberos.KerberosTicket * \"*\"", "read";
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/solr/benchmark/.gitignore
----------------------------------------------------------------------
diff --git a/solr/benchmark/.gitignore b/solr/benchmark/.gitignore
new file mode 100644
index 0000000..a20524a
--- /dev/null
+++ b/solr/benchmark/.gitignore
@@ -0,0 +1,2 @@
+/temp
+/work
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/solr/benchmark/build.xml
----------------------------------------------------------------------
diff --git a/solr/benchmark/build.xml b/solr/benchmark/build.xml
new file mode 100644
index 0000000..422eaa7
--- /dev/null
+++ b/solr/benchmark/build.xml
@@ -0,0 +1,86 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="solr-benchmark" default="run-task" xmlns:ivy="antlib:org.apache.ivy.ant">
+ <description>
+ System for benchmarking Solr
+ </description>
+
+ <property name="build.dir" location="../build/solr-benchmark"/>
+
+ <import file="../common-build.xml"/>
+
+ <available file="${common-solr.dir}/server/solr-webapp/webapp" property="abc.present"/>
+
+ <path id="classpath">
+ <pathelement location="${build.dir}/classes/java" />
+ <pathelement location="${common-solr.dir}/../lucene/build/benchmark/classes/java" />
+ <pathelement location="${common-solr.dir}/../lucene/build/core/classes/java" />
+ <pathelement location="${common-solr.dir}/build/solr-solrj/classes/java" />
+ <pathelement location="${common-solr.dir}/build/solr-core/classes/java" />
+ <fileset dir="${common-solr.dir}/solrj/lib" excludes="${common.classpath.excludes}" />
+ <fileset dir="${common-solr.dir}/../lucene/benchmark/lib" excludes="${common.classpath.excludes}" erroronmissingdir="false" />
+ </path>
+ <path id="run.classpath">
+ <path refid="classpath" />
+ <pathelement location="${build.dir}/classes/java" />
+ <pathelement path="${benchmark.ext.classpath}" />
+ </path>
+
+ <target name="server-if-needed" unless="abc.present">
+ <antcall target="server" />
+ </target>
+
+ <target name="server">
+ <ant antfile="${common-solr.dir}/build.xml" target="server" useNativeBasedir="true" inheritAll="false">
+ <propertyset refid="uptodate.and.compiled.properties" />
+ </ant>
+ </target>
+
+ <target name="check-and-get-files">
+ <ant antfile="${common-solr.dir}/../lucene/benchmark/build.xml" inheritAll="false">
+ <target name="check-files"/>
+ <target name="get-files"/>
+ </ant>
+ </target>
+
+ <target name="compile-solr">
+ <!-- running this target takes forever, so it's on the user currently to run this first and then to pick up changes
+ <ant antfile="${common-solr.dir}/../build.xml" target="server" useNativeBasedir="true" inheritAll="false">
+ <propertyset refid="uptodate.and.compiled.properties"/>
+ </ant>
+ -->
+ <ant antfile="${common-solr.dir}/../lucene/benchmark/build.xml" target="compile" useNativeBasedir="true" inheritAll="false">
+ <propertyset refid="uptodate.and.compiled.properties" />
+ </ant>
+ <ant antfile="${common-solr.dir}/solrj/build.xml" target="compile" dir="../solrj" inheritAll="false">
+ <propertyset refid="uptodate.and.compiled.properties" />
+ </ant>
+ </target>
+
+ <target name="run-task" depends="compile-solr,compile,check-and-get-files,server-if-needed" description="Run compound penalty perf test (optional: -Dtask.alg=your-algorithm-file -Dtask.mem=java-max-mem)">
+ <echo>Working Directory: ${working.dir}</echo>
+ <java classname="org.apache.lucene.benchmark.byTask.Benchmark" maxmemory="${task.mem}" fork="true">
+ <syspropertyset>
+ <propertyref builtin="commandline"/>
+ </syspropertyset>
+ <classpath refid="run.classpath" />
+ <arg file="${task.alg}" />
+ </java>
+ </target>
+
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/solr/benchmark/conf/concurrent-vs-serial.alg
----------------------------------------------------------------------
diff --git a/solr/benchmark/conf/concurrent-vs-serial.alg b/solr/benchmark/conf/concurrent-vs-serial.alg
new file mode 100644
index 0000000..15a054a
--- /dev/null
+++ b/solr/benchmark/conf/concurrent-vs-serial.alg
@@ -0,0 +1,80 @@
+#/**
+# * Licensed to the Apache Software Foundation (ASF) under one or more
+# * contributor license agreements. See the NOTICE file distributed with
+# * this work for additional information regarding copyright ownership.
+# * The ASF licenses this file to You under the Apache License, Version 2.0
+# * (the "License"); you may not use this file except in compliance with
+# * the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+# -------------------------------------------------------------------------------------
+# multi val params are iterated by NewRound's, added to reports, start with column name.
+#
+
+
+alt.tasks.packages=org.apache.solr.benchmark.byTask.tasks
+log.step=5000
+
+docs.file=${docs.file:temp/enwiki-20070527-pages-articles.xml}
+content.source=${content.source:org.apache.lucene.benchmark.byTask.feeds.EnwikiContentSource}
+
+solr.server=solrserver:org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient:org.apache.solr.client.solrj.impl.HttpSolrClient
+solr.streaming.server.queue.size=10
+solr.streaming.server.threadcount=4
+
+solr.internal.server.xmx=1000m
+
+# for remote instance testing
+#solr.url=http://localhost:8901/solr
+
+#solr.configs.home=conf/solr/configs/filters
+#solr.schema=schema:schema_no_filter.xml
+
+solr.field.mappings=doctitle>title_txt_en,docid>id,docname>docname_txt_en,docdate>date_txt_en,docdatenum>datenum_txt_en,doctimesecnum>time_txt_en,body>body_txt_en
+
+query.maker=org.apache.lucene.benchmark.byTask.feeds.EnwikiQueryMaker
+
+# task at this depth or less would print when they start
+task.max.depth.log=2
+
+log.queries=false
+# -------------------------------------------------------------------------------------
+
+{ "Bench"
+
+ StopSolrServer
+ StartSolrServer(log)
+
+ InitSolrBench
+
+ { "Rounds"
+
+ ResetSystemErase
+
+ SolrClearIndex
+
+ {"AddDocs"
+ [
+ { "MAddDocs" SolrAddDoc > : 8000
+
+ ] : 1
+ { "BlockTillFinish" BlockSolrServerTillFinish >
+ }
+
+ SolrCommit
+
+ NewRound
+ } : 2
+
+ StopSolrServer
+}
+
+
+RepSumByPrefRound AddDocs
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/solr/benchmark/ivy.xml
----------------------------------------------------------------------
diff --git a/solr/benchmark/ivy.xml b/solr/benchmark/ivy.xml
new file mode 100644
index 0000000..5cb8ccd
--- /dev/null
+++ b/solr/benchmark/ivy.xml
@@ -0,0 +1,28 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<ivy-module version="2.0">
+ <info organisation="org.apache.solr" module="benchmark"/>
+ <configurations defaultconfmapping="compile->master">
+ <conf name="compile" transitive="false"/>
+ </configurations>
+ <dependencies>
+ <dependency org="org.apache.commons" name="commons-compress" rev="${/org.apache.commons/commons-compress}" conf="compile"/>
+ <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
+ </dependencies>
+</ivy-module>
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/74a9b54c/solr/benchmark/src/java/org/apache/solr/benchmark/byTask/tasks/BlockSolrServerTillFinishTask.java
----------------------------------------------------------------------
diff --git a/solr/benchmark/src/java/org/apache/solr/benchmark/byTask/tasks/BlockSolrServerTillFinishTask.java b/solr/benchmark/src/java/org/apache/solr/benchmark/byTask/tasks/BlockSolrServerTillFinishTask.java
new file mode 100644
index 0000000..c25786f
--- /dev/null
+++ b/solr/benchmark/src/java/org/apache/solr/benchmark/byTask/tasks/BlockSolrServerTillFinishTask.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.benchmark.byTask.tasks;
+
+import org.apache.lucene.benchmark.byTask.PerfRunData;
+import org.apache.lucene.benchmark.byTask.tasks.PerfTask;
+import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient;
+
+
+public class BlockSolrServerTillFinishTask extends PerfTask {
+
+ public BlockSolrServerTillFinishTask(PerfRunData runData) {
+ super(runData);
+ }
+
+
+ @Override
+ protected String getLogMessage(int recsCount) {
+ return "block solrserver till finished";
+ }
+
+ @Override
+ public int doLogic() throws Exception {
+ SolrClient solrServer = (SolrClient) getRunData().getPerfObject("solr.client");
+ if (solrServer instanceof ConcurrentUpdateSolrClient) {
+ ((ConcurrentUpdateSolrClient)solrServer).blockUntilFinished();
+ }
+
+ return 1;
+ }
+
+}
\ No newline at end of file