From 31f5c78a645f695b1b59d78d49238c562e33b70b Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 28 Apr 2020 14:43:28 -0700 Subject: [PATCH 01/12] Create plugin for internalClusterTest task This commit creates a new gradle plugin to provide a separate task name and source set for running ESIntegTestCase tests. The only project converted to use the new plugin in this PR is server, as an example. The remaining cases in x-pack will be handled in followups. --- .../elasticsearch/gradle/BuildPlugin.groovy | 211 +--------- .../test/StandaloneRestTestPlugin.groovy | 7 +- .../gradle/test/StandaloneTestPlugin.groovy | 3 +- .../gradle/ElasticsearchJavaPlugin.java | 373 ++++++++++++++++++ .../test/InternalClusterTestPlugin.java | 34 ++ .../gradle/util/GradleUtils.java | 69 ++++ ...ticsearch.internal-cluster-test.properties | 20 + .../elasticsearch.java.properties | 1 + server/build.gradle | 17 +- .../action/IndicesRequestIT.java | 0 .../action/ListenerActionIT.java | 0 .../action/RejectionActionIT.java | 0 .../action/admin/HotThreadsIT.java | 0 .../action/admin/ReloadSecureSettingsIT.java | 0 .../ClusterAllocationExplainIT.java | 0 .../node/tasks/CancellableTasksIT.java | 0 .../node/tasks/TaskStorageRetryIT.java | 0 .../admin/cluster/node/tasks/TasksIT.java | 0 .../repositories/RepositoryBlocksIT.java | 0 .../cluster/snapshots/SnapshotBlocksIT.java | 0 ...ansportClusterStateActionDisruptionIT.java | 0 .../admin/cluster/stats/ClusterStatsIT.java | 0 .../cluster/tasks/PendingTasksBlocksIT.java | 0 .../ValidateIndicesAliasesRequestIT.java | 0 .../clear/ClearIndicesCacheBlocksIT.java | 0 .../admin/indices/create/CloneIndexIT.java | 0 .../admin/indices/create/CreateIndexIT.java | 0 .../admin/indices/create/ShrinkIndexIT.java | 0 .../admin/indices/create/SplitIndexIT.java | 0 .../indices/delete/DeleteIndexBlocksIT.java | 0 .../admin/indices/flush/FlushBlocksIT.java | 0 .../forcemerge/ForceMergeBlocksIT.java | 0 .../indices/forcemerge/ForceMergeIT.java | 0 .../action/admin/indices/get/GetIndexIT.java | 0 .../put/ValidateMappingRequestPluginIT.java | 0 .../indices/refresh/RefreshBlocksIT.java | 0 .../admin/indices/rollover/RolloverIT.java | 0 .../segments/IndicesSegmentsBlocksIT.java | 0 .../shards/IndicesShardStoreRequestIT.java | 0 .../indices/stats/IndicesStatsBlocksIT.java | 0 .../action/bulk/BulkIntegrationIT.java | 0 .../bulk/BulkProcessorClusterSettingsIT.java | 0 .../action/bulk/BulkProcessorIT.java | 0 .../action/bulk/BulkProcessorRetryIT.java | 0 .../action/bulk/BulkRejectionIT.java | 0 .../action/bulk/BulkWithUpdatesIT.java | 0 .../action/ingest/AsyncIngestProcessorIT.java | 0 .../SearchProgressActionListenerIT.java | 0 .../action/search/TransportSearchIT.java | 0 .../support/ActiveShardsObserverIT.java | 0 .../support/WaitActiveShardCountIT.java | 0 .../master/IndexingMasterFailoverIT.java | 0 ...tReplicationActionRetryOnClosedNodeIT.java | 0 .../action/termvectors/GetTermVectorsIT.java | 0 .../termvectors/MultiTermVectorsIT.java | 0 .../elasticsearch/aliases/IndexAliasesIT.java | 0 .../elasticsearch/blocks/SimpleBlocksIT.java | 0 .../broadcast/BroadcastActionsIT.java | 0 .../RecoveryWithUnsupportedIndicesIT.java | 0 .../client/node/NodeClientIT.java | 0 .../cluster/ClusterHealthIT.java | 0 .../cluster/ClusterInfoServiceIT.java | 0 .../cluster/ClusterStateDiffIT.java | 0 .../cluster/MinimumMasterNodesIT.java | 0 .../elasticsearch/cluster/NoMasterNodeIT.java | 0 .../cluster/SimpleClusterStateIT.java | 0 .../cluster/SimpleDataNodesIT.java | 0 .../cluster/SpecificMasterNodesIT.java | 0 .../cluster/UpdateSettingsValidationIT.java | 0 .../allocation/AwarenessAllocationIT.java | 0 .../cluster/allocation/ClusterRerouteIT.java | 0 .../allocation/FilteringAllocationIT.java | 0 .../allocation/SimpleAllocationIT.java | 0 .../coordination/RareClusterStateIT.java | 0 .../coordination/RemoveCustomsCommandIT.java | 0 .../coordination/RemoveSettingsCommandIT.java | 0 .../UnsafeBootstrapAndDetachCommandIT.java | 0 .../coordination/VotingConfigurationIT.java | 0 .../cluster/coordination/ZenDiscoveryIT.java | 0 .../metadata/TemplateUpgradeServiceIT.java | 0 .../metadata/UpgradeIndexSettingsIT.java | 0 .../cluster/node/DiscoveryNodeRoleIT.java | 0 .../cluster/routing/AllocationIdIT.java | 0 .../cluster/routing/DelayedAllocationIT.java | 0 .../cluster/routing/PrimaryAllocationIT.java | 0 .../routing/allocation/ShardStateIT.java | 0 .../allocation/decider/MockDiskUsagesIT.java | 0 .../UpdateShardAllocationSettingsIT.java | 0 .../cluster/service/ClusterServiceIT.java | 0 .../cluster/settings/ClusterSettingsIT.java | 0 .../cluster/settings/SettingsFilteringIT.java | 0 .../cluster/shards/ClusterSearchShardsIT.java | 0 .../cluster/shards/ClusterShardLimitIT.java | 67 +--- .../common/settings/ConsistentSettingsIT.java | 0 .../common/settings/UpgradeSettingsIT.java | 0 .../ClusterDisruptionCleanSettingsIT.java | 0 .../discovery/ClusterDisruptionIT.java | 0 .../discovery/DiscoveryDisruptionIT.java | 0 .../discovery/DiskDisruptionIT.java | 0 .../discovery/MasterDisruptionIT.java | 0 .../SettingsBasedSeedHostsProviderIT.java | 0 .../discovery/SnapshotDisruptionIT.java | 0 .../discovery/StableMasterDisruptionIT.java | 0 .../single/SingleNodeDiscoveryIT.java | 0 .../AliasedIndexDocumentActionsIT.java | 0 .../document/DocumentActionsIT.java | 0 .../elasticsearch/document/ShardInfoIT.java | 0 .../elasticsearch/env/NodeEnvironmentIT.java | 0 .../env/NodeRepurposeCommandIT.java | 0 .../explain/ExplainActionIT.java | 0 .../gateway/GatewayIndexStateIT.java | 0 .../gateway/MetadataNodesIT.java | 0 .../gateway/QuorumGatewayIT.java | 0 .../gateway/RecoverAfterNodesIT.java | 0 .../gateway/RecoveryFromGatewayIT.java | 0 .../gateway/ReplicaShardAllocatorIT.java | 0 .../ReplicaShardAllocatorSyncIdIT.java | 0 .../org/elasticsearch/get/GetActionIT.java | 0 .../elasticsearch/index/FinalPipelineIT.java | 0 .../elasticsearch/index/HiddenIndexIT.java | 0 .../index/IndexRequestBuilderIT.java | 0 .../org/elasticsearch/index/IndexSortIT.java | 0 .../index/SettingsListenerIT.java | 0 .../index/WaitUntilRefreshIT.java | 0 .../index/engine/InternalEngineMergeIT.java | 0 .../index/fielddata/FieldDataLoadingIT.java | 0 .../mapper/CopyToMapperIntegrationIT.java | 0 .../index/mapper/DynamicMappingIT.java | 0 .../ExternalValuesMapperIntegrationIT.java | 0 .../mapper/MultiFieldsIntegrationIT.java | 0 .../query/plugin/CustomQueryParserIT.java | 0 .../index/search/MatchPhraseQueryIT.java | 0 .../index/seqno/GlobalCheckpointSyncIT.java | 0 .../PeerRecoveryRetentionLeaseCreationIT.java | 0 .../index/seqno/RetentionLeaseIT.java | 0 .../shard/GlobalCheckpointListenersIT.java | 0 .../index/shard/IndexShardIT.java | 0 .../RemoveCorruptedShardDataCommandIT.java | 0 .../index/shard/SearchIdleIT.java | 0 .../index/store/CorruptedFileIT.java | 0 .../index/store/CorruptedTranslogIT.java | 0 .../index/store/ExceptionRetryIT.java | 0 .../index/suggest/stats/SuggestStatsIT.java | 0 .../elasticsearch/indexing/IndexActionIT.java | 0 .../IndexLifecycleActionIT.java | 0 .../elasticsearch/indices/DataStreamIT.java | 0 ...DateMathIndexExpressionsIntegrationIT.java | 0 .../indices/IndexingMemoryControllerIT.java | 0 .../indices/IndicesLifecycleListenerIT.java | 0 .../indices/IndicesOptionsIntegrationIT.java | 0 .../indices/IndicesRequestCacheIT.java | 0 .../PreBuiltAnalyzerIntegrationIT.java | 0 .../indices/analyze/AnalyzeActionIT.java | 0 .../elasticsearch/indices/flush/FlushIT.java | 0 .../mapping/ConcurrentDynamicTemplateIT.java | 0 .../DedicatedMasterGetFieldMappingIT.java | 0 .../mapping/SimpleGetFieldMappingsIT.java | 0 .../indices/mapping/SimpleGetMappingsIT.java | 0 .../mapping/UpdateMappingIntegrationIT.java | 0 .../memory/breaker/CircuitBreakerNoopIT.java | 0 .../breaker/CircuitBreakerServiceIT.java | 0 .../RandomExceptionCircuitBreakerIT.java | 0 .../indices/recovery/DanglingIndicesIT.java | 0 .../recovery/IndexPrimaryRelocationIT.java | 0 .../indices/recovery/IndexRecoveryIT.java | 0 .../recovery/ReplicaToPrimaryPromotionIT.java | 0 .../indices/settings/GetSettingsBlocksIT.java | 0 .../indices/settings/InternalSettingsIT.java | 0 .../indices/settings/PrivateSettingsIT.java | 0 .../settings/UpdateNumberOfReplicasIT.java | 0 .../indices/settings/UpdateSettingsIT.java | 0 .../state/CloseIndexDisableCloseAllIT.java | 0 .../indices/state/CloseIndexIT.java | 0 .../state/CloseWhileRelocatingShardsIT.java | 0 .../indices/state/OpenCloseIndexIT.java | 0 .../indices/state/ReopenWhileClosingIT.java | 0 .../indices/state/SimpleIndexStateIT.java | 0 .../indices/stats/IndexStatsIT.java | 0 .../store/IndicesStoreIntegrationIT.java | 0 .../template/IndexTemplateBlocksIT.java | 0 .../template/SimpleIndexTemplateIT.java | 0 .../template/TemplatePreferenceIT.java | 0 .../elasticsearch/ingest/IngestClientIT.java | 0 ...gestProcessorNotInstalledOnAllNodesIT.java | 0 .../org/elasticsearch/mget/SimpleMgetIT.java | 0 .../nodesinfo/SimpleNodesInfoIT.java | 0 .../DestructiveOperationsIT.java | 0 .../PersistentTasksExecutorFullRestartIT.java | 0 .../persistent/PersistentTasksExecutorIT.java | 0 .../decider/EnableAssignmentDeciderIT.java | 0 .../recovery/FullRollingRestartIT.java | 0 .../recovery/RecoveryWhileUnderLoadIT.java | 0 .../elasticsearch/recovery/RelocationIT.java | 0 .../recovery/SimpleRecoveryIT.java | 0 .../recovery/TruncatedRecoveryIT.java | 0 .../repositories/RepositoriesServiceIT.java | 0 .../BlobStoreRepositoryCleanupIT.java | 0 .../fs/FsBlobStoreRepositoryIT.java | 0 .../routing/AliasResolveRoutingIT.java | 0 .../elasticsearch/routing/AliasRoutingIT.java | 0 .../routing/PartitionedRoutingIT.java | 0 .../routing/SimpleRoutingIT.java | 0 .../elasticsearch/script/StoredScriptsIT.java | 0 .../search/SearchCancellationIT.java | 0 .../elasticsearch/search/SearchTimeoutIT.java | 0 .../search/SearchWithRejectionsIT.java | 0 .../search/StressSearchServiceReaperIT.java | 0 .../AggregationsIntegrationIT.java | 0 .../search/aggregations/CombiIT.java | 0 .../search/aggregations/EquivalenceIT.java | 0 .../aggregations/FiltersAggsRewriteIT.java | 0 .../search/aggregations/MetadataIT.java | 0 .../search/aggregations/MissingValueIT.java | 0 .../bucket/AdjacencyMatrixIT.java | 0 .../aggregations/bucket/BooleanTermsIT.java | 0 .../aggregations/bucket/DateHistogramIT.java | 0 .../bucket/DateHistogramOffsetIT.java | 0 .../aggregations/bucket/DateRangeIT.java | 0 .../bucket/DiversifiedSamplerIT.java | 0 .../aggregations/bucket/DoubleTermsIT.java | 0 .../search/aggregations/bucket/FilterIT.java | 0 .../search/aggregations/bucket/FiltersIT.java | 0 .../aggregations/bucket/GeoDistanceIT.java | 0 .../aggregations/bucket/GeoHashGridIT.java | 0 .../search/aggregations/bucket/GlobalIT.java | 0 .../aggregations/bucket/HistogramIT.java | 0 .../search/aggregations/bucket/IpRangeIT.java | 0 .../search/aggregations/bucket/IpTermsIT.java | 0 .../aggregations/bucket/LongTermsIT.java | 0 .../aggregations/bucket/MinDocCountIT.java | 0 .../aggregations/bucket/NaNSortingIT.java | 0 .../search/aggregations/bucket/NestedIT.java | 0 .../search/aggregations/bucket/RangeIT.java | 0 .../aggregations/bucket/ReverseNestedIT.java | 0 .../search/aggregations/bucket/SamplerIT.java | 0 .../aggregations/bucket/ShardReduceIT.java | 0 .../aggregations/bucket/ShardSizeTermsIT.java | 0 .../SignificantTermsSignificanceScoreIT.java | 0 .../bucket/TermsDocCountErrorIT.java | 0 .../bucket/TermsShardMinDocCountIT.java | 0 .../bucket/terms/StringTermsIT.java | 0 .../aggregations/metrics/CardinalityIT.java | 0 .../aggregations/metrics/ExtendedStatsIT.java | 0 .../aggregations/metrics/GeoBoundsIT.java | 0 .../aggregations/metrics/GeoCentroidIT.java | 0 .../metrics/HDRPercentileRanksIT.java | 0 .../metrics/HDRPercentilesIT.java | 0 .../metrics/MedianAbsoluteDeviationIT.java | 0 .../metrics/ScriptedMetricIT.java | 0 .../search/aggregations/metrics/StatsIT.java | 0 .../search/aggregations/metrics/SumIT.java | 0 .../metrics/TDigestPercentileRanksIT.java | 0 .../metrics/TDigestPercentilesIT.java | 0 .../aggregations/metrics/TopHitsIT.java | 0 .../aggregations/metrics/ValueCountIT.java | 0 .../aggregations/pipeline/AvgBucketIT.java | 0 .../aggregations/pipeline/BucketScriptIT.java | 0 .../pipeline/BucketSelectorIT.java | 0 .../aggregations/pipeline/BucketSortIT.java | 0 .../pipeline/DateDerivativeIT.java | 0 .../aggregations/pipeline/DerivativeIT.java | 0 .../pipeline/ExtendedStatsBucketIT.java | 0 .../aggregations/pipeline/MaxBucketIT.java | 0 .../aggregations/pipeline/MinBucketIT.java | 0 .../pipeline/PercentilesBucketIT.java | 0 .../aggregations/pipeline/SerialDiffIT.java | 0 .../aggregations/pipeline/StatsBucketIT.java | 0 .../aggregations/pipeline/SumBucketIT.java | 0 .../search/basic/SearchRedStateIndexIT.java | 0 .../basic/SearchWhileCreatingIndexIT.java | 0 .../search/basic/SearchWhileRelocatingIT.java | 0 .../basic/SearchWithRandomExceptionsIT.java | 0 .../basic/SearchWithRandomIOExceptionsIT.java | 0 .../basic/TransportSearchFailuresIT.java | 0 .../basic/TransportTwoNodesSearchIT.java | 0 .../search/fetch/FetchSubPhasePluginIT.java | 0 .../search/fetch/subphase/InnerHitsIT.java | 0 .../fetch/subphase/MatchedQueriesIT.java | 0 .../highlight/CustomHighlighterSearchIT.java | 0 .../highlight/HighlighterSearchIT.java | 0 .../search/fieldcaps/FieldCapabilitiesIT.java | 0 .../search/fields/SearchFieldsIT.java | 0 .../functionscore/DecayFunctionScoreIT.java | 0 .../functionscore/ExplainableScriptIT.java | 0 .../FunctionScoreFieldValueIT.java | 0 .../search/functionscore/FunctionScoreIT.java | 0 .../functionscore/FunctionScorePluginIT.java | 0 .../search/functionscore/QueryRescorerIT.java | 0 .../functionscore/RandomScoreFunctionIT.java | 0 .../search/geo/GeoBoundingBoxQueryIT.java | 0 .../search/geo/GeoDistanceIT.java | 0 .../elasticsearch/search/geo/GeoFilterIT.java | 0 .../search/geo/GeoPolygonIT.java | 0 .../search/geo/GeoShapeIntegrationIT.java | 0 .../geo/LegacyGeoShapeIntegrationIT.java | 0 .../search/morelikethis/MoreLikeThisIT.java | 0 .../search/msearch/MultiSearchIT.java | 0 .../search/nested/SimpleNestedIT.java | 0 .../search/preference/SearchPreferenceIT.java | 0 .../aggregation/AggregationProfilerIT.java | 0 .../search/profile/query/QueryProfilerIT.java | 0 .../elasticsearch/search/query/ExistsIT.java | 0 .../search/query/MultiMatchQueryIT.java | 0 .../search/query/QueryStringIT.java | 0 .../search/query/ScriptScoreQueryIT.java | 0 .../search/query/SearchQueryIT.java | 0 .../search/query/SimpleQueryStringIT.java | 0 .../scriptfilter/ScriptQuerySearchIT.java | 0 .../search/scroll/DuelScrollIT.java | 0 .../search/scroll/SearchScrollIT.java | 0 .../SearchScrollWithFailingNodesIT.java | 0 .../search/searchafter/SearchAfterIT.java | 0 .../search/simple/SimpleSearchIT.java | 0 .../search/slice/SearchSliceIT.java | 0 .../search/sort/FieldSortIT.java | 0 .../search/sort/GeoDistanceIT.java | 0 .../search/sort/GeoDistanceSortBuilderIT.java | 0 .../search/sort/SimpleSortIT.java | 0 .../search/source/MetadataFetchingIT.java | 0 .../search/source/SourceFetchingIT.java | 0 .../search/stats/SearchStatsIT.java | 0 .../suggest/CompletionSuggestSearchIT.java | 0 .../ContextCompletionSuggestSearchIT.java | 0 .../search/suggest/SuggestSearchIT.java | 0 .../similarity/SimilarityIT.java | 0 .../snapshots/BlobStoreIncrementalityIT.java | 0 .../CorruptedBlobStoreRepositoryIT.java | 0 .../DedicatedClusterSnapshotRestoreIT.java | 0 ...etadataLoadingDuringSnapshotRestoreIT.java | 0 .../MinThreadsSnapshotRestoreIT.java | 0 .../snapshots/RepositoriesIT.java | 0 .../RepositoryFilterUserMetadataIT.java | 0 .../SharedClusterSnapshotRestoreIT.java | 0 .../snapshots/SnapshotShardsServiceIT.java | 0 .../snapshots/SnapshotStatusApisIT.java | 0 .../threadpool/SimpleThreadPoolIT.java | 0 .../org/elasticsearch/update/UpdateIT.java | 0 .../elasticsearch/update/UpdateNoopIT.java | 0 .../validate/SimpleValidateQueryIT.java | 0 .../ConcurrentDocumentOperationIT.java | 0 .../ConcurrentSeqNoVersioningIT.java | 0 .../versioning/SimpleVersioningIT.java | 0 .../MetadataCreateIndexServiceTests.java | 6 +- .../MetadataIndexStateServiceTests.java | 6 +- .../cluster/shards/ShardCounts.java | 90 +++++ .../indices/IndicesServiceTests.java | 8 +- 346 files changed, 611 insertions(+), 301 deletions(-) create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/ElasticsearchJavaPlugin.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.internal-cluster-test.properties create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.java.properties rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/IndicesRequestIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/ListenerActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/RejectionActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/HotThreadsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/ReloadSecureSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/node/tasks/CancellableTasksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskStorageRetryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/repositories/RepositoryBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/snapshots/SnapshotBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/state/TransportClusterStateActionDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/cluster/tasks/PendingTasksBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/alias/ValidateIndicesAliasesRequestIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/create/CloneIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/create/CreateIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/create/ShrinkIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/create/SplitIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/flush/FlushBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/get/GetIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/mapping/put/ValidateMappingRequestPluginIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/refresh/RefreshBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/shards/IndicesShardStoreRequestIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/bulk/BulkIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/bulk/BulkProcessorClusterSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/bulk/BulkProcessorIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/bulk/BulkProcessorRetryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/bulk/BulkRejectionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/bulk/BulkWithUpdatesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/ingest/AsyncIngestProcessorIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/search/TransportSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/support/ActiveShardsObserverIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/support/master/IndexingMasterFailoverIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/support/replication/TransportReplicationActionRetryOnClosedNodeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/termvectors/GetTermVectorsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/action/termvectors/MultiTermVectorsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/aliases/IndexAliasesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/blocks/SimpleBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/broadcast/BroadcastActionsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/bwcompat/RecoveryWithUnsupportedIndicesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/client/node/NodeClientIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/ClusterHealthIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/ClusterStateDiffIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/NoMasterNodeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/SimpleClusterStateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/SimpleDataNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/SpecificMasterNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/UpdateSettingsValidationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/allocation/AwarenessAllocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/allocation/ClusterRerouteIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/allocation/FilteringAllocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/allocation/SimpleAllocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/coordination/RareClusterStateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/coordination/RemoveCustomsCommandIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/coordination/RemoveSettingsCommandIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/coordination/UnsafeBootstrapAndDetachCommandIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/coordination/VotingConfigurationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/coordination/ZenDiscoveryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/metadata/UpgradeIndexSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/node/DiscoveryNodeRoleIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/routing/AllocationIdIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/routing/DelayedAllocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/routing/allocation/ShardStateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/routing/allocation/decider/MockDiskUsagesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/routing/allocation/decider/UpdateShardAllocationSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/service/ClusterServiceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/settings/ClusterSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/settings/SettingsFilteringIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/shards/ClusterSearchShardsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java (86%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/common/settings/ConsistentSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/common/settings/UpgradeSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/ClusterDisruptionCleanSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/ClusterDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/DiscoveryDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/DiskDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/MasterDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/SettingsBasedSeedHostsProviderIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/SnapshotDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/StableMasterDisruptionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/discovery/single/SingleNodeDiscoveryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/document/AliasedIndexDocumentActionsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/document/DocumentActionsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/document/ShardInfoIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/env/NodeEnvironmentIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/env/NodeRepurposeCommandIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/explain/ExplainActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/GatewayIndexStateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/MetadataNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/QuorumGatewayIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/RecoverAfterNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/RecoveryFromGatewayIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/gateway/ReplicaShardAllocatorSyncIdIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/get/GetActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/FinalPipelineIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/HiddenIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/IndexRequestBuilderIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/IndexSortIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/SettingsListenerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/WaitUntilRefreshIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/engine/InternalEngineMergeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/fielddata/FieldDataLoadingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/mapper/CopyToMapperIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/mapper/DynamicMappingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/mapper/MultiFieldsIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/query/plugin/CustomQueryParserIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/search/MatchPhraseQueryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/seqno/GlobalCheckpointSyncIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/seqno/PeerRecoveryRetentionLeaseCreationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/seqno/RetentionLeaseIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/shard/GlobalCheckpointListenersIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/shard/IndexShardIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/shard/RemoveCorruptedShardDataCommandIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/shard/SearchIdleIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/store/CorruptedFileIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/store/CorruptedTranslogIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/store/ExceptionRetryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/index/suggest/stats/SuggestStatsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indexing/IndexActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indexlifecycle/IndexLifecycleActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/DataStreamIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/DateMathIndexExpressionsIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/IndicesOptionsIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/IndicesRequestCacheIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/analysis/PreBuiltAnalyzerIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/analyze/AnalyzeActionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/flush/FlushIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/mapping/DedicatedMasterGetFieldMappingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/mapping/SimpleGetFieldMappingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/mapping/SimpleGetMappingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/mapping/UpdateMappingIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerNoopIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerServiceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/memory/breaker/RandomExceptionCircuitBreakerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/recovery/DanglingIndicesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/recovery/IndexPrimaryRelocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/recovery/ReplicaToPrimaryPromotionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/settings/GetSettingsBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/settings/InternalSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/settings/PrivateSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/settings/UpdateNumberOfReplicasIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/settings/UpdateSettingsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/state/CloseIndexDisableCloseAllIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/state/CloseIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/state/CloseWhileRelocatingShardsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/state/OpenCloseIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/state/ReopenWhileClosingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/state/SimpleIndexStateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/stats/IndexStatsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/template/IndexTemplateBlocksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/ingest/IngestClientIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/ingest/IngestProcessorNotInstalledOnAllNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/mget/SimpleMgetIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/nodesinfo/SimpleNodesInfoIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/operateAllIndices/DestructiveOperationsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/persistent/PersistentTasksExecutorFullRestartIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/persistent/PersistentTasksExecutorIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/persistent/decider/EnableAssignmentDeciderIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/recovery/FullRollingRestartIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/recovery/RecoveryWhileUnderLoadIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/recovery/RelocationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/recovery/SimpleRecoveryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/repositories/RepositoriesServiceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryCleanupIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/repositories/fs/FsBlobStoreRepositoryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/routing/AliasResolveRoutingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/routing/AliasRoutingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/routing/PartitionedRoutingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/routing/SimpleRoutingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/script/StoredScriptsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/SearchCancellationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/SearchTimeoutIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/SearchWithRejectionsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/StressSearchServiceReaperIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/AggregationsIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/CombiIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/EquivalenceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/FiltersAggsRewriteIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/MetadataIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/MissingValueIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/AdjacencyMatrixIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/BooleanTermsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/DiversifiedSamplerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/GlobalIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/IpRangeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/IpTermsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/NaNSortingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/NestedIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/SamplerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/ShardReduceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/TermsShardMinDocCountIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/SumIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/TopHitsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/BucketSortIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/DateDerivativeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/DerivativeIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/MinBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/aggregations/pipeline/SumBucketIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/SearchRedStateIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/SearchWhileCreatingIndexIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/SearchWhileRelocatingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/SearchWithRandomExceptionsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/SearchWithRandomIOExceptionsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/TransportSearchFailuresIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/basic/TransportTwoNodesSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fetch/FetchSubPhasePluginIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fetch/subphase/MatchedQueriesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fetch/subphase/highlight/CustomHighlighterSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/fields/SearchFieldsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/ExplainableScriptIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/FunctionScoreFieldValueIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/FunctionScorePluginIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/QueryRescorerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/geo/GeoBoundingBoxQueryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/geo/GeoDistanceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/geo/GeoFilterIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/geo/GeoPolygonIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/geo/GeoShapeIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/geo/LegacyGeoShapeIntegrationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/morelikethis/MoreLikeThisIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/msearch/MultiSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/nested/SimpleNestedIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/preference/SearchPreferenceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/profile/aggregation/AggregationProfilerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/profile/query/QueryProfilerIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/query/ExistsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/query/MultiMatchQueryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/query/QueryStringIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/query/ScriptScoreQueryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/query/SearchQueryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/query/SimpleQueryStringIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/scroll/DuelScrollIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/scroll/SearchScrollIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/scroll/SearchScrollWithFailingNodesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/searchafter/SearchAfterIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/simple/SimpleSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/slice/SearchSliceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/sort/FieldSortIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/sort/GeoDistanceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/sort/SimpleSortIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/source/MetadataFetchingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/source/SourceFetchingIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/stats/SearchStatsIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/suggest/ContextCompletionSuggestSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/search/suggest/SuggestSearchIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/similarity/SimilarityIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/BlobStoreIncrementalityIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/DedicatedClusterSnapshotRestoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/MetadataLoadingDuringSnapshotRestoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/MinThreadsSnapshotRestoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/RepositoriesIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/RepositoryFilterUserMetadataIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/SnapshotShardsServiceIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/snapshots/SnapshotStatusApisIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/threadpool/SimpleThreadPoolIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/update/UpdateIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/update/UpdateNoopIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/validate/SimpleValidateQueryIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/versioning/ConcurrentDocumentOperationIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/versioning/ConcurrentSeqNoVersioningIT.java (100%) rename server/src/{test => internalClusterTest}/java/org/elasticsearch/versioning/SimpleVersioningIT.java (100%) create mode 100644 server/src/test/java/org/elasticsearch/cluster/shards/ShardCounts.java diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index 36e18929ccb01..324d65be0d940 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -115,8 +115,7 @@ class BuildPlugin implements Plugin { "Gradle ${minimumGradleVersion}+ is required to use elasticsearch.build plugin" ) } - project.pluginManager.apply('java') - configureConfigurations(project) + project.pluginManager.apply('elasticsearch.java') configureJars(project) configureJarManifest(project) @@ -127,12 +126,9 @@ class BuildPlugin implements Plugin { configureRepositories(project) project.extensions.getByType(ExtraPropertiesExtension).set('versions', VersionProperties.versions) - configureInputNormalization(project) - configureCompile(project) configureJavadoc(project) configureSourcesJar(project) configurePomGeneration(project) - configureTestTasks(project) configurePrecommit(project) configureDependenciesInfo(project) configureFips140(project) @@ -356,72 +352,6 @@ class BuildPlugin implements Plugin { scmNode.appendNode('url', BuildParams.gitOrigin) } - /** - * Apply runtime classpath input normalization so that changes in JAR manifests don't break build cacheability - */ - static void configureInputNormalization(Project project) { - project.normalization.runtimeClasspath.ignore('META-INF/MANIFEST.MF') - } - - /** Adds compiler settings to the project */ - static void configureCompile(Project project) { - ExtraPropertiesExtension ext = project.extensions.getByType(ExtraPropertiesExtension) - ext.set('compactProfile', 'full') - - project.extensions.getByType(JavaPluginExtension).sourceCompatibility = BuildParams.minimumRuntimeVersion - project.extensions.getByType(JavaPluginExtension).targetCompatibility = BuildParams.minimumRuntimeVersion - - project.afterEvaluate { - project.tasks.withType(JavaCompile).configureEach({ JavaCompile compileTask -> - final JavaVersion targetCompatibilityVersion = JavaVersion.toVersion(compileTask.targetCompatibility) - // we only fork if the Gradle JDK is not the same as the compiler JDK - if (BuildParams.compilerJavaHome.canonicalPath == Jvm.current().javaHome.canonicalPath) { - compileTask.options.fork = false - } else { - compileTask.options.fork = true - compileTask.options.forkOptions.javaHome = BuildParams.compilerJavaHome - } - /* - * -path because gradle will send in paths that don't always exist. - * -missing because we have tons of missing @returns and @param. - * -serial because we don't use java serialization. - */ - // don't even think about passing args with -J-xxx, oracle will ask you to submit a bug report :) - // fail on all javac warnings - compileTask.options.compilerArgs << '-Werror' << '-Xlint:all,-path,-serial,-options,-deprecation,-try' << '-Xdoclint:all' << '-Xdoclint:-missing' - - // either disable annotation processor completely (default) or allow to enable them if an annotation processor is explicitly defined - if (compileTask.options.compilerArgs.contains("-processor") == false) { - compileTask.options.compilerArgs << '-proc:none' - } - - compileTask.options.encoding = 'UTF-8' - compileTask.options.incremental = true - - // TODO: use native Gradle support for --release when available (cf. https://github.com/gradle/gradle/issues/2510) - compileTask.options.compilerArgs << '--release' << targetCompatibilityVersion.majorVersion - } as Action) - // also apply release flag to groovy, which is used in build-tools - project.tasks.withType(GroovyCompile).configureEach({ GroovyCompile compileTask -> - // we only fork if the Gradle JDK is not the same as the compiler JDK - if (BuildParams.compilerJavaHome.canonicalPath == Jvm.current().javaHome.canonicalPath) { - compileTask.options.fork = false - } else { - compileTask.options.fork = true - compileTask.options.forkOptions.javaHome = BuildParams.compilerJavaHome - compileTask.options.compilerArgs << '--release' << JavaVersion.toVersion(compileTask.targetCompatibility).majorVersion - } - } as Action) - } - - project.pluginManager.withPlugin('com.github.johnrengelman.shadow') { - // Ensure that when we are compiling against the "original" JAR that we also include any "shadow" dependencies on the compile classpath - project.configurations.getByName(ShadowBasePlugin.CONFIGURATION_NAME).dependencies.all { Dependency dependency -> - project.configurations.getByName(JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME).dependencies.add(dependency) - } - } - } - static void configureJavadoc(Project project) { // remove compiled classes from the Javadoc classpath: http://mail.openjdk.java.net/pipermail/javadoc-dev/2018-January/000400.html final List classes = new ArrayList<>() @@ -554,145 +484,6 @@ class BuildPlugin implements Plugin { } } - static void configureTestTasks(Project project) { - // Default test task should run only unit tests - maybeConfigure(project.tasks, 'test', Test) { Test task -> - task.include '**/*Tests.class' - } - - // none of this stuff is applicable to the `:buildSrc` project tests - if (project.path != ':build-tools') { - File heapdumpDir = new File(project.buildDir, 'heapdump') - - project.tasks.withType(Test).configureEach { Test test -> - File testOutputDir = new File(test.reports.junitXml.getDestination(), "output") - - ErrorReportingTestListener listener = new ErrorReportingTestListener(test.testLogging, testOutputDir) - test.extensions.add(ErrorReportingTestListener, 'errorReportingTestListener', listener) - test.addTestOutputListener(listener) - test.addTestListener(listener) - - /* - * We use lazy-evaluated strings in order to configure system properties whose value will not be known until - * execution time (e.g. cluster port numbers). Adding these via the normal DSL doesn't work as these get treated - * as task inputs and therefore Gradle attempts to snapshot them before/after task execution. This fails due - * to the GStrings containing references to non-serializable objects. - * - * We bypass this by instead passing this system properties vi a CommandLineArgumentProvider. This has the added - * side-effect that these properties are NOT treated as inputs, therefore they don't influence things like the - * build cache key or up to date checking. - */ - SystemPropertyCommandLineArgumentProvider nonInputProperties = new SystemPropertyCommandLineArgumentProvider() - - test.doFirst { - project.mkdir(testOutputDir) - project.mkdir(heapdumpDir) - project.mkdir(test.workingDir) - project.mkdir(test.workingDir.toPath().resolve('temp')) - - //TODO remove once jvm.options are added to test system properties - test.systemProperty ('java.locale.providers','SPI,COMPAT') - } - if (inFipsJvm()) { - project.dependencies.add('testRuntimeOnly', "org.bouncycastle:bc-fips:1.0.1") - project.dependencies.add('testRuntimeOnly', "org.bouncycastle:bctls-fips:1.0.9") - } - test.jvmArgumentProviders.add(nonInputProperties) - test.extensions.add('nonInputProperties', nonInputProperties) - - test.workingDir = project.file("${project.buildDir}/testrun/${test.name}") - test.maxParallelForks = System.getProperty('tests.jvms', BuildParams.defaultParallel.toString()) as Integer - - test.exclude '**/*$*.class' - - test.jvmArgs "-Xmx${System.getProperty('tests.heap.size', '512m')}", - "-Xms${System.getProperty('tests.heap.size', '512m')}", - '--illegal-access=warn', - '-XX:+HeapDumpOnOutOfMemoryError' - - test.jvmArgumentProviders.add({ ["-XX:HeapDumpPath=$heapdumpDir"] } as CommandLineArgumentProvider) - - if (System.getProperty('tests.jvm.argline')) { - test.jvmArgs System.getProperty('tests.jvm.argline').split(" ") - } - - if (Boolean.parseBoolean(System.getProperty('tests.asserts', 'true'))) { - test.jvmArgs '-ea', '-esa' - } - - test.systemProperties 'java.awt.headless': 'true', - 'tests.gradle': 'true', - 'tests.artifact': project.name, - 'tests.task': test.path, - 'tests.security.manager': 'true', - 'jna.nosys': 'true' - - // ignore changing test seed when build is passed -Dignore.tests.seed for cacheability experimentation - if (System.getProperty('ignore.tests.seed') != null) { - nonInputProperties.systemProperty('tests.seed', BuildParams.testSeed) - } else { - test.systemProperty('tests.seed', BuildParams.testSeed) - } - - // don't track these as inputs since they contain absolute paths and break cache relocatability - nonInputProperties.systemProperty('gradle.dist.lib', new File(project.class.location.toURI()).parent) - nonInputProperties.systemProperty('gradle.worker.jar', "${project.gradle.getGradleUserHomeDir()}/caches/${project.gradle.gradleVersion}/workerMain/gradle-worker.jar") - nonInputProperties.systemProperty('gradle.user.home', project.gradle.getGradleUserHomeDir()) - // we use 'temp' relative to CWD since this is per JVM and tests are forbidden from writing to CWD - nonInputProperties.systemProperty('java.io.tmpdir', test.workingDir.toPath().resolve('temp')) - - nonInputProperties.systemProperty('compiler.java', BuildParams.compilerJavaVersion.majorVersion) - nonInputProperties.systemProperty('runtime.java', BuildParams.runtimeJavaVersion.majorVersion) - - // TODO: remove setting logging level via system property - test.systemProperty 'tests.logger.level', 'WARN' - System.getProperties().each { key, value -> - if ((key.toString().startsWith('tests.') || key.toString().startsWith('es.'))) { - test.systemProperty key.toString(), value - } - } - - // TODO: remove this once ctx isn't added to update script params in 7.0 - test.systemProperty 'es.scripting.update.ctx_in_params', 'false' - - // TODO: remove this property in 8.0 - test.systemProperty 'es.search.rewrite_sort', 'true' - - // TODO: remove this once cname is prepended to transport.publish_address by default in 8.0 - test.systemProperty 'es.transport.cname_in_publish_address', 'true' - - // Set netty system properties to the properties we configure in jvm.options - test.systemProperty('io.netty.noUnsafe', 'true') - test.systemProperty('io.netty.noKeySetOptimization', 'true') - test.systemProperty('io.netty.recycler.maxCapacityPerThread', '0') - - test.testLogging { TestLoggingContainer logging -> - logging.showExceptions = true - logging.showCauses = true - logging.exceptionFormat = 'full' - } - - if (OS.current().equals(OS.WINDOWS) && System.getProperty('tests.timeoutSuite') == null) { - // override the suite timeout to 30 mins for windows, because it has the most inefficient filesystem known to man - test.systemProperty 'tests.timeoutSuite', '1800000!' - } - - /* - * If this project builds a shadow JAR than any unit tests should test against that artifact instead of - * compiled class output and dependency jars. This better emulates the runtime environment of consumers. - */ - project.pluginManager.withPlugin('com.github.johnrengelman.shadow') { - // Remove output class files and any other dependencies from the test classpath, since the shadow JAR includes these - test.classpath -= project.extensions.getByType(SourceSetContainer).getByName(SourceSet.MAIN_SOURCE_SET_NAME).runtimeClasspath - // Add any "shadow" dependencies. These are dependencies that are *not* bundled into the shadow JAR - test.classpath += project.configurations.getByName(ShadowBasePlugin.CONFIGURATION_NAME) - // Add the shadow JAR artifact itself - test.classpath += project.files(project.tasks.named('shadowJar')) - } - } - } - } - private static configurePrecommit(Project project) { TaskProvider precommit = PrecommitTasks.create(project, true) project.tasks.named(LifecycleBasePlugin.CHECK_TASK_NAME).configure { it.dependsOn(precommit) } diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneRestTestPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneRestTestPlugin.groovy index e9891dbad496a..4aac7eba1a86e 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneRestTestPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneRestTestPlugin.groovy @@ -22,6 +22,7 @@ package org.elasticsearch.gradle.test import groovy.transform.CompileStatic import org.elasticsearch.gradle.BuildPlugin +import org.elasticsearch.gradle.ElasticsearchJavaPlugin import org.elasticsearch.gradle.ExportElasticsearchBuildResourcesTask import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.info.GlobalBuildInfoPlugin @@ -62,10 +63,10 @@ class StandaloneRestTestPlugin implements Plugin { project.getTasks().create("buildResources", ExportElasticsearchBuildResourcesTask) BuildPlugin.configureRepositories(project) - BuildPlugin.configureTestTasks(project) - BuildPlugin.configureInputNormalization(project) + ElasticsearchJavaPlugin.configureTestTasks(project) + ElasticsearchJavaPlugin.configureInputNormalization(project) BuildPlugin.configureFips140(project) - BuildPlugin.configureCompile(project) + ElasticsearchJavaPlugin.configureCompile(project) project.extensions.getByType(JavaPluginExtension).sourceCompatibility = BuildParams.minimumRuntimeVersion project.extensions.getByType(JavaPluginExtension).targetCompatibility = BuildParams.minimumRuntimeVersion diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneTestPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneTestPlugin.groovy index 3ba4ca7e1c449..d8daabd9ffb69 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneTestPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/StandaloneTestPlugin.groovy @@ -21,6 +21,7 @@ package org.elasticsearch.gradle.test import groovy.transform.CompileStatic import org.elasticsearch.gradle.BuildPlugin +import org.elasticsearch.gradle.ElasticsearchJavaPlugin import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.plugins.JavaBasePlugin @@ -44,7 +45,7 @@ class StandaloneTestPlugin implements Plugin { t.mustRunAfter(project.tasks.getByName('precommit')) } - BuildPlugin.configureCompile(project) + ElasticsearchJavaPlugin.configureCompile(project) project.tasks.named('check').configure { it.dependsOn(project.tasks.named('test')) } } } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/ElasticsearchJavaPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/ElasticsearchJavaPlugin.java new file mode 100644 index 0000000000000..bb6e9cd2328d2 --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/ElasticsearchJavaPlugin.java @@ -0,0 +1,373 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.elasticsearch.gradle; + +import com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin; +import org.elasticsearch.gradle.info.BuildParams; +import org.elasticsearch.gradle.info.GlobalBuildInfoPlugin; +import org.elasticsearch.gradle.test.ErrorReportingTestListener; +import org.elasticsearch.gradle.util.Util; +import org.gradle.api.GradleException; +import org.gradle.api.JavaVersion; +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ModuleDependency; +import org.gradle.api.artifacts.ProjectDependency; +import org.gradle.api.artifacts.ResolutionStrategy; +import org.gradle.api.file.FileCollection; +import org.gradle.api.plugins.JavaPlugin; +import org.gradle.api.plugins.JavaPluginExtension; +import org.gradle.api.tasks.SourceSet; +import org.gradle.api.tasks.SourceSetContainer; +import org.gradle.api.tasks.compile.CompileOptions; +import org.gradle.api.tasks.compile.GroovyCompile; +import org.gradle.api.tasks.compile.JavaCompile; +import org.gradle.api.tasks.testing.Test; +import org.gradle.internal.jvm.Jvm; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +import static org.elasticsearch.gradle.util.GradleUtils.maybeConfigure; + +/** + * A wrapper around Gradle's Java plugin that applies our common configuration. + */ +public class ElasticsearchJavaPlugin implements Plugin { + @Override + public void apply(Project project) { + // make sure the global build info plugin is applied to the root project + project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class); + + project.getPluginManager().apply(JavaPlugin.class); + configureConfigurations(project); + configureCompile(project); + configureInputNormalization(project); + configureTestTasks(project); + } + + /** + * Makes dependencies non-transitive. + * + * Gradle allows setting all dependencies as non-transitive very easily. + * Sadly this mechanism does not translate into maven pom generation. In order + * to effectively make the pom act as if it has no transitive dependencies, + * we must exclude each transitive dependency of each direct dependency. + * + * Determining the transitive deps of a dependency which has been resolved as + * non-transitive is difficult because the process of resolving removes the + * transitive deps. To sidestep this issue, we create a configuration per + * direct dependency version. This specially named and unique configuration + * will contain all of the transitive dependencies of this particular + * dependency. We can then use this configuration during pom generation + * to iterate the transitive dependencies and add excludes. + */ + public static void configureConfigurations(Project project) { + // we want to test compileOnly deps! + Configuration compileOnlyConfig = project.getConfigurations().getByName(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME); + Configuration testCompileConfig = project.getConfigurations().getByName(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME); + testCompileConfig.extendsFrom(compileOnlyConfig); + + // we are not shipping these jars, we act like dumb consumers of these things + if (project.getPath().startsWith(":test:fixtures") || project.getPath().equals(":build-tools")) { + return; + } + // fail on any conflicting dependency versions + project.getConfigurations().all(configuration -> { + if (configuration.getName().endsWith("Fixture")) { + // just a self contained test-fixture configuration, likely transitive and hellacious + return; + } + configuration.resolutionStrategy(ResolutionStrategy::failOnVersionConflict); + }); + + // force all dependencies added directly to compile/testCompile to be non-transitive, except for ES itself + Consumer disableTransitiveDeps = configName -> { + Configuration config = project.getConfigurations().getByName(configName); + config.getDependencies().all(dep -> { + if (dep instanceof ModuleDependency + && dep instanceof ProjectDependency == false + && dep.getGroup().startsWith("org.elasticsearch") == false) { + ((ModuleDependency) dep).setTransitive(false); + } + }); + }; + disableTransitiveDeps.accept(JavaPlugin.COMPILE_CONFIGURATION_NAME); + disableTransitiveDeps.accept(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME); + disableTransitiveDeps.accept(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME); + disableTransitiveDeps.accept(JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME); + } + + /** Adds compiler settings to the project */ + public static void configureCompile(Project project) { + project.getExtensions().getExtraProperties().set("compactProfile", "full"); + + JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class); + java.setSourceCompatibility(BuildParams.getMinimumRuntimeVersion()); + java.setTargetCompatibility(BuildParams.getMinimumRuntimeVersion()); + + Function canonicalPath = file -> { + try { + return file.getCanonicalPath(); + } catch (IOException e) { + throw new GradleException("Failed to get canonical path for " + file, e); + } + }; + // common options to both java and groovy + Consumer configureFork = compileOptions -> { + // we only fork if the Gradle JDK is not the same as the compiler JDK + String compilerJavaHome = canonicalPath.apply(BuildParams.getCompilerJavaHome()); + String currentJavaHome = canonicalPath.apply(Jvm.current().getJavaHome()); + if (compilerJavaHome.equals(currentJavaHome)) { + compileOptions.setFork(false); + } else { + compileOptions.setFork(true); + compileOptions.getForkOptions().setJavaHome(BuildParams.getCompilerJavaHome()); + } + }; + + project.afterEvaluate(p -> { + project.getTasks().withType(JavaCompile.class).configureEach(compileTask -> { + CompileOptions compileOptions = compileTask.getOptions(); + + configureFork.accept(compileOptions); + /* + * -path because gradle will send in paths that don't always exist. + * -missing because we have tons of missing @returns and @param. + * -serial because we don't use java serialization. + */ + // don't even think about passing args with -J-xxx, oracle will ask you to submit a bug report :) + // fail on all javac warnings + List compilerArgs = compileOptions.getCompilerArgs(); + compilerArgs.add("-Werror"); + compilerArgs.add("-Xlint:all,-path,-serial,-options,-deprecation,-try"); + compilerArgs.add("-Xdoclint:all"); + compilerArgs.add("-Xdoclint:-missing"); + + // either disable annotation processor completely (default) or allow to enable them if an annotation processor is explicitly + // defined + if (compilerArgs.contains("-processor") == false) { + compilerArgs.add("-proc:none"); + } + + compileOptions.setEncoding("UTF-8"); + compileOptions.setIncremental(true); + + // TODO: use native Gradle support for --release when available (cf. https://github.com/gradle/gradle/issues/2510) + final JavaVersion targetCompatibilityVersion = JavaVersion.toVersion(compileTask.getTargetCompatibility()); + compilerArgs.add("--release"); + compilerArgs.add(targetCompatibilityVersion.getMajorVersion()); + + }); + // also apply release flag to groovy, which is used in build-tools + project.getTasks().withType(GroovyCompile.class).configureEach(compileTask -> { + configureFork.accept(compileTask.getOptions()); + + // TODO: this probably shouldn't apply to groovy at all? + // TODO: use native Gradle support for --release when available (cf. https://github.com/gradle/gradle/issues/2510) + final JavaVersion targetCompatibilityVersion = JavaVersion.toVersion(compileTask.getTargetCompatibility()); + final List compilerArgs = compileTask.getOptions().getCompilerArgs(); + compilerArgs.add("--release"); + compilerArgs.add(targetCompatibilityVersion.getMajorVersion()); + }); + }); + + project.getPluginManager().withPlugin("com.github.johnrengelman.shadow", plugin -> { + // Ensure that when we are compiling against the "original" JAR that we also include any "shadow" dependencies on the compile + // classpath + Configuration shadowConfig = project.getConfigurations().getByName(ShadowBasePlugin.getCONFIGURATION_NAME()); + Configuration apiConfig = project.getConfigurations().getByName(JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME); + shadowConfig.getDependencies().all(dependency -> apiConfig.getDependencies().add(dependency)); + }); + } + + /** + * Apply runtime classpath input normalization so that changes in JAR manifests don't break build cacheability + */ + public static void configureInputNormalization(Project project) { + project.getNormalization().getRuntimeClasspath().ignore("META-INF/MANIFEST.MF"); + } + + public static void configureTestTasks(Project project) { + // Default test task should run only unit tests + maybeConfigure(project.getTasks(), "test", Test.class, task -> task.include("**/*Tests.class")); + + // none of this stuff is applicable to the `:buildSrc` project tests + if (project.getPath().equals(":build-tools")) { + return; + } + + File heapdumpDir = new File(project.getBuildDir(), "heapdump"); + + project.getTasks().withType(Test.class).configureEach(test -> { + File testOutputDir = new File(test.getReports().getJunitXml().getDestination(), "output"); + + ErrorReportingTestListener listener = new ErrorReportingTestListener(test.getTestLogging(), testOutputDir); + test.getExtensions().add("errorReportingTestListener", listener); + test.addTestOutputListener(listener); + test.addTestListener(listener); + + /* + * We use lazy-evaluated strings in order to configure system properties whose value will not be known until + * execution time (e.g. cluster port numbers). Adding these via the normal DSL doesn't work as these get treated + * as task inputs and therefore Gradle attempts to snapshot them before/after task execution. This fails due + * to the GStrings containing references to non-serializable objects. + * + * We bypass this by instead passing this system properties vi a CommandLineArgumentProvider. This has the added + * side-effect that these properties are NOT treated as inputs, therefore they don't influence things like the + * build cache key or up to date checking. + */ + SystemPropertyCommandLineArgumentProvider nonInputProperties = new SystemPropertyCommandLineArgumentProvider(); + + test.doFirst(t -> { + project.mkdir(testOutputDir); + project.mkdir(heapdumpDir); + project.mkdir(test.getWorkingDir()); + project.mkdir(test.getWorkingDir().toPath().resolve("temp")); + + // TODO remove once jvm.options are added to test system properties + test.systemProperty("java.locale.providers", "SPI,COMPAT"); + }); + if (BuildParams.isInFipsJvm()) { + project.getDependencies().add("testRuntimeOnly", "org.bouncycastle:bc-fips:1.0.1"); + project.getDependencies().add("testRuntimeOnly", "org.bouncycastle:bctls-fips:1.0.9"); + } + test.getJvmArgumentProviders().add(nonInputProperties); + test.getExtensions().add("nonInputProperties", nonInputProperties); + + test.setWorkingDir(project.file(project.getBuildDir() + "/testrun/" + test.getName())); + test.setMaxParallelForks(Integer.parseInt(System.getProperty("tests.jvms", BuildParams.getDefaultParallel().toString()))); + + test.exclude("**/*$*.class"); + + test.jvmArgs( + "-Xmx" + System.getProperty("tests.heap.size", "512m"), + "-Xms" + System.getProperty("tests.heap.size", "512m"), + "--illegal-access=warn", + "-XX:+HeapDumpOnOutOfMemoryError" + ); + + test.getJvmArgumentProviders().add(() -> List.of("-XX:HeapDumpPath=$heapdumpDir")); + + String argline = System.getProperty("tests.jvm.argline"); + if (argline != null) { + test.jvmArgs((Object[]) argline.split(" ")); + } + + if (Util.getBooleanProperty("tests.asserts", true)) { + test.jvmArgs("-ea", "-esa"); + } + + Map sysprops = Map.of( + "java.awt.headless", + "true", + "tests.gradle", + "true", + "tests.artifact", + project.getName(), + "tests.task", + test.getPath(), + "tests.security.manager", + "true", + "jna.nosys", + "true" + ); + test.systemProperties(sysprops); + + // ignore changing test seed when build is passed -Dignore.tests.seed for cacheability experimentation + if (System.getProperty("ignore.tests.seed") != null) { + nonInputProperties.systemProperty("tests.seed", BuildParams.getTestSeed()); + } else { + test.systemProperty("tests.seed", BuildParams.getTestSeed()); + } + + // don't track these as inputs since they contain absolute paths and break cache relocatability + File gradleHome = project.getGradle().getGradleUserHomeDir(); + String gradleVersion = project.getGradle().getGradleVersion(); + nonInputProperties.systemProperty("gradle.dist.lib", new File(project.getGradle().getGradleHomeDir(), "lib")); + nonInputProperties.systemProperty( + "gradle.worker.jar", + gradleHome + "/caches/" + gradleVersion + "/workerMain/gradle-worker.jar" + ); + nonInputProperties.systemProperty("gradle.user.home", gradleHome); + // we use 'temp' relative to CWD since this is per JVM and tests are forbidden from writing to CWD + nonInputProperties.systemProperty("java.io.tmpdir", test.getWorkingDir().toPath().resolve("temp")); + + nonInputProperties.systemProperty("compiler.java", BuildParams.getCompilerJavaVersion().getMajorVersion()); + nonInputProperties.systemProperty("runtime.java", BuildParams.getRuntimeJavaVersion().getMajorVersion()); + + // TODO: remove setting logging level via system property + test.systemProperty("tests.logger.level", "WARN"); + System.getProperties().entrySet().forEach(entry -> { + if ((entry.getKey().toString().startsWith("tests.") || entry.getKey().toString().startsWith("es."))) { + test.systemProperty(entry.getKey().toString(), entry.getValue()); + } + }); + + // TODO: remove this once ctx isn't added to update script params in 7.0 + test.systemProperty("es.scripting.update.ctx_in_params", "false"); + + // TODO: remove this property in 8.0 + test.systemProperty("es.search.rewrite_sort", "true"); + + // TODO: remove this once cname is prepended to transport.publish_address by default in 8.0 + test.systemProperty("es.transport.cname_in_publish_address", "true"); + + // Set netty system properties to the properties we configure in jvm.options + test.systemProperty("io.netty.noUnsafe", "true"); + test.systemProperty("io.netty.noKeySetOptimization", "true"); + test.systemProperty("io.netty.recycler.maxCapacityPerThread", "0"); + + test.testLogging(logging -> { + logging.setShowExceptions(true); + logging.setShowCauses(true); + logging.setExceptionFormat("full"); + }); + + if (OS.current().equals(OS.WINDOWS) && System.getProperty("tests.timeoutSuite") == null) { + // override the suite timeout to 30 mins for windows, because it has the most inefficient filesystem known to man + test.systemProperty("tests.timeoutSuite", "1800000!"); + } + + /* + * If this project builds a shadow JAR than any unit tests should test against that artifact instead of + * compiled class output and dependency jars. This better emulates the runtime environment of consumers. + */ + project.getPluginManager().withPlugin("com.github.johnrengelman.shadow", p -> { + // Remove output class files and any other dependencies from the test classpath, since the shadow JAR includes these + FileCollection mainRuntime = project.getExtensions() + .getByType(SourceSetContainer.class) + .getByName(SourceSet.MAIN_SOURCE_SET_NAME) + .getRuntimeClasspath(); + // Add any "shadow" dependencies. These are dependencies that are *not* bundled into the shadow JAR + Configuration shadowConfig = project.getConfigurations().getByName(ShadowBasePlugin.getCONFIGURATION_NAME()); + // Add the shadow JAR artifact itself + FileCollection shadowJar = project.files(project.getTasks().named("shadowJar")); + + test.setClasspath(test.getClasspath().minus(mainRuntime).plus(shadowConfig).plus(shadowJar)); + }); + }); + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java new file mode 100644 index 0000000000000..73911981ab03e --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java @@ -0,0 +1,34 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.elasticsearch.gradle.test; + +import org.elasticsearch.gradle.util.GradleUtils; +import org.gradle.api.Plugin; +import org.gradle.api.Project; + +public class InternalClusterTestPlugin implements Plugin { + @Override + public void apply(Project project) { + GradleUtils.addTestSourceSet(project, "internalClusterTest"); + + // add alias task that is easier to type + project.getTasks().register("icTest").configure(alias -> alias.dependsOn("internalClusterTest")); + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java index 81de7ea8176c3..123acc1f5530b 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java @@ -18,6 +18,7 @@ */ package org.elasticsearch.gradle.util; +import org.elasticsearch.gradle.ElasticsearchJavaPlugin; import org.gradle.api.Action; import org.gradle.api.GradleException; import org.gradle.api.NamedDomainObjectContainer; @@ -25,16 +26,27 @@ import org.gradle.api.Project; import org.gradle.api.Task; import org.gradle.api.UnknownTaskException; +import org.gradle.api.artifacts.Configuration; +import org.gradle.api.file.FileCollection; +import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPluginConvention; import org.gradle.api.provider.Provider; import org.gradle.api.services.BuildService; import org.gradle.api.services.BuildServiceRegistration; import org.gradle.api.services.BuildServiceRegistry; +import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.SourceSetContainer; import org.gradle.api.tasks.TaskContainer; import org.gradle.api.tasks.TaskProvider; +import org.gradle.api.tasks.testing.Test; +import org.gradle.plugins.ide.eclipse.model.EclipseModel; +import org.gradle.plugins.ide.idea.model.IdeaModel; +import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.function.Consumer; +import java.util.function.Function; public abstract class GradleUtils { @@ -120,4 +132,61 @@ public static > Provider getBuildService(BuildServi return (Provider) registration.getService(); } + + /** + * Add a source set and task of the same name that runs tests. + * + * IDEs are also configured if setup, and the test task is added to check. The new test source + * set extends from the normal test source set to allow sharing of utilities. + */ + public static void addTestSourceSet(Project project, String sourceSetName) { + project.getPluginManager().apply(ElasticsearchJavaPlugin.class); + + // create our test source set and task + SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class); + SourceSet extraTestSourceSet = sourceSets.create(sourceSetName); + TaskProvider testTask = project.getTasks().register(sourceSetName, Test.class); + testTask.configure(task -> { + task.setTestClassesDirs(extraTestSourceSet.getOutput().getClassesDirs()); + task.setClasspath(extraTestSourceSet.getRuntimeClasspath()); + }); + SourceSet mainSourceSet = sourceSets.getByName("main"); + SourceSet testSourceSet = sourceSets.getByName("test"); + + extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getCompileConfigurationName); + extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getImplementationConfigurationName); + extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getRuntimeConfigurationName); + extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getRuntimeOnlyConfigurationName); + + // tie this new test source set to the main and test source sets + Configuration extraTestCompileConfig = project.getConfigurations().getByName(extraTestSourceSet.getCompileClasspathConfigurationName()); + Configuration extraTestRuntimeConfig = project.getConfigurations().getByName(extraTestSourceSet.getRuntimeClasspathConfigurationName()); + extraTestSourceSet.setCompileClasspath(project.getObjects().fileCollection().from(mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestCompileConfig)); + extraTestSourceSet.setRuntimeClasspath(project.getObjects().fileCollection().from(extraTestSourceSet.getOutput(), mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestRuntimeConfig)); + + // setup IDEs + String runtimeClasspathName = extraTestSourceSet.getRuntimeClasspathConfigurationName(); + Configuration runtimeClasspathConfiguration = project.getConfigurations().getByName(runtimeClasspathName); + project.getPluginManager().withPlugin("idea", p -> { + IdeaModel idea = project.getExtensions().getByType(IdeaModel.class); + idea.getModule().setTestSourceDirs(extraTestSourceSet.getJava().getSrcDirs()); + idea.getModule().getScopes().put("TEST", Map.of("plus", List.of(runtimeClasspathConfiguration))); + }); + project.getPluginManager().withPlugin("eclipse", p -> { + EclipseModel eclipse = project.getExtensions().getByType(EclipseModel.class); + eclipse.getClasspath().setSourceSets(List.of(extraTestSourceSet)); + eclipse.getClasspath().getPlusConfigurations().add(runtimeClasspathConfiguration); + }); + + // add to the check task + project.getTasks().named(JavaBasePlugin.CHECK_TASK_NAME).configure(check -> check.dependsOn(testTask)); + } + + private static void extendConfiguration(Project project, SourceSet parent, SourceSet child, Function configName) { + String parentConfigName = configName.apply(parent); + String childConfigName = configName.apply(child); + Configuration parentConfig = project.getConfigurations().getByName(parentConfigName); + Configuration childConfig = project.getConfigurations().getByName(childConfigName); + childConfig.extendsFrom(parentConfig); + } } diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.internal-cluster-test.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.internal-cluster-test.properties new file mode 100644 index 0000000000000..dc521b0b81bae --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.internal-cluster-test.properties @@ -0,0 +1,20 @@ +# +# Licensed to Elasticsearch under one or more contributor +# license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright +# ownership. Elasticsearch 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. +# + +implementation-class=org.elasticsearch.gradle.test.InternalClusterTestPlugin diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.java.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.java.properties new file mode 100644 index 0000000000000..61bd1c03e7a9e --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.java.properties @@ -0,0 +1 @@ +implementation-class=org.elasticsearch.gradle.ElasticsearchJavaPlugin diff --git a/server/build.gradle b/server/build.gradle index 3ea89c064a3a6..1979b99aecf46 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -22,6 +22,7 @@ import org.elasticsearch.gradle.info.BuildParams apply plugin: 'elasticsearch.build' apply plugin: 'nebula.optional-base' apply plugin: 'nebula.maven-base-publish' +apply plugin: 'elasticsearch.internal-cluster-test' publishing { publications { @@ -134,11 +135,15 @@ dependencies { // tests use the locally compiled version of server exclude group: 'org.elasticsearch', module: 'server' } + internalClusterTestCompile(project(":test:framework")) { + exclude group: 'org.elasticsearch', module: 'server' + } } compileJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked" compileTestJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked" +compileInternalClusterTestJava.options.compilerArgs << "-Xlint:-cast,-rawtypes,-unchecked" // Until this project is always being formatted with spotless, we need to // guard against `spotless()` not existing. @@ -332,21 +337,11 @@ dependencyLicenses { } -task integTest(type: Test) { - description = 'Multi-node tests' - mustRunAfter test - - include '**/*IT.class' +tasks.named('internalClusterTest').configure { if (org.elasticsearch.gradle.info.BuildParams.isSnapshotBuild() == false) { systemProperty 'es.itv2_feature_enabled', 'true' systemProperty 'es.datastreams_feature_enabled', 'true' } } -check.dependsOn integTest - -task internalClusterTest { - dependsOn integTest -} - diff --git a/server/src/test/java/org/elasticsearch/action/IndicesRequestIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/IndicesRequestIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/IndicesRequestIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/IndicesRequestIT.java diff --git a/server/src/test/java/org/elasticsearch/action/ListenerActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/ListenerActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/ListenerActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/ListenerActionIT.java diff --git a/server/src/test/java/org/elasticsearch/action/RejectionActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/RejectionActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/RejectionActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/RejectionActionIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/HotThreadsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/HotThreadsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/HotThreadsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/HotThreadsIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/ReloadSecureSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/ReloadSecureSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/ReloadSecureSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/ReloadSecureSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/CancellableTasksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/CancellableTasksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/CancellableTasksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/CancellableTasksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskStorageRetryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskStorageRetryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskStorageRetryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/TaskStorageRetryIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/repositories/RepositoryBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/repositories/RepositoryBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/repositories/RepositoryBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/repositories/RepositoryBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/snapshots/SnapshotBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/snapshots/SnapshotBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/snapshots/SnapshotBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/snapshots/SnapshotBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/state/TransportClusterStateActionDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/state/TransportClusterStateActionDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/state/TransportClusterStateActionDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/state/TransportClusterStateActionDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/tasks/PendingTasksBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/tasks/PendingTasksBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/cluster/tasks/PendingTasksBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/tasks/PendingTasksBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/alias/ValidateIndicesAliasesRequestIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/alias/ValidateIndicesAliasesRequestIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/alias/ValidateIndicesAliasesRequestIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/alias/ValidateIndicesAliasesRequestIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/create/CloneIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/CloneIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/create/CloneIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/CloneIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/create/CreateIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/CreateIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/create/CreateIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/CreateIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/create/ShrinkIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/ShrinkIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/create/ShrinkIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/ShrinkIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/create/SplitIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/SplitIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/create/SplitIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/create/SplitIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/flush/FlushBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/flush/FlushBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/flush/FlushBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/flush/FlushBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/forcemerge/ForceMergeIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/get/GetIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/get/GetIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/get/GetIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/get/GetIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/mapping/put/ValidateMappingRequestPluginIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/mapping/put/ValidateMappingRequestPluginIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/mapping/put/ValidateMappingRequestPluginIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/mapping/put/ValidateMappingRequestPluginIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/refresh/RefreshBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/refresh/RefreshBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/refresh/RefreshBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/refresh/RefreshBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/segments/IndicesSegmentsBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/shards/IndicesShardStoreRequestIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/shards/IndicesShardStoreRequestIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/shards/IndicesShardStoreRequestIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/shards/IndicesShardStoreRequestIT.java diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/stats/IndicesStatsBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/bulk/BulkIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorClusterSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkProcessorClusterSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorClusterSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkProcessorClusterSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkProcessorIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkProcessorIT.java diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorRetryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkProcessorRetryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorRetryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkProcessorRetryIT.java diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkRejectionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkRejectionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/bulk/BulkRejectionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkRejectionIT.java diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkWithUpdatesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkWithUpdatesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/bulk/BulkWithUpdatesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/bulk/BulkWithUpdatesIT.java diff --git a/server/src/test/java/org/elasticsearch/action/ingest/AsyncIngestProcessorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/ingest/AsyncIngestProcessorIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/ingest/AsyncIngestProcessorIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/ingest/AsyncIngestProcessorIT.java diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java diff --git a/server/src/test/java/org/elasticsearch/action/search/TransportSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/search/TransportSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/search/TransportSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/action/support/ActiveShardsObserverIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/support/ActiveShardsObserverIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/support/ActiveShardsObserverIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/support/ActiveShardsObserverIT.java diff --git a/server/src/test/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java diff --git a/server/src/test/java/org/elasticsearch/action/support/master/IndexingMasterFailoverIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/support/master/IndexingMasterFailoverIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/support/master/IndexingMasterFailoverIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/support/master/IndexingMasterFailoverIT.java diff --git a/server/src/test/java/org/elasticsearch/action/support/replication/TransportReplicationActionRetryOnClosedNodeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/support/replication/TransportReplicationActionRetryOnClosedNodeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/support/replication/TransportReplicationActionRetryOnClosedNodeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/support/replication/TransportReplicationActionRetryOnClosedNodeIT.java diff --git a/server/src/test/java/org/elasticsearch/action/termvectors/GetTermVectorsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/termvectors/GetTermVectorsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/termvectors/GetTermVectorsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/termvectors/GetTermVectorsIT.java diff --git a/server/src/test/java/org/elasticsearch/action/termvectors/MultiTermVectorsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/termvectors/MultiTermVectorsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/action/termvectors/MultiTermVectorsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/action/termvectors/MultiTermVectorsIT.java diff --git a/server/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/aliases/IndexAliasesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/aliases/IndexAliasesIT.java diff --git a/server/src/test/java/org/elasticsearch/blocks/SimpleBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/blocks/SimpleBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/blocks/SimpleBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/blocks/SimpleBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/broadcast/BroadcastActionsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/broadcast/BroadcastActionsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/broadcast/BroadcastActionsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/broadcast/BroadcastActionsIT.java diff --git a/server/src/test/java/org/elasticsearch/bwcompat/RecoveryWithUnsupportedIndicesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/bwcompat/RecoveryWithUnsupportedIndicesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/bwcompat/RecoveryWithUnsupportedIndicesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/bwcompat/RecoveryWithUnsupportedIndicesIT.java diff --git a/server/src/test/java/org/elasticsearch/client/node/NodeClientIT.java b/server/src/internalClusterTest/java/org/elasticsearch/client/node/NodeClientIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/client/node/NodeClientIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/client/node/NodeClientIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/ClusterHealthIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterHealthIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/ClusterHealthIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterHealthIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/ClusterStateDiffIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterStateDiffIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/ClusterStateDiffIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterStateDiffIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/NoMasterNodeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/NoMasterNodeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/NoMasterNodeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/NoMasterNodeIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/SimpleClusterStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/SimpleClusterStateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleClusterStateIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/SimpleDataNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleDataNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/SimpleDataNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/SimpleDataNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/SpecificMasterNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/SpecificMasterNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/SpecificMasterNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/SpecificMasterNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/UpdateSettingsValidationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/UpdateSettingsValidationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/UpdateSettingsValidationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/UpdateSettingsValidationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/allocation/AwarenessAllocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/AwarenessAllocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/allocation/AwarenessAllocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/AwarenessAllocationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/allocation/ClusterRerouteIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/ClusterRerouteIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/allocation/ClusterRerouteIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/ClusterRerouteIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/allocation/FilteringAllocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/FilteringAllocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/allocation/FilteringAllocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/FilteringAllocationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/allocation/SimpleAllocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/SimpleAllocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/allocation/SimpleAllocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/allocation/SimpleAllocationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/RareClusterStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/RareClusterStateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/coordination/RareClusterStateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/RareClusterStateIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/RemoveCustomsCommandIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/RemoveCustomsCommandIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/coordination/RemoveCustomsCommandIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/RemoveCustomsCommandIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/RemoveSettingsCommandIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/RemoveSettingsCommandIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/coordination/RemoveSettingsCommandIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/RemoveSettingsCommandIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/UnsafeBootstrapAndDetachCommandIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/UnsafeBootstrapAndDetachCommandIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/coordination/UnsafeBootstrapAndDetachCommandIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/UnsafeBootstrapAndDetachCommandIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/VotingConfigurationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/VotingConfigurationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/coordination/VotingConfigurationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/VotingConfigurationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/ZenDiscoveryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/ZenDiscoveryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/coordination/ZenDiscoveryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/coordination/ZenDiscoveryIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/TemplateUpgradeServiceIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/UpgradeIndexSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/UpgradeIndexSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/metadata/UpgradeIndexSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/metadata/UpgradeIndexSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/node/DiscoveryNodeRoleIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/node/DiscoveryNodeRoleIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/node/DiscoveryNodeRoleIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/node/DiscoveryNodeRoleIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/AllocationIdIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/AllocationIdIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/routing/AllocationIdIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/AllocationIdIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/DelayedAllocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/DelayedAllocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/routing/DelayedAllocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/DelayedAllocationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/ShardStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/ShardStateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/routing/allocation/ShardStateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/ShardStateIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/MockDiskUsagesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/decider/MockDiskUsagesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/MockDiskUsagesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/decider/MockDiskUsagesIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/UpdateShardAllocationSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/decider/UpdateShardAllocationSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/routing/allocation/decider/UpdateShardAllocationSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/routing/allocation/decider/UpdateShardAllocationSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/service/ClusterServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/service/ClusterServiceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/service/ClusterServiceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/service/ClusterServiceIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/settings/ClusterSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/settings/ClusterSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/settings/ClusterSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/settings/ClusterSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/settings/SettingsFilteringIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/settings/SettingsFilteringIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/settings/SettingsFilteringIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/settings/SettingsFilteringIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/shards/ClusterSearchShardsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/shards/ClusterSearchShardsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/cluster/shards/ClusterSearchShardsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/shards/ClusterSearchShardsIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java b/server/src/internalClusterTest/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java similarity index 86% rename from server/src/test/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java index c51f46457afff..84dd049b751a6 100644 --- a/server/src/test/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/cluster/shards/ClusterShardLimitIT.java @@ -45,7 +45,6 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; -import static org.hamcrest.Matchers.lessThanOrEqualTo; @ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST) public class ClusterShardLimitIT extends ESIntegTestCase { @@ -110,7 +109,7 @@ public void testIndexCreationOverLimitFromTemplate() { setShardsPerNode(counts.getShardsPerNode()); - if (counts.firstIndexShards > 0) { + if (counts.getFirstIndexShards() > 0) { createIndex( "test", Settings.builder() @@ -367,68 +366,4 @@ private void verifyException(int dataNodes, ShardCounts counts, IllegalArgumentE assertEquals(expectedError, e.getMessage()); } - public static class ShardCounts { - private final int shardsPerNode; - - private final int firstIndexShards; - private final int firstIndexReplicas; - - private final int failingIndexShards; - private final int failingIndexReplicas; - - private ShardCounts(int shardsPerNode, - int firstIndexShards, - int firstIndexReplicas, - int failingIndexShards, - int failingIndexReplicas) { - this.shardsPerNode = shardsPerNode; - this.firstIndexShards = firstIndexShards; - this.firstIndexReplicas = firstIndexReplicas; - this.failingIndexShards = failingIndexShards; - this.failingIndexReplicas = failingIndexReplicas; - } - - public static ShardCounts forDataNodeCount(int dataNodes) { - assertThat("this method will not work reliably with this many data nodes due to the limit of shards in a single index," + - "use fewer data nodes or multiple indices", dataNodes, lessThanOrEqualTo(90)); - int mainIndexReplicas = between(0, dataNodes - 1); - int mainIndexShards = between(1, 10); - int totalShardsInIndex = (mainIndexReplicas + 1) * mainIndexShards; - // Sometimes add some headroom to the limit to check that it works even if you're not already right up against the limit - int shardsPerNode = (int) Math.ceil((double) totalShardsInIndex / dataNodes) + between(0, 10); - int totalCap = shardsPerNode * dataNodes; - - int failingIndexShards; - int failingIndexReplicas; - if (dataNodes > 1 && frequently()) { - failingIndexShards = Math.max(1, totalCap - totalShardsInIndex); - failingIndexReplicas = between(1, dataNodes - 1); - } else { - failingIndexShards = totalCap - totalShardsInIndex + between(1, 10); - failingIndexReplicas = 0; - } - - return new ShardCounts(shardsPerNode, mainIndexShards, mainIndexReplicas, failingIndexShards, failingIndexReplicas); - } - - public int getShardsPerNode() { - return shardsPerNode; - } - - public int getFirstIndexShards() { - return firstIndexShards; - } - - public int getFirstIndexReplicas() { - return firstIndexReplicas; - } - - public int getFailingIndexShards() { - return failingIndexShards; - } - - public int getFailingIndexReplicas() { - return failingIndexReplicas; - } - } } diff --git a/server/src/test/java/org/elasticsearch/common/settings/ConsistentSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/common/settings/ConsistentSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/common/settings/ConsistentSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/common/settings/ConsistentSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/common/settings/UpgradeSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/common/settings/UpgradeSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/common/settings/UpgradeSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/common/settings/UpgradeSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/ClusterDisruptionCleanSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/ClusterDisruptionCleanSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/ClusterDisruptionCleanSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/ClusterDisruptionCleanSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/ClusterDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/ClusterDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/ClusterDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/ClusterDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/DiscoveryDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/DiscoveryDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/DiscoveryDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/DiscoveryDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/DiskDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/DiskDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/DiskDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/DiskDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/MasterDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/MasterDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/MasterDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/MasterDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/SettingsBasedSeedHostsProviderIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/SettingsBasedSeedHostsProviderIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/SettingsBasedSeedHostsProviderIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/SettingsBasedSeedHostsProviderIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/SnapshotDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/SnapshotDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/SnapshotDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/SnapshotDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/StableMasterDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/StableMasterDisruptionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/StableMasterDisruptionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/StableMasterDisruptionIT.java diff --git a/server/src/test/java/org/elasticsearch/discovery/single/SingleNodeDiscoveryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/single/SingleNodeDiscoveryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/discovery/single/SingleNodeDiscoveryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/discovery/single/SingleNodeDiscoveryIT.java diff --git a/server/src/test/java/org/elasticsearch/document/AliasedIndexDocumentActionsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/document/AliasedIndexDocumentActionsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/document/AliasedIndexDocumentActionsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/document/AliasedIndexDocumentActionsIT.java diff --git a/server/src/test/java/org/elasticsearch/document/DocumentActionsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/document/DocumentActionsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/document/DocumentActionsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/document/DocumentActionsIT.java diff --git a/server/src/test/java/org/elasticsearch/document/ShardInfoIT.java b/server/src/internalClusterTest/java/org/elasticsearch/document/ShardInfoIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/document/ShardInfoIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/document/ShardInfoIT.java diff --git a/server/src/test/java/org/elasticsearch/env/NodeEnvironmentIT.java b/server/src/internalClusterTest/java/org/elasticsearch/env/NodeEnvironmentIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/env/NodeEnvironmentIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/env/NodeEnvironmentIT.java diff --git a/server/src/test/java/org/elasticsearch/env/NodeRepurposeCommandIT.java b/server/src/internalClusterTest/java/org/elasticsearch/env/NodeRepurposeCommandIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/env/NodeRepurposeCommandIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/env/NodeRepurposeCommandIT.java diff --git a/server/src/test/java/org/elasticsearch/explain/ExplainActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/explain/ExplainActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/explain/ExplainActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/explain/ExplainActionIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/GatewayIndexStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/GatewayIndexStateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/GatewayIndexStateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/GatewayIndexStateIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/MetadataNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/MetadataNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/MetadataNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/MetadataNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/QuorumGatewayIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/QuorumGatewayIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/QuorumGatewayIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/QuorumGatewayIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/RecoverAfterNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/RecoverAfterNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/RecoverAfterNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/RecoverAfterNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/RecoveryFromGatewayIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/RecoveryFromGatewayIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/RecoveryFromGatewayIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/RecoveryFromGatewayIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java diff --git a/server/src/test/java/org/elasticsearch/gateway/ReplicaShardAllocatorSyncIdIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorSyncIdIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/gateway/ReplicaShardAllocatorSyncIdIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorSyncIdIT.java diff --git a/server/src/test/java/org/elasticsearch/get/GetActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/get/GetActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/get/GetActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/get/GetActionIT.java diff --git a/server/src/test/java/org/elasticsearch/index/FinalPipelineIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/FinalPipelineIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/FinalPipelineIT.java diff --git a/server/src/test/java/org/elasticsearch/index/HiddenIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/HiddenIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/HiddenIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/HiddenIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/index/IndexRequestBuilderIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/IndexRequestBuilderIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/IndexRequestBuilderIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/IndexRequestBuilderIT.java diff --git a/server/src/test/java/org/elasticsearch/index/IndexSortIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/IndexSortIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/IndexSortIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/IndexSortIT.java diff --git a/server/src/test/java/org/elasticsearch/index/SettingsListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/SettingsListenerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/SettingsListenerIT.java diff --git a/server/src/test/java/org/elasticsearch/index/WaitUntilRefreshIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/WaitUntilRefreshIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/WaitUntilRefreshIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/WaitUntilRefreshIT.java diff --git a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineMergeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/engine/InternalEngineMergeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/engine/InternalEngineMergeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/engine/InternalEngineMergeIT.java diff --git a/server/src/test/java/org/elasticsearch/index/fielddata/FieldDataLoadingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/fielddata/FieldDataLoadingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/fielddata/FieldDataLoadingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/fielddata/FieldDataLoadingIT.java diff --git a/server/src/test/java/org/elasticsearch/index/mapper/CopyToMapperIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/CopyToMapperIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/mapper/CopyToMapperIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/mapper/CopyToMapperIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/DynamicMappingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/mapper/DynamicMappingIT.java diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/index/mapper/MultiFieldsIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/MultiFieldsIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/mapper/MultiFieldsIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/mapper/MultiFieldsIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/index/query/plugin/CustomQueryParserIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/query/plugin/CustomQueryParserIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/query/plugin/CustomQueryParserIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/query/plugin/CustomQueryParserIT.java diff --git a/server/src/test/java/org/elasticsearch/index/search/MatchPhraseQueryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/search/MatchPhraseQueryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/search/MatchPhraseQueryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/search/MatchPhraseQueryIT.java diff --git a/server/src/test/java/org/elasticsearch/index/seqno/GlobalCheckpointSyncIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/seqno/GlobalCheckpointSyncIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/seqno/GlobalCheckpointSyncIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/seqno/GlobalCheckpointSyncIT.java diff --git a/server/src/test/java/org/elasticsearch/index/seqno/PeerRecoveryRetentionLeaseCreationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/seqno/PeerRecoveryRetentionLeaseCreationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/seqno/PeerRecoveryRetentionLeaseCreationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/seqno/PeerRecoveryRetentionLeaseCreationIT.java diff --git a/server/src/test/java/org/elasticsearch/index/seqno/RetentionLeaseIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/seqno/RetentionLeaseIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/seqno/RetentionLeaseIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/seqno/RetentionLeaseIT.java diff --git a/server/src/test/java/org/elasticsearch/index/shard/GlobalCheckpointListenersIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/shard/GlobalCheckpointListenersIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/shard/GlobalCheckpointListenersIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/shard/GlobalCheckpointListenersIT.java diff --git a/server/src/test/java/org/elasticsearch/index/shard/IndexShardIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/shard/IndexShardIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/shard/IndexShardIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/shard/IndexShardIT.java diff --git a/server/src/test/java/org/elasticsearch/index/shard/RemoveCorruptedShardDataCommandIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/shard/RemoveCorruptedShardDataCommandIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/shard/RemoveCorruptedShardDataCommandIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/shard/RemoveCorruptedShardDataCommandIT.java diff --git a/server/src/test/java/org/elasticsearch/index/shard/SearchIdleIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/shard/SearchIdleIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/shard/SearchIdleIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/shard/SearchIdleIT.java diff --git a/server/src/test/java/org/elasticsearch/index/store/CorruptedFileIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/store/CorruptedFileIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/store/CorruptedFileIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/store/CorruptedFileIT.java diff --git a/server/src/test/java/org/elasticsearch/index/store/CorruptedTranslogIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/store/CorruptedTranslogIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/store/CorruptedTranslogIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/store/CorruptedTranslogIT.java diff --git a/server/src/test/java/org/elasticsearch/index/store/ExceptionRetryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/store/ExceptionRetryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/store/ExceptionRetryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/store/ExceptionRetryIT.java diff --git a/server/src/test/java/org/elasticsearch/index/suggest/stats/SuggestStatsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/suggest/stats/SuggestStatsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/index/suggest/stats/SuggestStatsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/index/suggest/stats/SuggestStatsIT.java diff --git a/server/src/test/java/org/elasticsearch/indexing/IndexActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indexing/IndexActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indexing/IndexActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indexing/IndexActionIT.java diff --git a/server/src/test/java/org/elasticsearch/indexlifecycle/IndexLifecycleActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indexlifecycle/IndexLifecycleActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indexlifecycle/IndexLifecycleActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indexlifecycle/IndexLifecycleActionIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/DataStreamIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/DataStreamIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/DataStreamIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/DataStreamIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/DateMathIndexExpressionsIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/DateMathIndexExpressionsIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/DateMathIndexExpressionsIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/DateMathIndexExpressionsIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/IndexingMemoryControllerIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesOptionsIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesOptionsIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/IndicesOptionsIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesOptionsIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesRequestCacheIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesRequestCacheIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/IndicesRequestCacheIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesRequestCacheIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/analysis/PreBuiltAnalyzerIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/analysis/PreBuiltAnalyzerIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/analysis/PreBuiltAnalyzerIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/analysis/PreBuiltAnalyzerIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/analyze/AnalyzeActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/analyze/AnalyzeActionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/analyze/AnalyzeActionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/analyze/AnalyzeActionIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/flush/FlushIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/flush/FlushIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/flush/FlushIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/flush/FlushIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/mapping/DedicatedMasterGetFieldMappingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/DedicatedMasterGetFieldMappingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/mapping/DedicatedMasterGetFieldMappingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/DedicatedMasterGetFieldMappingIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/mapping/SimpleGetFieldMappingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/SimpleGetFieldMappingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/mapping/SimpleGetFieldMappingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/SimpleGetFieldMappingsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/mapping/SimpleGetMappingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/SimpleGetMappingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/mapping/SimpleGetMappingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/SimpleGetMappingsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/mapping/UpdateMappingIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/UpdateMappingIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/mapping/UpdateMappingIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/UpdateMappingIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerNoopIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerNoopIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerNoopIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerNoopIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerServiceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerServiceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/memory/breaker/CircuitBreakerServiceIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/memory/breaker/RandomExceptionCircuitBreakerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/memory/breaker/RandomExceptionCircuitBreakerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/memory/breaker/RandomExceptionCircuitBreakerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/memory/breaker/RandomExceptionCircuitBreakerIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/recovery/DanglingIndicesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/DanglingIndicesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/recovery/DanglingIndicesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/DanglingIndicesIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/recovery/IndexPrimaryRelocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/IndexPrimaryRelocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/recovery/IndexPrimaryRelocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/IndexPrimaryRelocationIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/recovery/ReplicaToPrimaryPromotionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/ReplicaToPrimaryPromotionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/recovery/ReplicaToPrimaryPromotionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/recovery/ReplicaToPrimaryPromotionIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/settings/GetSettingsBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/settings/GetSettingsBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/settings/GetSettingsBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/settings/GetSettingsBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/settings/InternalSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/settings/InternalSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/settings/InternalSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/settings/InternalSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/settings/PrivateSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/settings/PrivateSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/settings/PrivateSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/settings/PrivateSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/settings/UpdateNumberOfReplicasIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/settings/UpdateNumberOfReplicasIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/settings/UpdateNumberOfReplicasIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/settings/UpdateNumberOfReplicasIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/settings/UpdateSettingsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/settings/UpdateSettingsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/settings/UpdateSettingsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/settings/UpdateSettingsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/state/CloseIndexDisableCloseAllIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseIndexDisableCloseAllIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/state/CloseIndexDisableCloseAllIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseIndexDisableCloseAllIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/state/CloseIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/state/CloseWhileRelocatingShardsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseWhileRelocatingShardsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/state/CloseWhileRelocatingShardsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/state/CloseWhileRelocatingShardsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/state/OpenCloseIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/state/OpenCloseIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/state/OpenCloseIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/state/OpenCloseIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/state/ReopenWhileClosingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/state/ReopenWhileClosingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/state/ReopenWhileClosingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/state/ReopenWhileClosingIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/state/SimpleIndexStateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/state/SimpleIndexStateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/state/SimpleIndexStateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/state/SimpleIndexStateIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/stats/IndexStatsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/stats/IndexStatsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/stats/IndexStatsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/stats/IndexStatsIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/template/IndexTemplateBlocksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/template/IndexTemplateBlocksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/template/IndexTemplateBlocksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/template/IndexTemplateBlocksIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java diff --git a/server/src/test/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java diff --git a/server/src/test/java/org/elasticsearch/ingest/IngestClientIT.java b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestClientIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/ingest/IngestClientIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestClientIT.java diff --git a/server/src/test/java/org/elasticsearch/ingest/IngestProcessorNotInstalledOnAllNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestProcessorNotInstalledOnAllNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/ingest/IngestProcessorNotInstalledOnAllNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/ingest/IngestProcessorNotInstalledOnAllNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java b/server/src/internalClusterTest/java/org/elasticsearch/mget/SimpleMgetIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/mget/SimpleMgetIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/mget/SimpleMgetIT.java diff --git a/server/src/test/java/org/elasticsearch/nodesinfo/SimpleNodesInfoIT.java b/server/src/internalClusterTest/java/org/elasticsearch/nodesinfo/SimpleNodesInfoIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/nodesinfo/SimpleNodesInfoIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/nodesinfo/SimpleNodesInfoIT.java diff --git a/server/src/test/java/org/elasticsearch/operateAllIndices/DestructiveOperationsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/operateAllIndices/DestructiveOperationsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/operateAllIndices/DestructiveOperationsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/operateAllIndices/DestructiveOperationsIT.java diff --git a/server/src/test/java/org/elasticsearch/persistent/PersistentTasksExecutorFullRestartIT.java b/server/src/internalClusterTest/java/org/elasticsearch/persistent/PersistentTasksExecutorFullRestartIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/persistent/PersistentTasksExecutorFullRestartIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/persistent/PersistentTasksExecutorFullRestartIT.java diff --git a/server/src/test/java/org/elasticsearch/persistent/PersistentTasksExecutorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/persistent/PersistentTasksExecutorIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/persistent/PersistentTasksExecutorIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/persistent/PersistentTasksExecutorIT.java diff --git a/server/src/test/java/org/elasticsearch/persistent/decider/EnableAssignmentDeciderIT.java b/server/src/internalClusterTest/java/org/elasticsearch/persistent/decider/EnableAssignmentDeciderIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/persistent/decider/EnableAssignmentDeciderIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/persistent/decider/EnableAssignmentDeciderIT.java diff --git a/server/src/test/java/org/elasticsearch/recovery/FullRollingRestartIT.java b/server/src/internalClusterTest/java/org/elasticsearch/recovery/FullRollingRestartIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/recovery/FullRollingRestartIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/recovery/FullRollingRestartIT.java diff --git a/server/src/test/java/org/elasticsearch/recovery/RecoveryWhileUnderLoadIT.java b/server/src/internalClusterTest/java/org/elasticsearch/recovery/RecoveryWhileUnderLoadIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/recovery/RecoveryWhileUnderLoadIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/recovery/RecoveryWhileUnderLoadIT.java diff --git a/server/src/test/java/org/elasticsearch/recovery/RelocationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/recovery/RelocationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/recovery/RelocationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/recovery/RelocationIT.java diff --git a/server/src/test/java/org/elasticsearch/recovery/SimpleRecoveryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/recovery/SimpleRecoveryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/recovery/SimpleRecoveryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/recovery/SimpleRecoveryIT.java diff --git a/server/src/test/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java diff --git a/server/src/test/java/org/elasticsearch/repositories/RepositoriesServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/repositories/RepositoriesServiceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/repositories/RepositoriesServiceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/repositories/RepositoriesServiceIT.java diff --git a/server/src/test/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryCleanupIT.java b/server/src/internalClusterTest/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryCleanupIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryCleanupIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryCleanupIT.java diff --git a/server/src/test/java/org/elasticsearch/repositories/fs/FsBlobStoreRepositoryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/repositories/fs/FsBlobStoreRepositoryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/repositories/fs/FsBlobStoreRepositoryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/repositories/fs/FsBlobStoreRepositoryIT.java diff --git a/server/src/test/java/org/elasticsearch/routing/AliasResolveRoutingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/routing/AliasResolveRoutingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/routing/AliasResolveRoutingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/routing/AliasResolveRoutingIT.java diff --git a/server/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/routing/AliasRoutingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/routing/AliasRoutingIT.java diff --git a/server/src/test/java/org/elasticsearch/routing/PartitionedRoutingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/routing/PartitionedRoutingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/routing/PartitionedRoutingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/routing/PartitionedRoutingIT.java diff --git a/server/src/test/java/org/elasticsearch/routing/SimpleRoutingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/routing/SimpleRoutingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/routing/SimpleRoutingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/routing/SimpleRoutingIT.java diff --git a/server/src/test/java/org/elasticsearch/script/StoredScriptsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/script/StoredScriptsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/script/StoredScriptsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/script/StoredScriptsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/SearchCancellationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/SearchCancellationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/SearchCancellationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/SearchCancellationIT.java diff --git a/server/src/test/java/org/elasticsearch/search/SearchTimeoutIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/SearchTimeoutIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/SearchTimeoutIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/SearchTimeoutIT.java diff --git a/server/src/test/java/org/elasticsearch/search/SearchWithRejectionsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/SearchWithRejectionsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/SearchWithRejectionsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/SearchWithRejectionsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/StressSearchServiceReaperIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/StressSearchServiceReaperIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/StressSearchServiceReaperIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/StressSearchServiceReaperIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/AggregationsIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/AggregationsIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/AggregationsIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/CombiIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/CombiIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/CombiIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/CombiIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/EquivalenceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/EquivalenceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/FiltersAggsRewriteIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/FiltersAggsRewriteIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/FiltersAggsRewriteIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/FiltersAggsRewriteIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/MetadataIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/MetadataIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/MetadataIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/MetadataIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/MissingValueIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/MissingValueIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/MissingValueIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/MissingValueIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/AdjacencyMatrixIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/AdjacencyMatrixIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/AdjacencyMatrixIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/AdjacencyMatrixIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/BooleanTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/BooleanTermsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/BooleanTermsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/BooleanTermsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DateHistogramOffsetIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/DiversifiedSamplerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DiversifiedSamplerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/DiversifiedSamplerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DiversifiedSamplerIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/GeoHashGridIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/GlobalIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/GlobalIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/GlobalIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/GlobalIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/IpRangeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/IpRangeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/IpRangeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/IpRangeIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/IpTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/IpTermsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/IpTermsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/IpTermsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/NaNSortingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/NaNSortingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/NaNSortingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/NaNSortingIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/NestedIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/NestedIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/NestedIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/ReverseNestedIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/SamplerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SamplerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/SamplerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SamplerIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardReduceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/ShardReduceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardReduceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/ShardReduceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/ShardSizeTermsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/TermsDocCountErrorIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsShardMinDocCountIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/TermsShardMinDocCountIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsShardMinDocCountIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/TermsShardMinDocCountIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/GeoBoundsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/GeoCentroidIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/MedianAbsoluteDeviationIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/SumIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/SumIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/TopHitsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/TopHitsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSortIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/BucketSortIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSortIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/BucketSortIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DateDerivativeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/DateDerivativeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DateDerivativeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/DateDerivativeIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DerivativeIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/DerivativeIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DerivativeIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/DerivativeIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/ExtendedStatsBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/MaxBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MinBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/MinBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MinBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/MinBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/PercentilesBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/StatsBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SumBucketIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SumBucketIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SumBucketIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SumBucketIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/SearchRedStateIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchRedStateIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/SearchRedStateIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchRedStateIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/SearchWhileCreatingIndexIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWhileCreatingIndexIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/SearchWhileCreatingIndexIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWhileCreatingIndexIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/SearchWhileRelocatingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWhileRelocatingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/SearchWhileRelocatingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWhileRelocatingIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/SearchWithRandomExceptionsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWithRandomExceptionsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/SearchWithRandomExceptionsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWithRandomExceptionsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/SearchWithRandomIOExceptionsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWithRandomIOExceptionsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/SearchWithRandomIOExceptionsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/SearchWithRandomIOExceptionsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/TransportSearchFailuresIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/TransportSearchFailuresIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/TransportSearchFailuresIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/TransportSearchFailuresIT.java diff --git a/server/src/test/java/org/elasticsearch/search/basic/TransportTwoNodesSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/basic/TransportTwoNodesSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/basic/TransportTwoNodesSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/basic/TransportTwoNodesSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fetch/FetchSubPhasePluginIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fetch/FetchSubPhasePluginIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fetch/FetchSubPhasePluginIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fetch/FetchSubPhasePluginIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/InnerHitsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fetch/subphase/MatchedQueriesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/MatchedQueriesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fetch/subphase/MatchedQueriesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/MatchedQueriesIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/CustomHighlighterSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/highlight/CustomHighlighterSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/CustomHighlighterSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/highlight/CustomHighlighterSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fieldcaps/FieldCapabilitiesIT.java diff --git a/server/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fields/SearchFieldsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/fields/SearchFieldsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/ExplainableScriptIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/ExplainableScriptIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/ExplainableScriptIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/ExplainableScriptIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreFieldValueIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/FunctionScoreFieldValueIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreFieldValueIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/FunctionScoreFieldValueIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/FunctionScorePluginIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/FunctionScorePluginIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/FunctionScorePluginIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/FunctionScorePluginIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/QueryRescorerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/QueryRescorerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/QueryRescorerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/QueryRescorerIT.java diff --git a/server/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoBoundingBoxQueryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoBoundingBoxQueryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/geo/GeoBoundingBoxQueryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoBoundingBoxQueryIT.java diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoDistanceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoDistanceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoFilterIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoFilterIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/geo/GeoFilterIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoFilterIT.java diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoPolygonIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoPolygonIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/geo/GeoPolygonIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoPolygonIT.java diff --git a/server/src/test/java/org/elasticsearch/search/geo/GeoShapeIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoShapeIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/geo/GeoShapeIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/geo/GeoShapeIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/search/geo/LegacyGeoShapeIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/geo/LegacyGeoShapeIntegrationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/geo/LegacyGeoShapeIntegrationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/geo/LegacyGeoShapeIntegrationIT.java diff --git a/server/src/test/java/org/elasticsearch/search/morelikethis/MoreLikeThisIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/morelikethis/MoreLikeThisIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/morelikethis/MoreLikeThisIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/morelikethis/MoreLikeThisIT.java diff --git a/server/src/test/java/org/elasticsearch/search/msearch/MultiSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/msearch/MultiSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/msearch/MultiSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/msearch/MultiSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/nested/SimpleNestedIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/nested/SimpleNestedIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/nested/SimpleNestedIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/nested/SimpleNestedIT.java diff --git a/server/src/test/java/org/elasticsearch/search/preference/SearchPreferenceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/preference/SearchPreferenceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/preference/SearchPreferenceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/preference/SearchPreferenceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/profile/aggregation/AggregationProfilerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/profile/aggregation/AggregationProfilerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/profile/aggregation/AggregationProfilerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/profile/aggregation/AggregationProfilerIT.java diff --git a/server/src/test/java/org/elasticsearch/search/profile/query/QueryProfilerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/profile/query/QueryProfilerIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/profile/query/QueryProfilerIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/profile/query/QueryProfilerIT.java diff --git a/server/src/test/java/org/elasticsearch/search/query/ExistsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/query/ExistsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/query/ExistsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/query/ExistsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/query/MultiMatchQueryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/query/MultiMatchQueryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/query/MultiMatchQueryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/query/MultiMatchQueryIT.java diff --git a/server/src/test/java/org/elasticsearch/search/query/QueryStringIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/query/QueryStringIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/query/QueryStringIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/query/QueryStringIT.java diff --git a/server/src/test/java/org/elasticsearch/search/query/ScriptScoreQueryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/query/ScriptScoreQueryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/query/ScriptScoreQueryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/query/ScriptScoreQueryIT.java diff --git a/server/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/query/SearchQueryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/query/SearchQueryIT.java diff --git a/server/src/test/java/org/elasticsearch/search/query/SimpleQueryStringIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/query/SimpleQueryStringIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/query/SimpleQueryStringIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/query/SimpleQueryStringIT.java diff --git a/server/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/scroll/DuelScrollIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/scroll/DuelScrollIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/scroll/DuelScrollIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/scroll/DuelScrollIT.java diff --git a/server/src/test/java/org/elasticsearch/search/scroll/SearchScrollIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/scroll/SearchScrollIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/scroll/SearchScrollIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/scroll/SearchScrollIT.java diff --git a/server/src/test/java/org/elasticsearch/search/scroll/SearchScrollWithFailingNodesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/scroll/SearchScrollWithFailingNodesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/scroll/SearchScrollWithFailingNodesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/scroll/SearchScrollWithFailingNodesIT.java diff --git a/server/src/test/java/org/elasticsearch/search/searchafter/SearchAfterIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/searchafter/SearchAfterIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/searchafter/SearchAfterIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/searchafter/SearchAfterIT.java diff --git a/server/src/test/java/org/elasticsearch/search/simple/SimpleSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/simple/SimpleSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/simple/SimpleSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/simple/SimpleSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/slice/SearchSliceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/slice/SearchSliceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/slice/SearchSliceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/slice/SearchSliceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/sort/FieldSortIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/sort/FieldSortIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/sort/FieldSortIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/sort/FieldSortIT.java diff --git a/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/sort/GeoDistanceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/sort/GeoDistanceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/sort/GeoDistanceIT.java diff --git a/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderIT.java diff --git a/server/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/sort/SimpleSortIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/sort/SimpleSortIT.java diff --git a/server/src/test/java/org/elasticsearch/search/source/MetadataFetchingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/source/MetadataFetchingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/source/MetadataFetchingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/source/MetadataFetchingIT.java diff --git a/server/src/test/java/org/elasticsearch/search/source/SourceFetchingIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/source/SourceFetchingIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/source/SourceFetchingIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/source/SourceFetchingIT.java diff --git a/server/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/stats/SearchStatsIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/stats/SearchStatsIT.java diff --git a/server/src/test/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/suggest/ContextCompletionSuggestSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/ContextCompletionSuggestSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/suggest/ContextCompletionSuggestSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/suggest/ContextCompletionSuggestSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/search/suggest/SuggestSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/SuggestSearchIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/search/suggest/SuggestSearchIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/search/suggest/SuggestSearchIT.java diff --git a/server/src/test/java/org/elasticsearch/similarity/SimilarityIT.java b/server/src/internalClusterTest/java/org/elasticsearch/similarity/SimilarityIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/similarity/SimilarityIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/similarity/SimilarityIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/BlobStoreIncrementalityIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/BlobStoreIncrementalityIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/BlobStoreIncrementalityIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/BlobStoreIncrementalityIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/DedicatedClusterSnapshotRestoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/DedicatedClusterSnapshotRestoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/DedicatedClusterSnapshotRestoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/DedicatedClusterSnapshotRestoreIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/MetadataLoadingDuringSnapshotRestoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/MetadataLoadingDuringSnapshotRestoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/MetadataLoadingDuringSnapshotRestoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/MetadataLoadingDuringSnapshotRestoreIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/MinThreadsSnapshotRestoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/MinThreadsSnapshotRestoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/MinThreadsSnapshotRestoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/MinThreadsSnapshotRestoreIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/RepositoriesIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/RepositoriesIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/RepositoriesIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/RepositoriesIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/RepositoryFilterUserMetadataIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/RepositoryFilterUserMetadataIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/RepositoryFilterUserMetadataIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/RepositoryFilterUserMetadataIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/SnapshotShardsServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/SnapshotShardsServiceIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/SnapshotShardsServiceIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/SnapshotShardsServiceIT.java diff --git a/server/src/test/java/org/elasticsearch/snapshots/SnapshotStatusApisIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/SnapshotStatusApisIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/snapshots/SnapshotStatusApisIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/snapshots/SnapshotStatusApisIT.java diff --git a/server/src/test/java/org/elasticsearch/threadpool/SimpleThreadPoolIT.java b/server/src/internalClusterTest/java/org/elasticsearch/threadpool/SimpleThreadPoolIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/threadpool/SimpleThreadPoolIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/threadpool/SimpleThreadPoolIT.java diff --git a/server/src/test/java/org/elasticsearch/update/UpdateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/update/UpdateIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/update/UpdateIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/update/UpdateIT.java diff --git a/server/src/test/java/org/elasticsearch/update/UpdateNoopIT.java b/server/src/internalClusterTest/java/org/elasticsearch/update/UpdateNoopIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/update/UpdateNoopIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/update/UpdateNoopIT.java diff --git a/server/src/test/java/org/elasticsearch/validate/SimpleValidateQueryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/validate/SimpleValidateQueryIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/validate/SimpleValidateQueryIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/validate/SimpleValidateQueryIT.java diff --git a/server/src/test/java/org/elasticsearch/versioning/ConcurrentDocumentOperationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/versioning/ConcurrentDocumentOperationIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/versioning/ConcurrentDocumentOperationIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/versioning/ConcurrentDocumentOperationIT.java diff --git a/server/src/test/java/org/elasticsearch/versioning/ConcurrentSeqNoVersioningIT.java b/server/src/internalClusterTest/java/org/elasticsearch/versioning/ConcurrentSeqNoVersioningIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/versioning/ConcurrentSeqNoVersioningIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/versioning/ConcurrentSeqNoVersioningIT.java diff --git a/server/src/test/java/org/elasticsearch/versioning/SimpleVersioningIT.java b/server/src/internalClusterTest/java/org/elasticsearch/versioning/SimpleVersioningIT.java similarity index 100% rename from server/src/test/java/org/elasticsearch/versioning/SimpleVersioningIT.java rename to server/src/internalClusterTest/java/org/elasticsearch/versioning/SimpleVersioningIT.java diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java index 3306ca95599e1..d3e96db0ec016 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexServiceTests.java @@ -38,7 +38,7 @@ import org.elasticsearch.cluster.routing.allocation.allocator.BalancedShardsAllocator; import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders; import org.elasticsearch.cluster.routing.allocation.decider.MaxRetryAllocationDecider; -import org.elasticsearch.cluster.shards.ClusterShardLimitIT; +import org.elasticsearch.cluster.shards.ShardCounts; import org.elasticsearch.common.Strings; import org.elasticsearch.common.ValidationException; import org.elasticsearch.common.collect.ImmutableOpenMap; @@ -101,7 +101,7 @@ import static org.elasticsearch.cluster.metadata.MetadataCreateIndexService.getIndexNumberOfRoutingShards; import static org.elasticsearch.cluster.metadata.MetadataCreateIndexService.parseV1Mappings; import static org.elasticsearch.cluster.metadata.MetadataCreateIndexService.resolveAndValidateAliases; -import static org.elasticsearch.cluster.shards.ClusterShardLimitIT.ShardCounts.forDataNodeCount; +import static org.elasticsearch.cluster.shards.ShardCounts.forDataNodeCount; import static org.elasticsearch.index.IndexSettings.INDEX_SOFT_DELETES_SETTING; import static org.elasticsearch.indices.IndicesServiceTests.createClusterForShardLimitTest; import static org.hamcrest.Matchers.containsString; @@ -536,7 +536,7 @@ public void testCalculateNumRoutingShards() { public void testShardLimit() { int nodesInCluster = randomIntBetween(2,90); - ClusterShardLimitIT.ShardCounts counts = forDataNodeCount(nodesInCluster); + ShardCounts counts = forDataNodeCount(nodesInCluster); Settings clusterSettings = Settings.builder() .put(Metadata.SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey(), counts.getShardsPerNode()) .build(); diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexStateServiceTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexStateServiceTests.java index 30ada14b43a7c..a1bcd0ce85ee0 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexStateServiceTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexStateServiceTests.java @@ -37,7 +37,7 @@ import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.routing.ShardRoutingState; import org.elasticsearch.cluster.routing.UnassignedInfo; -import org.elasticsearch.cluster.shards.ClusterShardLimitIT; +import org.elasticsearch.cluster.shards.ShardCounts; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.ValidationException; import org.elasticsearch.common.collect.ImmutableOpenMap; @@ -72,7 +72,7 @@ import static org.elasticsearch.cluster.metadata.MetadataIndexStateService.INDEX_CLOSED_BLOCK; import static org.elasticsearch.cluster.metadata.MetadataIndexStateService.INDEX_CLOSED_BLOCK_ID; import static org.elasticsearch.cluster.routing.TestShardRouting.newShardRouting; -import static org.elasticsearch.cluster.shards.ClusterShardLimitIT.ShardCounts.forDataNodeCount; +import static org.elasticsearch.cluster.shards.ShardCounts.forDataNodeCount; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; @@ -335,7 +335,7 @@ public void testAddIndexClosedBlocksReusesBlocks() { public void testValidateShardLimit() { int nodesInCluster = randomIntBetween(2, 90); - ClusterShardLimitIT.ShardCounts counts = forDataNodeCount(nodesInCluster); + ShardCounts counts = forDataNodeCount(nodesInCluster); Settings clusterSettings = Settings.builder() .put(Metadata.SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey(), counts.getShardsPerNode()) .build(); diff --git a/server/src/test/java/org/elasticsearch/cluster/shards/ShardCounts.java b/server/src/test/java/org/elasticsearch/cluster/shards/ShardCounts.java new file mode 100644 index 0000000000000..4df5ddd99c81f --- /dev/null +++ b/server/src/test/java/org/elasticsearch/cluster/shards/ShardCounts.java @@ -0,0 +1,90 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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.elasticsearch.cluster.shards; + +import org.elasticsearch.test.ESTestCase; +import org.junit.Assert; + +import static org.hamcrest.Matchers.lessThanOrEqualTo; + +public class ShardCounts { + private final int shardsPerNode; + + private final int firstIndexShards; + private final int firstIndexReplicas; + + private final int failingIndexShards; + private final int failingIndexReplicas; + + private ShardCounts(int shardsPerNode, + int firstIndexShards, + int firstIndexReplicas, + int failingIndexShards, + int failingIndexReplicas) { + this.shardsPerNode = shardsPerNode; + this.firstIndexShards = firstIndexShards; + this.firstIndexReplicas = firstIndexReplicas; + this.failingIndexShards = failingIndexShards; + this.failingIndexReplicas = failingIndexReplicas; + } + + public static ShardCounts forDataNodeCount(int dataNodes) { + Assert.assertThat("this method will not work reliably with this many data nodes due to the limit of shards in a single index," + + "use fewer data nodes or multiple indices", dataNodes, lessThanOrEqualTo(90)); + int mainIndexReplicas = ESTestCase.between(0, dataNodes - 1); + int mainIndexShards = ESTestCase.between(1, 10); + int totalShardsInIndex = (mainIndexReplicas + 1) * mainIndexShards; + // Sometimes add some headroom to the limit to check that it works even if you're not already right up against the limit + int shardsPerNode = (int) Math.ceil((double) totalShardsInIndex / dataNodes) + ESTestCase.between(0, 10); + int totalCap = shardsPerNode * dataNodes; + + int failingIndexShards; + int failingIndexReplicas; + if (dataNodes > 1 && ESTestCase.frequently()) { + failingIndexShards = Math.max(1, totalCap - totalShardsInIndex); + failingIndexReplicas = ESTestCase.between(1, dataNodes - 1); + } else { + failingIndexShards = totalCap - totalShardsInIndex + ESTestCase.between(1, 10); + failingIndexReplicas = 0; + } + + return new ShardCounts(shardsPerNode, mainIndexShards, mainIndexReplicas, failingIndexShards, failingIndexReplicas); + } + + public int getShardsPerNode() { + return shardsPerNode; + } + + public int getFirstIndexShards() { + return firstIndexShards; + } + + public int getFirstIndexReplicas() { + return firstIndexReplicas; + } + + public int getFailingIndexShards() { + return failingIndexShards; + } + + public int getFailingIndexReplicas() { + return failingIndexReplicas; + } +} diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java b/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java index baa5f576f307e..647d42705f3a3 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java @@ -33,7 +33,7 @@ import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNodes; import org.elasticsearch.cluster.service.ClusterService; -import org.elasticsearch.cluster.shards.ClusterShardLimitIT; +import org.elasticsearch.cluster.shards.ShardCounts; import org.elasticsearch.common.UUIDs; import org.elasticsearch.common.collect.ImmutableOpenMap; import org.elasticsearch.common.io.FileSystemUtils; @@ -86,7 +86,7 @@ import java.util.stream.Stream; import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE; -import static org.elasticsearch.cluster.shards.ClusterShardLimitIT.ShardCounts.forDataNodeCount; +import static org.elasticsearch.cluster.shards.ShardCounts.forDataNodeCount; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; import static org.hamcrest.Matchers.containsString; @@ -588,7 +588,7 @@ public void testConflictingEngineFactories() { public void testOverShardLimit() { int nodesInCluster = randomIntBetween(1,90); - ClusterShardLimitIT.ShardCounts counts = forDataNodeCount(nodesInCluster); + ShardCounts counts = forDataNodeCount(nodesInCluster); Settings clusterSettings = Settings.builder() .put(Metadata.SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey(), counts.getShardsPerNode()) @@ -611,7 +611,7 @@ public void testOverShardLimit() { public void testUnderShardLimit() { int nodesInCluster = randomIntBetween(2,90); // Calculate the counts for a cluster 1 node smaller than we have to ensure we have headroom - ClusterShardLimitIT.ShardCounts counts = forDataNodeCount(nodesInCluster - 1); + ShardCounts counts = forDataNodeCount(nodesInCluster - 1); Settings clusterSettings = Settings.builder() .put(Metadata.SETTING_CLUSTER_MAX_SHARDS_PER_NODE.getKey(), counts.getShardsPerNode()) From 407062ae7cfbf7e6bb5e3095ca20a909d659b044 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 29 Apr 2020 11:39:44 -0700 Subject: [PATCH 02/12] checkstyle --- .../elasticsearch/gradle/util/GradleUtils.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java index 123acc1f5530b..47c6039d872f1 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java @@ -27,7 +27,6 @@ import org.gradle.api.Task; import org.gradle.api.UnknownTaskException; import org.gradle.api.artifacts.Configuration; -import org.gradle.api.file.FileCollection; import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPluginConvention; import org.gradle.api.provider.Provider; @@ -45,7 +44,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.Consumer; import java.util.function.Function; public abstract class GradleUtils { @@ -159,10 +157,18 @@ public static void addTestSourceSet(Project project, String sourceSetName) { extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getRuntimeOnlyConfigurationName); // tie this new test source set to the main and test source sets - Configuration extraTestCompileConfig = project.getConfigurations().getByName(extraTestSourceSet.getCompileClasspathConfigurationName()); - Configuration extraTestRuntimeConfig = project.getConfigurations().getByName(extraTestSourceSet.getRuntimeClasspathConfigurationName()); - extraTestSourceSet.setCompileClasspath(project.getObjects().fileCollection().from(mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestCompileConfig)); - extraTestSourceSet.setRuntimeClasspath(project.getObjects().fileCollection().from(extraTestSourceSet.getOutput(), mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestRuntimeConfig)); + Configuration extraTestCompileConfig = project.getConfigurations() + .getByName(extraTestSourceSet.getCompileClasspathConfigurationName()); + Configuration extraTestRuntimeConfig = project.getConfigurations() + .getByName(extraTestSourceSet.getRuntimeClasspathConfigurationName()); + extraTestSourceSet.setCompileClasspath( + project.getObjects().fileCollection().from(mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestCompileConfig) + ); + extraTestSourceSet.setRuntimeClasspath( + project.getObjects() + .fileCollection() + .from(extraTestSourceSet.getOutput(), mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestRuntimeConfig) + ); // setup IDEs String runtimeClasspathName = extraTestSourceSet.getRuntimeClasspathConfigurationName(); From 335a16e2f8462e9d75e7b2441d221727f66ad269 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 29 Apr 2020 12:23:57 -0700 Subject: [PATCH 03/12] add task to verification group --- .../src/main/java/org/elasticsearch/gradle/util/GradleUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java index 47c6039d872f1..33206625101a3 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java @@ -145,6 +145,7 @@ public static void addTestSourceSet(Project project, String sourceSetName) { SourceSet extraTestSourceSet = sourceSets.create(sourceSetName); TaskProvider testTask = project.getTasks().register(sourceSetName, Test.class); testTask.configure(task -> { + task.setGroup(JavaBasePlugin.VERIFICATION_GROUP); task.setTestClassesDirs(extraTestSourceSet.getOutput().getClassesDirs()); task.setClasspath(extraTestSourceSet.getRuntimeClasspath()); }); From afdeb9b17cc62c011527388991b6b7dd2ee3c7d1 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 29 Apr 2020 13:08:45 -0700 Subject: [PATCH 04/12] address feedback --- .../test/InternalClusterTestPlugin.java | 10 ++- .../gradle/util/GradleUtils.java | 73 +++++++++++-------- 2 files changed, 49 insertions(+), 34 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java index 73911981ab03e..2dd1b822d48e5 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java @@ -22,13 +22,19 @@ import org.elasticsearch.gradle.util.GradleUtils; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.tasks.SourceSet; public class InternalClusterTestPlugin implements Plugin { + + public static final String SOURCE_SET_NAME = "internalClusterTest"; @Override public void apply(Project project) { - GradleUtils.addTestSourceSet(project, "internalClusterTest"); + GradleUtils.addTestSourceSet(project, SOURCE_SET_NAME); + + // TODO: fix usages of IT tests depending on Tests methods so this extension is not necessary + GradleUtils.extendSourceSet(project, SourceSet.TEST_SOURCE_SET_NAME, SOURCE_SET_NAME); // add alias task that is easier to type - project.getTasks().register("icTest").configure(alias -> alias.dependsOn("internalClusterTest")); + project.getTasks().register("icTest").configure(alias -> alias.dependsOn(SOURCE_SET_NAME)); } } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java index 33206625101a3..e99cffb88910c 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java @@ -41,6 +41,7 @@ import org.gradle.plugins.ide.eclipse.model.EclipseModel; import org.gradle.plugins.ide.idea.model.IdeaModel; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; @@ -136,64 +137,72 @@ public static > Provider getBuildService(BuildServi * * IDEs are also configured if setup, and the test task is added to check. The new test source * set extends from the normal test source set to allow sharing of utilities. + * + * @return A task provider for the newly created test task */ - public static void addTestSourceSet(Project project, String sourceSetName) { + public static TaskProvider addTestSourceSet(Project project, String sourceSetName) { project.getPluginManager().apply(ElasticsearchJavaPlugin.class); // create our test source set and task SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class); - SourceSet extraTestSourceSet = sourceSets.create(sourceSetName); + SourceSet testSourceSet = sourceSets.create(sourceSetName); TaskProvider testTask = project.getTasks().register(sourceSetName, Test.class); testTask.configure(task -> { task.setGroup(JavaBasePlugin.VERIFICATION_GROUP); - task.setTestClassesDirs(extraTestSourceSet.getOutput().getClassesDirs()); - task.setClasspath(extraTestSourceSet.getRuntimeClasspath()); + task.setTestClassesDirs(testSourceSet.getOutput().getClassesDirs()); + task.setClasspath(testSourceSet.getRuntimeClasspath()); }); - SourceSet mainSourceSet = sourceSets.getByName("main"); - SourceSet testSourceSet = sourceSets.getByName("test"); - extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getCompileConfigurationName); - extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getImplementationConfigurationName); - extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getRuntimeConfigurationName); - extendConfiguration(project, testSourceSet, extraTestSourceSet, SourceSet::getRuntimeOnlyConfigurationName); + Configuration testCompileConfig = project.getConfigurations().getByName(testSourceSet.getCompileClasspathConfigurationName()); + Configuration testRuntimeConfig = project.getConfigurations().getByName(testSourceSet.getRuntimeClasspathConfigurationName()); + testSourceSet.setCompileClasspath(testCompileConfig); + testSourceSet.setRuntimeClasspath(testSourceSet.getOutput().plus(testRuntimeConfig)); - // tie this new test source set to the main and test source sets - Configuration extraTestCompileConfig = project.getConfigurations() - .getByName(extraTestSourceSet.getCompileClasspathConfigurationName()); - Configuration extraTestRuntimeConfig = project.getConfigurations() - .getByName(extraTestSourceSet.getRuntimeClasspathConfigurationName()); - extraTestSourceSet.setCompileClasspath( - project.getObjects().fileCollection().from(mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestCompileConfig) - ); - extraTestSourceSet.setRuntimeClasspath( - project.getObjects() - .fileCollection() - .from(extraTestSourceSet.getOutput(), mainSourceSet.getOutput(), testSourceSet.getOutput(), extraTestRuntimeConfig) - ); + extendSourceSet(project, SourceSet.MAIN_SOURCE_SET_NAME, sourceSetName); // setup IDEs - String runtimeClasspathName = extraTestSourceSet.getRuntimeClasspathConfigurationName(); + String runtimeClasspathName = testSourceSet.getRuntimeClasspathConfigurationName(); Configuration runtimeClasspathConfiguration = project.getConfigurations().getByName(runtimeClasspathName); project.getPluginManager().withPlugin("idea", p -> { IdeaModel idea = project.getExtensions().getByType(IdeaModel.class); - idea.getModule().setTestSourceDirs(extraTestSourceSet.getJava().getSrcDirs()); + idea.getModule().setTestSourceDirs(testSourceSet.getJava().getSrcDirs()); idea.getModule().getScopes().put("TEST", Map.of("plus", List.of(runtimeClasspathConfiguration))); }); project.getPluginManager().withPlugin("eclipse", p -> { EclipseModel eclipse = project.getExtensions().getByType(EclipseModel.class); - eclipse.getClasspath().setSourceSets(List.of(extraTestSourceSet)); + eclipse.getClasspath().setSourceSets(List.of(testSourceSet)); eclipse.getClasspath().getPlusConfigurations().add(runtimeClasspathConfiguration); }); // add to the check task project.getTasks().named(JavaBasePlugin.CHECK_TASK_NAME).configure(check -> check.dependsOn(testTask)); + + return testTask; } - private static void extendConfiguration(Project project, SourceSet parent, SourceSet child, Function configName) { - String parentConfigName = configName.apply(parent); - String childConfigName = configName.apply(child); - Configuration parentConfig = project.getConfigurations().getByName(parentConfigName); - Configuration childConfig = project.getConfigurations().getByName(childConfigName); - childConfig.extendsFrom(parentConfig); + /** + * Extend the configurations of one source set from another. + */ + public static void extendSourceSet(Project project, String parentSourceSetName, String childSourceSetName) { + final List> configNameFunctions = Arrays.asList( + SourceSet::getCompileConfigurationName, + SourceSet::getImplementationConfigurationName, + SourceSet::getRuntimeConfigurationName, + SourceSet::getRuntimeOnlyConfigurationName); + SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class); + SourceSet parent = sourceSets.getByName(parentSourceSetName); + SourceSet child = sourceSets.getByName(childSourceSetName); + + for (Function configNameFunction : configNameFunctions) { + String parentConfigName = configNameFunction.apply(parent); + String childConfigName = configNameFunction.apply(child); + Configuration parentConfig = project.getConfigurations().getByName(parentConfigName); + Configuration childConfig = project.getConfigurations().getByName(childConfigName); + childConfig.extendsFrom(parentConfig); + } + + // tie this new test source set to the main and test source sets + child.setCompileClasspath(child.getCompileClasspath().plus(parent.getOutput())); + child.setRuntimeClasspath(child.getCompileClasspath().plus(parent.getOutput())); } } From 0e2fce7d419ee57a0d9d552bda39455618f6515f Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 29 Apr 2020 16:43:37 -0700 Subject: [PATCH 05/12] spotless --- .../elasticsearch/gradle/test/InternalClusterTestPlugin.java | 1 + .../main/java/org/elasticsearch/gradle/util/GradleUtils.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java index 2dd1b822d48e5..98b3eaa933fd6 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/InternalClusterTestPlugin.java @@ -27,6 +27,7 @@ public class InternalClusterTestPlugin implements Plugin { public static final String SOURCE_SET_NAME = "internalClusterTest"; + @Override public void apply(Project project) { GradleUtils.addTestSourceSet(project, SOURCE_SET_NAME); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java index e99cffb88910c..1e49c7addaff2 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java @@ -188,7 +188,8 @@ public static void extendSourceSet(Project project, String parentSourceSetName, SourceSet::getCompileConfigurationName, SourceSet::getImplementationConfigurationName, SourceSet::getRuntimeConfigurationName, - SourceSet::getRuntimeOnlyConfigurationName); + SourceSet::getRuntimeOnlyConfigurationName + ); SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class); SourceSet parent = sourceSets.getByName(parentSourceSetName); SourceSet child = sourceSets.getByName(childSourceSetName); From 7da06174f83991a543a039827d12a72e13e00ab7 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 29 Apr 2020 17:44:07 -0700 Subject: [PATCH 06/12] delay forbidden apis resolution of classpaths --- .../elasticsearch/gradle/precommit/PrecommitTasks.groovy | 3 +-- .../java/org/elasticsearch/gradle/util/GradleUtils.java | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/PrecommitTasks.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/PrecommitTasks.groovy index 7705e6c125fd9..d1e544fbd5c21 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/PrecommitTasks.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/PrecommitTasks.groovy @@ -165,8 +165,7 @@ class PrecommitTasks { } SourceSet sourceSet = project.sourceSets.getByName(sourceSetName) - FileCollection runtime = sourceSet.runtimeClasspath - classpath = runtime.plus(sourceSet.compileClasspath) + classpath = project.files { sourceSet.runtimeClasspath.plus(sourceSet.compileClasspath) } targetCompatibility = BuildParams.runtimeJavaVersion.majorVersion if (BuildParams.runtimeJavaVersion > JavaVersion.VERSION_13) { diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java index 1e49c7addaff2..21dfe3120d18e 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/util/GradleUtils.java @@ -156,7 +156,7 @@ public static TaskProvider addTestSourceSet(Project project, String sourceSet Configuration testCompileConfig = project.getConfigurations().getByName(testSourceSet.getCompileClasspathConfigurationName()); Configuration testRuntimeConfig = project.getConfigurations().getByName(testSourceSet.getRuntimeClasspathConfigurationName()); testSourceSet.setCompileClasspath(testCompileConfig); - testSourceSet.setRuntimeClasspath(testSourceSet.getOutput().plus(testRuntimeConfig)); + testSourceSet.setRuntimeClasspath(project.getObjects().fileCollection().from(testSourceSet.getOutput(), testRuntimeConfig)); extendSourceSet(project, SourceSet.MAIN_SOURCE_SET_NAME, sourceSetName); @@ -203,7 +203,7 @@ public static void extendSourceSet(Project project, String parentSourceSetName, } // tie this new test source set to the main and test source sets - child.setCompileClasspath(child.getCompileClasspath().plus(parent.getOutput())); - child.setRuntimeClasspath(child.getCompileClasspath().plus(parent.getOutput())); + child.setCompileClasspath(project.getObjects().fileCollection().from(child.getCompileClasspath(), parent.getOutput())); + child.setRuntimeClasspath(project.getObjects().fileCollection().from(child.getRuntimeClasspath(), parent.getOutput())); } } From 1ec2e3eef4a2a9df239755df52f03eef75d57387 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 30 Apr 2020 15:17:03 -0700 Subject: [PATCH 07/12] only use test task for testing conventions --- .../gradle/precommit/TestingConventionsTasks.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java index 3657808b91979..3275e125223eb 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java @@ -20,6 +20,7 @@ import groovy.lang.Closure; import org.elasticsearch.gradle.util.GradleUtils; +import org.elasticsearch.gradle.util.Util; import org.gradle.api.DefaultTask; import org.gradle.api.NamedDomainObjectContainer; import org.gradle.api.Task; @@ -49,6 +50,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -74,6 +76,7 @@ public Map> getClassFilesPerEnabledTask() { return getProject().getTasks() .withType(Test.class) .stream() + .filter(t -> t.getName().equals("test")) .filter(Task::getEnabled) .collect(Collectors.toMap(Task::getPath, task -> task.getCandidateClassFiles().getFiles())); } @@ -81,8 +84,7 @@ public Map> getClassFilesPerEnabledTask() { @Input public Map getTestClassNames() { if (testClassNames == null) { - testClassNames = GradleUtils.getJavaSourceSets(getProject()) - .getByName("test") + testClassNames = Util.getJavaTestSourceSet(getProject()).get() .getOutput() .getClassesDirs() .getFiles() @@ -319,6 +321,7 @@ private boolean seemsLikeATest(Class clazz) { } private boolean implementsNamingConvention(Class clazz) { + Objects.requireNonNull(clazz); return implementsNamingConvention(clazz.getName()); } @@ -349,13 +352,7 @@ private FileCollection getTestsClassPath() { // the classes these don't influence the checks done by this task. // A side effect is that we could mark as up-to-date with missing dependencies, but these will be found when // running the tests. - return getProject().files( - getProject().getConfigurations().getByName("testRuntime").resolve(), - GradleUtils.getJavaSourceSets(getProject()) - .stream() - .flatMap(sourceSet -> sourceSet.getOutput().getClassesDirs().getFiles().stream()) - .collect(Collectors.toList()) - ); + return Util.getJavaTestSourceSet(getProject()).get().getRuntimeClasspath(); } private Map walkPathAndLoadClasses(File testRoot) { From f47d8def567865a294cc717d067ba835c53ae634 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 30 Apr 2020 15:54:52 -0700 Subject: [PATCH 08/12] spotless --- .../gradle/precommit/TestingConventionsTasks.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java index 3275e125223eb..67eb47b39d94b 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java @@ -84,7 +84,8 @@ public Map> getClassFilesPerEnabledTask() { @Input public Map getTestClassNames() { if (testClassNames == null) { - testClassNames = Util.getJavaTestSourceSet(getProject()).get() + testClassNames = Util.getJavaTestSourceSet(getProject()) + .get() .getOutput() .getClassesDirs() .getFiles() From 76a287f06108e86cd8a0984a87a15cd1ad7f5968 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 30 Apr 2020 16:56:02 -0700 Subject: [PATCH 09/12] update docs and include integTest in testing conventions --- TESTING.asciidoc | 4 ++-- .../gradle/precommit/TestingConventionsTasks.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TESTING.asciidoc b/TESTING.asciidoc index fe04cc49637ba..e068983dc697d 100644 --- a/TESTING.asciidoc +++ b/TESTING.asciidoc @@ -253,10 +253,10 @@ To run all verification tasks, including static checks, unit tests, and integrat --------------------------------------------------------------------------- Note that this will also run the unit tests and precommit tasks first. If you want to just -run the integration tests (because you are debugging them): +run the in memory cluster integration tests (because you are debugging them): --------------------------------------------------------------------------- -./gradlew integTest +./gradlew internalClusterTest --------------------------------------------------------------------------- If you want to just run the precommit checks: diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java index 67eb47b39d94b..6a48b69133e6a 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java @@ -76,7 +76,7 @@ public Map> getClassFilesPerEnabledTask() { return getProject().getTasks() .withType(Test.class) .stream() - .filter(t -> t.getName().equals("test")) + .filter(t -> t.getName().equals("test") || t.getName().equals("integTest")) .filter(Task::getEnabled) .collect(Collectors.toMap(Task::getPath, task -> task.getCandidateClassFiles().getFiles())); } From 0441c28c892dc0f18fd0ada1fdf76728f4851631 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 30 Apr 2020 17:05:04 -0700 Subject: [PATCH 10/12] default to all test tasks for testing conventions --- .../gradle/precommit/TestingConventionsTasks.java | 10 +++++++++- server/build.gradle | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java index 6a48b69133e6a..3609907afe0e2 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/precommit/TestingConventionsTasks.java @@ -47,8 +47,10 @@ import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.nio.file.attribute.BasicFileAttributes; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -64,6 +66,8 @@ public class TestingConventionsTasks extends DefaultTask { private final NamedDomainObjectContainer naming; + private List tasks = null; + public TestingConventionsTasks() { setDescription("Tests various testing conventions"); // Run only after everything is compiled @@ -76,7 +80,7 @@ public Map> getClassFilesPerEnabledTask() { return getProject().getTasks() .withType(Test.class) .stream() - .filter(t -> t.getName().equals("test") || t.getName().equals("integTest")) + .filter(t -> tasks == null || tasks.contains(t.getName())) .filter(Task::getEnabled) .collect(Collectors.toMap(Task::getPath, task -> task.getCandidateClassFiles().getFiles())); } @@ -111,6 +115,10 @@ public void naming(Closure action) { naming.configure(action); } + public void setTasks(String... tasks) { + this.tasks = Arrays.asList(tasks); + } + @Input public Set getMainClassNamedLikeTests() { SourceSetContainer javaSourceSets = GradleUtils.getJavaSourceSets(getProject()); diff --git a/server/build.gradle b/server/build.gradle index 1979b99aecf46..f8ef492599a61 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -180,6 +180,7 @@ testingConventions { baseClass "org.elasticsearch.test.ESSingleNodeTestCase" } } + tasks = ['test'] } task generateModulesList { From e7badf3769197fcece7f129ce596a3890121b20c Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Mon, 4 May 2020 16:04:41 -0700 Subject: [PATCH 11/12] imports --- .../org/elasticsearch/gradle/BuildPlugin.groovy | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index 324d65be0d940..31c2d0f688bae 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -27,7 +27,6 @@ import nebula.plugin.info.InfoBrokerPlugin import org.apache.commons.io.IOUtils import org.elasticsearch.gradle.info.BuildParams import org.elasticsearch.gradle.info.GlobalBuildInfoPlugin -import org.elasticsearch.gradle.info.JavaHome import org.elasticsearch.gradle.plugin.PluginBuildPlugin import org.elasticsearch.gradle.precommit.DependencyLicensesTask import org.elasticsearch.gradle.precommit.PrecommitTasks @@ -35,15 +34,7 @@ import org.elasticsearch.gradle.test.ErrorReportingTestListener import org.elasticsearch.gradle.testclusters.ElasticsearchCluster import org.elasticsearch.gradle.testclusters.TestClustersPlugin import org.elasticsearch.gradle.util.GradleUtils -import org.gradle.api.Action -import org.gradle.api.GradleException -import org.gradle.api.InvalidUserDataException -import org.gradle.api.JavaVersion -import org.gradle.api.NamedDomainObjectContainer -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.XmlProvider +import org.gradle.api.* import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.ModuleDependency @@ -55,13 +46,11 @@ import org.gradle.api.artifacts.repositories.IvyPatternRepositoryLayout import org.gradle.api.artifacts.repositories.MavenArtifactRepository import org.gradle.api.credentials.HttpHeaderCredentials import org.gradle.api.execution.TaskActionListener -import org.gradle.api.execution.TaskExecutionGraph import org.gradle.api.file.CopySpec import org.gradle.api.plugins.BasePlugin import org.gradle.api.plugins.BasePluginConvention import org.gradle.api.plugins.ExtraPropertiesExtension import org.gradle.api.plugins.JavaPlugin -import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.publish.maven.plugins.MavenPublishPlugin @@ -70,16 +59,13 @@ import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.bundling.Jar -import org.gradle.api.tasks.compile.GroovyCompile import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.api.tasks.testing.Test -import org.gradle.api.tasks.testing.logging.TestLoggingContainer import org.gradle.authentication.http.HttpHeaderAuthentication import org.gradle.external.javadoc.CoreJavadocOptions import org.gradle.internal.jvm.Jvm import org.gradle.language.base.plugins.LifecycleBasePlugin -import org.gradle.process.CommandLineArgumentProvider import org.gradle.util.GradleVersion import java.nio.charset.StandardCharsets From da34a9425cdd72bebb33f3d803a9b91c61dba864 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 5 May 2020 10:18:27 -0700 Subject: [PATCH 12/12] imports again --- .../groovy/org/elasticsearch/gradle/BuildPlugin.groovy | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index 31c2d0f688bae..6946540dbe9d6 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -34,7 +34,15 @@ import org.elasticsearch.gradle.test.ErrorReportingTestListener import org.elasticsearch.gradle.testclusters.ElasticsearchCluster import org.elasticsearch.gradle.testclusters.TestClustersPlugin import org.elasticsearch.gradle.util.GradleUtils -import org.gradle.api.* +import org.gradle.api.Action +import org.gradle.api.GradleException +import org.gradle.api.InvalidUserDataException +import org.gradle.api.JavaVersion +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.Task +import org.gradle.api.XmlProvider import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.ModuleDependency