From 2bc739875465d2e3048e51a81a5d973537c6c460 Mon Sep 17 00:00:00 2001 From: Artem Prigoda Date: Tue, 3 Jan 2023 19:28:27 +0100 Subject: [PATCH] Use `Strings.format` instead of `String.format(Locale.ROOT, ...)` in tests (#92106) Use local-independent `Strings.format` method instead of `String.format(Locale.ROOT, ...)`. Inline `ESTestCase.forbidden` calls with `Strings.format` for the consistency sake. Add `Strings.format` alias in `common.Strings` --- .../plugins/cli/InstallPluginActionTests.java | 3 +- .../server/cli/JvmOptionsParserTests.java | 9 +- .../WindowsServiceInstallCommandTests.java | 5 +- .../smoketest/DocsClientYamlTestSuiteIT.java | 8 +- .../EmbeddedImplClassLoaderTests.java | 3 +- .../AutoDateHistogramAggregatorTests.java | 3 +- .../DataStreamIndexSettingsProviderTests.java | 3 +- .../MetadataCreateDataStreamServiceTests.java | 3 +- .../ingest/common/IngestRestartIT.java | 7 +- .../ingest/common/DateProcessorTests.java | 3 +- .../geoip/DatabaseNodeServiceTests.java | 3 +- .../kibana/KibanaSystemIndexIT.java | 19 ++-- .../script/mustache/MustacheTests.java | 4 +- .../painless/GetByPathAugmentationTests.java | 11 +- .../elasticsearch/painless/StringTests.java | 6 +- .../extras/RankFeatureQueryBuilderTests.java | 2 +- .../join/query/ChildQuerySearchIT.java | 5 +- .../PercolateQueryBuilderTests.java | 10 +- .../DiscountedCumulativeGainTests.java | 4 +- .../remote/RemoteRequestBuildersTests.java | 3 +- ...CloudStorageBlobContainerRetriesTests.java | 6 +- ...GoogleCloudStorageClientSettingsTests.java | 3 +- ...IdentityTokenCredentialsProviderTests.java | 3 +- .../url/AbstractURLBlobStoreTests.java | 3 +- .../http/RetryingHttpInputStreamTests.java | 4 +- .../http/netty4/Netty4PipeliningIT.java | 3 +- ...Netty4TransportMultiPortIntegrationIT.java | 5 +- .../hdfs/HaHdfsFailoverTestSuiteIT.java | 3 +- .../upgrades/FullClusterRestartIT.java | 6 +- .../upgrades/QueryBuilderBWCIT.java | 2 +- .../common/logging/ESJsonLayoutTests.java | 7 +- .../elasticsearch/backwards/RareTermsIT.java | 8 +- .../SearchWithMinCompatibleSearchNodeIT.java | 3 +- .../MultiVersionRepositoryAccessIT.java | 2 +- .../elasticsearch/upgrades/IndexingIT.java | 4 +- .../UpgradeWithOldIndexSettingsIT.java | 6 +- .../ClusterAllocationExplainIT.java | 4 +- .../admin/indices/rollover/RolloverIT.java | 6 +- .../SearchProgressActionListenerIT.java | 3 +- .../support/WaitActiveShardCountIT.java | 3 +- .../discovery/MasterDisruptionIT.java | 5 +- .../org/elasticsearch/get/GetActionIT.java | 2 +- .../indices/IndicesLifecycleListenerIT.java | 3 +- .../mapping/ConcurrentDynamicTemplateIT.java | 3 +- .../repositories/IndexSnapshotsServiceIT.java | 17 +-- .../elasticsearch/script/StoredScriptsIT.java | 11 +- .../aggregations/bucket/DoubleTermsIT.java | 3 +- .../aggregations/bucket/LongTermsIT.java | 3 +- .../SignificantTermsSignificanceScoreIT.java | 5 +- .../metrics/ScriptedMetricIT.java | 29 +++-- .../functionscore/DecayFunctionScoreIT.java | 13 ++- .../search/sort/FieldSortIT.java | 5 +- .../suggest/CompletionSuggestSearchIT.java | 3 +- .../CorruptedBlobStoreRepositoryIT.java | 4 +- .../versioning/SimpleVersioningIT.java | 4 +- .../org/elasticsearch/common/Strings.java | 7 ++ .../ElasticsearchExceptionTests.java | 5 +- .../ClusterAllocationExplainActionTests.java | 64 +++++------ .../ClusterAllocationExplanationTests.java | 4 +- .../reroute/ClusterRerouteResponseTests.java | 4 +- .../snapshots/status/SnapshotStatusTests.java | 3 +- .../cluster/stats/ClusterStatsNodesTests.java | 5 +- .../cluster/stats/IndexFeatureStatsTests.java | 2 +- .../cluster/stats/MappingStatsTests.java | 15 ++- .../CreateIndexRequestBuilderTests.java | 7 +- .../indices/get/GetIndexRequestTests.java | 3 +- .../MetadataRolloverServiceTests.java | 2 +- ...vedComposableIndexTemplateActionTests.java | 8 +- .../action/bulk/BulkProcessorTests.java | 5 +- .../fieldcaps/FieldCapabilitiesTests.java | 10 +- .../action/index/IndexRequestTests.java | 33 +++--- .../action/main/MainResponseTests.java | 2 +- .../search/MultiSearchRequestTests.java | 2 +- .../replication/ReplicationResponseTests.java | 2 +- .../TransportReplicationActionTests.java | 4 +- .../TransportWriteActionTests.java | 4 +- .../termvectors/GetTermVectorsTests.java | 3 +- .../cluster/ClusterStateTests.java | 8 +- .../metadata/AutoExpandReplicasTests.java | 3 +- .../metadata/ComponentTemplateTests.java | 8 +- .../cluster/metadata/DataStreamTests.java | 4 +- .../metadata/IndexTemplateMetadataTests.java | 7 +- .../metadata/TemplateUpgradeServiceTests.java | 3 +- .../metadata/ToAndFromJsonMetadataTests.java | 12 +- .../AllocateUnassignedDecisionTests.java | 7 +- .../allocation/FailedNodeRoutingTests.java | 3 +- .../allocation/SameShardRoutingTests.java | 3 +- .../common/io/stream/AbstractStreamTests.java | 5 +- .../common/time/JavaDateMathParserTests.java | 3 +- .../gateway/PriorityComparatorTests.java | 3 +- .../index/mapper/DateFieldMapperTests.java | 3 +- .../query/AbstractTermQueryTestCase.java | 3 +- .../CombinedFieldsQueryBuilderTests.java | 3 +- .../query/ConstantScoreQueryBuilderTests.java | 3 +- .../index/query/DisMaxQueryBuilderTests.java | 5 +- .../DistanceFeatureQueryBuilderTests.java | 17 +-- .../FieldMaskingSpanQueryBuilderTests.java | 5 +- .../index/query/FuzzyQueryBuilderTests.java | 17 +-- .../query/GeoPolygonQueryBuilderTests.java | 13 ++- .../query/IntervalQueryBuilderTests.java | 66 +++++------ .../MatchPhrasePrefixQueryBuilderTests.java | 3 +- .../query/MatchPhraseQueryBuilderTests.java | 3 +- .../index/query/MatchQueryBuilderTests.java | 2 +- .../query/MultiMatchQueryBuilderTests.java | 3 +- .../index/query/PrefixQueryBuilderTests.java | 3 +- .../query/QueryStringQueryBuilderTests.java | 4 +- .../index/query/RangeQueryBuilderTests.java | 17 +-- .../index/query/RegexpQueryBuilderTests.java | 3 +- .../query/WildcardQueryBuilderTests.java | 3 +- .../index/shard/RefreshListenersTests.java | 6 +- .../index/shard/ShardGetServiceTests.java | 3 +- .../index/translog/TranslogTests.java | 2 +- ...ClusterStateServiceRandomUpdatesTests.java | 2 +- .../recovery/RecoverySourceHandlerTests.java | 3 +- .../ingest/IngestServiceTests.java | 8 +- .../ingest/PipelineConfigurationTests.java | 3 +- .../monitor/jvm/HotThreadsTests.java | 7 +- .../monitor/os/OsProbeTests.java | 4 +- .../plugins/PluginsServiceTests.java | 2 +- .../elasticsearch/rest/RestUtilsTests.java | 17 +-- .../cat/RestCatRecoveryActionTests.java | 3 +- .../script/ScriptStatsTests.java | 7 +- .../aggregations/TopBucketBuilderTests.java | 3 +- .../geogrid/GeoHashGridParserTests.java | 9 +- .../geogrid/GeoTileGridParserTests.java | 7 +- .../bucket/nested/NestedAggregatorTests.java | 5 +- .../SignificantTermsAggregatorTests.java | 4 +- .../bucket/terms/TermsAggregatorTests.java | 11 +- .../metrics/InternalStatsTests.java | 25 ++--- .../builder/SearchSourceBuilderTests.java | 4 +- .../search/sort/ScoreSortBuilderTests.java | 3 +- .../search/sort/SortBuilderTests.java | 2 +- .../term/TermSuggestionBuilderTests.java | 3 +- .../ProxyConnectionStrategyTests.java | 3 +- .../SniffConnectionStrategyTests.java | 2 +- .../aggregations/AggregatorTestCase.java | 5 +- .../search/geo/BaseShapeQueryTestCase.java | 2 +- .../test/AbstractBuilderTestCase.java | 2 +- .../org/elasticsearch/test/ESTestCase.java | 7 +- .../section/ClientYamlTestSuiteTests.java | 18 +-- .../rest/yaml/section/DoSectionTests.java | 3 +- .../rest/yaml/section/SkipSectionTests.java | 3 +- .../search/AsyncSearchResponseTests.java | 4 +- .../search/AsyncStatusResponseTests.java | 39 ++++--- .../elasticsearch/xpack/ccr/AutoFollowIT.java | 8 +- .../xpack/ccr/FollowIndexSecurityIT.java | 5 +- .../xpack/ccr/CcrRepositoryIT.java | 7 +- .../xpack/ccr/CcrRetentionLeaseIT.java | 4 +- .../xpack/ccr/FollowerFailOverIT.java | 3 +- .../xpack/ccr/IndexFollowingIT.java | 18 +-- .../xpack/ccr/RestartIndexFollowingIT.java | 3 +- .../AutoFollowStatsMonitoringDocTests.java | 2 +- .../ccr/FollowStatsMonitoringDocTests.java | 2 +- .../license/LicenseOperationModeTests.java | 3 +- .../elasticsearch/license/LicenseTests.java | 2 +- .../DataTierAllocationDeciderTests.java | 2 +- .../xpack/core/ilm/ForceMergeStepTests.java | 3 +- .../RegressionInferenceResultsTests.java | 2 +- .../inference/InferenceDefinitionTests.java | 3 +- .../CreateApiKeyRequestBuilderTests.java | 8 +- .../ProfileHasPrivilegesResponseTests.java | 7 +- .../token/InvalidateTokenResponseTests.java | 2 +- .../action/user/GetUsersResponseTests.java | 2 +- .../support/mapper/TemplateRoleNameTests.java | 2 +- .../security/authz/RoleDescriptorTests.java | 6 +- .../security/support/AutomatonsTests.java | 9 +- .../security/support/StringMatcherTests.java | 5 +- .../core/template/TemplateUtilsTests.java | 13 +-- .../termsenum/TermsEnumResponseTests.java | 2 +- .../PreviewTransformActionRequestTests.java | 3 +- .../transforms/TransformConfigTests.java | 14 +-- .../pivot/AggregationConfigTests.java | 3 +- .../xpack/enrich/EnrichSecurityIT.java | 3 +- .../xpack/enrich/EnrichMultiNodeIT.java | 3 +- .../xpack/enrich/BasicEnrichTests.java | 11 +- .../xpack/enrich/EnrichPolicyRunnerTests.java | 7 +- .../enrich/EnrichProcessorFactoryTests.java | 3 +- .../enrich/EnrichCoordinatorDocTests.java | 2 +- .../enrich/ExecutingPolicyDocTests.java | 105 ++++++++---------- .../idp/IdentityProviderAuthenticationIT.java | 8 +- .../xpack/idp/IdpRestTestCase.java | 4 +- .../idp/action/SamlIdentityProviderTests.java | 10 +- .../test/IdentityProviderIntegTestCase.java | 5 +- ...rtSamlInitiateSingleSignOnActionTests.java | 3 +- .../xpack/ilm/CCRIndexLifecycleIT.java | 4 +- .../xpack/MigrateToDataTiersIT.java | 4 +- .../xpack/ilm/ChangePolicyForIndexIT.java | 2 +- .../ilm/TimeSeriesLifecycleActionsIT.java | 87 +++++++-------- .../xpack/ilm/actions/DownsampleActionIT.java | 4 +- .../xpack/ilm/actions/RolloverActionIT.java | 7 +- .../xpack/ilm/actions/ShrinkActionIT.java | 2 +- .../xpack/slm/SnapshotLifecycleRestIT.java | 2 +- .../xpack/security/PermissionsIT.java | 4 +- ...MigrateToDataTiersRoutingServiceTests.java | 7 +- .../xpack/ilm/IndexLifecycleRunnerTests.java | 2 +- .../xpack/slm/SnapshotLifecycleTaskTests.java | 3 +- .../ml/integration/MlBasicMultiNodeIT.java | 3 +- .../ml/integration/CategorizationIT.java | 4 +- ...lassificationEvaluationWithSecurityIT.java | 7 +- .../ml/integration/ClassificationIT.java | 3 +- .../DataFrameAnalysisCustomFeatureIT.java | 3 +- .../ml/integration/DatafeedJobsRestIT.java | 61 +++++----- .../ExplainDataFrameAnalyticsRestIT.java | 3 +- .../xpack/ml/integration/ForecastIT.java | 4 +- .../xpack/ml/integration/InferenceIT.java | 13 ++- .../ml/integration/InferenceIngestIT.java | 11 +- .../xpack/ml/integration/MlJobIT.java | 64 +++++------ .../xpack/ml/integration/PyTorchModelIT.java | 17 +-- .../integration/PyTorchModelRestTestCase.java | 22 ++-- .../xpack/ml/integration/RegressionIT.java | 2 +- .../ml/integration/SemanticSearchIT.java | 6 +- .../xpack/ml/integration/TrainedModelIT.java | 3 +- .../xpack/ml/integration/InferenceIT.java | 3 +- .../ml/integration/InferenceProcessorIT.java | 5 +- .../ml/transforms/PainlessDomainSplitIT.java | 6 +- .../license/MachineLearningLicensingIT.java | 3 +- .../TestFeatureLicenseTrackingIT.java | 3 +- .../TrainedModelDefinitionDocTests.java | 3 +- .../writer/XContentRecordReaderTests.java | 6 +- .../AbstractIndicesCleanerTestCase.java | 3 +- .../ClusterStatsMonitoringDocTests.java | 10 +- .../IndexRecoveryMonitoringDocTests.java | 3 +- .../indices/IndexStatsMonitoringDocTests.java | 5 +- .../monitoring/exporter/ExportersTests.java | 4 +- .../HttpExportBulkResponseListenerTests.java | 3 +- .../ql/action/QlStatusResponseTests.java | 25 ++--- ...stractSearchableSnapshotsRestTestCase.java | 4 +- .../cache/full/CacheServiceTests.java | 3 +- .../xpack/security/authc/jwt/JwtRestIT.java | 9 +- .../xpack/security/profile/ProfileIT.java | 18 +-- .../xpack/security/QueryApiKeyIT.java | 32 +++--- .../security/SecurityWithBasicLicenseIT.java | 3 +- ...tyUserProcessorWithSecurityDisabledIT.java | 3 +- .../authc/service/ServiceAccountIT.java | 9 +- .../integration/DlsFlsRequestCacheTests.java | 4 +- .../DocumentAndFieldLevelSecurityTests.java | 4 +- .../DocumentLevelSecurityTests.java | 3 +- .../FieldLevelSecurityRandomTests.java | 4 +- .../integration/IndexPrivilegeIntegTests.java | 19 ++-- ...onsWithAliasesWildcardsAndRegexsTests.java | 3 +- .../InternalUserAndRoleIntegTests.java | 9 +- .../integration/KibanaUserRoleIntegTests.java | 3 +- .../MultipleIndicesPermissionsTests.java | 3 +- .../integration/SecurityClearScrollTests.java | 3 +- .../SecurityFeatureStateIntegTests.java | 4 +- .../elasticsearch/license/LicensingTests.java | 2 +- .../security/authc/TokenAuthIntegTests.java | 8 +- .../pki/PkiAuthDelegationIntegTests.java | 5 +- .../authc/pki/PkiAuthenticationTests.java | 3 +- .../xpack/security/authz/AnalyzeTests.java | 3 +- .../security/authz/ReadActionsTests.java | 3 +- .../security/authz/WriteActionsTests.java | 3 +- .../profile/ProfileDomainIntegTests.java | 20 ++-- .../filter/IpFilteringUpdateTests.java | 6 +- .../transport/ssl/SslIntegrationTests.java | 3 +- .../user/AnonymousUserIntegTests.java | 3 +- .../ChangePasswordRequestBuilderTests.java | 7 +- .../HasPrivilegesRequestBuilderTests.java | 4 +- .../user/PutUserRequestBuilderTests.java | 5 +- .../audit/logfile/LoggingAuditTrailTests.java | 32 +++--- .../authc/file/FileUserRolesStoreTests.java | 2 +- .../AuthorizationDenialMessagesTests.java | 10 +- .../operator/OperatorOnlyRegistryTests.java | 8 +- .../oauth2/RestGetTokenActionTests.java | 5 +- .../RestSuggestProfilesActionTests.java | 3 +- .../RestGetUserPrivilegesActionTests.java | 3 +- .../transport/filter/IPFilterTests.java | 7 +- .../xpack/shutdown/NodeShutdownIT.java | 2 +- .../search/ShapeQueryOverShapeTests.java | 8 +- .../index/query/GeoGridQueryBuilderTests.java | 16 +-- .../sql/jdbc/JdbcPreparedStatementTests.java | 9 +- .../jdbc/single_node/JdbcShardFailureIT.java | 3 +- .../xpack/sql/qa/mixed_node/SqlCompatIT.java | 2 +- .../sql/qa/multi_node/RestSqlMultinodeIT.java | 2 +- .../ConsistentFunctionArgHandlingIT.java | 4 +- .../qa/single_node/JdbcShardFailureIT.java | 6 +- .../sql/qa/CustomDateFormatTestCase.java | 2 +- .../xpack/sql/qa/rest/RestSqlTestCase.java | 4 +- .../sql/qa/rest/RestSqlUsageTestCase.java | 3 +- .../sql/action/SqlRequestParsersTests.java | 31 +++--- .../xpack/sql/client/RemoteFailureTests.java | 6 +- .../DateTimeDateFormatProcessorTests.java | 3 +- .../literal/interval/IntervalsTests.java | 9 +- .../sql/parser/EscapedFunctionsTests.java | 3 +- .../sql/planner/QueryTranslatorTests.java | 9 +- .../transform/integration/TransformIT.java | 8 +- .../integration/TransformRestTestCase.java | 4 +- .../continuous/DateHistogramGroupByIT.java | 6 +- .../DateHistogramGroupByOtherTimeFieldIT.java | 8 +- .../continuous/HistogramGroupByIT.java | 3 +- .../continuous/LatestContinuousIT.java | 2 +- .../continuous/TermsGroupByIT.java | 6 +- .../continuous/TermsOnDateGroupByIT.java | 6 +- .../continuous/TransformContinuousIT.java | 4 +- .../TransformGetAndGetStatsIT.java | 21 ++-- .../integration/TransformLatestRestIT.java | 5 +- .../integration/TransformPivotRestIT.java | 70 ++++++------ .../TransformPivotRestSpecialCasesIT.java | 12 +- .../integration/TransformResetIT.java | 3 +- .../integration/TransformRestTestCase.java | 20 ++-- .../integration/TransformRobustnessIT.java | 3 +- .../integration/TransformUpdateIT.java | 5 +- .../integration/TransformInternalIndexIT.java | 3 +- .../integration/TransformOldTransformsIT.java | 3 +- .../pivot/AggregationResultUtilsTests.java | 15 +-- .../transforms/pivot/PivotTests.java | 3 +- .../pivot/TransformAggregationsTests.java | 3 +- .../xpack/vectortile/VectorTileRestIT.java | 12 +- .../AbstractWatcherIntegrationTestCase.java | 3 +- .../transform/TransformIntegrationTests.java | 3 +- .../watcher/WatcherIndexingListenerTests.java | 4 +- .../watcher/common/http/HttpClientTests.java | 6 +- .../ReportingAttachmentParserTests.java | 5 +- .../WriteLoadForecasterIT.java | 4 +- .../xpack/restart/FullClusterRestartIT.java | 9 +- ...MLModelDeploymentFullClusterRestartIT.java | 9 +- ...nfigIndexMappingsFullClusterRestartIT.java | 3 +- .../MlHiddenIndicesFullClusterRestartIT.java | 3 +- .../MlMigrationFullClusterRestartIT.java | 2 +- .../kerberos/KerberosAuthenticationIT.java | 2 +- .../elasticsearch/multi_node/RollupIT.java | 2 +- .../security/authc/jwt/JwtWithOidcAuthIT.java | 5 +- .../security/authc/oidc/C2IdOpTestCase.java | 3 +- .../authc/oidc/OpenIdConnectAuthIT.java | 15 +-- .../oldrepos/DocValueOnlyFieldsIT.java | 4 +- .../elasticsearch/oldrepos/OldMappingsIT.java | 4 +- .../oldrepos/OldRepositoryAccessIT.java | 6 +- .../AbstractMultiClusterUpgradeTestCase.java | 5 +- .../upgrades/CcrRollingUpgradeIT.java | 5 +- .../upgrades/DataStreamsUpgradeIT.java | 3 +- .../elasticsearch/upgrades/IndexingIT.java | 5 +- .../upgrades/MLModelDeploymentsUpgradeIT.java | 9 +- .../upgrades/MlTrainedModelsUpgradeIT.java | 9 +- .../SearchableSnapshotsRollingUpgradeIT.java | 2 +- .../TokenBackwardsCompatibilityIT.java | 11 +- .../upgrades/TransformSurvivesUpgradeIT.java | 4 +- .../realm/CustomRoleMappingRealmIT.java | 3 +- .../example/role/CustomRolesProviderIT.java | 3 +- .../esnative/tool/ResetPasswordToolIT.java | 3 +- .../authc/ldap/MultiGroupMappingIT.java | 3 +- 340 files changed, 1343 insertions(+), 1167 deletions(-) diff --git a/distribution/tools/plugin-cli/src/test/java/org/elasticsearch/plugins/cli/InstallPluginActionTests.java b/distribution/tools/plugin-cli/src/test/java/org/elasticsearch/plugins/cli/InstallPluginActionTests.java index 9341c469462b..7d66c143d424 100644 --- a/distribution/tools/plugin-cli/src/test/java/org/elasticsearch/plugins/cli/InstallPluginActionTests.java +++ b/distribution/tools/plugin-cli/src/test/java/org/elasticsearch/plugins/cli/InstallPluginActionTests.java @@ -43,6 +43,7 @@ import org.elasticsearch.common.io.FileSystemUtils; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.PathUtils; import org.elasticsearch.core.PathUtilsForTesting; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.core.Tuple; import org.elasticsearch.env.Environment; @@ -505,7 +506,7 @@ public class InstallPluginActionTests extends ESTestCase { final Path removing = env.v2().pluginsFile().resolve(".removing-failed"); Files.createDirectory(removing); final IllegalStateException e = expectThrows(IllegalStateException.class, () -> installPlugin(pluginZip)); - final String expected = formatted( + final String expected = Strings.format( "found file [%s] from a failed attempt to remove the plugin [failed]; execute [elasticsearch-plugin remove failed]", removing ); diff --git a/distribution/tools/server-cli/src/test/java/org/elasticsearch/server/cli/JvmOptionsParserTests.java b/distribution/tools/server-cli/src/test/java/org/elasticsearch/server/cli/JvmOptionsParserTests.java index 8acc94777bf0..5d63f29ac584 100644 --- a/distribution/tools/server-cli/src/test/java/org/elasticsearch/server/cli/JvmOptionsParserTests.java +++ b/distribution/tools/server-cli/src/test/java/org/elasticsearch/server/cli/JvmOptionsParserTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.server.cli; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.ESTestCase.WithoutSecurityManager; @@ -291,7 +292,7 @@ public class JvmOptionsParserTests extends ESTestCase { final int javaMajorVersion = randomIntBetween(8, Integer.MAX_VALUE); final int smallerJavaMajorVersion = randomIntBetween(7, javaMajorVersion - 1); - final String invalidRangeLine = String.format(Locale.ROOT, "%d:%d-XX:+UseG1GC", javaMajorVersion, smallerJavaMajorVersion); + final String invalidRangeLine = Strings.format("%d:%d-XX:+UseG1GC", javaMajorVersion, smallerJavaMajorVersion); try (StringReader sr = new StringReader(invalidRangeLine); BufferedReader br = new BufferedReader(sr)) { assertInvalidLines(br, Collections.singletonMap(1, invalidRangeLine)); } @@ -306,8 +307,8 @@ public class JvmOptionsParserTests extends ESTestCase { ); try (StringReader sr = new StringReader(numberFormatExceptionsLine); BufferedReader br = new BufferedReader(sr)) { final Map invalidLines = new HashMap<>(2); - invalidLines.put(1, formatted("%d:-XX:+UseG1GC", invalidLowerJavaMajorVersion)); - invalidLines.put(2, formatted("8-%d:-XX:+AggressiveOpts", invalidUpperJavaMajorVersion)); + invalidLines.put(1, Strings.format("%d:-XX:+UseG1GC", invalidLowerJavaMajorVersion)); + invalidLines.put(2, Strings.format("8-%d:-XX:+AggressiveOpts", invalidUpperJavaMajorVersion)); assertInvalidLines(br, invalidLines); } @@ -321,7 +322,7 @@ public class JvmOptionsParserTests extends ESTestCase { final int lowerBound = randomIntBetween(9, 16); final int upperBound = randomIntBetween(8, lowerBound - 1); - final String upperBoundGreaterThanLowerBound = String.format(Locale.ROOT, "%d-%d-XX:+UseG1GC", lowerBound, upperBound); + final String upperBoundGreaterThanLowerBound = Strings.format("%d-%d-XX:+UseG1GC", lowerBound, upperBound); try (StringReader sr = new StringReader(upperBoundGreaterThanLowerBound); BufferedReader br = new BufferedReader(sr)) { assertInvalidLines(br, Collections.singletonMap(1, upperBoundGreaterThanLowerBound)); } diff --git a/distribution/tools/windows-service-cli/src/test/java/org/elasticsearch/windows/service/WindowsServiceInstallCommandTests.java b/distribution/tools/windows-service-cli/src/test/java/org/elasticsearch/windows/service/WindowsServiceInstallCommandTests.java index ec4b27c779d6..7753e09bd9f4 100644 --- a/distribution/tools/windows-service-cli/src/test/java/org/elasticsearch/windows/service/WindowsServiceInstallCommandTests.java +++ b/distribution/tools/windows-service-cli/src/test/java/org/elasticsearch/windows/service/WindowsServiceInstallCommandTests.java @@ -11,6 +11,7 @@ package org.elasticsearch.windows.service; import org.elasticsearch.Version; import org.elasticsearch.cli.Command; import org.elasticsearch.cli.ExitCodes; +import org.elasticsearch.core.Strings; import org.junit.Before; import java.io.IOException; @@ -153,13 +154,13 @@ public class WindowsServiceInstallCommandTests extends WindowsServiceCliTestCase } public void testDisplayName() throws Exception { - assertServiceArgs(Map.of("DisplayName", formatted("\"Elasticsearch %s (elasticsearch-service-x64)\"", Version.CURRENT))); + assertServiceArgs(Map.of("DisplayName", Strings.format("\"Elasticsearch %s (elasticsearch-service-x64)\"", Version.CURRENT))); envVars.put("SERVICE_DISPLAY_NAME", "my service name"); assertServiceArgs(Map.of("DisplayName", "\"my service name\"")); } public void testDescription() throws Exception { - String defaultDescription = formatted("\"Elasticsearch %s Windows Service - https://elastic.co\"", Version.CURRENT); + String defaultDescription = Strings.format("\"Elasticsearch %s Windows Service - https://elastic.co\"", Version.CURRENT); assertServiceArgs(Map.of("Description", defaultDescription)); envVars.put("SERVICE_DESCRIPTION", "my description"); assertServiceArgs(Map.of("Description", "\"my description\"")); diff --git a/docs/src/yamlRestTest/java/org/elasticsearch/smoketest/DocsClientYamlTestSuiteIT.java b/docs/src/yamlRestTest/java/org/elasticsearch/smoketest/DocsClientYamlTestSuiteIT.java index db2834f4abed..3754ca033998 100644 --- a/docs/src/yamlRestTest/java/org/elasticsearch/smoketest/DocsClientYamlTestSuiteIT.java +++ b/docs/src/yamlRestTest/java/org/elasticsearch/smoketest/DocsClientYamlTestSuiteIT.java @@ -21,6 +21,7 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.RestClient; import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.common.util.Maps; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.test.rest.yaml.ClientYamlDocsTestClient; import org.elasticsearch.test.rest.yaml.ClientYamlTestCandidate; @@ -43,7 +44,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.Locale; import java.util.Map; import static java.util.Collections.emptyMap; @@ -316,7 +316,7 @@ public class DocsClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { Object previousSecond = null; while (firstTokens.hasNext()) { if (false == secondTokens.hasNext()) { - fail(String.format(Locale.ROOT, """ + fail(Strings.format(""" %s has fewer tokens than %s. %s has [%s] but %s is out of tokens. \ %s's last token was [%s] and %s's last token was' [%s] """, second, first, first, firstTokens.next(), second, first, previousFirst, second, previousSecond)); @@ -327,7 +327,7 @@ public class DocsClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { String secondText = (String) secondToken.get("token"); // Check the text and produce an error message with the utf8 sequence if they don't match. if (false == secondText.equals(firstText)) { - fail(String.format(Locale.ROOT, """ + fail(Strings.format(""" text differs: %s was [%s] but %s was [%s]. In utf8 those are %s and %s @@ -339,7 +339,7 @@ public class DocsClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { previousSecond = secondToken; } if (secondTokens.hasNext()) { - fail(String.format(Locale.ROOT, """ + fail(Strings.format(""" %s has more tokens than %s. %s has [%s] but %s is out of tokens. \ %s's last token was [%s] and %s's last token was [%s] """, second, first, second, secondTokens.next(), first, first, previousFirst, second, previousSecond)); diff --git a/libs/core/src/test/java/org/elasticsearch/core/internal/provider/EmbeddedImplClassLoaderTests.java b/libs/core/src/test/java/org/elasticsearch/core/internal/provider/EmbeddedImplClassLoaderTests.java index 9cabf7a1ab97..db517b9cfabd 100644 --- a/libs/core/src/test/java/org/elasticsearch/core/internal/provider/EmbeddedImplClassLoaderTests.java +++ b/libs/core/src/test/java/org/elasticsearch/core/internal/provider/EmbeddedImplClassLoaderTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.core.internal.provider; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.core.internal.provider.EmbeddedImplClassLoader.CompoundEnumeration; import org.elasticsearch.test.ESTestCase; @@ -452,7 +453,7 @@ public class EmbeddedImplClassLoaderTests extends ESTestCase { // getResources var urls1 = Collections.list(urlcLoader.getResources(resourcePath)).stream().map(URL::toString).toList(); var urls2 = Collections.list(embedLoader.getResources(resourcePath)).stream().map(URL::toString).toList(); - assertThat(String.format(Locale.ROOT, "urls1=%s, urls2=%s", urls1, urls2), urls2, hasSize(1)); + assertThat(Strings.format("urls1=%s, urls2=%s", urls1, urls2), urls2, hasSize(1)); assertThat(urls1.get(0), endsWith("!/" + expectedURLSuffix)); assertThat(urls2.get(0), endsWith("impl.jar!/IMPL-JARS/res/res-impl.jar/" + expectedURLSuffix)); diff --git a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java index a64d52b1ed7c..c44242556c4d 100644 --- a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java @@ -32,6 +32,7 @@ import org.elasticsearch.common.CheckedBiConsumer; import org.elasticsearch.common.network.InetAddresses; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.Maps; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.mapper.BooleanFieldMapper; import org.elasticsearch.index.mapper.DateFieldMapper; @@ -859,7 +860,7 @@ public class AutoDateHistogramAggregatorTests extends DateHistogramAggregatorTes fullDocCount.clear(); fullDocCount.putAll(skeletonDocCount); for (int minute = 3; minute < 15; minute++) { - fullDocCount.put(formatted("2017-02-01T09:%02d:00.000Z", minute), 0); + fullDocCount.put(Strings.format("2017-02-01T09:%02d:00.000Z", minute), 0); } testSearchCase( DEFAULT_QUERY, diff --git a/modules/data-streams/src/test/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProviderTests.java b/modules/data-streams/src/test/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProviderTests.java index 31c702cc4f88..131108e35f49 100644 --- a/modules/data-streams/src/test/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProviderTests.java +++ b/modules/data-streams/src/test/java/org/elasticsearch/datastreams/DataStreamIndexSettingsProviderTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.cluster.metadata.Metadata; import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.IndexMode; @@ -309,7 +310,7 @@ public class DataStreamIndexSettingsProviderTests extends ESTestCase { assertThat( e.getMessage(), equalTo( - formatted( + Strings.format( "backing index [%s] in tsdb mode doesn't have the [index.time_series.end_time] index setting", DataStream.getDefaultBackingIndexName(dataStreamName, 1, twoHoursAgo.toEpochMilli()) ) diff --git a/modules/data-streams/src/test/java/org/elasticsearch/datastreams/mapper/MetadataCreateDataStreamServiceTests.java b/modules/data-streams/src/test/java/org/elasticsearch/datastreams/mapper/MetadataCreateDataStreamServiceTests.java index 81d7e4766689..9e006034b580 100644 --- a/modules/data-streams/src/test/java/org/elasticsearch/datastreams/mapper/MetadataCreateDataStreamServiceTests.java +++ b/modules/data-streams/src/test/java/org/elasticsearch/datastreams/mapper/MetadataCreateDataStreamServiceTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.datastreams.mapper; import org.elasticsearch.Version; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.MapperTestUtils; import org.elasticsearch.index.mapper.DataStreamTimestampFieldMapper; import org.elasticsearch.index.mapper.MapperService; @@ -36,7 +37,7 @@ public class MetadataCreateDataStreamServiceTests extends ESTestCase { public void testValidateTimestampFieldMappingNoFieldMapping() { Exception e = expectThrows(IllegalStateException.class, () -> validateTimestampFieldMapping(createMappingLookup("{}"))); assertThat(e.getMessage(), equalTo("[" + DataStreamTimestampFieldMapper.NAME + "] meta field has been disabled")); - String mapping1 = formatted(""" + String mapping1 = Strings.format(""" { "%s": { "enabled": false diff --git a/modules/ingest-common/src/internalClusterTest/java/org/elasticsearch/ingest/common/IngestRestartIT.java b/modules/ingest-common/src/internalClusterTest/java/org/elasticsearch/ingest/common/IngestRestartIT.java index 5ac11cd9963c..152ec847a490 100644 --- a/modules/ingest-common/src/internalClusterTest/java/org/elasticsearch/ingest/common/IngestRestartIT.java +++ b/modules/ingest-common/src/internalClusterTest/java/org/elasticsearch/ingest/common/IngestRestartIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.cluster.node.DiscoveryNodeRole; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.ingest.IngestStats; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.MockScriptEngine; @@ -61,7 +62,7 @@ public class IngestRestartIT extends ESIntegTestCase { internalCluster().ensureAtLeastNumDataNodes(1); internalCluster().startMasterOnlyNode(); final String pipelineId = "foo"; - client().admin().cluster().preparePutPipeline(pipelineId, new BytesArray(formatted(""" + client().admin().cluster().preparePutPipeline(pipelineId, new BytesArray(Strings.format(""" { "processors": [ { @@ -109,7 +110,7 @@ public class IngestRestartIT extends ESIntegTestCase { String pipelineIdWithScript = pipelineIdWithoutScript + "_script"; internalCluster().startNode(); - BytesReference pipelineWithScript = new BytesArray(formatted(""" + BytesReference pipelineWithScript = new BytesArray(Strings.format(""" { "processors": [ { "script": { "lang": "%s", "source": "my_script" } } ] }""", MockScriptEngine.NAME)); @@ -179,7 +180,7 @@ public class IngestRestartIT extends ESIntegTestCase { public void testPipelineWithScriptProcessorThatHasStoredScript() throws Exception { internalCluster().startNode(); - client().admin().cluster().preparePutStoredScript().setId("1").setContent(new BytesArray(formatted(""" + client().admin().cluster().preparePutStoredScript().setId("1").setContent(new BytesArray(Strings.format(""" {"script": {"lang": "%s", "source": "my_script"} } """, MockScriptEngine.NAME)), XContentType.JSON).get(); BytesReference pipeline = new BytesArray(""" diff --git a/modules/ingest-common/src/test/java/org/elasticsearch/ingest/common/DateProcessorTests.java b/modules/ingest-common/src/test/java/org/elasticsearch/ingest/common/DateProcessorTests.java index 6ed5afdbf690..fcf1e9a301eb 100644 --- a/modules/ingest-common/src/test/java/org/elasticsearch/ingest/common/DateProcessorTests.java +++ b/modules/ingest-common/src/test/java/org/elasticsearch/ingest/common/DateProcessorTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.ingest.common; +import org.elasticsearch.core.Strings; import org.elasticsearch.ingest.IngestDocument; import org.elasticsearch.ingest.RandomDocumentPicks; import org.elasticsearch.ingest.TestTemplateService; @@ -331,7 +332,7 @@ public class DateProcessorTests extends ESTestCase { IngestDocument ingestDocument = RandomDocumentPicks.randomIngestDocument(random(), document); processor.execute(ingestDocument); // output format is time only with nanosecond precision - String expectedDate = "00:00:00." + formatted("%09d", nanosAfterEpoch); + String expectedDate = "00:00:00." + Strings.format("%09d", nanosAfterEpoch); assertThat(ingestDocument.getFieldValue("date_as_date", String.class), equalTo(expectedDate)); } } diff --git a/modules/ingest-geoip/src/test/java/org/elasticsearch/ingest/geoip/DatabaseNodeServiceTests.java b/modules/ingest-geoip/src/test/java/org/elasticsearch/ingest/geoip/DatabaseNodeServiceTests.java index b775ffdb1f06..1dc029f2c9f2 100644 --- a/modules/ingest-geoip/src/test/java/org/elasticsearch/ingest/geoip/DatabaseNodeServiceTests.java +++ b/modules/ingest-geoip/src/test/java/org/elasticsearch/ingest/geoip/DatabaseNodeServiceTests.java @@ -39,6 +39,7 @@ import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.CheckedRunnable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.Index; import org.elasticsearch.index.query.TermQueryBuilder; @@ -410,7 +411,7 @@ public class DatabaseNodeServiceTests extends ESTestCase { byte[] header = new byte[512]; byte[] nameBytes = name.getBytes(StandardCharsets.UTF_8); byte[] contentBytes = content.getBytes(StandardCharsets.UTF_8); - byte[] sizeBytes = formatted("%1$012o", contentBytes.length).getBytes(StandardCharsets.UTF_8); + byte[] sizeBytes = Strings.format("%1$012o", contentBytes.length).getBytes(StandardCharsets.UTF_8); System.arraycopy(nameBytes, 0, header, 0, nameBytes.length); System.arraycopy(sizeBytes, 0, header, 124, 12); gzipOutputStream.write(header); diff --git a/modules/kibana/src/javaRestTest/java/org/elasticsearch/kibana/KibanaSystemIndexIT.java b/modules/kibana/src/javaRestTest/java/org/elasticsearch/kibana/KibanaSystemIndexIT.java index 08b42cc49b90..bb1e32671a84 100644 --- a/modules/kibana/src/javaRestTest/java/org/elasticsearch/kibana/KibanaSystemIndexIT.java +++ b/modules/kibana/src/javaRestTest/java/org/elasticsearch/kibana/KibanaSystemIndexIT.java @@ -16,6 +16,7 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xcontent.json.JsonXContent; @@ -69,7 +70,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testBulkToKibanaIndex() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } """, indexName)); @@ -79,7 +80,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testRefresh() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } """, indexName)); @@ -100,7 +101,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testGetFromKibanaIndex() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } """, indexName)); @@ -119,7 +120,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testMultiGetFromKibanaIndex() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } { "index" : { "_index" : "%s", "_id" : "2" } } @@ -131,7 +132,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { assertThat(response.getStatusLine().getStatusCode(), is(200)); Request getRequest = request("GET", "/_mget"); - getRequest.setJsonEntity(formatted(""" + getRequest.setJsonEntity(Strings.format(""" { "docs": [ { @@ -155,7 +156,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testSearchFromKibanaIndex() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } { "index" : { "_index" : "%s", "_id" : "2" } } @@ -181,7 +182,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testDeleteFromKibanaIndex() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } { "index" : { "_index" : "%s", "_id" : "2" } } @@ -199,7 +200,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testDeleteByQueryFromKibanaIndex() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } { "index" : { "_index" : "%s", "_id" : "2" } } @@ -289,7 +290,7 @@ public class KibanaSystemIndexIT extends ESRestTestCase { public void testScrollingDocs() throws IOException { Request request = request("POST", "/_bulk"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index" : { "_index" : "%s", "_id" : "1" } } { "foo" : "bar" } { "index" : { "_index" : "%s", "_id" : "2" } } diff --git a/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/MustacheTests.java b/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/MustacheTests.java index 2c49fe38c56f..e06e69692893 100644 --- a/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/MustacheTests.java +++ b/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/MustacheTests.java @@ -9,6 +9,7 @@ package org.elasticsearch.script.mustache; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.script.ScriptEngine; import org.elasticsearch.script.ScriptException; import org.elasticsearch.script.TemplateScript; @@ -23,7 +24,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; @@ -150,7 +150,7 @@ public class MustacheTests extends ESTestCase { data.put("list", randomList); Map vars = new HashMap<>(); vars.put("data", data); - String expectedString = String.format(Locale.ROOT, "%s %s", randomArrayValues.length, randomList.size()); + String expectedString = Strings.format("%s %s", randomArrayValues.length, randomList.size()); assertThat(factory.newInstance(vars).execute(), equalTo(expectedString)); } diff --git a/modules/lang-painless/src/test/java/org/elasticsearch/painless/GetByPathAugmentationTests.java b/modules/lang-painless/src/test/java/org/elasticsearch/painless/GetByPathAugmentationTests.java index 8e942f500c68..3022eb0fccc8 100644 --- a/modules/lang-painless/src/test/java/org/elasticsearch/painless/GetByPathAugmentationTests.java +++ b/modules/lang-painless/src/test/java/org/elasticsearch/painless/GetByPathAugmentationTests.java @@ -8,10 +8,11 @@ package org.elasticsearch.painless; +import org.elasticsearch.core.Strings; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; public class GetByPathAugmentationTests extends ScriptTestCase { @@ -38,20 +39,20 @@ public class GetByPathAugmentationTests extends ScriptTestCase { } private String toScript(String collection, String key) { - return String.format(Locale.ROOT, "return %s.getByPath('%s')", collection, key); + return Strings.format("return %s.getByPath('%s')", collection, key); } private String toScript(String collection, String key, String defaultValue) { - return String.format(Locale.ROOT, "return %s.getByPath('%s', %s)", collection, key, defaultValue); + return Strings.format("return %s.getByPath('%s', %s)", collection, key, defaultValue); } private String numberFormat(String unparsable, String path, int i) { String format = "Could not parse [%s] as a int index into list at path [%s] and index [%d]"; - return String.format(Locale.ROOT, format, unparsable, path, i); + return Strings.format(format, unparsable, path, i); } private String missingValue(String path) { - return formatted("Could not find value at path [%s]", path); + return Strings.format("Could not find value at path [%s]", path); } private void assertPathValue(String collection, String key, Object value) { diff --git a/modules/lang-painless/src/test/java/org/elasticsearch/painless/StringTests.java b/modules/lang-painless/src/test/java/org/elasticsearch/painless/StringTests.java index 4c77c8f4ffce..402947de3753 100644 --- a/modules/lang-painless/src/test/java/org/elasticsearch/painless/StringTests.java +++ b/modules/lang-painless/src/test/java/org/elasticsearch/painless/StringTests.java @@ -8,6 +8,8 @@ package org.elasticsearch.painless; +import org.elasticsearch.core.Strings; + import java.util.HashMap; import java.util.Map; @@ -72,14 +74,14 @@ public class StringTests extends ScriptTestCase { StringBuilder script = new StringBuilder("String s = \"cat\"; return s"); StringBuilder result = new StringBuilder("cat"); for (int i = 1; i < count; i++) { - final String s = formatted("%03d", i); + final String s = Strings.format("%03d", i); script.append(" + '").append(s).append("'.toString()"); result.append(s); } final String s = script.toString(); assertTrue( "every string part should be separately pushed to stack.", - Debugger.toString(s).contains(formatted("LDC \"%03d\"", count / 2)) + Debugger.toString(s).contains(Strings.format("LDC \"%03d\"", count / 2)) ); assertEquals(result.toString(), exec(s)); } diff --git a/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/extras/RankFeatureQueryBuilderTests.java b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/extras/RankFeatureQueryBuilderTests.java index 9a03ecb7ec41..32446c3c2739 100644 --- a/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/extras/RankFeatureQueryBuilderTests.java +++ b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/extras/RankFeatureQueryBuilderTests.java @@ -111,7 +111,7 @@ public class RankFeatureQueryBuilderTests extends AbstractQueryTestCase())); SearchExecutionContext searchExecutionContext = createSearchExecutionContext(); - QueryBuilder queryBuilder = parseQuery(formatted(""" + QueryBuilder queryBuilder = parseQuery(Strings.format(""" {"percolate" : { "index": "%s", "id": "%s", "field":"%s"}} """, indexedDocumentIndex, indexedDocumentId, queryField)); rewriteAndFetch(queryBuilder, searchExecutionContext).toQuery(searchExecutionContext); } public void testBothDocumentAndDocumentsSpecified() { - IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> parseQuery(formatted(""" + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> parseQuery(Strings.format(""" {"percolate" : { "document": {}, "documents": [{}, {}], "field":"%s"}} """, queryField))); assertThat(e.getMessage(), containsString("The following fields are not allowed together: [document, documents]")); @@ -382,7 +382,7 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase())); SearchExecutionContext searchExecutionContext = createSearchExecutionContext(); - String queryAsString = formatted(""" + String queryAsString = Strings.format(""" {"percolate" : { "index": "%s", "type": "_doc", "id": "%s", "field":"%s"}} """, indexedDocumentIndex, indexedDocumentId, queryField); XContentParser parser = createParserWithCompatibilityFor(JsonXContent.jsonXContent, queryAsString, RestApiVersion.V_7); diff --git a/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/DiscountedCumulativeGainTests.java b/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/DiscountedCumulativeGainTests.java index d761b8e28aa9..4436b9f3902f 100644 --- a/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/DiscountedCumulativeGainTests.java +++ b/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/DiscountedCumulativeGainTests.java @@ -288,11 +288,11 @@ public class DiscountedCumulativeGainTests extends ESTestCase { assertEquals(expectedNdcg, detail.getNDCG(), 0.0); assertEquals(unratedDocs, detail.getUnratedDocs()); if (idcg != 0) { - assertEquals(formatted(""" + assertEquals(Strings.format(""" {"dcg":{"dcg":%s,"ideal_dcg":%s,"normalized_dcg":%s,"unrated_docs":%s}}\ """, dcg, idcg, expectedNdcg, unratedDocs), Strings.toString(detail)); } else { - assertEquals(formatted(""" + assertEquals(Strings.format(""" {"dcg":{"dcg":%s,"unrated_docs":%s}}\ """, dcg, unratedDocs), Strings.toString(detail)); } diff --git a/modules/reindex/src/test/java/org/elasticsearch/reindex/remote/RemoteRequestBuildersTests.java b/modules/reindex/src/test/java/org/elasticsearch/reindex/remote/RemoteRequestBuildersTests.java index f06d40afeb0a..e0cfe0088d9e 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/reindex/remote/RemoteRequestBuildersTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/reindex/remote/RemoteRequestBuildersTests.java @@ -17,6 +17,7 @@ import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.test.ESTestCase; @@ -228,7 +229,7 @@ public class RemoteRequestBuildersTests extends ESTestCase { searchRequest.source().fetchSource(new String[] { "in1", "in2" }, new String[] { "out" }); entity = initialSearch(searchRequest, new BytesArray(query), remoteVersion).getEntity(); assertEquals(ContentType.APPLICATION_JSON.toString(), entity.getContentType().getValue()); - assertEquals(XContentHelper.stripWhitespace(formatted(""" + assertEquals(XContentHelper.stripWhitespace(Strings.format(""" { "query": %s, "_source": { diff --git a/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainerRetriesTests.java b/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainerRetriesTests.java index dd08be44d54a..ecedb9664a3f 100644 --- a/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainerRetriesTests.java +++ b/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainerRetriesTests.java @@ -205,7 +205,7 @@ public class GoogleCloudStorageBlobContainerRetriesTests extends AbstractBlobCon assertThat(content.isPresent(), is(true)); assertThat(content.get().v1(), equalTo(blobContainer.path().buildAsString() + "write_blob_max_retries")); if (Objects.deepEquals(bytes, BytesReference.toBytes(content.get().v2()))) { - byte[] response = formatted(""" + byte[] response = Strings.format(""" {"bucket":"bucket","name":"%s"} """, content.get().v1()).getBytes(UTF_8); exchange.getResponseHeaders().add("Content-Type", "application/json"); @@ -351,7 +351,7 @@ public class GoogleCloudStorageBlobContainerRetriesTests extends AbstractBlobCon if (range.equals("bytes */*")) { final int receivedSoFar = bytesReceived.get(); if (receivedSoFar > 0) { - exchange.getResponseHeaders().add("Range", formatted("bytes=0-%d", receivedSoFar)); + exchange.getResponseHeaders().add("Range", Strings.format("bytes=0-%d", receivedSoFar)); } exchange.getResponseHeaders().add("Content-Length", "0"); exchange.sendResponseHeaders(308 /* Resume Incomplete */, -1); @@ -373,7 +373,7 @@ public class GoogleCloudStorageBlobContainerRetriesTests extends AbstractBlobCon exchange.sendResponseHeaders(RestStatus.OK.getStatus(), -1); return; } else { - exchange.getResponseHeaders().add("Range", String.format(Locale.ROOT, "bytes=%d/%d", rangeStart, rangeEnd)); + exchange.getResponseHeaders().add("Range", Strings.format("bytes=%d/%d", rangeStart, rangeEnd)); exchange.getResponseHeaders().add("Content-Length", "0"); exchange.sendResponseHeaders(308 /* Resume Incomplete */, -1); return; diff --git a/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageClientSettingsTests.java b/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageClientSettingsTests.java index f8fe2b5919d9..73eb4a48a21d 100644 --- a/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageClientSettingsTests.java +++ b/modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageClientSettingsTests.java @@ -13,6 +13,7 @@ import com.google.auth.oauth2.ServiceAccountCredentials; import org.elasticsearch.common.settings.MockSecureSettings; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.test.ESTestCase; @@ -260,7 +261,7 @@ public class GoogleCloudStorageClientSettingsTests extends ESTestCase { credentialBuilder.setPrivateKeyId("private_key_id_" + clientName); credentialBuilder.setScopes(Collections.singleton(StorageScopes.DEVSTORAGE_FULL_CONTROL)); final String encodedPrivateKey = Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded()); - final String serviceAccount = formatted(""" + final String serviceAccount = Strings.format(""" { "type": "service_account", "project_id": "project_id_%s", diff --git a/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/CustomWebIdentityTokenCredentialsProviderTests.java b/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/CustomWebIdentityTokenCredentialsProviderTests.java index f151b5f82785..04c47bb9b55e 100644 --- a/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/CustomWebIdentityTokenCredentialsProviderTests.java +++ b/modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/CustomWebIdentityTokenCredentialsProviderTests.java @@ -13,6 +13,7 @@ import com.sun.net.httpserver.HttpServer; import org.apache.logging.log4j.LogManager; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.env.Environment; import org.elasticsearch.mocksocket.MockHttpServer; @@ -53,7 +54,7 @@ public class CustomWebIdentityTokenCredentialsProviderTests extends ESTestCase { assertEquals(ROLE_NAME, params.get("RoleSessionName")); exchange.getResponseHeaders().add("Content-Type", "text/xml; charset=UTF-8"); - byte[] response = formatted( + byte[] response = Strings.format( """ diff --git a/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/AbstractURLBlobStoreTests.java b/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/AbstractURLBlobStoreTests.java index dfa4d310c96b..88a248453cc9 100644 --- a/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/AbstractURLBlobStoreTests.java +++ b/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/AbstractURLBlobStoreTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.blobstore.BlobContainer; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.Streams; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import java.io.IOException; @@ -57,7 +58,7 @@ public abstract class AbstractURLBlobStoreTests extends ESTestCase { ignored.read(); fail("Should have thrown NoSuchFileException exception"); } catch (NoSuchFileException e) { - assertEquals(formatted("blob object [%s] not found", incorrectBlobName), e.getMessage()); + assertEquals(Strings.format("blob object [%s] not found", incorrectBlobName), e.getMessage()); } } } diff --git a/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/http/RetryingHttpInputStreamTests.java b/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/http/RetryingHttpInputStreamTests.java index 2c8e7312def8..d1425e56072e 100644 --- a/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/http/RetryingHttpInputStreamTests.java +++ b/modules/repository-url/src/test/java/org/elasticsearch/common/blobstore/url/http/RetryingHttpInputStreamTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.common.blobstore.url.http; import org.elasticsearch.common.io.Streams; import org.elasticsearch.core.IOUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.ESTestCase; @@ -17,7 +18,6 @@ import java.io.IOException; import java.net.URI; import java.util.Iterator; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; @@ -44,7 +44,7 @@ public class RetryingHttpInputStreamTests extends ESTestCase { when(secondHttpResponseInputStream.read(any(), anyInt(), anyInt())).thenReturn(blobSize - firstChunkSize).thenReturn(-1); final Map secondResponseHeaders = Map.of( "Content-Range", - String.format(Locale.ROOT, "bytes %d-%d/%d", firstChunkSize, blobSize - 1, blobSize) + Strings.format("bytes %d-%d/%d", firstChunkSize, blobSize - 1, blobSize) ); final List responses = List.of( diff --git a/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/http/netty4/Netty4PipeliningIT.java b/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/http/netty4/Netty4PipeliningIT.java index eaecc13a15d8..b381e0ea8bfb 100644 --- a/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/http/netty4/Netty4PipeliningIT.java +++ b/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/http/netty4/Netty4PipeliningIT.java @@ -13,6 +13,7 @@ import io.netty.util.ReferenceCounted; import org.elasticsearch.ESNetty4IntegTestCase; import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.core.Strings; import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.test.ESIntegTestCase.Scope; @@ -53,7 +54,7 @@ public class Netty4PipeliningIT extends ESNetty4IntegTestCase { private void assertOpaqueIdsInOrder(Collection opaqueIds) { // check if opaque ids are monotonically increasing int i = 0; - String msg = formatted("Expected list of opaque ids to be monotonically increasing, got [%s]", opaqueIds); + String msg = Strings.format("Expected list of opaque ids to be monotonically increasing, got [%s]", opaqueIds); for (String opaqueId : opaqueIds) { assertThat(msg, opaqueId, is(String.valueOf(i++))); } diff --git a/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/transport/netty4/Netty4TransportMultiPortIntegrationIT.java b/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/transport/netty4/Netty4TransportMultiPortIntegrationIT.java index 4566d2a56d95..3eccb8386066 100644 --- a/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/transport/netty4/Netty4TransportMultiPortIntegrationIT.java +++ b/modules/transport-netty4/src/internalClusterTest/java/org/elasticsearch/transport/netty4/Netty4TransportMultiPortIntegrationIT.java @@ -14,13 +14,12 @@ import org.elasticsearch.common.network.NetworkAddress; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.BoundTransportAddress; import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.test.ESIntegTestCase.Scope; import org.elasticsearch.test.junit.annotations.Network; import org.elasticsearch.transport.TransportInfo; -import java.util.Locale; - import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.greaterThanOrEqualTo; import static org.hamcrest.Matchers.hasKey; @@ -39,7 +38,7 @@ public class Netty4TransportMultiPortIntegrationIT extends ESNetty4IntegTestCase protected Settings nodeSettings(int nodeOrdinal, Settings otherSettings) { if (randomPort == -1) { randomPort = randomIntBetween(49152, 65525); - randomPortRange = String.format(Locale.ROOT, "%s-%s", randomPort, randomPort + 10); + randomPortRange = Strings.format("%s-%s", randomPort, randomPort + 10); } Settings.Builder builder = Settings.builder() .put(super.nodeSettings(nodeOrdinal, otherSettings)) diff --git a/plugins/repository-hdfs/src/javaRestTest/java/org/elasticsearch/repositories/hdfs/HaHdfsFailoverTestSuiteIT.java b/plugins/repository-hdfs/src/javaRestTest/java/org/elasticsearch/repositories/hdfs/HaHdfsFailoverTestSuiteIT.java index 2d291cdce88f..0c0329e3cdb0 100644 --- a/plugins/repository-hdfs/src/javaRestTest/java/org/elasticsearch/repositories/hdfs/HaHdfsFailoverTestSuiteIT.java +++ b/plugins/repository-hdfs/src/javaRestTest/java/org/elasticsearch/repositories/hdfs/HaHdfsFailoverTestSuiteIT.java @@ -22,6 +22,7 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.RestClient; import org.elasticsearch.core.PathUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.junit.Assert; @@ -100,7 +101,7 @@ public class HaHdfsFailoverTestSuiteIT extends ESRestTestCase { // Create repository { Request request = new Request("PUT", "/_snapshot/hdfs_ha_repo_read"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "type": "hdfs", "settings": { diff --git a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java index 7e8b88131814..af66fbc61562 100644 --- a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java +++ b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java @@ -569,7 +569,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { public void testRollover() throws IOException { if (isRunningAgainstOldCluster()) { Request createIndex = new Request("PUT", "/" + index + "-000001"); - createIndex.setJsonEntity(formatted(""" + createIndex.setJsonEntity(Strings.format(""" { "aliases": { "%s_write": {} @@ -995,7 +995,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { // Stick a routing attribute into to cluster settings so we can see it after the restore Request addRoutingSettings = new Request("PUT", "/_cluster/settings"); - addRoutingSettings.setJsonEntity(formatted(""" + addRoutingSettings.setJsonEntity(Strings.format(""" {"persistent": {"cluster.routing.allocation.exclude.test_attr": "%s"}} """, getOldClusterVersion())); client().performRequest(addRoutingSettings); @@ -1296,7 +1296,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { int extras = between(1, 100); StringBuilder bulk = new StringBuilder(); for (int i = 0; i < extras; i++) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_id":"%s"}} {"test":"test"} """, count + i)); diff --git a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java index 34ae95d23b03..d69f0b05958f 100644 --- a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java +++ b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java @@ -209,7 +209,7 @@ public class QueryBuilderBWCIT extends AbstractFullClusterRestartTestCase { for (int i = 0; i < CANDIDATES.size(); i++) { QueryBuilder expectedQueryBuilder = (QueryBuilder) CANDIDATES.get(i)[1]; Request request = new Request("GET", "/" + index + "/_search"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"query": {"ids": {"values": ["%s"]}}, "docvalue_fields": [{"field":"query.query_builder_field"}]} """, i)); Response rsp = client().performRequest(request); diff --git a/qa/logging-config/src/test/java/org/elasticsearch/common/logging/ESJsonLayoutTests.java b/qa/logging-config/src/test/java/org/elasticsearch/common/logging/ESJsonLayoutTests.java index d7af475e15dc..e4fe90118bd1 100644 --- a/qa/logging-config/src/test/java/org/elasticsearch/common/logging/ESJsonLayoutTests.java +++ b/qa/logging-config/src/test/java/org/elasticsearch/common/logging/ESJsonLayoutTests.java @@ -7,12 +7,11 @@ */ package org.elasticsearch.common.logging; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.hamcrest.Matchers; import org.junit.BeforeClass; -import java.util.Locale; - public class ESJsonLayoutTests extends ESTestCase { @BeforeClass public static void initNodeName() { @@ -27,7 +26,7 @@ public class ESJsonLayoutTests extends ESTestCase { ESJsonLayout server = ESJsonLayout.newBuilder().setType("server").build(); String conversionPattern = server.getPatternLayout().getConversionPattern(); - assertThat(conversionPattern, Matchers.equalTo(String.format(Locale.ROOT, """ + assertThat(conversionPattern, Matchers.equalTo(Strings.format(""" {\ "type": "server", \ "timestamp": "%%d{yyyy-MM-dd'T'HH:mm:ss,SSSZZ}", \ @@ -45,7 +44,7 @@ public class ESJsonLayoutTests extends ESTestCase { String conversionPattern = server.getPatternLayout().getConversionPattern(); // message field is removed as is expected to be provided by a field from a message - assertThat(conversionPattern, Matchers.equalTo(String.format(Locale.ROOT, """ + assertThat(conversionPattern, Matchers.equalTo(Strings.format(""" {\ "type": "server", \ "timestamp": "%%d{yyyy-MM-dd'T'HH:mm:ss,SSSZZ}", \ diff --git a/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/RareTermsIT.java b/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/RareTermsIT.java index 4ca8c8770adb..a33fc01d8446 100644 --- a/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/RareTermsIT.java +++ b/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/RareTermsIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.hamcrest.Matchers; @@ -30,10 +31,11 @@ public class RareTermsIT extends ESRestTestCase { final Request request = new Request("POST", "/_bulk"); final StringBuilder builder = new StringBuilder(); for (int i = 0; i < numDocs; ++i) { - builder.append(formatted(""" + Object[] args = new Object[] { index, id++, i }; + builder.append(Strings.format(""" { "index" : { "_index" : "%s", "_id": "%s" } } {"str_value" : "s%s"} - """, index, id++, i)); + """, args)); } request.setJsonEntity(builder.toString()); assertOK(client().performRequest(request)); @@ -62,7 +64,7 @@ public class RareTermsIT extends ESRestTestCase { private void assertNumRareTerms(int maxDocs, int rareTerms) throws IOException { final Request request = new Request("POST", index + "/_search"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "aggs": { "rareTerms": { diff --git a/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/SearchWithMinCompatibleSearchNodeIT.java b/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/SearchWithMinCompatibleSearchNodeIT.java index 9adec5df72ea..a0f0f1319b40 100644 --- a/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/SearchWithMinCompatibleSearchNodeIT.java +++ b/qa/mixed-cluster/src/test/java/org/elasticsearch/backwards/SearchWithMinCompatibleSearchNodeIT.java @@ -18,6 +18,7 @@ import org.elasticsearch.client.RestClient; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.CheckedRunnable; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.test.rest.ObjectPath; @@ -84,7 +85,7 @@ public class SearchWithMinCompatibleSearchNodeIT extends ESRestTestCase { ); assertThat(responseException.getMessage(), containsString(""" {"error":{"root_cause":[],"type":"search_phase_execution_exception\"""")); - assertThat(responseException.getMessage(), containsString(formatted(""" + assertThat(responseException.getMessage(), containsString(Strings.format(""" caused_by":{"type":"version_mismatch_exception",\ "reason":"One of the shards is incompatible with the required minimum version [%s]\"""", newVersion))); }); diff --git a/qa/repository-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java b/qa/repository-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java index 0a83c293dca0..59741fd105b6 100644 --- a/qa/repository-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java +++ b/qa/repository-multi-version/src/test/java/org/elasticsearch/upgrades/MultiVersionRepositoryAccessIT.java @@ -280,7 +280,7 @@ public class MultiVersionRepositoryAccessIT extends ESRestTestCase { private void createIndex(String name, int shards) throws IOException { final Request putIndexRequest = new Request("PUT", "/" + name); - putIndexRequest.setJsonEntity(formatted(""" + putIndexRequest.setJsonEntity(Strings.format(""" { "settings" : { "index" : { diff --git a/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java b/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java index ee94757e3ab2..b860e53d447b 100644 --- a/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java +++ b/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java @@ -135,7 +135,7 @@ public class IndexingIT extends AbstractRollingTestCase { public void testAutoIdWithOpTypeCreate() throws IOException { final String indexName = "auto_id_and_op_type_create_index"; - String b = formatted(""" + String b = Strings.format(""" {"create": {"_index": "%s"}} {"f1": "v"} """, indexName); @@ -325,7 +325,7 @@ public class IndexingIT extends AbstractRollingTestCase { long delta = TimeUnit.SECONDS.toMillis(20); double value = (timeStart - TSDB_TIMES[0]) / TimeUnit.SECONDS.toMillis(20) * rate; for (long t = timeStart; t < timeEnd; t += delta) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index": {"_index": "tsdb"}} {"@timestamp": %s, "dim": "%s", "value": %s} """, t, dim, value)); diff --git a/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeWithOldIndexSettingsIT.java b/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeWithOldIndexSettingsIT.java index a261720e266d..0cb8cc55d58e 100644 --- a/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeWithOldIndexSettingsIT.java +++ b/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeWithOldIndexSettingsIT.java @@ -13,9 +13,9 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import java.io.IOException; -import java.util.Locale; import java.util.Map; import static org.elasticsearch.rest.action.search.RestSearchAction.TOTAL_HITS_AS_INT_PARAM; @@ -56,7 +56,7 @@ public class UpgradeWithOldIndexSettingsIT extends AbstractRollingTestCase { if (UPGRADE_FROM_VERSION.before(Version.V_8_0_0)) { bulk.setOptions(expectWarnings(EXPECTED_WARNING)); } - bulk.setJsonEntity(String.format(Locale.ROOT, """ + bulk.setJsonEntity(Strings.format(""" {"index": {"_index": "%s"}} {"f1": "v1", "f2": "v2"} """, INDEX_NAME)); @@ -69,7 +69,7 @@ public class UpgradeWithOldIndexSettingsIT extends AbstractRollingTestCase { if (UPGRADE_FROM_VERSION.before(Version.V_8_0_0)) { bulk.setOptions(expectWarnings(EXPECTED_WARNING)); } - bulk.setJsonEntity(String.format(Locale.ROOT, """ + bulk.setJsonEntity(Strings.format(""" {"index": {"_index": "%s"}} {"f1": "v3", "f2": "v4"} """, INDEX_NAME)); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java index 9ceeba1c7a59..76200604338d 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainIT.java @@ -366,7 +366,7 @@ public final class ClusterAllocationExplainIT extends ESIntegTestCase { assertThat(d.getExplanation(), startsWith("a copy of this shard is already allocated to this node [")); } else if (d.label().equals("filter") && nodeHoldingPrimary == false) { assertEquals(Decision.Type.NO, d.type()); - assertEquals(formatted(""" + assertEquals(Strings.format(""" node does not match index setting [index.routing.allocation.include] \ filters [_name:"%s"]\ """, primaryNodeName), d.getExplanation()); @@ -914,7 +914,7 @@ public final class ClusterAllocationExplainIT extends ESIntegTestCase { for (Decision d : result.getCanAllocateDecision().getDecisions()) { if (d.label().equals("filter")) { assertEquals(Decision.Type.NO, d.type()); - assertEquals(formatted(""" + assertEquals(Strings.format(""" node does not match index setting [index.routing.allocation.include] filters [_name:"%s"]\ """, primaryNodeName), d.getExplanation()); } else { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java index 5a24caabbd1a..ba1e060efd91 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/action/admin/indices/rollover/RolloverIT.java @@ -837,8 +837,8 @@ public class RolloverIT extends ESIntegTestCase { .prepareRolloverIndex(aliasName) .waitForActiveShards(ActiveShardCount.NONE) .get(); - assertThat(response.getOldIndex(), equalTo(aliasName + formatted("-%06d", j))); - assertThat(response.getNewIndex(), equalTo(aliasName + formatted("-%06d", j + 1))); + assertThat(response.getOldIndex(), equalTo(aliasName + Strings.format("-%06d", j))); + assertThat(response.getNewIndex(), equalTo(aliasName + Strings.format("-%06d", j + 1))); assertThat(response.isDryRun(), equalTo(false)); assertThat(response.isRolledOver(), equalTo(true)); } @@ -859,7 +859,7 @@ public class RolloverIT extends ESIntegTestCase { for (int j = 1; j <= numOfIndices; j++) { AliasMetadata.Builder amBuilder = new AliasMetadata.Builder(aliasName); amBuilder.writeIndex(j == numOfIndices); - expected.add(Map.entry(aliasName + formatted("-%06d", j), List.of(amBuilder.build()))); + expected.add(Map.entry(aliasName + Strings.format("-%06d", j), List.of(amBuilder.build()))); } assertThat(actual, containsInAnyOrder(expected.toArray(Object[]::new))); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java index 7dab09997618..3cd40347c8de 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java @@ -12,6 +12,7 @@ import org.apache.lucene.search.TotalHits; import org.elasticsearch.action.admin.cluster.shards.ClusterSearchShardsResponse; import org.elasticsearch.client.internal.Client; import org.elasticsearch.client.internal.node.NodeClient; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchShardTarget; import org.elasticsearch.search.aggregations.AggregationBuilders; @@ -184,7 +185,7 @@ public class SearchProgressActionListenerIT extends ESSingleNodeTestCase { private static List createRandomIndices(Client client) { int numIndices = randomIntBetween(3, 20); for (int i = 0; i < numIndices; i++) { - String indexName = formatted("index-%03d", i); + String indexName = Strings.format("index-%03d", i); assertAcked(client.admin().indices().prepareCreate(indexName).get()); client.prepareIndex(indexName).setSource("number", i, "foo", "bar").get(); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java index 0cfc783f1895..38cf9d57dba3 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/action/support/WaitActiveShardCountIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; import org.elasticsearch.cluster.health.ClusterHealthStatus; import org.elasticsearch.common.Priority; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.xcontent.XContentType; @@ -126,7 +127,7 @@ public class WaitActiveShardCountIT extends ESIntegTestCase { } private String source(String id, String nameValue) { - return formatted(""" + return Strings.format(""" { "type1" : { "id" : "%s", "name" : "%s" } } """, id, nameValue); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/discovery/MasterDisruptionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/discovery/MasterDisruptionIT.java index e2866d669e06..d4a9467818fd 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/discovery/MasterDisruptionIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/discovery/MasterDisruptionIT.java @@ -16,6 +16,7 @@ import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.coordination.NoMasterBlockService; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.disruption.BlockMasterServiceOnMaster; @@ -142,7 +143,7 @@ public class MasterDisruptionIT extends AbstractDisruptionTestCase { assertEquals("different meta data version", state.metadata().version(), nodeState.metadata().version()); assertEquals("different routing", state.routingTable().toString(), nodeState.routingTable().toString()); } catch (AssertionError t) { - fail(formatted(""" + fail(Strings.format(""" failed comparing cluster state: %s --- cluster state of node [%s]: --- %s @@ -202,7 +203,7 @@ public class MasterDisruptionIT extends AbstractDisruptionTestCase { success = false; } if (success == false) { - fail(formatted(""" + fail(Strings.format(""" node [%s] has no master or has blocks, despite of being on the right side of the partition. State dump: %s""", node, nodeState)); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/get/GetActionIT.java b/server/src/internalClusterTest/java/org/elasticsearch/get/GetActionIT.java index a49d38f5c2ea..c486cd5cfe7f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/get/GetActionIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/get/GetActionIT.java @@ -789,7 +789,7 @@ public class GetActionIT extends ESIntegTestCase { void indexSingleDocumentWithStringFieldsGeneratedFromText(boolean stored, boolean sourceEnabled) { String storedString = stored ? "true" : "false"; - String createIndexSource = formatted(""" + String createIndexSource = Strings.format(""" { "settings": { "index.translog.flush_threshold_size": "1pb", diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java index 678efc090323..5b488b6873de 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/indices/IndicesLifecycleListenerIT.java @@ -35,7 +35,6 @@ import org.hamcrest.Matchers; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -272,7 +271,7 @@ public class IndicesLifecycleListenerIT extends ESIntegTestCase { try { assertBusy(waitPredicate, 1, TimeUnit.MINUTES); } catch (AssertionError ae) { - fail(String.format(Locale.ROOT, """ + fail(Strings.format(""" failed to observe expect shard states expected: [%d] shards with states: %s observed: diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java index e438f538151c..8649946308e8 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/indices/mapping/ConcurrentDynamicTemplateIT.java @@ -10,6 +10,7 @@ package org.elasticsearch.indices.mapping; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.index.IndexResponse; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.test.ESIntegTestCase; @@ -28,7 +29,7 @@ public class ConcurrentDynamicTemplateIT extends ESIntegTestCase { // see #3544 public void testConcurrentDynamicMapping() throws Exception { final String fieldName = "field"; - final String mapping = formatted(""" + final String mapping = Strings.format(""" { "dynamic_templates": [ { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java index 69f88b1bc886..9f7c53d49407 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/repositories/IndexSnapshotsServiceIT.java @@ -18,6 +18,7 @@ import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.support.PlainActionFuture; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.util.CollectionUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.Index; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.repositories.fs.FsRepository; @@ -31,7 +32,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Optional; @@ -59,7 +59,7 @@ public class IndexSnapshotsServiceIT extends AbstractSnapshotIntegTestCase { assertThat(repositoryException, is(notNullValue())); assertThat( repositoryException.getMessage(), - equalTo(formatted("[%s] Unable to find the latest snapshot for shard [[idx][0]]", repository)) + equalTo(Strings.format("[%s] Unable to find the latest snapshot for shard [[idx][0]]", repository)) ); } } else { @@ -133,7 +133,7 @@ public class IndexSnapshotsServiceIT extends AbstractSnapshotIntegTestCase { indexRandomDocs(indexName2, 10); } final List snapshotIndices = randomSubsetOf(indices); - final SnapshotInfo snapshotInfo = createSnapshot(repoName, formatted("snap-%03d", i), snapshotIndices); + final SnapshotInfo snapshotInfo = createSnapshot(repoName, Strings.format("snap-%03d", i), snapshotIndices); if (snapshotInfo.indices().contains(indexName)) { lastSnapshot = snapshotInfo; ClusterStateResponse clusterStateResponse = admin().cluster().prepareState().execute().actionGet(); @@ -206,10 +206,12 @@ public class IndexSnapshotsServiceIT extends AbstractSnapshotIntegTestCase { createIndexWithContent(indexName); int snapshotIdx = 0; - createSnapshot(failingRepoName, formatted("snap-%03d", snapshotIdx++), Collections.singletonList(indexName)); + Object[] args1 = new Object[] { snapshotIdx++ }; + createSnapshot(failingRepoName, Strings.format("snap-%03d", args1), Collections.singletonList(indexName)); SnapshotInfo latestSnapshot = null; for (String workingRepoName : workingRepoNames) { - String snapshot = formatted("snap-%03d", snapshotIdx++); + Object[] args = new Object[] { snapshotIdx++ }; + String snapshot = Strings.format("snap-%03d", args); latestSnapshot = createSnapshot(workingRepoName, snapshot, Collections.singletonList(indexName)); } @@ -234,7 +236,7 @@ public class IndexSnapshotsServiceIT extends AbstractSnapshotIntegTestCase { assertThat(error.isPresent(), is(equalTo(true))); assertThat( error.get().getMessage(), - equalTo(String.format(Locale.ROOT, "[%s] Unable to find the latest snapshot for shard [[%s][0]]", failingRepoName, indexName)) + equalTo(Strings.format("[%s] Unable to find the latest snapshot for shard [[%s][0]]", failingRepoName, indexName)) ); for (String workingRepoName : workingRepoNames) { @@ -264,7 +266,8 @@ public class IndexSnapshotsServiceIT extends AbstractSnapshotIntegTestCase { int snapshotIdx = 0; SnapshotInfo expectedLatestSnapshot = null; for (String repository : repositories) { - String snapshot = formatted("snap-%03d", snapshotIdx++); + Object[] args = new Object[] { snapshotIdx++ }; + String snapshot = Strings.format("snap-%03d", args); expectedLatestSnapshot = createSnapshot(repository, snapshot, Collections.singletonList(indexName)); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/script/StoredScriptsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/script/StoredScriptsIT.java index f9c245d20a34..0e3565b63d7f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/script/StoredScriptsIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/script/StoredScriptsIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.script; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.xcontent.XContentType; @@ -40,7 +41,7 @@ public class StoredScriptsIT extends ESIntegTestCase { } public void testBasics() { - assertAcked(client().admin().cluster().preparePutStoredScript().setId("foobar").setContent(new BytesArray(formatted(""" + assertAcked(client().admin().cluster().preparePutStoredScript().setId("foobar").setContent(new BytesArray(Strings.format(""" {"script": {"lang": "%s", "source": "1"} } """, LANG)), XContentType.JSON)); String script = client().admin().cluster().prepareGetStoredScript("foobar").get().getSource().getSource(); @@ -53,9 +54,9 @@ public class StoredScriptsIT extends ESIntegTestCase { IllegalArgumentException e = expectThrows( IllegalArgumentException.class, - () -> client().admin().cluster().preparePutStoredScript().setId("id#").setContent(new BytesArray(formatted(""" + () -> { client().admin().cluster().preparePutStoredScript().setId("id#").setContent(new BytesArray(Strings.format(""" {"script": {"lang": "%s", "source": "1"} } - """, LANG)), XContentType.JSON).get() + """, LANG)), XContentType.JSON).get(); } ); assertEquals("Validation Failed: 1: id cannot contain '#' for stored script;", e.getMessage()); } @@ -63,9 +64,9 @@ public class StoredScriptsIT extends ESIntegTestCase { public void testMaxScriptSize() { IllegalArgumentException e = expectThrows( IllegalArgumentException.class, - () -> client().admin().cluster().preparePutStoredScript().setId("foobar").setContent(new BytesArray(formatted(""" + () -> { client().admin().cluster().preparePutStoredScript().setId("foobar").setContent(new BytesArray(Strings.format(""" {"script": { "lang": "%s", "source":"0123456789abcdef"} }\ - """, LANG)), XContentType.JSON).get() + """, LANG)), XContentType.JSON).get(); } ); assertEquals("exceeded max allowed stored script size in bytes [64] with size [65] for script [foobar]", e.getMessage()); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java index 6272b29c068d..b17e12190405 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.fielddata.ScriptDocValues; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.plugins.Plugin; @@ -520,7 +521,7 @@ public class DoubleTermsIT extends AbstractTermsTestCase { assertThat(terms.getBuckets().size(), equalTo(5)); for (int i = 0; i < 5; i++) { - String key = formatted("%07.2f", (double) i); + String key = Strings.format("%07.2f", (double) i); DoubleTerms.Bucket bucket = terms.getBucketByKey(key); assertThat(bucket, notNullValue()); assertThat(bucket.getKeyAsString(), equalTo(key)); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java index 81f416a48802..122168737c96 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.fielddata.ScriptDocValues; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.plugins.Plugin; @@ -510,7 +511,7 @@ public class LongTermsIT extends AbstractTermsTestCase { assertThat(terms.getBuckets().size(), equalTo(5)); for (int i = 0; i < 5; i++) { - String key = formatted("%04d", i); + String key = Strings.format("%04d", i); LongTerms.Bucket bucket = terms.getBucketByKey(key); assertThat(bucket, notNullValue()); assertThat(bucket.getKeyAsString(), equalTo(key)); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java index c9009b848456..b03991c0af5e 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java @@ -150,7 +150,8 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { classes.toXContent(responseBuilder, ToXContent.EMPTY_PARAMS); responseBuilder.endObject(); - String result = formatted(""" + Object[] args = new Object[] { type.equals("long") ? "0" : "\"0\"", type.equals("long") ? "1" : "\"1\"" }; + String result = Strings.format(""" { "class": { "doc_count_error_upper_bound": 0, @@ -191,7 +192,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { ] } } - """, type.equals("long") ? "0" : "\"0\"", type.equals("long") ? "1" : "\"1\""); + """, args); assertThat(Strings.toString(responseBuilder), equalTo(XContentHelper.stripWhitespace(result))); } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java index 11f020672bf0..6efda3f11d7f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java @@ -15,6 +15,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.MockScriptPlugin; import org.elasticsearch.script.Script; @@ -303,23 +304,29 @@ public class ScriptedMetricIT extends ESIntegTestCase { // When using the MockScriptPlugin we can map Stored scripts to inline scripts: // the id of the stored script is used in test method while the source of the stored script // must match a predefined script from CustomScriptPlugin.pluginScripts() method - assertAcked(client().admin().cluster().preparePutStoredScript().setId("initScript_stored").setContent(new BytesArray(formatted(""" - {"script": {"lang": "%s", "source": "vars.multiplier = 3"} } - """, MockScriptPlugin.NAME)), XContentType.JSON)); - - assertAcked(client().admin().cluster().preparePutStoredScript().setId("mapScript_stored").setContent(new BytesArray(formatted(""" - {"script": {"lang": "%s", "source": "state.list.add(vars.multiplier)"} } - """, MockScriptPlugin.NAME)), XContentType.JSON)); + assertAcked( + client().admin().cluster().preparePutStoredScript().setId("initScript_stored").setContent(new BytesArray(Strings.format(""" + {"script": {"lang": "%s", "source": "vars.multiplier = 3"} } + """, MockScriptPlugin.NAME)), XContentType.JSON) + ); assertAcked( - client().admin().cluster().preparePutStoredScript().setId("combineScript_stored").setContent(new BytesArray(formatted(""" + client().admin().cluster().preparePutStoredScript().setId("mapScript_stored").setContent(new BytesArray(Strings.format(""" + {"script": {"lang": "%s", "source": "state.list.add(vars.multiplier)"} } + """, MockScriptPlugin.NAME)), XContentType.JSON) + ); + + assertAcked( + client().admin().cluster().preparePutStoredScript().setId("combineScript_stored").setContent(new BytesArray(Strings.format(""" {"script": {"lang": "%s", "source": "sum state values as a new aggregation"} } """, MockScriptPlugin.NAME)), XContentType.JSON) ); - assertAcked(client().admin().cluster().preparePutStoredScript().setId("reduceScript_stored").setContent(new BytesArray(formatted(""" - {"script": {"lang": "%s", "source": "sum all states (lists) values as a new aggregation"} } - """, MockScriptPlugin.NAME)), XContentType.JSON)); + assertAcked( + client().admin().cluster().preparePutStoredScript().setId("reduceScript_stored").setContent(new BytesArray(Strings.format(""" + {"script": {"lang": "%s", "source": "sum all states (lists) values as a new aggregation"} } + """, MockScriptPlugin.NAME)), XContentType.JSON) + ); indexRandom(true, builders); ensureSearchable(); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java index e7e538e47fa3..85525e831da3 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/functionscore/DecayFunctionScoreIT.java @@ -20,6 +20,7 @@ import org.elasticsearch.common.lucene.search.function.CombineFunction; import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery; import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery.ScoreMode; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; @@ -771,27 +772,27 @@ public class DecayFunctionScoreIT extends ESIntegTestCase { ZonedDateTime docDate = dt.minusDays(1); String docDateString = docDate.getYear() + "-" - + formatted("%02d", docDate.getMonthValue()) + + Strings.format("%02d", docDate.getMonthValue()) + "-" - + formatted("%02d", docDate.getDayOfMonth()); + + Strings.format("%02d", docDate.getDayOfMonth()); client().index( indexRequest("test").id("1").source(jsonBuilder().startObject().field("test", "value").field("num1", docDateString).endObject()) ).actionGet(); docDate = dt.minusDays(2); docDateString = docDate.getYear() + "-" - + formatted("%02d", docDate.getMonthValue()) + + Strings.format("%02d", docDate.getMonthValue()) + "-" - + formatted("%02d", docDate.getDayOfMonth()); + + Strings.format("%02d", docDate.getDayOfMonth()); client().index( indexRequest("test").id("2").source(jsonBuilder().startObject().field("test", "value").field("num1", docDateString).endObject()) ).actionGet(); docDate = dt.minusDays(3); docDateString = docDate.getYear() + "-" - + formatted("%02d", docDate.getMonthValue()) + + Strings.format("%02d", docDate.getMonthValue()) + "-" - + formatted("%02d", docDate.getDayOfMonth()); + + Strings.format("%02d", docDate.getDayOfMonth()); client().index( indexRequest("test").id("3").source(jsonBuilder().startObject().field("test", "value").field("num1", docDateString).endObject()) ).actionGet(); diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/sort/FieldSortIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/sort/FieldSortIT.java index 90b09bcec27e..c8d1eaf8425f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/sort/FieldSortIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/sort/FieldSortIT.java @@ -20,6 +20,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.ShardSearchFailure; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.fielddata.ScriptDocValues; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; @@ -166,7 +167,7 @@ public class FieldSortIT extends ESIntegTestCase { "foo", "bar", "timeUpdated", - "2014/07/" + formatted("%02d", i + 1) + " " + formatted("%02d", j + 1) + ":00:00" + "2014/07/" + Strings.format("%02d", i + 1) + " " + Strings.format("%02d", j + 1) + ":00:00" ) ); } @@ -191,7 +192,7 @@ public class FieldSortIT extends ESIntegTestCase { .setQuery( QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("foo", "bar")) - .must(QueryBuilders.rangeQuery("timeUpdated").gte("2014/" + formatted("%02d", randomIntBetween(1, 7)) + "/01")) + .must(QueryBuilders.rangeQuery("timeUpdated").gte("2014/" + Strings.format("%02d", randomIntBetween(1, 7)) + "/01")) ) .addSort(new FieldSortBuilder("timeUpdated").order(SortOrder.ASC).unmappedType("date")) .setSize(scaledRandomIntBetween(1, docs)) diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java index 439401383e84..ed9e3ea9c30a 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/suggest/CompletionSuggestSearchIT.java @@ -23,6 +23,7 @@ import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.common.FieldMemoryStats; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.Fuzziness; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.plugins.Plugin; @@ -1248,7 +1249,7 @@ public class CompletionSuggestSearchIT extends ESIntegTestCase { } } else { for (String expectedSuggestion : suggestions) { - String errMsg = String.format(Locale.ROOT, "Expected elem %s to be in list %s", expectedSuggestion, suggestionList); + String errMsg = Strings.format("Expected elem %s to be in list %s", expectedSuggestion, suggestionList); assertThat(errMsg, suggestionList, hasItem(expectedSuggestion)); } } diff --git a/server/src/internalClusterTest/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java index 696e0de5d557..3b5df51f19d6 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/snapshots/CorruptedBlobStoreRepositoryIT.java @@ -22,6 +22,7 @@ import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.core.IOUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.repositories.IndexId; import org.elasticsearch.repositories.IndexMetaDataGenerations; import org.elasticsearch.repositories.Repository; @@ -39,7 +40,6 @@ import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; @@ -289,7 +289,7 @@ public class CorruptedBlobStoreRepositoryIT extends AbstractSnapshotIntegTestCas final SnapshotId snapshotToCorrupt = randomFrom(repositoryData.getSnapshotIds()); logger.info("--> delete root level snapshot metadata blob for snapshot [{}]", snapshotToCorrupt); - Files.delete(repo.resolve(String.format(Locale.ROOT, BlobStoreRepository.SNAPSHOT_NAME_FORMAT, snapshotToCorrupt.getUUID()))); + Files.delete(repo.resolve(Strings.format(BlobStoreRepository.SNAPSHOT_NAME_FORMAT, snapshotToCorrupt.getUUID()))); logger.info("--> strip version information from index-N blob"); final RepositoryData withoutVersions = new RepositoryData( diff --git a/server/src/internalClusterTest/java/org/elasticsearch/versioning/SimpleVersioningIT.java b/server/src/internalClusterTest/java/org/elasticsearch/versioning/SimpleVersioningIT.java index 052c61635bab..7004e79c0866 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/versioning/SimpleVersioningIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/versioning/SimpleVersioningIT.java @@ -19,13 +19,13 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.lucene.uid.Versions; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.VersionType; import org.elasticsearch.index.engine.VersionConflictEngineException; import org.elasticsearch.test.ESIntegTestCase; import java.util.HashMap; import java.util.HashSet; -import java.util.Locale; import java.util.Map; import java.util.Random; import java.util.Set; @@ -471,7 +471,7 @@ public class SimpleVersioningIT extends ESIntegTestCase { // zero-pad sequential logger.info("--> use zero-padded sequential ids"); yield new IDSource() { - final String zeroPad = String.format(Locale.ROOT, "%0" + TestUtil.nextInt(random, 4, 20) + "d", 0); + final String zeroPad = Strings.format("%0" + TestUtil.nextInt(random, 4, 20) + "d", 0); int upto; @Override diff --git a/server/src/main/java/org/elasticsearch/common/Strings.java b/server/src/main/java/org/elasticsearch/common/Strings.java index 2a338e6f6b4c..d0dab040558b 100644 --- a/server/src/main/java/org/elasticsearch/common/Strings.java +++ b/server/src/main/java/org/elasticsearch/common/Strings.java @@ -917,4 +917,11 @@ public class Strings { .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) .toString(); } + + /** + * Alias for {@link org.elasticsearch.core.Strings#format} + */ + public static String format(String format, Object... args) { + return org.elasticsearch.core.Strings.format(format, args); + } } diff --git a/server/src/test/java/org/elasticsearch/ElasticsearchExceptionTests.java b/server/src/test/java/org/elasticsearch/ElasticsearchExceptionTests.java index da5ef8984c22..1c54ad4e6b94 100644 --- a/server/src/test/java/org/elasticsearch/ElasticsearchExceptionTests.java +++ b/server/src/test/java/org/elasticsearch/ElasticsearchExceptionTests.java @@ -588,9 +588,10 @@ public class ElasticsearchExceptionTests extends ESTestCase { builder.endObject(); actual = Strings.toString(builder); } - assertThat(actual, startsWith(formatted(""" + Object[] args = new Object[] { Constants.WINDOWS ? "\\r\\n" : "\\n" }; + assertThat(actual, startsWith(Strings.format(""" {"type":"exception","reason":"foo","caused_by":{"type":"illegal_state_exception","reason":"bar",\ - "stack_trace":"java.lang.IllegalStateException: bar%s\\tat org.elasticsearch.""", Constants.WINDOWS ? "\\r\\n" : "\\n"))); + "stack_trace":"java.lang.IllegalStateException: bar%s\\tat org.elasticsearch.""", args))); } } diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainActionTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainActionTests.java index bf5709656083..a6b576115499 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainActionTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplainActionTests.java @@ -93,44 +93,36 @@ public class ClusterAllocationExplainActionTests extends ESTestCase { } else { explanation = "the shard is in the process of initializing on node [], " + "wait until initialization has completed"; } - assertEquals( - XContentHelper.stripWhitespace( - formatted( + Object[] args = new Object[] { + shardRoutingState.toString().toLowerCase(Locale.ROOT), + shard.unassignedInfo() != null + ? Strings.format( """ - { - "index": "idx", - "shard": 0, - "primary": true, - "current_state": "%s" - %s, - "current_node": { - "id": "%s", - "name": "%s", - "transport_address": "%s" - }, - "explanation": "%s" - }""", - shardRoutingState.toString().toLowerCase(Locale.ROOT), - shard.unassignedInfo() != null - ? formatted( - """ - ,"unassigned_info": {"reason": "%s", "at": "%s", "last_allocation_status": "%s"} - """, - shard.unassignedInfo().getReason(), - UnassignedInfo.DATE_TIME_FORMATTER.format( - Instant.ofEpochMilli(shard.unassignedInfo().getUnassignedTimeInMillis()) - ), - AllocationDecision.fromAllocationStatus(shard.unassignedInfo().getLastAllocationStatus()) - ) - : "", - cae.getCurrentNode().getId(), - cae.getCurrentNode().getName(), - cae.getCurrentNode().getAddress(), - explanation + ,"unassigned_info": {"reason": "%s", "at": "%s", "last_allocation_status": "%s"} + """, + shard.unassignedInfo().getReason(), + UnassignedInfo.DATE_TIME_FORMATTER.format(Instant.ofEpochMilli(shard.unassignedInfo().getUnassignedTimeInMillis())), + AllocationDecision.fromAllocationStatus(shard.unassignedInfo().getLastAllocationStatus()) ) - ), - Strings.toString(builder) - ); + : "", + cae.getCurrentNode().getId(), + cae.getCurrentNode().getName(), + cae.getCurrentNode().getAddress(), + explanation }; + assertEquals(XContentHelper.stripWhitespace(Strings.format(""" + { + "index": "idx", + "shard": 0, + "primary": true, + "current_state": "%s" + %s, + "current_node": { + "id": "%s", + "name": "%s", + "transport_address": "%s" + }, + "explanation": "%s" + }""", args)), Strings.toString(builder)); } public void testFindAnyUnassignedShardToExplain() { diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplanationTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplanationTests.java index 071fe0c9df02..e9d016329462 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplanationTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/allocation/ClusterAllocationExplanationTests.java @@ -84,7 +84,7 @@ public final class ClusterAllocationExplanationTests extends ESTestCase { ClusterAllocationExplanation cae = randomClusterAllocationExplanation(true, true); XContentBuilder builder = XContentFactory.jsonBuilder(); cae.toXContent(builder, ToXContent.EMPTY_PARAMS); - assertEquals(XContentHelper.stripWhitespace(formatted(""" + assertEquals(XContentHelper.stripWhitespace(Strings.format(""" { "index": "idx", "shard": 0, @@ -112,7 +112,7 @@ public final class ClusterAllocationExplanationTests extends ESTestCase { actual, equalTo( XContentHelper.stripWhitespace( - formatted( + Strings.format( """ { "note": "%s", diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteResponseTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteResponseTests.java index 98f8e7385a2f..62ff727291e1 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteResponseTests.java @@ -60,7 +60,7 @@ public class ClusterRerouteResponseTests extends ESTestCase { var result = toXContent(clusterRerouteResponse, new ToXContent.MapParams(Map.of("explain", "true", "metric", "none"))); - assertThat(result, equalTo(XContentHelper.stripWhitespace(formatted(""" + assertThat(result, equalTo(XContentHelper.stripWhitespace(Strings.format(""" { "acknowledged": true, "explanations": [ @@ -90,7 +90,7 @@ public class ClusterRerouteResponseTests extends ESTestCase { var result = toXContent(clusterRerouteResponse, ToXContent.EMPTY_PARAMS); - assertThat(result, equalTo(XContentHelper.stripWhitespace(formatted(""" + assertThat(result, equalTo(XContentHelper.stripWhitespace(Strings.format(""" { "acknowledged": true, "state": { diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotStatusTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotStatusTests.java index fe5d4e92bd22..a6e4bf5afe64 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotStatusTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/snapshots/status/SnapshotStatusTests.java @@ -11,6 +11,7 @@ package org.elasticsearch.action.admin.cluster.snapshots.status; import org.elasticsearch.cluster.SnapshotsInProgress; import org.elasticsearch.common.UUIDs; import org.elasticsearch.common.io.stream.Writeable; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.snapshots.Snapshot; import org.elasticsearch.snapshots.SnapshotId; @@ -55,7 +56,7 @@ public class SnapshotStatusTests extends AbstractChunkedSerializingTestCase failedShards++; } - String expected = formatted( + String expected = Strings.format( """ { "snapshot" : "test-snap", diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsNodesTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsNodesTests.java index 66305cdf5fef..8f642d48de12 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsNodesTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsNodesTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.action.admin.cluster.node.stats.NodeStatsTests; import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.common.network.NetworkModule; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.stats.IndexingPressureStats; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.XContentType; @@ -92,7 +93,7 @@ public class ClusterStatsNodesTests extends ESTestCase { long failedCount = statValues[1]; long current = statValues[2]; long timeInMillis = statValues[3]; - processorStatsString.append(formatted(""" + processorStatsString.append(Strings.format(""" "%s":{"count":%s,"failed":%s,"current":%s,"time_in_millis":%s}\ """, entry.getKey(), count, failedCount, current, timeInMillis)); if (iter.hasNext()) { @@ -100,7 +101,7 @@ public class ClusterStatsNodesTests extends ESTestCase { } } processorStatsString.append("}"); - assertThat(toXContent(stats, XContentType.JSON, false).utf8ToString(), equalTo(formatted(""" + assertThat(toXContent(stats, XContentType.JSON, false).utf8ToString(), equalTo(Strings.format(""" {"ingest":{"number_of_pipelines":%s,"processor_stats":%s}}\ """, stats.pipelineCount, processorStatsString))); } diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/IndexFeatureStatsTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/IndexFeatureStatsTests.java index 8e6000b601ea..d06094b6ef97 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/IndexFeatureStatsTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/stats/IndexFeatureStatsTests.java @@ -28,7 +28,7 @@ public class IndexFeatureStatsTests extends AbstractWireSerializingTestCase builder.setSource(formatted("{ \"%s\": \"%s\" }", KEY, VALUE), XContentType.JSON) + () -> { builder.setSource(Strings.format("{ \"%s\": \"%s\" }", KEY, VALUE), XContentType.JSON); } ); - assertEquals(formatted("unknown key [%s] for create index", KEY), e.getMessage()); + assertEquals(Strings.format("unknown key [%s] for create index", KEY), e.getMessage()); - builder.setSource(formatted("{ \"settings\": { \"%s\": \"%s\" }}", KEY, VALUE), XContentType.JSON); + builder.setSource(Strings.format("{ \"settings\": { \"%s\": \"%s\" }}", KEY, VALUE), XContentType.JSON); assertEquals(VALUE, builder.request().settings().get(KEY)); XContentBuilder xContent = XContentFactory.jsonBuilder() diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/get/GetIndexRequestTests.java b/server/src/test/java/org/elasticsearch/action/admin/indices/get/GetIndexRequestTests.java index f4974d626714..21c5d0bee47e 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/indices/get/GetIndexRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/indices/get/GetIndexRequestTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.action.admin.indices.get; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestRequestTests; import org.elasticsearch.test.ESTestCase; @@ -68,6 +69,6 @@ public class GetIndexRequestTests extends ESTestCase { RestRequest request = RestRequestTests.contentRestRequest("", Map.of("features", String.join(",", invalidFeatures))); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> GetIndexRequest.Feature.fromRequest(request)); - assertThat(e.getMessage(), containsString(formatted("Invalid features specified [%s]", String.join(",", invalidFeatures)))); + assertThat(e.getMessage(), containsString(Strings.format("Invalid features specified [%s]", String.join(",", invalidFeatures)))); } } diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverServiceTests.java b/server/src/test/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverServiceTests.java index 9500af1d086f..5628848f38bc 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverServiceTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverServiceTests.java @@ -276,7 +276,7 @@ public class MetadataRolloverServiceTests extends ESTestCase { String indexEndingInNumbers = indexPrefix + "-" + num; assertThat( MetadataRolloverService.generateRolloverIndexName(indexEndingInNumbers), - equalTo(indexPrefix + "-" + formatted("%06d", num + 1)) + equalTo(indexPrefix + "-" + Strings.format("%06d", num + 1)) ); assertThat(MetadataRolloverService.generateRolloverIndexName("index-name-1"), equalTo("index-name-000002")); assertThat(MetadataRolloverService.generateRolloverIndexName("index-name-2"), equalTo("index-name-000003")); diff --git a/server/src/test/java/org/elasticsearch/action/admin/indices/template/reservedstate/ReservedComposableIndexTemplateActionTests.java b/server/src/test/java/org/elasticsearch/action/admin/indices/template/reservedstate/ReservedComposableIndexTemplateActionTests.java index 8bd4a80e0bf6..89e4bd59f0c3 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/indices/template/reservedstate/ReservedComposableIndexTemplateActionTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/indices/template/reservedstate/ReservedComposableIndexTemplateActionTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.cluster.metadata.ReservedStateMetadata; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.settings.IndexScopedSettings; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.IndexService; import org.elasticsearch.index.IndexSettingProviders; import org.elasticsearch.index.mapper.MapperService; @@ -49,7 +50,6 @@ import org.junit.Before; import java.io.IOException; import java.util.Collections; -import java.util.Locale; import java.util.Map; import java.util.Set; @@ -804,7 +804,7 @@ public class ReservedComposableIndexTemplateActionTests extends ESTestCase { try ( XContentParser parser = XContentType.JSON.xContent() - .createParser(XContentParserConfiguration.EMPTY, String.format(Locale.ROOT, composableTemplate, "template_1")) + .createParser(XContentParserConfiguration.EMPTY, Strings.format(composableTemplate, "template_1")) ) { var request = action.fromXContent(parser).composableTemplates().get(0); assertTrue( @@ -817,7 +817,7 @@ public class ReservedComposableIndexTemplateActionTests extends ESTestCase { try ( XContentParser parser = XContentType.JSON.xContent() - .createParser(XContentParserConfiguration.EMPTY, String.format(Locale.ROOT, composableTemplate, "template_2")) + .createParser(XContentParserConfiguration.EMPTY, Strings.format(composableTemplate, "template_2")) ) { var request = action.fromXContent(parser).composableTemplates().get(0); // this should just work, no failure @@ -829,7 +829,7 @@ public class ReservedComposableIndexTemplateActionTests extends ESTestCase { final String conflictingTemplateName = "validate_template"; // Reserve the validate_template name in the reserved metadata - String composableTemplate = String.format(Locale.ROOT, """ + String composableTemplate = Strings.format(""" { "composable_index_templates": { "%s": { diff --git a/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorTests.java b/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorTests.java index 7605a305f028..aa4ad9824fd0 100644 --- a/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorTests.java +++ b/server/src/test/java/org/elasticsearch/action/bulk/BulkProcessorTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.test.ESTestCase; @@ -289,7 +290,7 @@ public class BulkProcessorTests extends ESTestCase { Concurrent Bulk Requests: %s """; fail( - formatted( + Strings.format( message, expectedExecutions, requestCount.get(), @@ -420,7 +421,7 @@ public class BulkProcessorTests extends ESTestCase { Concurrent Bulk Requests: %d """; fail( - formatted( + Strings.format( message, requestCount.get(), successCount.get(), diff --git a/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesTests.java b/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesTests.java index 9c354451c409..75a97fdcb98a 100644 --- a/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesTests.java +++ b/server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesTests.java @@ -11,6 +11,7 @@ package org.elasticsearch.action.fieldcaps; import org.apache.lucene.util.ArrayUtil; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.util.iterable.Iterables; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.mapper.TimeSeriesParams; import org.elasticsearch.test.AbstractXContentSerializingTestCase; import org.elasticsearch.xcontent.XContentParser; @@ -21,7 +22,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.stream.IntStream; @@ -167,9 +167,7 @@ public class FieldCapabilitiesTests extends AbstractXContentSerializingTestCase< } public void testRandomBuilder() { - String[] indices = IntStream.range(0, randomIntBetween(1, 50)) - .mapToObj(n -> String.format(Locale.ROOT, "index_%2d", n)) - .toArray(String[]::new); + String[] indices = IntStream.range(0, randomIntBetween(1, 50)).mapToObj(n -> Strings.format("index_%2d", n)).toArray(String[]::new); List nonSearchableIndices = new ArrayList<>(); List nonAggregatableIndices = new ArrayList<>(); @@ -238,7 +236,7 @@ public class FieldCapabilitiesTests extends AbstractXContentSerializingTestCase< } public void testBuilderSingleMetricType() { - List indices = IntStream.range(0, randomIntBetween(1, 50)).mapToObj(n -> formatted("index_%2d", n)).toList(); + List indices = IntStream.range(0, randomIntBetween(1, 50)).mapToObj(n -> Strings.format("index_%2d", n)).toList(); TimeSeriesParams.MetricType metric = randomBoolean() ? null : randomFrom(TimeSeriesParams.MetricType.values()); FieldCapabilities.Builder builder = new FieldCapabilities.Builder("field", "type"); for (String index : indices) { @@ -250,7 +248,7 @@ public class FieldCapabilitiesTests extends AbstractXContentSerializingTestCase< } public void testBuilderMixedMetricType() { - List indices = IntStream.range(0, randomIntBetween(1, 50)).mapToObj(n -> formatted("index_%2d", n)).toList(); + List indices = IntStream.range(0, randomIntBetween(1, 50)).mapToObj(n -> Strings.format("index_%2d", n)).toList(); Map metricTypes = new HashMap<>(); for (String index : indices) { if (randomBoolean()) { diff --git a/server/src/test/java/org/elasticsearch/action/index/IndexRequestTests.java b/server/src/test/java/org/elasticsearch/action/index/IndexRequestTests.java index 58fc7c9040f5..8840335c6c06 100644 --- a/server/src/test/java/org/elasticsearch/action/index/IndexRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/index/IndexRequestTests.java @@ -20,6 +20,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.time.DateFormatter; import org.elasticsearch.common.time.FormatNames; import org.elasticsearch.common.unit.ByteSizeValue; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.VersionType; import org.elasticsearch.index.seqno.SequenceNumbers; @@ -145,23 +146,19 @@ public class IndexRequestTests extends ESTestCase { assertEquals(total, indexResponse.getShardInfo().getTotal()); assertEquals(successful, indexResponse.getShardInfo().getSuccessful()); assertEquals(forcedRefresh, indexResponse.forcedRefresh()); - assertEquals( - formatted( - """ - IndexResponse[index=%s,id=%s,version=%s,result=%s,seqNo=%s,primaryTerm=%s,shards=\ - {"total":%s,"successful":%s,"failed":0}]\ - """, - shardId.getIndexName(), - id, - version, - created ? "created" : "updated", - SequenceNumbers.UNASSIGNED_SEQ_NO, - 0, - total, - successful - ), - indexResponse.toString() - ); + Object[] args = new Object[] { + shardId.getIndexName(), + id, + version, + created ? "created" : "updated", + SequenceNumbers.UNASSIGNED_SEQ_NO, + 0, + total, + successful }; + assertEquals(Strings.format(""" + IndexResponse[index=%s,id=%s,version=%s,result=%s,seqNo=%s,primaryTerm=%s,shards=\ + {"total":%s,"successful":%s,"failed":0}]\ + """, args), indexResponse.toString()); } public void testIndexRequestXContentSerialization() throws IOException { @@ -257,7 +254,7 @@ public class IndexRequestTests extends ESTestCase { request.source(source, XContentType.JSON); assertEquals("index {[index][null], source[" + source + "]}", request.toString()); - source = formatted(""" + source = Strings.format(""" {"name":"%s"} """, randomUnicodeOfLength(IndexRequest.MAX_SOURCE_LENGTH_IN_TOSTRING)); request.source(source, XContentType.JSON); diff --git a/server/src/test/java/org/elasticsearch/action/main/MainResponseTests.java b/server/src/test/java/org/elasticsearch/action/main/MainResponseTests.java index b7f569a51908..f591a40315ae 100644 --- a/server/src/test/java/org/elasticsearch/action/main/MainResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/main/MainResponseTests.java @@ -57,7 +57,7 @@ public class MainResponseTests extends AbstractXContentSerializingTestCase roles = new HashSet<>(randomSubsetOf(DiscoveryNodeRole.roles())); Collections.addAll(roles, mustHaveRoles); - final String id = formatted("node_%03d", nodeIdGenerator.incrementAndGet()); + final String id = Strings.format("node_%03d", nodeIdGenerator.incrementAndGet()); return new DiscoveryNode(id, id, buildNewFakeTransportAddress(), Collections.emptyMap(), roles, version); } diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/ComponentTemplateTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/ComponentTemplateTests.java index f93051ec914b..66f452421d08 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/ComponentTemplateTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/ComponentTemplateTests.java @@ -206,10 +206,10 @@ public class ComponentTemplateTests extends SimpleDiffableSerializationTestCase< { String randomString = randomAlphaOfLength(10); - CompressedXContent m1 = new CompressedXContent(formatted(""" + CompressedXContent m1 = new CompressedXContent(Strings.format(""" {"properties":{"%s":{"type":"keyword"}}} """, randomString)); - CompressedXContent m2 = new CompressedXContent(formatted(""" + CompressedXContent m2 = new CompressedXContent(Strings.format(""" {"properties":{"%s":{"type":"keyword"}}} """, randomString)); assertThat(Template.mappingsEquals(m1, m2), equalTo(true)); @@ -217,14 +217,14 @@ public class ComponentTemplateTests extends SimpleDiffableSerializationTestCase< { CompressedXContent m1 = randomMappings(); - CompressedXContent m2 = new CompressedXContent(formatted(""" + CompressedXContent m2 = new CompressedXContent(Strings.format(""" {"properties":{"%s":{"type":"keyword"}}} """, randomAlphaOfLength(10))); assertThat(Template.mappingsEquals(m1, m2), equalTo(false)); } { - Map map = XContentHelper.convertToMap(new BytesArray(formatted(""" + Map map = XContentHelper.convertToMap(new BytesArray(Strings.format(""" {"%s":{"properties":{"%s":{"type":"keyword"}}}} """, MapperService.SINGLE_MAPPING_NAME, randomAlphaOfLength(10))), true, XContentType.JSON).v2(); Map reduceMap = Template.reduceMapping(map); diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamTests.java index 6a49a437d024..576259e6e31b 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/DataStreamTests.java @@ -183,7 +183,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase original.removeBackingIndex(indexToRemove)); assertThat( e.getMessage(), - equalTo(String.format(Locale.ROOT, "index [%s] is not part of data stream [%s]", indexToRemove.getName(), dataStreamName)) + equalTo(Strings.format("index [%s] is not part of data stream [%s]", indexToRemove.getName(), dataStreamName)) ); } @@ -398,7 +398,7 @@ public class DataStreamTests extends AbstractXContentSerializingTestCase additions = Maps.newMapWithExpectedSize(additionsCount); for (int i = 0; i < additionsCount; i++) { - additions.put("add_template_" + i, new BytesArray(formatted(""" + additions.put("add_template_" + i, new BytesArray(Strings.format(""" {"index_patterns" : "*", "order" : %s} """, i))); } diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/ToAndFromJsonMetadataTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/ToAndFromJsonMetadataTests.java index 4e52fcc6d12f..6a412f81d516 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/ToAndFromJsonMetadataTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/ToAndFromJsonMetadataTests.java @@ -230,7 +230,7 @@ public class ToAndFromJsonMetadataTests extends ESTestCase { ChunkedToXContent.wrapAsToXContent(metadata).toXContent(builder, new ToXContent.MapParams(mapParams)); builder.endObject(); - assertEquals(formatted(""" + assertEquals(Strings.format(""" { "meta-data" : { "version" : 0, @@ -318,7 +318,7 @@ public class ToAndFromJsonMetadataTests extends ESTestCase { ChunkedToXContent.wrapAsToXContent(metadata).toXContent(builder, new ToXContent.MapParams(mapParams)); builder.endObject(); - assertEquals(formatted(""" + assertEquals(Strings.format(""" { "metadata" : { "cluster_uuid" : "clusterUUID", @@ -389,7 +389,7 @@ public class ToAndFromJsonMetadataTests extends ESTestCase { ChunkedToXContent.wrapAsToXContent(metadata).toXContent(builder, new ToXContent.MapParams(mapParams)); builder.endObject(); - assertEquals(formatted(""" + assertEquals(Strings.format(""" { "meta-data" : { "version" : 0, @@ -455,7 +455,7 @@ public class ToAndFromJsonMetadataTests extends ESTestCase { ChunkedToXContent.wrapAsToXContent(metadata).toXContent(builder, new ToXContent.MapParams(mapParams)); builder.endObject(); - assertEquals(formatted(""" + assertEquals(Strings.format(""" { "metadata" : { "cluster_uuid" : "clusterUUID", @@ -558,7 +558,7 @@ public class ToAndFromJsonMetadataTests extends ESTestCase { ChunkedToXContent.wrapAsToXContent(metadata).toXContent(builder, new ToXContent.MapParams(mapParams)); builder.endObject(); - assertEquals(formatted(""" + assertEquals(Strings.format(""" { "metadata" : { "cluster_uuid" : "clusterUUID", @@ -693,7 +693,7 @@ public class ToAndFromJsonMetadataTests extends ESTestCase { ChunkedToXContent.wrapAsToXContent(metadata).toXContent(builder, new ToXContent.MapParams(mapParams)); builder.endObject(); - assertEquals(formatted(""" + assertEquals(Strings.format(""" { "metadata" : { "cluster_uuid" : "clusterUUID", diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecisionTests.java b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecisionTests.java index 31814d9c1f42..064411b8be59 100644 --- a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecisionTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/AllocateUnassignedDecisionTests.java @@ -13,13 +13,13 @@ import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.routing.UnassignedInfo.AllocationStatus; import org.elasticsearch.cluster.routing.allocation.decider.Decision; import org.elasticsearch.common.io.stream.BytesStreamOutput; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Locale; import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; @@ -58,10 +58,7 @@ public class AllocateUnassignedDecisionTests extends ESTestCase { if (allocationStatus == AllocationStatus.FETCHING_SHARD_DATA) { assertEquals(Explanations.Allocation.AWAITING_INFO, noDecision.getExplanation()); } else if (allocationStatus == AllocationStatus.DELAYED_ALLOCATION) { - assertThat( - noDecision.getExplanation(), - equalTo(String.format(Locale.ROOT, Explanations.Allocation.DELAYED_WITHOUT_ALTERNATIVE, "0s")) - ); + assertThat(noDecision.getExplanation(), equalTo(Strings.format(Explanations.Allocation.DELAYED_WITHOUT_ALTERNATIVE, "0s"))); } else { assertThat(noDecision.getExplanation(), equalTo(Explanations.Allocation.NO_COPIES)); } diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/FailedNodeRoutingTests.java b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/FailedNodeRoutingTests.java index 9c47c227972d..4126811d3b08 100644 --- a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/FailedNodeRoutingTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/FailedNodeRoutingTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.cluster.routing.RoutingTable; import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.routing.allocation.decider.ClusterRebalanceAllocationDecider; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.indices.cluster.ClusterStateChanges; import org.elasticsearch.test.VersionUtils; import org.elasticsearch.threadpool.TestThreadPool; @@ -220,7 +221,7 @@ public class FailedNodeRoutingTests extends ESAllocationTestCase { protected DiscoveryNode createNode(DiscoveryNodeRole... mustHaveRoles) { Set roles = new HashSet<>(randomSubsetOf(DiscoveryNodeRole.roles())); Collections.addAll(roles, mustHaveRoles); - final String id = formatted("node_%03d", nodeIdGenerator.incrementAndGet()); + final String id = Strings.format("node_%03d", nodeIdGenerator.incrementAndGet()); return new DiscoveryNode( id, id, diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java index e078934adce6..6d71b31e6699 100644 --- a/server/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.cluster.routing.allocation.decider.Decision; import org.elasticsearch.cluster.routing.allocation.decider.SameShardAllocationDecider; import org.elasticsearch.common.settings.ClusterSettings; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.Index; import org.elasticsearch.snapshots.SnapshotShardSizeInfo; @@ -232,7 +233,7 @@ public class SameShardRoutingTests extends ESAllocationTestCase { assertThat( decision.getExplanation(), equalTo( - formatted( + Strings.format( """ cannot allocate to node [%s] because a copy of this shard is already allocated to node [%s] with the same host \ address [%s] and [%s] is [true] which forbids more than one node on each host from holding a copy of this shard\ diff --git a/server/src/test/java/org/elasticsearch/common/io/stream/AbstractStreamTests.java b/server/src/test/java/org/elasticsearch/common/io/stream/AbstractStreamTests.java index d673572d25a1..451dabf6cf3b 100644 --- a/server/src/test/java/org/elasticsearch/common/io/stream/AbstractStreamTests.java +++ b/server/src/test/java/org/elasticsearch/common/io/stream/AbstractStreamTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.common.util.set.Sets; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.CheckedFunction; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.test.ESTestCase; @@ -76,7 +77,7 @@ public abstract class AbstractStreamTests extends ESTestCase { final byte[] corruptBytes = new byte[] { randomFrom(set) }; final BytesReference corrupt = new BytesArray(corruptBytes); final IllegalStateException e = expectThrows(IllegalStateException.class, () -> getStreamInput(corrupt).readBoolean()); - final String message = formatted("unexpected byte [0x%02x]", corruptBytes[0]); + final String message = Strings.format("unexpected byte [0x%02x]", corruptBytes[0]); assertThat(e, hasToString(containsString(message))); } @@ -111,7 +112,7 @@ public abstract class AbstractStreamTests extends ESTestCase { final byte[] corruptBytes = new byte[] { randomFrom(set) }; final BytesReference corrupt = new BytesArray(corruptBytes); final IllegalStateException e = expectThrows(IllegalStateException.class, () -> getStreamInput(corrupt).readOptionalBoolean()); - final String message = formatted("unexpected byte [0x%02x]", corruptBytes[0]); + final String message = Strings.format("unexpected byte [0x%02x]", corruptBytes[0]); assertThat(e, hasToString(containsString(message))); } diff --git a/server/src/test/java/org/elasticsearch/common/time/JavaDateMathParserTests.java b/server/src/test/java/org/elasticsearch/common/time/JavaDateMathParserTests.java index 627861f0a9f7..1b17b266d9cb 100644 --- a/server/src/test/java/org/elasticsearch/common/time/JavaDateMathParserTests.java +++ b/server/src/test/java/org/elasticsearch/common/time/JavaDateMathParserTests.java @@ -9,6 +9,7 @@ package org.elasticsearch.common.time; import org.elasticsearch.ElasticsearchParseException; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import java.time.Instant; @@ -403,7 +404,7 @@ public class JavaDateMathParserTests extends ESTestCase { long expectedMillis = parser.parse(expected, () -> 0).toEpochMilli(); if (gotMillis != expectedMillis) { ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(gotMillis), ZoneOffset.UTC); - fail(formatted(""" + fail(Strings.format(""" Date math not equal Original : %s Parsed : %s diff --git a/server/src/test/java/org/elasticsearch/gateway/PriorityComparatorTests.java b/server/src/test/java/org/elasticsearch/gateway/PriorityComparatorTests.java index f4c65d9cf576..6495a730bc37 100644 --- a/server/src/test/java/org/elasticsearch/gateway/PriorityComparatorTests.java +++ b/server/src/test/java/org/elasticsearch/gateway/PriorityComparatorTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.routing.ShardRoutingState; import org.elasticsearch.cluster.routing.TestShardRouting; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.Index; import org.elasticsearch.test.ESTestCase; @@ -198,7 +199,7 @@ public class PriorityComparatorTests extends ESTestCase { } // else sometimes just use the defaults - indices[i] = IndexMetadata.builder(formatted("idx_%04d", i)) + indices[i] = IndexMetadata.builder(Strings.format("idx_%04d", i)) .system(isSystem) .settings(buildSettings(creationDate, priority)) .build(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java index 17e1f096cf29..5a86d03729c0 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DateFieldMapperTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.time.DateFormatter; import org.elasticsearch.common.time.DateUtils; import org.elasticsearch.core.CheckedConsumer; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType; import org.elasticsearch.script.DateFieldScript; @@ -531,7 +532,7 @@ public class DateFieldMapperTests extends MapperTestCase { private String randomIs8601Nanos(long maxMillis) { String date = DateFieldMapper.DEFAULT_DATE_TIME_NANOS_FORMATTER.formatMillis(randomLongBetween(0, maxMillis)); date = date.substring(0, date.length() - 1); // Strip off trailing "Z" - return date + formatted("%06d", between(0, 999999)) + "Z"; // Add nanos and the "Z" + return date + Strings.format("%06d", between(0, 999999)) + "Z"; // Add nanos and the "Z" } private String randomDecimalNanos(long maxMillis) { diff --git a/server/src/test/java/org/elasticsearch/index/query/AbstractTermQueryTestCase.java b/server/src/test/java/org/elasticsearch/index/query/AbstractTermQueryTestCase.java index 71c71e846dbe..052582e178ac 100644 --- a/server/src/test/java/org/elasticsearch/index/query/AbstractTermQueryTestCase.java +++ b/server/src/test/java/org/elasticsearch/index/query/AbstractTermQueryTestCase.java @@ -8,6 +8,7 @@ package org.elasticsearch.index.query; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.xcontent.json.JsonStringEncoder; @@ -39,7 +40,7 @@ public abstract class AbstractTermQueryTestCase getAlternateVersions() { Map alternateVersions = new HashMap<>(); FuzzyQueryBuilder fuzzyQuery = new FuzzyQueryBuilder(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10)); - String contentString = formatted(""" + String contentString = Strings.format(""" { "fuzzy" : { "%s" : "%s" @@ -84,7 +85,7 @@ public class FuzzyQueryBuilderTests extends AbstractQueryTestCase parseQuery(queryInvalidLat).toQuery(context)); assertThat(e1.getMessage(), containsString("illegal latitude value [140.0] for [geo_polygon]")); - String queryInvalidLon = formatted(""" + String queryInvalidLon = Strings.format(""" { "geo_polygon": { "%s": { diff --git a/server/src/test/java/org/elasticsearch/index/query/IntervalQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/IntervalQueryBuilderTests.java index 855f0ca07250..79cc850c4b8c 100644 --- a/server/src/test/java/org/elasticsearch/index/query/IntervalQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/IntervalQueryBuilderTests.java @@ -180,7 +180,7 @@ public class IntervalQueryBuilderTests extends AbstractQueryTestCase getAlternateVersions() { Map alternateVersions = new HashMap<>(); MatchQueryBuilder matchQuery = new MatchQueryBuilder(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10)); - String contentString = formatted(""" + String contentString = Strings.format(""" { "match" : { "%s" : "%s" diff --git a/server/src/test/java/org/elasticsearch/index/query/MultiMatchQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/MultiMatchQueryBuilderTests.java index 7242a4ef9b77..aba90ec5fda4 100644 --- a/server/src/test/java/org/elasticsearch/index/query/MultiMatchQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/MultiMatchQueryBuilderTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.lucene.search.MultiPhrasePrefixQuery; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.Fuzziness; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.MultiMatchQueryBuilder.Type; import org.elasticsearch.test.AbstractQueryTestCase; import org.hamcrest.Matchers; @@ -329,7 +330,7 @@ public class MultiMatchQueryBuilderTests extends AbstractQueryTestCase getAlternateVersions() { Map alternateVersions = new HashMap<>(); PrefixQueryBuilder prefixQuery = randomPrefixQuery(); - String contentString = formatted(""" + String contentString = Strings.format(""" { "prefix" : { "%s" : "%s" diff --git a/server/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java index a5ee2ac66515..2f3433cec643 100644 --- a/server/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java @@ -873,7 +873,7 @@ public class QueryStringQueryBuilderTests extends AbstractQueryTestCase getAlternateVersions() { Map alternateVersions = new HashMap<>(); RegexpQueryBuilder regexpQuery = randomRegexpQuery(); - String contentString = formatted(""" + String contentString = Strings.format(""" { "regexp" : { "%s" : "%s" diff --git a/server/src/test/java/org/elasticsearch/index/query/WildcardQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/WildcardQueryBuilderTests.java index 53dc2ba8edca..a6e90c6c2261 100644 --- a/server/src/test/java/org/elasticsearch/index/query/WildcardQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/WildcardQueryBuilderTests.java @@ -13,6 +13,7 @@ import org.apache.lucene.search.MatchNoDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.WildcardQuery; import org.elasticsearch.common.ParsingException; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.AbstractQueryTestCase; import java.io.IOException; @@ -38,7 +39,7 @@ public class WildcardQueryBuilderTests extends AbstractQueryTestCase getAlternateVersions() { Map alternateVersions = new HashMap<>(); WildcardQueryBuilder wildcardQuery = randomWildcardQuery(); - String contentString = formatted(""" + String contentString = Strings.format(""" { "wildcard" : { "%s" : "%s" diff --git a/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java b/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java index d16bc6fc03c5..47dede1016ce 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.Nullable; import org.elasticsearch.core.Releasable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexModule; @@ -65,7 +66,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -403,11 +403,11 @@ public class RefreshListenersTests extends ESTestCase { // These threads add and block until the refresh makes the change visible and then do a non-realtime get. Thread[] indexers = new Thread[threadCount]; for (int thread = 0; thread < threadCount; thread++) { - final String threadId = formatted("%04d", thread); + final String threadId = Strings.format("%04d", thread); indexers[thread] = new Thread(() -> { for (int iteration = 1; iteration <= 50; iteration++) { try { - String testFieldValue = String.format(Locale.ROOT, "%s%04d", threadId, iteration); + String testFieldValue = Strings.format("%s%04d", threadId, iteration); Engine.IndexResult index = index(threadId, testFieldValue); assertEquals(iteration, index.getVersion()); diff --git a/server/src/test/java/org/elasticsearch/index/shard/ShardGetServiceTests.java b/server/src/test/java/org/elasticsearch/index/shard/ShardGetServiceTests.java index 657a745d6b1e..db25e368704d 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/ShardGetServiceTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/ShardGetServiceTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.index.shard; import org.elasticsearch.Version; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.VersionType; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.engine.EngineTestCase; @@ -131,7 +132,7 @@ public class ShardGetServiceTests extends IndexShardTestCase { .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1) .build(); - IndexMetadata metadata = IndexMetadata.builder("test").putMapping(formatted(""" + IndexMetadata metadata = IndexMetadata.builder("test").putMapping(Strings.format(""" { "properties": { "foo": { diff --git a/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java b/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java index e4b5a6a20524..decaec95a820 100644 --- a/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java +++ b/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java @@ -530,7 +530,7 @@ public class TranslogTests extends ESTestCase { builder.startObject(); copy.toXContent(builder, ToXContent.EMPTY_PARAMS); builder.endObject(); - assertThat(Strings.toString(builder), equalTo(XContentHelper.stripWhitespace(formatted(""" + assertThat(Strings.toString(builder), equalTo(XContentHelper.stripWhitespace(Strings.format(""" { "translog": { "operations": 4, diff --git a/server/src/test/java/org/elasticsearch/indices/cluster/IndicesClusterStateServiceRandomUpdatesTests.java b/server/src/test/java/org/elasticsearch/indices/cluster/IndicesClusterStateServiceRandomUpdatesTests.java index 66b92a5aa3ef..505167b5f213 100644 --- a/server/src/test/java/org/elasticsearch/indices/cluster/IndicesClusterStateServiceRandomUpdatesTests.java +++ b/server/src/test/java/org/elasticsearch/indices/cluster/IndicesClusterStateServiceRandomUpdatesTests.java @@ -498,7 +498,7 @@ public class IndicesClusterStateServiceRandomUpdatesTests extends AbstractIndice protected DiscoveryNode createNode(DiscoveryNodeRole... mustHaveRoles) { Set roles = new HashSet<>(randomSubsetOf(DiscoveryNodeRole.roles())); Collections.addAll(roles, mustHaveRoles); - final String id = formatted("node_%03d", nodeIdGenerator.incrementAndGet()); + final String id = format("node_%03d", nodeIdGenerator.incrementAndGet()); return new DiscoveryNode(id, id, buildNewFakeTransportAddress(), Collections.emptyMap(), roles, Version.CURRENT); } diff --git a/server/src/test/java/org/elasticsearch/indices/recovery/RecoverySourceHandlerTests.java b/server/src/test/java/org/elasticsearch/indices/recovery/RecoverySourceHandlerTests.java index ad9ddd189917..99672372aeb4 100644 --- a/server/src/test/java/org/elasticsearch/indices/recovery/RecoverySourceHandlerTests.java +++ b/server/src/test/java/org/elasticsearch/indices/recovery/RecoverySourceHandlerTests.java @@ -45,6 +45,7 @@ import org.elasticsearch.common.util.CancellableThreads; import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.Releasable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.VersionType; @@ -506,7 +507,7 @@ public class RecoverySourceHandlerTests extends MapperServiceTestCase { @Override public Engine.Index createIndexOp(int docIdent) { - SourceToParse source = new SourceToParse(null, new BytesArray(formatted(""" + SourceToParse source = new SourceToParse(null, new BytesArray(Strings.format(""" { "@timestamp": %s, "dim": "dim" diff --git a/server/src/test/java/org/elasticsearch/ingest/IngestServiceTests.java b/server/src/test/java/org/elasticsearch/ingest/IngestServiceTests.java index 06d2ce7896db..1f1dc3d11c02 100644 --- a/server/src/test/java/org/elasticsearch/ingest/IngestServiceTests.java +++ b/server/src/test/java/org/elasticsearch/ingest/IngestServiceTests.java @@ -46,6 +46,7 @@ import org.elasticsearch.common.time.DateFormatter; import org.elasticsearch.common.util.Maps; import org.elasticsearch.common.util.concurrent.EsExecutors; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.VersionType; @@ -1863,7 +1864,7 @@ public class IngestServiceTests extends ESTestCase { public void testUpdatingPipelineWithoutChangesIsNoOp() throws Exception { var value = randomAlphaOfLength(5); - var pipelineString = formatted(""" + var pipelineString = Strings.format(""" {"processors": [{"set" : {"field": "_field", "value": "%s"}}]} """, value); testUpdatingPipeline(pipelineString); @@ -1988,10 +1989,7 @@ public class IngestServiceTests extends ESTestCase { var request = new PutPipelineRequest(pipelineId, new BytesArray(pipelineString), XContentType.JSON, version); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> executeFailingPut(request, clusterState)); - assertThat( - e.getMessage(), - equalTo(String.format(Locale.ROOT, "cannot update pipeline [%s] with the same version [%s]", pipelineId, version)) - ); + assertThat(e.getMessage(), equalTo(Strings.format("cannot update pipeline [%s] with the same version [%s]", pipelineId, version))); } public void testPutPipelineWithVersionedUpdateSpecifiesValidVersion() throws Exception { diff --git a/server/src/test/java/org/elasticsearch/ingest/PipelineConfigurationTests.java b/server/src/test/java/org/elasticsearch/ingest/PipelineConfigurationTests.java index 9ff13e861a32..dde949a7371a 100644 --- a/server/src/test/java/org/elasticsearch/ingest/PipelineConfigurationTests.java +++ b/server/src/test/java/org/elasticsearch/ingest/PipelineConfigurationTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.BytesStreamOutput; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.AbstractXContentTestCase; import org.elasticsearch.xcontent.ContextParser; import org.elasticsearch.xcontent.DeprecationHandler; @@ -98,7 +99,7 @@ public class PipelineConfigurationTests extends AbstractXContentTestCase newPluginsService(settings)); - final String expected = formatted( + final String expected = Strings.format( "found file [%s] from a failed attempt to remove the plugin [fake]; execute [elasticsearch-plugin remove fake]", removing ); diff --git a/server/src/test/java/org/elasticsearch/rest/RestUtilsTests.java b/server/src/test/java/org/elasticsearch/rest/RestUtilsTests.java index 70f8327448fa..85fd5ae92103 100644 --- a/server/src/test/java/org/elasticsearch/rest/RestUtilsTests.java +++ b/server/src/test/java/org/elasticsearch/rest/RestUtilsTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.rest; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import java.util.HashMap; @@ -34,7 +35,7 @@ public class RestUtilsTests extends ESTestCase { assertThat(params.get("test"), equalTo("value")); params.clear(); - uri = formatted("something?test=value%ctest1=value1", randomDelimiter()); + uri = Strings.format("something?test=value%ctest1=value1", randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(2)); assertThat(params.get("test"), equalTo("value")); @@ -59,12 +60,12 @@ public class RestUtilsTests extends ESTestCase { assertThat(params.size(), equalTo(0)); params.clear(); - uri = formatted("something?%c", randomDelimiter()); + uri = Strings.format("something?%c", randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(0)); params.clear(); - uri = String.format(Locale.ROOT, "something?p=v%c%cp1=v1", randomDelimiter(), randomDelimiter()); + uri = Strings.format("something?p=v%c%cp1=v1", randomDelimiter(), randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(2)); assertThat(params.get("p"), equalTo("v")); @@ -76,7 +77,7 @@ public class RestUtilsTests extends ESTestCase { assertThat(params.size(), equalTo(0)); params.clear(); - uri = formatted("something?%c=", randomDelimiter()); + uri = Strings.format("something?%c=", randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(0)); @@ -87,14 +88,14 @@ public class RestUtilsTests extends ESTestCase { assertThat(params.get("a"), equalTo("")); params.clear(); - uri = formatted("something?p=v%ca", randomDelimiter()); + uri = Strings.format("something?p=v%ca", randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(2)); assertThat(params.get("a"), equalTo("")); assertThat(params.get("p"), equalTo("v")); params.clear(); - uri = String.format(Locale.ROOT, "something?p=v%ca%cp1=v1", randomDelimiter(), randomDelimiter()); + uri = Strings.format("something?p=v%ca%cp1=v1", randomDelimiter(), randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(3)); assertThat(params.get("a"), equalTo("")); @@ -102,7 +103,7 @@ public class RestUtilsTests extends ESTestCase { assertThat(params.get("p1"), equalTo("v1")); params.clear(); - uri = String.format(Locale.ROOT, "something?p=v%ca%cb%cp1=v1", randomDelimiter(), randomDelimiter(), randomDelimiter()); + uri = Strings.format("something?p=v%ca%cb%cp1=v1", randomDelimiter(), randomDelimiter(), randomDelimiter()); RestUtils.decodeQueryString(uri, uri.indexOf('?') + 1, params); assertThat(params.size(), equalTo(4)); assertThat(params.get("a"), equalTo("")); @@ -167,7 +168,7 @@ public class RestUtilsTests extends ESTestCase { Pattern pattern = RestUtils.checkCorsSettingForRegex(settingsValue); for (String candidate : candidates) { assertThat( - String.format(Locale.ROOT, "Expected pattern %s to match against %s: %s", settingsValue, candidate, expectMatch), + Strings.format("Expected pattern %s to match against %s: %s", settingsValue, candidate, expectMatch), pattern.matcher(candidate).matches(), is(expectMatch) ); diff --git a/server/src/test/java/org/elasticsearch/rest/action/cat/RestCatRecoveryActionTests.java b/server/src/test/java/org/elasticsearch/rest/action/cat/RestCatRecoveryActionTests.java index 10d98160938f..3db5faa505c9 100644 --- a/server/src/test/java/org/elasticsearch/rest/action/cat/RestCatRecoveryActionTests.java +++ b/server/src/test/java/org/elasticsearch/rest/action/cat/RestCatRecoveryActionTests.java @@ -18,6 +18,7 @@ import org.elasticsearch.common.Randomness; import org.elasticsearch.common.Table; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.xcontent.XContentElasticsearchExtension; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.Index; import org.elasticsearch.index.shard.ShardId; @@ -192,7 +193,7 @@ public class RestCatRecoveryActionTests extends ESTestCase { } private static String percent(float percent) { - return formatted("%1.1f%%", percent); + return Strings.format("%1.1f%%", percent); } } diff --git a/server/src/test/java/org/elasticsearch/script/ScriptStatsTests.java b/server/src/test/java/org/elasticsearch/script/ScriptStatsTests.java index 96018f0cd16f..390fc4f0a6cf 100644 --- a/server/src/test/java/org/elasticsearch/script/ScriptStatsTests.java +++ b/server/src/test/java/org/elasticsearch/script/ScriptStatsTests.java @@ -20,7 +20,6 @@ import org.elasticsearch.xcontent.XContentFactory; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import java.util.function.Function; import static org.hamcrest.Matchers.equalTo; @@ -109,17 +108,17 @@ public class ScriptStatsTests extends ESTestCase { XContentBuilder builder = XContentFactory.jsonBuilder().prettyPrint(); mkContextStats.apply(series).toXContent(builder, ToXContent.EMPTY_PARAMS); - assertThat(Strings.toString(builder), equalTo(String.format(Locale.ROOT, format, 2222, 0, 0, 5))); + assertThat(Strings.toString(builder), equalTo(Strings.format(format, 2222, 0, 0, 5))); series = new TimeSeries(0, 7, 1234, 5678); builder = XContentFactory.jsonBuilder().prettyPrint(); mkContextStats.apply(series).toXContent(builder, ToXContent.EMPTY_PARAMS); - assertThat(Strings.toString(builder), equalTo(String.format(Locale.ROOT, format, 5678, 0, 7, 1234))); + assertThat(Strings.toString(builder), equalTo(Strings.format(format, 5678, 0, 7, 1234))); series = new TimeSeries(123, 456, 789, 91011); builder = XContentFactory.jsonBuilder().prettyPrint(); mkContextStats.apply(series).toXContent(builder, ToXContent.EMPTY_PARAMS); - assertThat(Strings.toString(builder), equalTo(String.format(Locale.ROOT, format, 91011, 123, 456, 789))); + assertThat(Strings.toString(builder), equalTo(Strings.format(format, 91011, 123, 456, 789))); } public void testTimeSeriesIsEmpty() { diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/TopBucketBuilderTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/TopBucketBuilderTests.java index 6c633916e8a3..a5be04ab92ed 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/TopBucketBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/TopBucketBuilderTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.search.aggregations; import org.apache.lucene.util.ArrayUtil; import org.apache.lucene.util.BytesRef; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.InternalMultiBucketAggregation.InternalBucket; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; @@ -135,7 +136,7 @@ public class TopBucketBuilderTests extends ESTestCase { } private String bucketKey(int index) { - return formatted("%06d", index); + return Strings.format("%06d", index); } private InternalBucket bucket(int index) { diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java index ec30b125fe93..dc4b3c32b3ed 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.search.aggregations.bucket.geogrid; import org.elasticsearch.common.unit.DistanceUnit; +import org.elasticsearch.core.Strings; import org.elasticsearch.geo.GeometryTestUtils; import org.elasticsearch.geometry.Rectangle; import org.elasticsearch.test.ESTestCase; @@ -23,7 +24,7 @@ import static org.hamcrest.Matchers.lessThanOrEqualTo; public class GeoHashGridParserTests extends ESTestCase { public void testParseValidFromInts() throws Exception { int precision = randomIntBetween(1, 12); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" {"field":"my_loc", "precision":%s, "size": 500, "shard_size": 550}""", precision)); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); @@ -33,7 +34,7 @@ public class GeoHashGridParserTests extends ESTestCase { public void testParseValidFromStrings() throws Exception { int precision = randomIntBetween(1, 12); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" {"field":"my_loc", "precision":"%s", "size": "500", "shard_size": "550"} """, precision)); XContentParser.Token token = stParser.nextToken(); @@ -49,7 +50,7 @@ public class GeoHashGridParserTests extends ESTestCase { distance = 5600 + randomDouble(); // 5.6cm is approx. smallest distance represented by precision 12 } String distanceString = distance + unit.toString(); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" {"field":"my_loc", "precision": "%s", "size": "500", "shard_size": "550"} """, distanceString)); XContentParser.Token token = stParser.nextToken(); @@ -116,7 +117,7 @@ public class GeoHashGridParserTests extends ESTestCase { public void testParseValidBounds() throws Exception { Rectangle bbox = GeometryTestUtils.randomRectangle(); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" { "field": "my_loc", "precision": 5, diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridParserTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridParserTests.java index f91600db7e67..fbec707f79c5 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridParserTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoTileGridParserTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.search.aggregations.bucket.geogrid; import org.elasticsearch.ExceptionsHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.geo.GeometryTestUtils; import org.elasticsearch.geometry.Rectangle; import org.elasticsearch.test.ESTestCase; @@ -21,7 +22,7 @@ import static org.hamcrest.Matchers.instanceOf; public class GeoTileGridParserTests extends ESTestCase { public void testParseValidFromInts() throws Exception { int precision = randomIntBetween(0, GeoTileUtils.MAX_ZOOM); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" {"field":"my_loc", "precision":%s, "size": 500, "shard_size": 550}""", precision)); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); @@ -31,7 +32,7 @@ public class GeoTileGridParserTests extends ESTestCase { public void testParseValidFromStrings() throws Exception { int precision = randomIntBetween(0, GeoTileUtils.MAX_ZOOM); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" {"field":"my_loc", "precision":"%s", "size": "500", "shard_size": "550"} """, precision)); XContentParser.Token token = stParser.nextToken(); @@ -71,7 +72,7 @@ public class GeoTileGridParserTests extends ESTestCase { public void testParseValidBounds() throws Exception { Rectangle bbox = GeometryTestUtils.randomRectangle(); - XContentParser stParser = createParser(JsonXContent.jsonXContent, formatted(""" + XContentParser stParser = createParser(JsonXContent.jsonXContent, Strings.format(""" { "field": "my_loc", "precision": 5, diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java index c86fdb8a315a..4add53513278 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java @@ -30,6 +30,7 @@ import org.elasticsearch.Version; import org.elasticsearch.common.lucene.search.Queries; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.CheckedConsumer; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.mapper.IdFieldMapper; import org.elasticsearch.index.mapper.KeywordFieldMapper; @@ -520,13 +521,13 @@ public class NestedAggregatorTests extends AggregatorTestCase { for (int j = 0; j < numChapters; j++) { chapters[j] = randomIntBetween(2, 64); } - books.add(Tuple.tuple(formatted("%03d", i), chapters)); + books.add(Tuple.tuple(Strings.format("%03d", i), chapters)); } try (Directory directory = newDirectory()) { try (RandomIndexWriter iw = new RandomIndexWriter(random(), directory)) { int id = 0; for (Tuple book : books) { - iw.addDocuments(generateBook(formatted("%03d", id), new String[] { book.v1() }, book.v2())); + iw.addDocuments(generateBook(Strings.format("%03d", id), new String[] { book.v1() }, book.v2())); id++; } } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantTermsAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantTermsAggregatorTests.java index 70f8598da6e1..a072855ffbcc 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantTermsAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantTermsAggregatorTests.java @@ -708,7 +708,7 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase { } doc.add(new Field("text", text.toString(), TextFieldMapper.Defaults.FIELD_TYPE)); - String json = formatted(""" + String json = Strings.format(""" { "text" : "%s" }""", text.toString()); doc.add(new StoredField("_source", new BytesRef(json))); @@ -727,7 +727,7 @@ public class SignificantTermsAggregatorTests extends AggregatorTestCase { } doc.add(new Field("text", text.toString(), TextFieldMapper.Defaults.FIELD_TYPE)); - String json = formatted(""" + String json = Strings.format(""" { "text" : "%s" }""", text.toString()); doc.add(new StoredField("_source", new BytesRef(json))); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java index cde8e302a011..71225017cf21 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorTests.java @@ -44,6 +44,7 @@ import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.MockBigArrays; import org.elasticsearch.common.util.MockPageCacheRecycler; import org.elasticsearch.core.CheckedConsumer; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType; import org.elasticsearch.index.mapper.DocCountFieldMapper; import org.elasticsearch.index.mapper.GeoPointFieldMapper; @@ -332,7 +333,7 @@ public class TermsAggregatorTests extends AggregatorTestCase { */ List> docs = new ArrayList<>(); for (int i = 0; i < TermsAggregatorFactory.MAX_ORDS_TO_TRY_FILTERS - 200; i++) { - String s = formatted("b%03d", i); + String s = Strings.format("b%03d", i); docs.add(doc(fieldType, s)); if (i % 100 == 7) { docs.add(doc(fieldType, s)); @@ -366,7 +367,7 @@ public class TermsAggregatorTests extends AggregatorTestCase { */ List> docs = new ArrayList<>(); for (int i = 0; i < TermsAggregatorFactory.MAX_ORDS_TO_TRY_FILTERS - 200; i++) { - String s = formatted("b%03d", i); + String s = Strings.format("b%03d", i); List doc = doc(kft, s); doc.add(new SortedNumericDocValuesField("long", i)); docs.add(doc); @@ -376,7 +377,7 @@ public class TermsAggregatorTests extends AggregatorTestCase { List expected = LongStream.range( TermsAggregatorFactory.MAX_ORDS_TO_TRY_FILTERS - 210, TermsAggregatorFactory.MAX_ORDS_TO_TRY_FILTERS - 200 - ).mapToObj(l -> formatted("b%03d", l)).collect(toList()); + ).mapToObj(l -> Strings.format("b%03d", l)).collect(toList()); Collections.reverse(expected); assertThat(result.getBuckets().stream().map(StringTerms.Bucket::getKey).collect(toList()), equalTo(expected)); }, new AggTestConfig(aggregationBuilder, kft, lft)); @@ -396,9 +397,9 @@ public class TermsAggregatorTests extends AggregatorTestCase { .subAggregation(new TermsAggregationBuilder("sub").field("string2").shardSize(500)); withIndex(iw -> { for (int i1 = 0; i1 < 1000; i1++) { - String s1 = formatted("b%03d", i1); + String s1 = Strings.format("b%03d", i1); for (int i2 = 0; i2 < 50; i2++) { - String s2 = formatted("b%03d", i2); + String s2 = Strings.format("b%03d", i2); List doc = new ArrayList<>(); doc.addAll(doc(s1ft, s1)); doc.addAll(doc(s2ft, s2)); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/InternalStatsTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/InternalStatsTests.java index 03341670d6db..a0c50ffd6b2e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/InternalStatsTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/InternalStatsTests.java @@ -227,23 +227,14 @@ public class InternalStatsTests extends InternalAggregationTestCase> result = parseSort(json); assertEquals(1, result.size()); SortBuilder sortBuilder = result.get(0); diff --git a/server/src/test/java/org/elasticsearch/search/suggest/term/TermSuggestionBuilderTests.java b/server/src/test/java/org/elasticsearch/search/suggest/term/TermSuggestionBuilderTests.java index 264ccb3077aa..833bf34b8f9e 100644 --- a/server/src/test/java/org/elasticsearch/search/suggest/term/TermSuggestionBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/suggest/term/TermSuggestionBuilderTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.search.suggest.term; import com.carrotsearch.randomizedtesting.generators.RandomStrings; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.suggest.AbstractSuggestionBuilderTestCase; import org.elasticsearch.search.suggest.SortBy; import org.elasticsearch.search.suggest.SuggestBuilder; @@ -177,7 +178,7 @@ public class TermSuggestionBuilderTests extends AbstractSuggestionBuilderTestCas public void testMalformedJson() { final String field = RandomStrings.randomAsciiOfLength(random(), 10).toLowerCase(Locale.ROOT); - String suggest = formatted(""" + String suggest = Strings.format(""" { "bad-payload" : { "text" : "the amsterdma meetpu", diff --git a/server/src/test/java/org/elasticsearch/transport/ProxyConnectionStrategyTests.java b/server/src/test/java/org/elasticsearch/transport/ProxyConnectionStrategyTests.java index 0ce7f197ae33..65409f3b5835 100644 --- a/server/src/test/java/org/elasticsearch/transport/ProxyConnectionStrategyTests.java +++ b/server/src/test/java/org/elasticsearch/transport/ProxyConnectionStrategyTests.java @@ -17,6 +17,7 @@ import org.elasticsearch.common.settings.ClusterSettings; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.junit.annotations.TestLogging; @@ -439,7 +440,7 @@ public class ProxyConnectionStrategyTests extends ESTestCase { Setting concreteSetting = restrictedSetting.v1().getConcreteSettingForNamespace(clusterName); Settings invalid = Settings.builder().put(settings).put(concreteSetting.getKey(), restrictedSetting.v2()).build(); IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () -> service.validate(invalid, true)); - String expected = formatted(""" + String expected = Strings.format(""" Setting "%s" cannot be used with the configured "cluster.remote.cluster_name.mode" \ [required=PROXY, configured=SNIFF]\ """, concreteSetting.getKey()); diff --git a/server/src/test/java/org/elasticsearch/transport/SniffConnectionStrategyTests.java b/server/src/test/java/org/elasticsearch/transport/SniffConnectionStrategyTests.java index 772158e695c5..9cc5b043c07a 100644 --- a/server/src/test/java/org/elasticsearch/transport/SniffConnectionStrategyTests.java +++ b/server/src/test/java/org/elasticsearch/transport/SniffConnectionStrategyTests.java @@ -937,7 +937,7 @@ public class SniffConnectionStrategyTests extends ESTestCase { Setting concreteSetting = restrictedSetting.v1().getConcreteSettingForNamespace(clusterName); Settings invalid = Settings.builder().put(settings).put(concreteSetting.getKey(), restrictedSetting.v2()).build(); IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, () -> service.validate(invalid, true)); - String expected = formatted(""" + String expected = Strings.format(""" Setting "%s" cannot be used with the configured "cluster.remote.cluster_name.mode" \ [required=SNIFF, configured=PROXY]\ """, concreteSetting.getKey()); diff --git a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java index 9ecbb549f8a3..33d9664b24c4 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java @@ -61,6 +61,7 @@ import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.Releasable; import org.elasticsearch.core.Releasables; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.AnalysisRegistry; @@ -1180,14 +1181,14 @@ public abstract class AggregatorTestCase extends ESTestCase { final RangeFieldMapper.Range range = new RangeFieldMapper.Range(rangeType, start, end, true, true); doc.add(new BinaryDocValuesField(fieldName, rangeType.encodeRanges(Collections.singleton(range)))); - json = formatted(""" + json = Strings.format(""" { "%s" : { "gte" : "%s", "lte" : "%s" } } """, fieldName, start, end); } else if (vst.equals(CoreValuesSourceType.GEOPOINT)) { double lat = randomDouble(); double lon = randomDouble(); doc.add(new LatLonDocValuesField(fieldName, lat, lon)); - json = formatted(""" + json = Strings.format(""" { "%s" : "[%s,%s]" }""", fieldName, lon, lat); } else { throw new IllegalStateException("Unknown field type [" + typeName + "]"); diff --git a/test/framework/src/main/java/org/elasticsearch/search/geo/BaseShapeQueryTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/geo/BaseShapeQueryTestCase.java index 2761e35da49e..b1319e59e851 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/geo/BaseShapeQueryTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/geo/BaseShapeQueryTestCase.java @@ -106,7 +106,7 @@ public abstract class BaseShapeQueryTestCase indexing some data"); for (int i = 0; i < 100; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } @@ -353,7 +354,7 @@ public class CcrRepositoryIT extends CcrIntegTestCase { logger.info("--> indexing some data"); for (int i = 0; i < 100; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } diff --git a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/CcrRetentionLeaseIT.java b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/CcrRetentionLeaseIT.java index fcdd173f7321..c9c03ee527c4 100644 --- a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/CcrRetentionLeaseIT.java +++ b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/CcrRetentionLeaseIT.java @@ -139,7 +139,7 @@ public class CcrRetentionLeaseIT extends CcrIntegTestCase { logger.info("indexing [{}] docs", numberOfDocuments); for (int i = 0; i < numberOfDocuments; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex(leaderIndex).setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); if (rarely()) { leaderClient().admin().indices().prepareFlush(leaderIndex).setForce(true).setWaitIfOngoing(true).get(); @@ -635,7 +635,7 @@ public class CcrRetentionLeaseIT extends CcrIntegTestCase { final int numberOfDocuments = randomIntBetween(128, 2048); logger.debug("indexing [{}] docs", numberOfDocuments); for (int i = 0; i < numberOfDocuments; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex(leaderIndex).setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); if (rarely()) { leaderClient().admin().indices().prepareFlush(leaderIndex).setForce(true).setWaitIfOngoing(true).get(); diff --git a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/FollowerFailOverIT.java b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/FollowerFailOverIT.java index 459b83ad699a..ad66e34cd371 100644 --- a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/FollowerFailOverIT.java +++ b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/FollowerFailOverIT.java @@ -140,7 +140,8 @@ public class FollowerFailOverIT extends CcrIntegTestCase { } catch (InterruptedException e) { throw new AssertionError(e); } - final String source = formatted("{\"f\":%d}", counter++); + Object[] args = new Object[] { counter++ }; + final String source = Strings.format("{\"f\":%d}", args); IndexResponse indexResp = leaderClient().prepareIndex("index1") .setSource(source, XContentType.JSON) .setTimeout(TimeValue.timeValueSeconds(1)) diff --git a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/IndexFollowingIT.java b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/IndexFollowingIT.java index 8dfea9367ebd..df4dd9dfd3eb 100644 --- a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/IndexFollowingIT.java +++ b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/IndexFollowingIT.java @@ -65,6 +65,7 @@ import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.util.Maps; import org.elasticsearch.common.xcontent.support.XContentMapValues; import org.elasticsearch.core.CheckedRunnable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexNotFoundException; @@ -319,7 +320,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { final int firstBatchNumDocs = randomIntBetween(2, 64); logger.info("Indexing [{}] docs as first batch", firstBatchNumDocs); for (int i = 0; i < firstBatchNumDocs; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } @@ -366,7 +367,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { final long firstBatchNumDocs = randomIntBetween(2, 64); for (long i = 0; i < firstBatchNumDocs; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Long.toString(i)).setSource(source, XContentType.JSON).get(); } @@ -379,7 +380,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { final int secondBatchNumDocs = randomIntBetween(2, 64); for (long i = firstBatchNumDocs; i < firstBatchNumDocs + secondBatchNumDocs; i++) { - final String source = formatted("{\"k\":%d}", i); + final String source = Strings.format("{\"k\":%d}", i); leaderClient().prepareIndex("index1").setId(Long.toString(i)).setSource(source, XContentType.JSON).get(); } @@ -522,7 +523,8 @@ public class IndexFollowingIT extends CcrIntegTestCase { } catch (InterruptedException e) { throw new AssertionError(e); } - final String source = formatted("{\"f\":%d}", counter++); + Object[] args = new Object[] { counter++ }; + final String source = Strings.format("{\"f\":%d}", args); IndexRequest indexRequest = new IndexRequest("index1").source(source, XContentType.JSON) .timeout(TimeValue.timeValueSeconds(1)); bulkProcessor.add(indexRequest); @@ -638,7 +640,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { final int numDocs = between(10, 1024); logger.info("Indexing [{}] docs", numDocs); for (int i = 0; i < numDocs; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } @@ -1155,7 +1157,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { final int secondBatchNumDocs = randomIntBetween(2, 64); for (long i = firstBatchNumDocs; i < firstBatchNumDocs + secondBatchNumDocs; i++) { - final String source = formatted("{\"new_field\":\"value %d\"}", i); + final String source = Strings.format("{\"new_field\":\"value %d\"}", i); leaderClient().prepareIndex("leader").setSource(source, XContentType.JSON).get(); } @@ -1403,7 +1405,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { final int numDocs = randomIntBetween(2, 64); logger.info("Indexing [{}] docs as first batch", numDocs); for (int i = 0; i < numDocs; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } @@ -1423,7 +1425,7 @@ public class IndexFollowingIT extends CcrIntegTestCase { afterPausingFollower.run(); for (int i = 0; i < numDocs; i++) { - final String source = formatted("{\"f\":%d}", i * 2); + final String source = Strings.format("{\"f\":%d}", i * 2); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } leaderClient().prepareDelete("index1", "1").get(); diff --git a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/RestartIndexFollowingIT.java b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/RestartIndexFollowingIT.java index f8cbe50895bd..69cb86cccf08 100644 --- a/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/RestartIndexFollowingIT.java +++ b/x-pack/plugin/ccr/src/internalClusterTest/java/org/elasticsearch/xpack/ccr/RestartIndexFollowingIT.java @@ -15,6 +15,7 @@ import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequ import org.elasticsearch.action.support.ActiveShardCount; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.transport.RemoteConnectionInfo; import org.elasticsearch.transport.RemoteConnectionStrategy; @@ -73,7 +74,7 @@ public class RestartIndexFollowingIT extends CcrIntegTestCase { final long firstBatchNumDocs = randomIntBetween(10, 200); logger.info("Indexing [{}] docs as first batch", firstBatchNumDocs); for (int i = 0; i < firstBatchNumDocs; i++) { - final String source = formatted("{\"f\":%d}", i); + final String source = Strings.format("{\"f\":%d}", i); leaderClient().prepareIndex("index1").setId(Integer.toString(i)).setSource(source, XContentType.JSON).get(); } diff --git a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/AutoFollowStatsMonitoringDocTests.java b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/AutoFollowStatsMonitoringDocTests.java index 07311bd7827b..3a728ae46732 100644 --- a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/AutoFollowStatsMonitoringDocTests.java +++ b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/AutoFollowStatsMonitoringDocTests.java @@ -108,7 +108,7 @@ public class AutoFollowStatsMonitoringDocTests extends BaseMonitoringDocTestCase xContent.utf8ToString(), equalTo( XContentHelper.stripWhitespace( - formatted( + Strings.format( """ { "cluster_uuid": "_cluster", diff --git a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/FollowStatsMonitoringDocTests.java b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/FollowStatsMonitoringDocTests.java index fe68cd927a60..71f5836fd9de 100644 --- a/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/FollowStatsMonitoringDocTests.java +++ b/x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/monitoring/collector/ccr/FollowStatsMonitoringDocTests.java @@ -154,7 +154,7 @@ public class FollowStatsMonitoringDocTests extends BaseMonitoringDocTestCase { ElasticsearchException stepException = failedStep.get(); assertThat(stepException, notNullValue()); - assertThat(stepException.getMessage(), is(formatted(""" + assertThat(stepException.getMessage(), is(Strings.format(""" index [%s] in policy [ilmPolicy] encountered failures [{"shard":0,"index":"%s","status":"BAD_REQUEST",\ "reason":{"type":"illegal_argument_exception","reason":"couldn't merge"}}] on step [forcemerge]\ """, index.getName(), index.getName()))); diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/results/RegressionInferenceResultsTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/results/RegressionInferenceResultsTests.java index ba11768b0f77..2741bff3355e 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/results/RegressionInferenceResultsTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/results/RegressionInferenceResultsTests.java @@ -83,7 +83,7 @@ public class RegressionInferenceResultsTests extends InferenceResultsTestCase A debug(Automaton a, A out) throws IOException { out.append("Automaton {"); - out.append(String.format(Locale.ROOT, "States:%d Deterministic:%s", a.getNumStates(), a.isDeterministic())); + out.append(Strings.format("States:%d Deterministic:%s", a.getNumStates(), a.isDeterministic())); for (int s = 0; s < a.getNumStates(); s++) { - out.append(String.format(Locale.ROOT, " [State#%d %s", s, a.isAccept(s) ? "(accept)" : "")); + Object[] args = new Object[] { s, a.isAccept(s) ? "(accept)" : "" }; + out.append(Strings.format(" [State#%d %s", args)); for (int t = 0; t < a.getNumTransitions(s); t++) { Transition transition = new Transition(); a.getTransition(s, t, transition); - out.append(String.format(Locale.ROOT, " (%05d - %05d => %s)", transition.min, transition.max, transition.dest)); + out.append(Strings.format(" (%05d - %05d => %s)", transition.min, transition.max, transition.dest)); } out.append("]"); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/support/StringMatcherTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/support/StringMatcherTests.java index c624b182cc65..1582cf3404bd 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/support/StringMatcherTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/support/StringMatcherTests.java @@ -12,7 +12,6 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.test.ESTestCase; import java.util.List; -import java.util.Locale; import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -209,13 +208,13 @@ public class StringMatcherTests extends ESTestCase { private void assertMatch(StringMatcher matcher, String str) { if (matcher.test(str) == false) { - fail(String.format(Locale.ROOT, "Matcher [%s] failed to match [%s] but should", matcher, str)); + fail(Strings.format("Matcher [%s] failed to match [%s] but should", matcher, str)); } } private void assertNoMatch(StringMatcher matcher, String str) { if (matcher.test(str)) { - fail(String.format(Locale.ROOT, "Matcher [%s] matched [%s] but should not", matcher, str)); + fail(Strings.format("Matcher [%s] matched [%s] but should not", matcher, str)); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/template/TemplateUtilsTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/template/TemplateUtilsTests.java index 96da45da7443..08b3b91efd95 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/template/TemplateUtilsTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/template/TemplateUtilsTests.java @@ -15,7 +15,6 @@ import org.hamcrest.Matcher; import java.io.IOException; import java.util.HashMap; -import java.util.Locale; import java.util.Map; import static org.hamcrest.Matchers.equalTo; @@ -30,12 +29,12 @@ public class TemplateUtilsTests extends ESTestCase { public void testLoadTemplate() throws IOException { final int version = randomIntBetween(0, 10_000); - String resource = String.format(Locale.ROOT, SIMPLE_TEST_TEMPLATE, "test"); + String resource = Strings.format(SIMPLE_TEST_TEMPLATE, "test"); String source = TemplateUtils.loadTemplate(resource, String.valueOf(version), "monitoring.template.version"); assertThat(source, notNullValue()); assertThat(source.length(), greaterThan(0)); - assertTemplate(XContentHelper.stripWhitespace(source), equalTo(XContentHelper.stripWhitespace(formatted(""" + assertTemplate(XContentHelper.stripWhitespace(source), equalTo(XContentHelper.stripWhitespace(Strings.format(""" { "index_patterns": ".monitoring-data-%s", "mappings": { @@ -64,7 +63,7 @@ public class TemplateUtilsTests extends ESTestCase { assertThat(source, notNullValue()); assertThat(source.length(), greaterThan(0)); - assertTemplate(XContentHelper.stripWhitespace(source), equalTo(XContentHelper.stripWhitespace(formatted(""" + assertTemplate(XContentHelper.stripWhitespace(source), equalTo(XContentHelper.stripWhitespace(Strings.format(""" { "index_patterns": ".test-%s", "mappings": { @@ -86,7 +85,7 @@ public class TemplateUtilsTests extends ESTestCase { } public void testLoad() throws IOException { - String resource = String.format(Locale.ROOT, SIMPLE_TEST_TEMPLATE, "test"); + String resource = Strings.format(SIMPLE_TEST_TEMPLATE, "test"); String source = TemplateUtils.load(resource); assertThat(source, notNullValue()); assertThat(source.length(), greaterThan(0)); @@ -111,7 +110,7 @@ public class TemplateUtilsTests extends ESTestCase { } public void testValidate() throws IOException { - String resource = String.format(Locale.ROOT, SIMPLE_TEST_TEMPLATE, "test"); + String resource = Strings.format(SIMPLE_TEST_TEMPLATE, "test"); TemplateUtils.validate(TemplateUtils.load(resource)); } @@ -134,7 +133,7 @@ public class TemplateUtilsTests extends ESTestCase { final int version = randomIntBetween(0, 100); assertTemplate(TemplateUtils.replaceVariable(""" {"foo-${monitoring.template.version}": "bar-${monitoring.template.version}"} - """, "monitoring.template.version", String.valueOf(version)), equalTo(formatted(""" + """, "monitoring.template.version", String.valueOf(version)), equalTo(Strings.format(""" {"foo-%s": "bar-%s"} """, version, version))); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/TermsEnumResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/TermsEnumResponseTests.java index 63785014dfab..a31c44a165cd 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/TermsEnumResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/termsenum/TermsEnumResponseTests.java @@ -82,7 +82,7 @@ public class TermsEnumResponseTests extends AbstractBroadcastResponseTestCase(), true); String output = Strings.toString(response); - assertEquals(formatted(""" + assertEquals(Strings.format(""" {"_shards":{"total":10,"successful":10,"failed":0},"terms":["%s"],"complete":true}""", s), output); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PreviewTransformActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PreviewTransformActionRequestTests.java index 94225a71fe9b..a9bbdcf98a2d 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PreviewTransformActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PreviewTransformActionRequestTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.xpack.core.transform.action; import org.elasticsearch.action.support.master.AcknowledgedRequest; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.io.stream.Writeable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.tasks.CancellableTask; import org.elasticsearch.tasks.Task; @@ -95,7 +96,7 @@ public class PreviewTransformActionRequestTests extends AbstractSerializingTrans String expectedDestIndex, String expectedDestPipeline ) throws IOException { - BytesArray json = new BytesArray(formatted(""" + BytesArray json = new BytesArray(Strings.format(""" { %s "source": { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/TransformConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/TransformConfigTests.java index 01515ce4d5fb..ccc73e9370fd 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/TransformConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/TransformConfigTests.java @@ -402,7 +402,7 @@ public class TransformConfigTests extends AbstractSerializingTransformTestCase> header = executingPolicy.getTaskInfo().headers().entrySet().stream().findAny(); - assertThat( - xContent.utf8ToString(), - equalTo( - XContentHelper.stripWhitespace( - formatted( - """ - { - "cluster_uuid": "_cluster", - "timestamp": "%s", - "interval_ms": %s, - "type": "enrich_executing_policy_stats", - "source_node": { - "uuid": "_uuid", - "host": "_host", - "transport_address": "_addr", - "ip": "_ip", - "name": "_name", - "timestamp": "%s" - }, - "enrich_executing_policy_stats": { - "name": "%s", - "task": { - "node": "%s", - "id": %s, - "type": "%s", - "action": "%s", - "description": "%s", - "start_time_in_millis": %s, - "running_time_in_nanos": %s, - "cancellable": %s, - %s - "headers": %s - } - } - }""", - DATE_TIME_FORMATTER.formatMillis(timestamp), - intervalMillis, - DATE_TIME_FORMATTER.formatMillis(nodeTimestamp), - executingPolicy.getName(), - executingPolicy.getTaskInfo().taskId().getNodeId(), - executingPolicy.getTaskInfo().taskId().getId(), - executingPolicy.getTaskInfo().type(), - executingPolicy.getTaskInfo().action(), - executingPolicy.getTaskInfo().description(), - executingPolicy.getTaskInfo().startTime(), - executingPolicy.getTaskInfo().runningTimeNanos(), - executingPolicy.getTaskInfo().cancellable(), - executingPolicy.getTaskInfo().cancellable() - ? formatted("\"cancelled\": %s,", executingPolicy.getTaskInfo().cancelled()) - : "", - header.map(entry -> String.format(Locale.ROOT, """ - {"%s":"%s"}""", entry.getKey(), entry.getValue())).orElse("{}") - ) - ) - ) - ); + Object[] args = new Object[] { + DATE_TIME_FORMATTER.formatMillis(timestamp), + intervalMillis, + DATE_TIME_FORMATTER.formatMillis(nodeTimestamp), + executingPolicy.getName(), + executingPolicy.getTaskInfo().taskId().getNodeId(), + executingPolicy.getTaskInfo().taskId().getId(), + executingPolicy.getTaskInfo().type(), + executingPolicy.getTaskInfo().action(), + executingPolicy.getTaskInfo().description(), + executingPolicy.getTaskInfo().startTime(), + executingPolicy.getTaskInfo().runningTimeNanos(), + executingPolicy.getTaskInfo().cancellable(), + executingPolicy.getTaskInfo().cancellable() + ? Strings.format("\"cancelled\": %s,", executingPolicy.getTaskInfo().cancelled()) + : "", + header.map(entry -> { return Strings.format(""" + {"%s":"%s"}""", entry.getKey(), entry.getValue()); }).orElse("{}") }; + assertThat(xContent.utf8ToString(), equalTo(XContentHelper.stripWhitespace(Strings.format(""" + { + "cluster_uuid": "_cluster", + "timestamp": "%s", + "interval_ms": %s, + "type": "enrich_executing_policy_stats", + "source_node": { + "uuid": "_uuid", + "host": "_host", + "transport_address": "_addr", + "ip": "_ip", + "name": "_name", + "timestamp": "%s" + }, + "enrich_executing_policy_stats": { + "name": "%s", + "task": { + "node": "%s", + "id": %s, + "type": "%s", + "action": "%s", + "description": "%s", + "start_time_in_millis": %s, + "running_time_in_nanos": %s, + "cancellable": %s, + %s + "headers": %s + } + } + }""", args)))); } public void testEnrichCoordinatorStatsFieldsMapped() throws IOException { diff --git a/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdentityProviderAuthenticationIT.java b/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdentityProviderAuthenticationIT.java index 2353a28b7ac9..b8565bc4ff89 100644 --- a/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdentityProviderAuthenticationIT.java +++ b/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdentityProviderAuthenticationIT.java @@ -128,11 +128,11 @@ public class IdentityProviderAuthenticationIT extends IdpRestTestCase { private String generateSamlResponse(String entityId, String acs, @Nullable Map authnState) throws Exception { final Request request = new Request("POST", "/_idp/saml/init"); if (authnState != null && authnState.isEmpty() == false) { - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"entity_id":"%s", "acs":"%s","authn_state":%s} """, entityId, acs, Strings.toString(JsonXContent.contentBuilder().map(authnState)))); } else { - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"entity_id":"%s", "acs":"%s"} """, entityId, acs)); } @@ -153,11 +153,11 @@ public class IdentityProviderAuthenticationIT extends IdpRestTestCase { final String encodedResponse = Base64.getEncoder().encodeToString(samlResponse.getBytes(StandardCharsets.UTF_8)); final Request request = new Request("POST", "/_security/saml/authenticate"); if (Strings.hasText(id)) { - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"content":"%s", "realm":"%s", "ids":["%s"]} """, encodedResponse, REALM_NAME, id)); } else { - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"content":"%s", "realm":"%s"} """, encodedResponse, REALM_NAME)); } diff --git a/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdpRestTestCase.java b/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdpRestTestCase.java index 6467256a7fcd..c05840a82738 100644 --- a/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdpRestTestCase.java +++ b/x-pack/plugin/identity-provider/qa/idp-rest-tests/src/javaRestTest/java/org/elasticsearch/xpack/idp/IdpRestTestCase.java @@ -62,7 +62,7 @@ public abstract class IdpRestTestCase extends ESRestTestCase { ); final String endpoint = "/_security/user/" + username; final Request request = new Request(HttpPut.METHOD_NAME, endpoint); - final String body = formatted(""" + final String body = Strings.format(""" { "username": "%s", "full_name": "%s", @@ -138,7 +138,7 @@ public abstract class IdpRestTestCase extends ESRestTestCase { protected void setUserPassword(String username, SecureString password) throws IOException { final String endpoint = "/_security/user/" + username + "/_password"; final Request request = new Request(HttpPost.METHOD_NAME, endpoint); - final String body = formatted(""" + final String body = Strings.format(""" { "password": "%s" } diff --git a/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/action/SamlIdentityProviderTests.java b/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/action/SamlIdentityProviderTests.java index eeb0ab6ff9e2..551b53948c1e 100644 --- a/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/action/SamlIdentityProviderTests.java +++ b/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/action/SamlIdentityProviderTests.java @@ -97,7 +97,7 @@ public class SamlIdentityProviderTests extends IdentityProviderIntegTestCase { ) .build(); // This role has "editor" on the deployment itself, and "viewer" for the organization that owns the deployment - createRole(roleName, formatted(""" + createRole(roleName, Strings.format(""" { "cluster": [ "manage_own_api_key" ], "applications": [ @@ -205,7 +205,7 @@ public class SamlIdentityProviderTests extends IdentityProviderIntegTestCase { ); XContentBuilder authnStateBuilder = jsonBuilder(); authnStateBuilder.map(authnState); - initRequest.setJsonEntity(formatted(""" + initRequest.setJsonEntity(Strings.format(""" {"entity_id":"%s","acs":"%s","authn_state":%s} """, entityId, serviceProvider.get("acs"), Strings.toString(authnStateBuilder))); Response initResponse = getRestClient().performRequest(initRequest); @@ -271,7 +271,7 @@ public class SamlIdentityProviderTests extends IdentityProviderIntegTestCase { ); XContentBuilder authnStateBuilder = jsonBuilder(); authnStateBuilder.map(authnState); - initRequest.setJsonEntity(formatted(""" + initRequest.setJsonEntity(Strings.format(""" {"entity_id":"%s", "acs":"%s","authn_state":%s} """, entityId, acsUrl, Strings.toString(authnStateBuilder))); Response initResponse = getRestClient().performRequest(initRequest); @@ -468,7 +468,7 @@ public class SamlIdentityProviderTests extends IdentityProviderIntegTestCase { private void createUser(String userName, SecureString password, String roleName, RequestOptions options) throws IOException { final Request req = new Request("PUT", "/_security/user/" + userName); - final String body = formatted(""" + final String body = Strings.format(""" { "username": "%s", "full_name": "Test User (%s)", @@ -557,7 +557,7 @@ public class SamlIdentityProviderTests extends IdentityProviderIntegTestCase { } private void assertContainsAttributeWithValues(String message, String attribute, String... values) { - final String startAttribute = formatted(""" + final String startAttribute = Strings.format(""" """, attribute, attribute); assertThat(message, containsString(startAttribute)); diff --git a/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/saml/test/IdentityProviderIntegTestCase.java b/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/saml/test/IdentityProviderIntegTestCase.java index 434715c13605..f02ccae7b8f2 100644 --- a/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/saml/test/IdentityProviderIntegTestCase.java +++ b/x-pack/plugin/identity-provider/src/internalClusterTest/java/org/elasticsearch/xpack/idp/saml/test/IdentityProviderIntegTestCase.java @@ -17,6 +17,7 @@ import org.elasticsearch.common.network.NetworkModule; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.IOUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.transport.netty4.Netty4Plugin; @@ -170,7 +171,7 @@ public abstract class IdentityProviderIntegTestCase extends ESIntegTestCase { // IDP end user doesn't need any privileges on the security cluster // Could switch to grant apikey for user and call this as console_user // Console user should be able to call all IDP related endpoints and register application privileges - return formatted(""" + return Strings.format(""" %s: cluster: [ ALL ] indices: @@ -261,7 +262,7 @@ public abstract class IdentityProviderIntegTestCase extends ESIntegTestCase { Files.move(tempFile, path, REPLACE_EXISTING); } } catch (final IOException e) { - throw new UncheckedIOException(formatted("could not write file [%s]", path.toAbsolutePath()), e); + throw new UncheckedIOException(Strings.format("could not write file [%s]", path.toAbsolutePath()), e); } finally { // we are ignoring exceptions here, so we do not need handle whether or not tempFile was initialized nor if the file exists IOUtils.deleteFilesIgnoringExceptions(tempFile); diff --git a/x-pack/plugin/identity-provider/src/test/java/org/elasticsearch/xpack/idp/action/TransportSamlInitiateSingleSignOnActionTests.java b/x-pack/plugin/identity-provider/src/test/java/org/elasticsearch/xpack/idp/action/TransportSamlInitiateSingleSignOnActionTests.java index 516f3e0422c1..dc8010b9b992 100644 --- a/x-pack/plugin/identity-provider/src/test/java/org/elasticsearch/xpack/idp/action/TransportSamlInitiateSingleSignOnActionTests.java +++ b/x-pack/plugin/identity-provider/src/test/java/org/elasticsearch/xpack/idp/action/TransportSamlInitiateSingleSignOnActionTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.PlainActionFuture; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.env.Environment; import org.elasticsearch.env.TestEnvironment; import org.elasticsearch.tasks.Task; @@ -225,7 +226,7 @@ public class TransportSamlInitiateSingleSignOnActionTests extends IdpSamlTestCas } private void assertContainsAttributeWithValue(String message, String attribute, String value) { - assertThat(message, containsString(formatted(""" + assertThat(message, containsString(Strings.format(""" %s\ diff --git a/x-pack/plugin/ilm/qa/multi-cluster/src/test/java/org/elasticsearch/xpack/ilm/CCRIndexLifecycleIT.java b/x-pack/plugin/ilm/qa/multi-cluster/src/test/java/org/elasticsearch/xpack/ilm/CCRIndexLifecycleIT.java index 4e4c38d82296..0f55d296fce5 100644 --- a/x-pack/plugin/ilm/qa/multi-cluster/src/test/java/org/elasticsearch/xpack/ilm/CCRIndexLifecycleIT.java +++ b/x-pack/plugin/ilm/qa/multi-cluster/src/test/java/org/elasticsearch/xpack/ilm/CCRIndexLifecycleIT.java @@ -212,7 +212,7 @@ public class CCRIndexLifecycleIT extends ESCCRRestTestCase { try (RestClient leaderClient = buildLeaderClient()) { // Create an index on the leader using the template set up above Request createIndexRequest = new Request("PUT", "/" + indexName); - createIndexRequest.setJsonEntity(formatted(""" + createIndexRequest.setJsonEntity(Strings.format(""" { "mappings": { "properties": { @@ -558,7 +558,7 @@ public class CCRIndexLifecycleIT extends ESCCRRestTestCase { "{\"persistent\": {\"cluster.remote." + name + ".seeds\": " - + (leaderRemoteClusterSeed != null ? formatted("\"%s\"", leaderRemoteClusterSeed) : null) + + (leaderRemoteClusterSeed != null ? Strings.format("\"%s\"", leaderRemoteClusterSeed) : null) + "}}" ); assertThat(client().performRequest(request).getStatusLine().getStatusCode(), equalTo(200)); diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/MigrateToDataTiersIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/MigrateToDataTiersIT.java index f5433bff82ed..6ff4542825a7 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/MigrateToDataTiersIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/MigrateToDataTiersIT.java @@ -182,7 +182,7 @@ public class MigrateToDataTiersIT extends ESRestTestCase { updateIndexSettings(indexWithDataWarmRouting, Settings.builder().putNull(DataTier.TIER_PREFERENCE)); Request migrateRequest = new Request("POST", "_ilm/migrate_to_data_tiers"); - migrateRequest.setJsonEntity(formatted(""" + migrateRequest.setJsonEntity(Strings.format(""" {"legacy_template_to_delete": "%s", "node_attribute": "data"} """, templateName)); Response migrateDeploymentResponse = client().performRequest(migrateRequest); @@ -473,7 +473,7 @@ public class MigrateToDataTiersIT extends ESRestTestCase { private void createLegacyTemplate(String templateName) throws IOException { String indexPrefix = randomAlphaOfLengthBetween(5, 15).toLowerCase(Locale.ROOT); - final StringEntity template = new StringEntity(formatted(""" + final StringEntity template = new StringEntity(Strings.format(""" { "index_patterns": "%s*", "settings": { diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/ChangePolicyForIndexIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/ChangePolicyForIndexIT.java index 0b7f203e6f33..7f75b010346a 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/ChangePolicyForIndexIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/ChangePolicyForIndexIT.java @@ -129,7 +129,7 @@ public class ChangePolicyForIndexIT extends ESRestTestCase { .put(LifecycleSettings.LIFECYCLE_NAME, "policy_1") .build(); Request createIndexRequest = new Request("PUT", "/" + indexName); - createIndexRequest.setJsonEntity(formatted(""" + createIndexRequest.setJsonEntity(Strings.format(""" { "settings": %s, "aliases": { diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java index f92fab0c9643..975025f2045b 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/TimeSeriesLifecycleActionsIT.java @@ -552,7 +552,7 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { @SuppressWarnings("unchecked") public void testNonexistentPolicy() throws Exception { String indexPrefix = randomAlphaOfLengthBetween(5, 15).toLowerCase(Locale.ROOT); - final StringEntity template = new StringEntity(formatted(""" + final StringEntity template = new StringEntity(Strings.format(""" { "index_patterns": "%s*", "settings": { @@ -719,7 +719,7 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { // Add the policy again Request addPolicyRequest = new Request("PUT", "/" + originalIndex + "/_settings"); - addPolicyRequest.setJsonEntity(formatted(""" + addPolicyRequest.setJsonEntity(Strings.format(""" { "settings": { "index.lifecycle.name": "%s", @@ -780,7 +780,7 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { // update policy on index updatePolicy(client(), originalIndex, policy); Request createIndexTemplate = new Request("PUT", "_template/rolling_indexes"); - createIndexTemplate.setJsonEntity(formatted(""" + createIndexTemplate.setJsonEntity(Strings.format(""" {"index_patterns": ["%s-*"], "settings": { "number_of_shards": 1, @@ -806,7 +806,7 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { public void testHistoryIsWrittenWithSuccess() throws Exception { createNewSingletonPolicy(client(), policy, "hot", new RolloverAction(null, null, null, 1L, null, null, null, null, null, null)); Request createIndexTemplate = new Request("PUT", "_template/rolling_indexes"); - createIndexTemplate.setJsonEntity(formatted(""" + createIndexTemplate.setJsonEntity(Strings.format(""" { "index_patterns": [ "%s-*" ], "settings": { @@ -915,7 +915,7 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { createNewSingletonPolicy(client(), policy, "hot", new RolloverAction(null, null, null, 100L, null, null, null, null, null, null)); Request createIndexTemplate = new Request("PUT", "_template/rolling_indexes"); - createIndexTemplate.setJsonEntity(formatted(""" + createIndexTemplate.setJsonEntity(Strings.format(""" { "index_patterns": ["%s-*"], "settings": { @@ -1134,47 +1134,44 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { stepName ); final Request historySearchRequest = new Request("GET", "ilm-history*/_search?expand_wildcards=all"); - historySearchRequest.setJsonEntity( - formatted( - """ + Object[] args = new Object[] { + policyName, + success, + indexName, + stepName, + phase == null ? "" : Strings.format(",{\"term\": {\"state.phase\": \"%s\"}}", phase), + action == null ? "" : ",{\"term\": {\"state.action\": \"" + action + "\"}}" }; + historySearchRequest.setJsonEntity(Strings.format(""" + { + "query": { + "bool": { + "must": [ { - "query": { - "bool": { - "must": [ - { - "term": { - "policy": "%s" - } - }, - { - "term": { - "success": %s - } - }, - { - "term": { - "index": "%s" - } - }, - { - "term": { - "state.step": "%s" - } - } - %s - %s - ] - } + "term": { + "policy": "%s" } - }""", - policyName, - success, - indexName, - stepName, - phase == null ? "" : formatted(",{\"term\": {\"state.phase\": \"%s\"}}", phase), - action == null ? "" : ",{\"term\": {\"state.action\": \"" + action + "\"}}" - ) - ); + }, + { + "term": { + "success": %s + } + }, + { + "term": { + "index": "%s" + } + }, + { + "term": { + "state.step": "%s" + } + } + %s + %s + ] + } + } + }""", args)); Response historyResponse; try { historyResponse = client().performRequest(historySearchRequest); @@ -1188,7 +1185,7 @@ public class TimeSeriesLifecycleActionsIT extends ESRestTestCase { // For a failure, print out whatever history we *do* have for the index if (hits == 0) { final Request allResults = new Request("GET", "ilm-history*/_search"); - allResults.setJsonEntity(formatted(""" + allResults.setJsonEntity(Strings.format(""" { "query": { "bool": { diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/DownsampleActionIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/DownsampleActionIT.java index 306a7189470b..55cf44ddf85d 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/DownsampleActionIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/DownsampleActionIT.java @@ -199,7 +199,7 @@ public class DownsampleActionIT extends ESRestTestCase { // and a template Request createTemplateRequest = new Request("PUT", "_template/" + index); - createTemplateRequest.setJsonEntity(formatted(""" + createTemplateRequest.setJsonEntity(Strings.format(""" { "index_patterns": ["%s-*"], "settings": { @@ -249,7 +249,7 @@ public class DownsampleActionIT extends ESRestTestCase { // Create a template Request createIndexTemplateRequest = new Request("POST", "/_index_template/" + dataStream); - createIndexTemplateRequest.setJsonEntity(formatted(TEMPLATE, dataStream, policy)); + createIndexTemplateRequest.setJsonEntity(Strings.format(TEMPLATE, dataStream, policy)); assertOK(client().performRequest(createIndexTemplateRequest)); String now = DateFormatter.forPattern(FormatNames.STRICT_DATE_OPTIONAL_TIME.getName()).format(Instant.now()); diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/RolloverActionIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/RolloverActionIT.java index c813ed4670a1..b12df4b43faa 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/RolloverActionIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/RolloverActionIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.core.CheckedRunnable; import org.elasticsearch.core.Nullable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.rest.action.admin.indices.RestPutIndexTemplateAction; import org.elasticsearch.test.rest.ESRestTestCase; @@ -98,7 +99,7 @@ public class RolloverActionIT extends ESRestTestCase { ); Request updateSettingsRequest = new Request("PUT", "/" + originalIndex + "/_settings"); - updateSettingsRequest.setJsonEntity(formatted(""" + updateSettingsRequest.setJsonEntity(Strings.format(""" { "settings": { "%s": true @@ -106,7 +107,7 @@ public class RolloverActionIT extends ESRestTestCase { }""", LifecycleSettings.LIFECYCLE_INDEXING_COMPLETE)); client().performRequest(updateSettingsRequest); Request updateAliasRequest = new Request("POST", "/_aliases"); - updateAliasRequest.setJsonEntity(formatted(""" + updateAliasRequest.setJsonEntity(Strings.format(""" { "actions": [ { @@ -347,7 +348,7 @@ public class RolloverActionIT extends ESRestTestCase { // Set up a policy with rollover createNewSingletonPolicy(client(), policy, "hot", new RolloverAction(null, null, null, 2L, null, null, null, null, null, null)); Request createIndexTemplate = new Request("PUT", "_template/rolling_indexes"); - createIndexTemplate.setJsonEntity(formatted(""" + createIndexTemplate.setJsonEntity(Strings.format(""" { "index_patterns": ["%s-*"], "settings": { diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/ShrinkActionIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/ShrinkActionIT.java index bf3a81e5eccf..0d9c135bd5a6 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/ShrinkActionIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/actions/ShrinkActionIT.java @@ -219,7 +219,7 @@ public class ShrinkActionIT extends ESRestTestCase { // and a template Request createTemplateRequest = new Request("PUT", "_template/" + index); - createTemplateRequest.setJsonEntity(formatted(""" + createTemplateRequest.setJsonEntity(Strings.format(""" { "index_patterns": ["%s-*"], "settings": { diff --git a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/slm/SnapshotLifecycleRestIT.java b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/slm/SnapshotLifecycleRestIT.java index 80a877c7f4b0..937760719995 100644 --- a/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/slm/SnapshotLifecycleRestIT.java +++ b/x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/slm/SnapshotLifecycleRestIT.java @@ -658,7 +658,7 @@ public class SnapshotLifecycleRestIT extends ESRestTestCase { @SuppressWarnings("unchecked") private void assertHistoryIsPresent(String policyName, boolean success, String repository, String operation) throws IOException { final Request historySearchRequest = new Request("GET", ".slm-history*/_search"); - historySearchRequest.setJsonEntity(formatted(""" + historySearchRequest.setJsonEntity(Strings.format(""" { "query": { "bool": { diff --git a/x-pack/plugin/ilm/qa/with-security/src/javaRestTest/java/org/elasticsearch/xpack/security/PermissionsIT.java b/x-pack/plugin/ilm/qa/with-security/src/javaRestTest/java/org/elasticsearch/xpack/security/PermissionsIT.java index e14a927b007d..235379f5ac6d 100644 --- a/x-pack/plugin/ilm/qa/with-security/src/javaRestTest/java/org/elasticsearch/xpack/security/PermissionsIT.java +++ b/x-pack/plugin/ilm/qa/with-security/src/javaRestTest/java/org/elasticsearch/xpack/security/PermissionsIT.java @@ -339,7 +339,7 @@ public class PermissionsIT extends ESRestTestCase { private void createIndexAsAdmin(String name, Settings settings, String mapping) throws IOException { Request request = new Request("PUT", "/" + name); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "settings": %s, "mappings" : {%s} }""", Strings.toString(settings), mapping)); @@ -354,7 +354,7 @@ public class PermissionsIT extends ESRestTestCase { private void createIndexTemplate(String name, String pattern, String alias, String policy) throws IOException { Request request = new Request("PUT", "/_template/" + name); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index_patterns": [ "%s" diff --git a/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingServiceTests.java b/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingServiceTests.java index 16ded13369a2..5385a2dae0fb 100644 --- a/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingServiceTests.java +++ b/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingServiceTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.cluster.metadata.Template; import org.elasticsearch.cluster.routing.allocation.DataTier; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.test.ESTestCase; @@ -1551,7 +1552,7 @@ public class MetadataMigrateToDataTiersRoutingServiceTests extends ESTestCase { } private String getWarmPhaseDef() { - return formatted(""" + return Strings.format(""" { "policy": "%s", "phase_definition": { @@ -1577,7 +1578,7 @@ public class MetadataMigrateToDataTiersRoutingServiceTests extends ESTestCase { } private String getColdPhaseDefinitionWithTotalShardsPerNode() { - return formatted(""" + return Strings.format(""" { "policy": "%s", "phase_definition": { @@ -1597,7 +1598,7 @@ public class MetadataMigrateToDataTiersRoutingServiceTests extends ESTestCase { } private String getColdPhaseDefinition() { - return formatted(""" + return Strings.format(""" { "policy": "%s", "phase_definition": { diff --git a/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/ilm/IndexLifecycleRunnerTests.java b/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/ilm/IndexLifecycleRunnerTests.java index 83f58493304f..312a7e363b99 100644 --- a/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/ilm/IndexLifecycleRunnerTests.java +++ b/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/ilm/IndexLifecycleRunnerTests.java @@ -370,7 +370,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase { .stream() .findFirst() .orElseThrow(() -> new AssertionError("failed to register ILM history")); - assertThat(historyItem.toString(), containsString(formatted(""" + assertThat(historyItem.toString(), containsString(Strings.format(""" { "index": "test", "policy": "foo", diff --git a/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/slm/SnapshotLifecycleTaskTests.java b/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/slm/SnapshotLifecycleTaskTests.java index f42f120f27c5..f27fdef36a1f 100644 --- a/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/slm/SnapshotLifecycleTaskTests.java +++ b/x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/slm/SnapshotLifecycleTaskTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.TriFunction; import org.elasticsearch.common.settings.ClusterSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.set.Sets; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.snapshots.Snapshot; import org.elasticsearch.snapshots.SnapshotId; @@ -146,7 +147,7 @@ public class SnapshotLifecycleTaskTests extends ESTestCase { Settings.EMPTY, Sets.union(ClusterSettings.BUILT_IN_CLUSTER_SETTINGS, Set.of(SLM_HISTORY_INDEX_ENABLED_SETTING)) ); - final String createSnapResponse = formatted(""" + final String createSnapResponse = Strings.format(""" { "snapshot": { "snapshot": "snapshot_1", diff --git a/x-pack/plugin/ml/qa/basic-multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlBasicMultiNodeIT.java b/x-pack/plugin/ml/qa/basic-multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlBasicMultiNodeIT.java index e872ca36fbe7..76b6dd991a41 100644 --- a/x-pack/plugin/ml/qa/basic-multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlBasicMultiNodeIT.java +++ b/x-pack/plugin/ml/qa/basic-multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlBasicMultiNodeIT.java @@ -21,7 +21,6 @@ import java.io.UncheckedIOException; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder; @@ -546,7 +545,7 @@ public class MlBasicMultiNodeIT extends ESRestTestCase { String dateFormat = datesHaveNanoSecondResolution ? "strict_date_optional_time_nanos" : "strict_date_optional_time"; String randomNanos = datesHaveNanoSecondResolution ? "," + randomIntBetween(100000000, 999999999) : ""; Request createAirlineDataRequest = new Request("PUT", "/airline-data"); - createAirlineDataRequest.setJsonEntity(String.format(Locale.ROOT, """ + createAirlineDataRequest.setJsonEntity(Strings.format(""" { "mappings": { "properties": { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/CategorizationIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/CategorizationIT.java index 8aa53fce41c4..a2fa26914e08 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/CategorizationIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/CategorizationIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.WriteRequest; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; @@ -39,7 +40,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -356,7 +356,7 @@ public class CategorizationIT extends MlNativeAutodetectIntegTestCase { for (int docNum = 0; docNum < 200; ++docNum) { // Two thirds of our messages are "Node 1 started", the rest "Failed to shutdown" int partitionNum = (docNum % 3) / 2; - json.append(String.format(Locale.ROOT, """ + json.append(Strings.format(""" {"time":1000000,"part":"%s","msg":"%s"} """, partitions[partitionNum], messages[partitionNum])); } diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationEvaluationWithSecurityIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationEvaluationWithSecurityIT.java index dd9cfb4dc872..86848c5e94f6 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationEvaluationWithSecurityIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationEvaluationWithSecurityIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xpack.core.security.authc.support.UsernamePasswordToken; @@ -35,7 +36,7 @@ public class ClassificationEvaluationWithSecurityIT extends ESRestTestCase { private static void setupDataAccessRole(String index) throws IOException { Request request = new Request("PUT", "/_security/role/test_data_access"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "indices" : [ { "names": ["%s"], "privileges": ["read"] } ]} """, index)); client().performRequest(request); @@ -45,7 +46,7 @@ public class ClassificationEvaluationWithSecurityIT extends ESRestTestCase { String password = new String(SecuritySettingsSourceField.TEST_PASSWORD_SECURE_STRING.getChars()); Request request = new Request("PUT", "/_security/user/" + user); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "password" : "%s", "roles" : [ %s ]} """, password, roles.stream().map(unquoted -> "\"" + unquoted + "\"").collect(Collectors.joining(", ")))); client().performRequest(request); @@ -79,7 +80,7 @@ public class ClassificationEvaluationWithSecurityIT extends ESRestTestCase { private static Request buildRegressionEval(String index, String primaryHeader, String secondaryHeader) { Request evaluateRequest = new Request("POST", "_ml/data_frame/_evaluate"); - evaluateRequest.setJsonEntity(formatted(""" + evaluateRequest.setJsonEntity(Strings.format(""" { "index": "%s", "evaluation": { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationIT.java index 8eb1c3fbb479..5dafd074287a 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ClassificationIT.java @@ -20,6 +20,7 @@ import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeValue; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.rest.RestStatus; @@ -1101,7 +1102,7 @@ public class ClassificationIT extends MlNativeDataFrameAnalyticsIntegTestCase { } static void createIndex(String index, boolean isDatastream) { - String mapping = formatted( + String mapping = Strings.format( """ { "properties": { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DataFrameAnalysisCustomFeatureIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DataFrameAnalysisCustomFeatureIT.java index 0979454b9f12..929f50fe4b5d 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DataFrameAnalysisCustomFeatureIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DataFrameAnalysisCustomFeatureIT.java @@ -17,6 +17,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchModule; @@ -199,7 +200,7 @@ public class DataFrameAnalysisCustomFeatureIT extends MlNativeDataFrameAnalytics } private static void createIndex(String index, boolean isDatastream) { - String mapping = formatted( + String mapping = Strings.format( """ { "properties": { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DatafeedJobsRestIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DatafeedJobsRestIT.java index 33eaad77aa93..1657a6df5074 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DatafeedJobsRestIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DatafeedJobsRestIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.test.rest.ESRestTestCase; @@ -30,7 +31,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.List; -import java.util.Locale; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -66,7 +66,7 @@ public class DatafeedJobsRestIT extends ESRestTestCase { private static void setupDataAccessRole(String index) throws IOException { Request request = new Request("PUT", "/_security/role/test_data_access"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "indices" : [ { "names": ["%s"], "privileges": ["read"] } ]} """, index)); client().performRequest(request); @@ -74,7 +74,7 @@ public class DatafeedJobsRestIT extends ESRestTestCase { private void setupFullAccessRole(String index) throws IOException { Request request = new Request("PUT", "/_security/role/test_data_access"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "indices" : [ { "names": ["%s"], "privileges": ["all"] } ]} """, index)); client().performRequest(request); @@ -84,7 +84,7 @@ public class DatafeedJobsRestIT extends ESRestTestCase { String password = new String(SecuritySettingsSourceField.TEST_PASSWORD_SECURE_STRING.getChars()); Request request = new Request("PUT", "/_security/user/" + user); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "password" : "%s", "roles" : [ %s ]} """, password, roles.stream().map(unquoted -> "\"" + unquoted + "\"").collect(Collectors.joining(", ")))); client().performRequest(request); @@ -330,11 +330,11 @@ public class DatafeedJobsRestIT extends ESRestTestCase { for (int i = 0; i < 120; i++) { long byteCount = randomNonNegativeLong(); bulk.append("{\"index\": {\"_index\": \"").append(index).append("\"}}\n"); - bulk.append(String.format(Locale.ROOT, docTemplate, date.getTime(), "hostA", byteCount)).append('\n'); + bulk.append(Strings.format(docTemplate, date.getTime(), "hostA", byteCount)).append('\n'); byteCount = randomNonNegativeLong(); bulk.append("{\"index\": {\"_index\": \"").append(index).append("\"}}\n"); - bulk.append(String.format(Locale.ROOT, docTemplate, date.getTime(), "hostB", byteCount)).append('\n'); + bulk.append(Strings.format(docTemplate, date.getTime(), "hostB", byteCount)).append('\n'); date = new Date(date.getTime() + 10_000); } @@ -1584,7 +1584,7 @@ public class DatafeedJobsRestIT extends ESRestTestCase { private Response createJob(String id, String airlineVariant) throws Exception { Request request = new Request("PUT", MachineLearning.BASE_PATH + "anomaly_detectors/" + id); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "description": "Analysis of response time by airline", "analysis_config": { @@ -1667,31 +1667,28 @@ public class DatafeedJobsRestIT extends ESRestTestCase { Response build() throws IOException { Request request = new Request("PUT", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId); - request.setJsonEntity( - formatted( - """ - { - "job_id": "%s", - "indexes":["%s"] - %s - %s - %s - %s - %s - %s - }""", - jobId, - index, - source ? ",\"_source\":true" : "", - scriptedFields == null ? "" : ",\"script_fields\":" + scriptedFields, - aggregations == null ? "" : ",\"aggs\":" + aggregations, - frequency == null ? "" : ",\"frequency\":\"" + frequency + "\"", - indicesOptions == null ? "" : ",\"indices_options\":" + indicesOptions, - chunkingTimespan == null ? "" : formatted(""" - ,"chunking_config":{"mode":"MANUAL","time_span":"%s"} - """, chunkingTimespan) - ) - ); + Object[] args = new Object[] { + jobId, + index, + source ? ",\"_source\":true" : "", + scriptedFields == null ? "" : ",\"script_fields\":" + scriptedFields, + aggregations == null ? "" : ",\"aggs\":" + aggregations, + frequency == null ? "" : ",\"frequency\":\"" + frequency + "\"", + indicesOptions == null ? "" : ",\"indices_options\":" + indicesOptions, + chunkingTimespan == null ? "" : Strings.format(""" + ,"chunking_config":{"mode":"MANUAL","time_span":"%s"} + """, chunkingTimespan) }; + request.setJsonEntity(Strings.format(""" + { + "job_id": "%s", + "indexes":["%s"] + %s + %s + %s + %s + %s + %s + }""", args)); RequestOptions.Builder options = request.getOptions().toBuilder(); options.addHeader("Authorization", authHeader); if (this.secondaryAuthHeader != null) { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ExplainDataFrameAnalyticsRestIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ExplainDataFrameAnalyticsRestIT.java index fea744aadb3c..317e933500d6 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ExplainDataFrameAnalyticsRestIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ExplainDataFrameAnalyticsRestIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xpack.core.security.authc.support.UsernamePasswordToken; @@ -56,7 +57,7 @@ public class ExplainDataFrameAnalyticsRestIT extends ESRestTestCase { String password = new String(SecuritySettingsSourceField.TEST_PASSWORD_SECURE_STRING.getChars()); Request request = new Request("PUT", "/_security/user/" + user); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "password" : "%s", "roles" : [ %s ] } """, password, roles.stream().map(unquoted -> "\"" + unquoted + "\"").collect(Collectors.joining(", ")))); client().performRequest(request); diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java index fa661ac28d9e..447bca4f4e68 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.ElasticsearchStatusException; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.cluster.metadata.Metadata; import org.elasticsearch.common.unit.ByteSizeValue; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.xpack.core.ml.action.DeleteForecastAction; import org.elasticsearch.xpack.core.ml.job.config.AnalysisConfig; @@ -30,7 +31,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -624,7 +624,7 @@ public class ForecastIT extends MlNativeAutodetectIntegTestCase { double value = 10.0 + h; for (int i = 1; i < 101; i++) { for (int j = 1; j < 81; j++) { - String json = String.format(Locale.ROOT, """ + String json = Strings.format(""" {"time": %s, "value": %f, "clientIP": "192.168.%d.%d"} """, timestamp, value, i, j); data.add(json); diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java index 161d87712af1..c8c580d2933c 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -62,7 +63,7 @@ public class InferenceIT extends ESRestTestCase { } Request inferRequest = new Request("POST", "_ml/trained_models/" + regressionModelId + "/_infer"); - inferRequest.setJsonEntity(formatted(""" + inferRequest.setJsonEntity(Strings.format(""" { "docs": [%s] } @@ -75,7 +76,7 @@ public class InferenceIT extends ESRestTestCase { putModelAlias("foo_regression", regressionModelId); inferRequest = new Request("POST", "_ml/trained_models/foo_regression/_infer"); - inferRequest.setJsonEntity(formatted(""" + inferRequest.setJsonEntity(Strings.format(""" { "docs": [%s] } @@ -98,7 +99,7 @@ public class InferenceIT extends ESRestTestCase { } Request inferRequest = new Request("POST", "_ml/trained_models/" + classificationModelId + "/_infer"); - inferRequest.setJsonEntity(formatted(""" + inferRequest.setJsonEntity(Strings.format(""" { "docs": [%s] } @@ -111,7 +112,7 @@ public class InferenceIT extends ESRestTestCase { putModelAlias("foo_classification", classificationModelId); inferRequest = new Request("POST", "_ml/trained_models/foo_classification/_infer"); - inferRequest.setJsonEntity(formatted(""" + inferRequest.setJsonEntity(Strings.format(""" { "docs": [%s] } @@ -282,7 +283,7 @@ public class InferenceIT extends ESRestTestCase { } }"""; - private static final String REGRESSION_CONFIG = formatted(""" + private static final String REGRESSION_CONFIG = Strings.format(""" { "input": { "field_names": [ @@ -304,7 +305,7 @@ public class InferenceIT extends ESRestTestCase { return new NamedXContentRegistry(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); } - private static final String CLASSIFICATION_CONFIG = formatted(""" + private static final String CLASSIFICATION_CONFIG = Strings.format(""" { "input": { "field_names": [ "col1", "col2", "col3", "col4" ] diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIngestIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIngestIT.java index 7d0fbdc5c499..84c5ed9f934b 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIngestIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIngestIT.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.test.ExternalTestCluster; @@ -290,7 +291,7 @@ public class InferenceIngestIT extends ESRestTestCase { String regressionModelId = "test_regression_simulate"; putModel(regressionModelId, REGRESSION_CONFIG); - String source = formatted(""" + String source = Strings.format(""" { "pipeline": { "processors": [ @@ -390,7 +391,7 @@ public class InferenceIngestIT extends ESRestTestCase { public void testSimulateWithDefaultMappedField() throws IOException { String classificationModelId = "test_classification_default_mapped_field"; putModel(classificationModelId, CLASSIFICATION_CONFIG); - String source = formatted(""" + String source = Strings.format(""" { "pipeline": { "processors": [ @@ -674,7 +675,7 @@ public class InferenceIngestIT extends ESRestTestCase { } }"""; - private static final String REGRESSION_CONFIG = formatted(""" + private static final String REGRESSION_CONFIG = Strings.format(""" { "input": { "field_names": [ @@ -696,7 +697,7 @@ public class InferenceIngestIT extends ESRestTestCase { return new NamedXContentRegistry(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); } - private static final String CLASSIFICATION_CONFIG = formatted(""" + private static final String CLASSIFICATION_CONFIG = Strings.format(""" { "input": { "field_names": [ "col1", "col2", "col3", "col4" ] @@ -712,7 +713,7 @@ public class InferenceIngestIT extends ESRestTestCase { }""", InferenceDefinitionTests.getClassificationDefinition(false)); private static String pipelineDefinition(String modelId, String inferenceConfig) { - return formatted(""" + return Strings.format(""" { "processors": [ { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlJobIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlJobIT.java index 57abc7dc3898..bb322cf79adc 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlJobIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlJobIT.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ConcurrentCollections; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.SecuritySettingsSourceField; @@ -31,7 +32,6 @@ import org.junit.After; import java.io.IOException; import java.util.Collections; -import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; @@ -187,11 +187,8 @@ public class MlJobIT extends ESRestTestCase { "results_index_name" : "%s"}"""; String jobId = "cant-create-job-with-same-id-job"; - putJob(jobId, String.format(Locale.ROOT, jobTemplate, "index-1")); - ResponseException e = expectThrows( - ResponseException.class, - () -> putJob(jobId, String.format(Locale.ROOT, jobTemplate, "index-2")) - ); + putJob(jobId, Strings.format(jobTemplate, "index-1")); + ResponseException e = expectThrows(ResponseException.class, () -> putJob(jobId, Strings.format(jobTemplate, "index-2"))); assertThat(e.getResponse().getStatusLine().getStatusCode(), equalTo(400)); assertThat(e.getMessage(), containsString("The job cannot be created with the Id '" + jobId + "'. The Id is already used.")); @@ -208,10 +205,10 @@ public class MlJobIT extends ESRestTestCase { String jobId1 = "create-jobs-with-index-name-option-job-1"; String indexName = "non-default-index"; - putJob(jobId1, String.format(Locale.ROOT, jobTemplate, indexName)); + putJob(jobId1, Strings.format(jobTemplate, indexName)); String jobId2 = "create-jobs-with-index-name-option-job-2"; - putJob(jobId2, String.format(Locale.ROOT, jobTemplate, indexName)); + putJob(jobId2, Strings.format(jobTemplate, indexName)); // With security enabled GET _aliases throws an index_not_found_exception // if no aliases have been created. In multi-node tests the alias may not @@ -219,12 +216,12 @@ public class MlJobIT extends ESRestTestCase { assertBusy(() -> { try { String aliasesResponse = getAliases(); - assertThat(aliasesResponse, containsString(formatted(""" + assertThat(aliasesResponse, containsString(Strings.format(""" "%s":{"aliases":{""", AnomalyDetectorsIndex.jobResultsAliasedName("custom-" + indexName)))); assertThat( aliasesResponse, containsString( - formatted( + Strings.format( """ "%s":{"filter":{"term":{"job_id":{"value":"%s"}}},"is_hidden":true}""", AnomalyDetectorsIndex.jobResultsAliasedName(jobId1), @@ -232,12 +229,12 @@ public class MlJobIT extends ESRestTestCase { ) ) ); - assertThat(aliasesResponse, containsString(formatted(""" + assertThat(aliasesResponse, containsString(Strings.format(""" "%s":{"is_hidden":true}""", AnomalyDetectorsIndex.resultsWriteAlias(jobId1)))); assertThat( aliasesResponse, containsString( - formatted( + Strings.format( """ "%s":{"filter":{"term":{"job_id":{"value":"%s"}}},"is_hidden":true}""", AnomalyDetectorsIndex.jobResultsAliasedName(jobId2), @@ -245,7 +242,7 @@ public class MlJobIT extends ESRestTestCase { ) ) ); - assertThat(aliasesResponse, containsString(formatted(""" + assertThat(aliasesResponse, containsString(Strings.format(""" "%s":{"is_hidden":true}""", AnomalyDetectorsIndex.resultsWriteAlias(jobId2)))); } catch (ResponseException e) { throw new AssertionError(e); @@ -262,15 +259,15 @@ public class MlJobIT extends ESRestTestCase { assertThat(responseAsString, not(containsString(AnomalyDetectorsIndex.jobResultsAliasedName(jobId2)))); { // create jobId1 docs - String id = String.format(Locale.ROOT, "%s_bucket_%s_%s", jobId1, "1234", 300); + String id = Strings.format("%s_bucket_%s_%s", jobId1, "1234", 300); Request createResultRequest = new Request("PUT", AnomalyDetectorsIndex.jobResultsAliasedName(jobId1) + "/_doc/" + id); - createResultRequest.setJsonEntity(String.format(Locale.ROOT, """ + createResultRequest.setJsonEntity(Strings.format(""" {"job_id":"%s", "timestamp": "%s", "result_type":"bucket", "bucket_span": "%s"}""", jobId1, "1234", 1)); client().performRequest(createResultRequest); - id = String.format(Locale.ROOT, "%s_bucket_%s_%s", jobId1, "1236", 300); + id = Strings.format("%s_bucket_%s_%s", jobId1, "1236", 300); createResultRequest = new Request("PUT", AnomalyDetectorsIndex.jobResultsAliasedName(jobId1) + "/_doc/" + id); - createResultRequest.setJsonEntity(String.format(Locale.ROOT, """ + createResultRequest.setJsonEntity(Strings.format(""" {"job_id":"%s", "timestamp": "%s", "result_type":"bucket", "bucket_span": "%s"}""", jobId1, "1236", 1)); client().performRequest(createResultRequest); @@ -288,15 +285,15 @@ public class MlJobIT extends ESRestTestCase { assertThat(responseAsString, containsString("\"value\":2")); } { // create jobId2 docs - String id = String.format(Locale.ROOT, "%s_bucket_%s_%s", jobId2, "1234", 300); + String id = Strings.format("%s_bucket_%s_%s", jobId2, "1234", 300); Request createResultRequest = new Request("PUT", AnomalyDetectorsIndex.jobResultsAliasedName(jobId2) + "/_doc/" + id); - createResultRequest.setJsonEntity(String.format(Locale.ROOT, """ + createResultRequest.setJsonEntity(Strings.format(""" {"job_id":"%s", "timestamp": "%s", "result_type":"bucket", "bucket_span": "%s"}""", jobId2, "1234", 1)); client().performRequest(createResultRequest); - id = String.format(Locale.ROOT, "%s_bucket_%s_%s", jobId2, "1236", 300); + id = Strings.format("%s_bucket_%s_%s", jobId2, "1236", 300); createResultRequest = new Request("PUT", AnomalyDetectorsIndex.jobResultsAliasedName(jobId2) + "/_doc/" + id); - createResultRequest.setJsonEntity(String.format(Locale.ROOT, """ + createResultRequest.setJsonEntity(Strings.format(""" {"job_id":"%s", "timestamp": "%s", "result_type":"bucket", "bucket_span": "%s"}""", jobId2, "1236", 1)); client().performRequest(createResultRequest); @@ -363,7 +360,7 @@ public class MlJobIT extends ESRestTestCase { String jobId2 = "create-job-in-shared-index-updates-mapping-job-2"; String byFieldName2 = "cpu-usage"; - putJob(jobId1, String.format(Locale.ROOT, jobTemplate, byFieldName1)); + putJob(jobId1, Strings.format(jobTemplate, byFieldName1)); // Check the index mapping contains the first by_field_name Request getResultsMappingRequest = new Request( @@ -375,7 +372,7 @@ public class MlJobIT extends ESRestTestCase { assertThat(resultsMappingAfterJob1, containsString(byFieldName1)); assertThat(resultsMappingAfterJob1, not(containsString(byFieldName2))); - putJob(jobId2, String.format(Locale.ROOT, jobTemplate, byFieldName2)); + putJob(jobId2, Strings.format(jobTemplate, byFieldName2)); // Check the index mapping now contains both fields String resultsMappingAfterJob2 = EntityUtils.toString(client().performRequest(getResultsMappingRequest).getEntity()); assertThat(resultsMappingAfterJob2, containsString(byFieldName1)); @@ -396,7 +393,7 @@ public class MlJobIT extends ESRestTestCase { String jobId2 = "create-job-in-custom-shared-index-updates-mapping-job-2"; String byFieldName2 = "cpu-usage"; - putJob(jobId1, String.format(Locale.ROOT, jobTemplate, byFieldName1)); + putJob(jobId1, Strings.format(jobTemplate, byFieldName1)); // Check the index mapping contains the first by_field_name Request getResultsMappingRequest = new Request( @@ -408,7 +405,7 @@ public class MlJobIT extends ESRestTestCase { assertThat(resultsMappingAfterJob1, containsString(byFieldName1)); assertThat(resultsMappingAfterJob1, not(containsString(byFieldName2))); - putJob(jobId2, String.format(Locale.ROOT, jobTemplate, byFieldName2)); + putJob(jobId2, Strings.format(jobTemplate, byFieldName2)); // Check the index mapping now contains both fields String resultsMappingAfterJob2 = EntityUtils.toString(client().performRequest(getResultsMappingRequest).getEntity()); @@ -438,12 +435,9 @@ public class MlJobIT extends ESRestTestCase { byFieldName2 = "response"; } - putJob(jobId1, String.format(Locale.ROOT, jobTemplate, byFieldName1)); + putJob(jobId1, Strings.format(jobTemplate, byFieldName1)); - ResponseException e = expectThrows( - ResponseException.class, - () -> putJob(jobId2, String.format(Locale.ROOT, jobTemplate, byFieldName2)) - ); + ResponseException e = expectThrows(ResponseException.class, () -> putJob(jobId2, Strings.format(jobTemplate, byFieldName2))); assertThat( e.getMessage(), containsString( @@ -740,7 +734,7 @@ public class MlJobIT extends ESRestTestCase { // Make the job's results span an extra two indices, i.e. three in total. // To do this the job's results alias needs to encompass all three indices. Request extraIndex1 = new Request("PUT", indexName + "-001"); - extraIndex1.setJsonEntity(formatted(""" + extraIndex1.setJsonEntity(Strings.format(""" { "aliases": { "%s": { @@ -755,7 +749,7 @@ public class MlJobIT extends ESRestTestCase { }""", AnomalyDetectorsIndex.jobResultsAliasedName(jobId), Job.ID, jobId)); client().performRequest(extraIndex1); Request extraIndex2 = new Request("PUT", indexName + "-002"); - extraIndex2.setJsonEntity(formatted(""" + extraIndex2.setJsonEntity(Strings.format(""" { "aliases": { "%s": { @@ -781,7 +775,7 @@ public class MlJobIT extends ESRestTestCase { // Add some documents to each index to make sure the DBQ clears them out Request createDoc0 = new Request("PUT", indexName + "/_doc/" + 123); - createDoc0.setJsonEntity(String.format(Locale.ROOT, """ + createDoc0.setJsonEntity(Strings.format(""" {"job_id":"%s", "timestamp": "%s", "bucket_span":%d, "result_type":"record"}""", jobId, 123, 1)); client().performRequest(createDoc0); Request createDoc1 = new Request("PUT", indexName + "-001/_doc/" + 123); @@ -921,13 +915,13 @@ public class MlJobIT extends ESRestTestCase { assertNull(recreationException.get().getMessage(), recreationException.get()); } - String expectedReadAliasString = formatted( + String expectedReadAliasString = Strings.format( """ "%s":{"filter":{"term":{"job_id":{"value":"%s"}}},"is_hidden":true}""", AnomalyDetectorsIndex.jobResultsAliasedName(jobId), jobId ); - String expectedWriteAliasString = formatted(""" + String expectedWriteAliasString = Strings.format(""" "%s":{"is_hidden":true}""", AnomalyDetectorsIndex.resultsWriteAlias(jobId)); try { // The idea of the code above is that the deletion is sufficiently time-consuming that diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelIT.java index 5fbc3f6d0f29..8a7cbb9b37c7 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.CheckedBiConsumer; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.xpack.core.ml.inference.assignment.AllocationStatus; import org.elasticsearch.xpack.core.ml.inference.assignment.AssignmentState; @@ -309,7 +310,7 @@ public class PyTorchModelIT extends PyTorchModelRestTestCase { createPassThroughModel(badModel); putVocabulary(List.of("once", "twice"), badModel); Request request = new Request("PUT", "_ml/trained_models/" + badModel + "/definition/0"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"total_definition_length":%s,"definition": "%s","total_parts": 1}""", length, poorlyFormattedModelBase64)); client().performRequest(request); startDeployment(badModel, AllocationStatus.State.STARTING.toString()); @@ -435,7 +436,7 @@ public class PyTorchModelIT extends PyTorchModelRestTestCase { createPassThroughModel(model); putVocabulary(List.of("once", "twice"), model); Request request = new Request("PUT", "_ml/trained_models/" + model + "/definition/0"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"total_definition_length":%s2,"definition": "%s","total_parts": 1}""", RAW_MODEL_SIZE, BASE_64_ENCODED_MODEL)); client().performRequest(request); Exception ex = expectThrows(Exception.class, () -> startDeployment(model)); @@ -536,7 +537,7 @@ public class PyTorchModelIT extends PyTorchModelRestTestCase { // We set timeout to 20s as we've seen this test time out on some busy workers. request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer?timeout=20s"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "docs": [ { @@ -563,7 +564,7 @@ public class PyTorchModelIT extends PyTorchModelRestTestCase { putVocabulary(List.of("these", "are", "my", "words"), modelId); startDeployment(modelId); - client().performRequest(putPipeline("my_pipeline", formatted(""" + client().performRequest(putPipeline("my_pipeline", Strings.format(""" { "processors": [ { @@ -593,9 +594,9 @@ public class PyTorchModelIT extends PyTorchModelRestTestCase { putModelDefinition(modelId); putVocabulary(List.of("these", "are", "my", "words"), modelId); startDeployment(modelId); - client().performRequest(new Request("PUT", formatted("_ml/trained_models/%s/model_aliases/%s", modelId, modelAlias))); + client().performRequest(new Request("PUT", Strings.format("_ml/trained_models/%s/model_aliases/%s", modelId, modelAlias))); - client().performRequest(putPipeline("my_pipeline", formatted(""" + client().performRequest(putPipeline("my_pipeline", Strings.format(""" { "processors": [ { @@ -625,9 +626,9 @@ public class PyTorchModelIT extends PyTorchModelRestTestCase { putModelDefinition(modelId); putVocabulary(List.of("these", "are", "my", "words"), modelId); startDeployment(modelId); - client().performRequest(new Request("PUT", formatted("_ml/trained_models/%s/model_aliases/%s", modelId, modelAlias))); + client().performRequest(new Request("PUT", Strings.format("_ml/trained_models/%s/model_aliases/%s", modelId, modelAlias))); - String source = formatted(""" + String source = Strings.format(""" { "pipeline": { "processors": [ diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelRestTestCase.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelRestTestCase.java index bd64a888ab9c..0005f4410f7c 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelRestTestCase.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/PyTorchModelRestTestCase.java @@ -13,6 +13,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.test.rest.ESRestTestCase; @@ -27,7 +28,6 @@ import org.junit.Before; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -129,7 +129,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { protected void putModelDefinition(String modelId, String base64EncodedModel, long unencodedModelSize) throws IOException { Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/definition/0"); - String body = String.format(Locale.ROOT, """ + String body = Strings.format(""" {"total_definition_length":%s,"definition": "%s","total_parts": 1}""", unencodedModelSize, base64EncodedModel); request.setJsonEntity(body); client().performRequest(request); @@ -143,7 +143,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { String quotedWords = vocabularyWithPad.stream().map(s -> "\"" + s + "\"").collect(Collectors.joining(",")); Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/vocabulary"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "vocabulary": [%s] } """, quotedWords)); client().performRequest(request); @@ -244,7 +244,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { protected Response infer(String input, String modelId, TimeValue timeout) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer?timeout=" + timeout.toString()); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "docs": [{"input":"%s"}] } """, input)); return client().performRequest(request); @@ -252,7 +252,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { protected Response infer(String input, String modelId) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer?timeout=30s"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "docs": [{"input":"%s"}] } """, input)); return client().performRequest(request); @@ -260,7 +260,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { protected Response infer(String input, String modelId, String resultsField) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer?timeout=30s"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "docs": [ { "input": "%s" } ], "inference_config": { @@ -275,7 +275,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { protected Response semanticSearch(String index, String modelText, String modelId, String denseVectorFieldName) throws IOException { Request request = new Request("GET", index + "/_semantic_search?error_trace=true"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "model_id": "%s", "model_text": "%s", @@ -297,11 +297,11 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { ) throws IOException { Request request = new Request("GET", index + "/_semantic_search?error_trace=true"); - String termsFilter = String.format(Locale.ROOT, """ + String termsFilter = Strings.format(""" {"term": {"filter_field": "%s"}} """, filter); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "model_id": "%s", "model_text": "%s", @@ -319,7 +319,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { throws IOException { Request request = new Request("GET", index + "/_semantic_search?error_trace=true"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "model_id": "%s", "model_text": "%s", @@ -371,7 +371,7 @@ public abstract class PyTorchModelRestTestCase extends ESRestTestCase { protected void assertNotificationsContain(String modelId, String... auditMessages) throws IOException { client().performRequest(new Request("POST", ".ml-notifications-*/_refresh")); Request search = new Request("POST", ".ml-notifications-*/_search"); - search.setJsonEntity(String.format(Locale.ROOT, """ + search.setJsonEntity(Strings.format(""" { "size": 100, "query": { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/RegressionIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/RegressionIT.java index b438ef9c3621..6f255621d8ef 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/RegressionIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/RegressionIT.java @@ -898,7 +898,7 @@ public class RegressionIT extends MlNativeDataFrameAnalyticsIntegTestCase { } static void indexData(String sourceIndex, int numTrainingRows, int numNonTrainingRows, boolean dataStream) { - String mapping = formatted(""" + String mapping = Strings.format(""" { "properties": { "@timestamp": { diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/SemanticSearchIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/SemanticSearchIT.java index fab5f45bdc68..f3b534245044 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/SemanticSearchIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/SemanticSearchIT.java @@ -9,13 +9,13 @@ package org.elasticsearch.xpack.ml.integration; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; +import org.elasticsearch.core.Strings; import org.elasticsearch.xpack.core.ml.utils.MapHelper; import java.io.IOException; import java.util.ArrayList; import java.util.Base64; import java.util.List; -import java.util.Locale; import java.util.Map; import static org.hamcrest.Matchers.closeTo; @@ -223,7 +223,7 @@ public class SemanticSearchIT extends PyTorchModelRestTestCase { { // combined query should return size documents where size > k Request request = new Request("GET", indexName + "/_semantic_search"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "model_id": "%s", "model_text": "my words", @@ -248,7 +248,7 @@ public class SemanticSearchIT extends PyTorchModelRestTestCase { // score should be close to 1.0. Use an unrelated query so scores are // not combined Request request = new Request("GET", indexName + "/_semantic_search"); - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" { "model_id": "%s", "model_text": "my words", diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/TrainedModelIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/TrainedModelIT.java index 945cca4bb120..991af48afdf0 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/TrainedModelIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/TrainedModelIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xcontent.XContentBuilder; @@ -365,7 +366,7 @@ public class TrainedModelIT extends ESRestTestCase { private void putModelDefinitionPart(String modelId, int totalSize, int numParts, int partNumber) throws IOException { Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/definition/" + partNumber); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "total_definition_length": %s, "definition": "UEsDBAAACAgAAAAAAAAAAAAAAAAAAAAAAAAUAA4Ac2ltcGxlbW9kZW==", diff --git a/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java b/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java index 2e13fdb90d2f..b974ba4a02a2 100644 --- a/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java +++ b/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceIT.java @@ -10,6 +10,7 @@ package org.elasticsearch.xpack.ml.integration; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.junit.Before; import java.io.IOException; @@ -104,7 +105,7 @@ public class InferenceIT extends InferenceTestCase { private Response infer(String modelId, String body) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "docs": [%s] } """, body)); return client().performRequest(request); diff --git a/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceProcessorIT.java b/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceProcessorIT.java index 864dbb616eb7..b62b0e170585 100644 --- a/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceProcessorIT.java +++ b/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/InferenceProcessorIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.junit.Before; import java.io.IOException; @@ -220,7 +221,7 @@ public class InferenceProcessorIT extends InferenceTestCase { createdPipelines.add("regression-model-deprecated-pipeline"); Request putPipeline = new Request("PUT", "_ingest/pipeline/regression-model-deprecated-pipeline"); - putPipeline.setJsonEntity(formatted(""" + putPipeline.setJsonEntity(Strings.format(""" { "processors": [ { @@ -283,7 +284,7 @@ public class InferenceProcessorIT extends InferenceTestCase { private void putPipeline(String modelId, String pipelineName) throws IOException { Request putPipeline = new Request("PUT", "_ingest/pipeline/" + pipelineName); - putPipeline.setJsonEntity(formatted(""" + putPipeline.setJsonEntity(Strings.format(""" { "processors": [ { diff --git a/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/transforms/PainlessDomainSplitIT.java b/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/transforms/PainlessDomainSplitIT.java index e045c9f7307a..cbdad9e86f4f 100644 --- a/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/transforms/PainlessDomainSplitIT.java +++ b/x-pack/plugin/ml/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/transforms/PainlessDomainSplitIT.java @@ -205,7 +205,7 @@ public class PainlessDomainSplitIT extends ESRestTestCase { logger.info("params={}", mapAsJson); Request searchRequest = new Request("GET", "/painless/_search"); - searchRequest.setJsonEntity(formatted(""" + searchRequest.setJsonEntity(Strings.format(""" { "query" : { "match_all": {} @@ -305,7 +305,7 @@ public class PainlessDomainSplitIT extends ESRestTestCase { // Anomaly has 100 docs, but we don't care about the value for (int j = 0; j < 100; j++) { Request createDocRequest = new Request("POST", "/painless/_doc"); - createDocRequest.setJsonEntity(formatted(""" + createDocRequest.setJsonEntity(Strings.format(""" {"domain": "bar.bar.com", "time": "%s"} """, formattedTime)); client().performRequest(createDocRequest); @@ -313,7 +313,7 @@ public class PainlessDomainSplitIT extends ESRestTestCase { } else { // Non-anomalous values will be what's seen when the anomaly is reported Request createDocRequest = new Request("PUT", "/painless/_doc/" + formattedTime); - createDocRequest.setJsonEntity(formatted(""" + createDocRequest.setJsonEntity(Strings.format(""" {"domain": "%s", "time": "%s"} """, test.hostName, formattedTime)); client().performRequest(createDocRequest); diff --git a/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/license/MachineLearningLicensingIT.java b/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/license/MachineLearningLicensingIT.java index 4036b22ba196..806d9ab77942 100644 --- a/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/license/MachineLearningLicensingIT.java +++ b/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/license/MachineLearningLicensingIT.java @@ -22,6 +22,7 @@ import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.license.License.OperationMode; import org.elasticsearch.persistent.PersistentTasksCustomMetadata; @@ -544,7 +545,7 @@ public class MachineLearningLicensingIT extends BaseMlIntegTestCase { .execute() .actionGet(); - String simulateSource = formatted(""" + String simulateSource = Strings.format(""" { "pipeline": %s, "docs": [ diff --git a/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/xpack/ml/integration/TestFeatureLicenseTrackingIT.java b/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/xpack/ml/integration/TestFeatureLicenseTrackingIT.java index 1d2526ed01e4..4ad4dfdbaccf 100644 --- a/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/xpack/ml/integration/TestFeatureLicenseTrackingIT.java +++ b/x-pack/plugin/ml/src/internalClusterTest/java/org/elasticsearch/xpack/ml/integration/TestFeatureLicenseTrackingIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.action.ingest.DeletePipelineRequest; import org.elasticsearch.action.ingest.PutPipelineAction; import org.elasticsearch.action.ingest.PutPipelineRequest; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.core.Strings; import org.elasticsearch.license.GetFeatureUsageRequest; import org.elasticsearch.license.GetFeatureUsageResponse; import org.elasticsearch.license.TransportGetFeatureUsageAction; @@ -209,7 +210,7 @@ public class TestFeatureLicenseTrackingIT extends MlSingleNodeTestCase { } private void putTrainedModelIngestPipeline(String pipelineId, String modelId) throws Exception { - client().execute(PutPipelineAction.INSTANCE, new PutPipelineRequest(pipelineId, new BytesArray(formatted(""" + client().execute(PutPipelineAction.INSTANCE, new PutPipelineRequest(pipelineId, new BytesArray(Strings.format(""" { "processors": [ { diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/inference/persistence/TrainedModelDefinitionDocTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/inference/persistence/TrainedModelDefinitionDocTests.java index 2fd93bab1b34..e844fcf07af4 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/inference/persistence/TrainedModelDefinitionDocTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/inference/persistence/TrainedModelDefinitionDocTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.ml.inference.persistence; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.AbstractXContentTestCase; import org.elasticsearch.xcontent.XContentParser; import org.elasticsearch.xcontent.json.JsonXContent; @@ -25,7 +26,7 @@ public class TrainedModelDefinitionDocTests extends AbstractXContentTestCase= 0) { - bulkBody.append(String.format(Locale.ROOT, """ + bulkBody.append(Strings.format(""" {"index": {"_id":"%d"} } {"field": %d, "text": "Document number %d"} """, n, n, n)); @@ -253,7 +253,7 @@ public abstract class AbstractSearchableSnapshotsRestTestCase extends ESRestTest String sourceOnlySnapshot = "source-only-snap-" + randomAlphaOfLength(10).toLowerCase(Locale.ROOT); final Request request = new Request(HttpPut.METHOD_NAME, "_snapshot/" + WRITE_REPOSITORY_NAME + '/' + sourceOnlySnapshot); request.addParameter("wait_for_completion", "true"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "include_global_state": false, "indices" : "%s" diff --git a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/full/CacheServiceTests.java b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/full/CacheServiceTests.java index c57ea1673c64..0dbc4ba60e7f 100644 --- a/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/full/CacheServiceTests.java +++ b/x-pack/plugin/searchable-snapshots/src/test/java/org/elasticsearch/xpack/searchablesnapshots/cache/full/CacheServiceTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.util.concurrent.FutureUtils; import org.elasticsearch.common.util.set.Sets; import org.elasticsearch.core.PathUtils; import org.elasticsearch.core.PathUtilsForTesting; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.Index; @@ -117,7 +118,7 @@ public class CacheServiceTests extends AbstractSearchableSnapshotsTestCase { logger.trace("--> creating new cache files and randomly read/write them"); for (int i = 0; i < between(1, 25); i++) { final ShardId shardId = new ShardId(index, randomIntBetween(0, numShards - 1)); - final String fileName = String.format(Locale.ROOT, "file_%d_%d", iteration, i); + final String fileName = Strings.format("file_%d_%d", iteration, i); final CacheKey cacheKey = new CacheKey(snapshotUUID, snapshotIndexName, shardId, fileName); final CacheFile cacheFile = cacheService.get(cacheKey, randomIntBetween(0, 10_000), shardsCacheDirs[shardId.id()]); diff --git a/x-pack/plugin/security/qa/jwt-realm/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtRestIT.java b/x-pack/plugin/security/qa/jwt-realm/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtRestIT.java index 173c257cb083..79da6b75d90e 100644 --- a/x-pack/plugin/security/qa/jwt-realm/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtRestIT.java +++ b/x-pack/plugin/security/qa/jwt-realm/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtRestIT.java @@ -31,6 +31,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.core.PathUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.TestSecurityClient; import org.elasticsearch.test.rest.ESRestTestCase; @@ -126,7 +127,7 @@ public class JwtRestIT extends ESRestTestCase { final String dn = randomDn(); final String name = randomName(); final String mail = randomMail(); - final String rules = formatted(""" + final String rules = Strings.format(""" { "all": [ { "field": { "realm.name": "jwt1" } }, { "field": { "username": "%s" } } @@ -142,7 +143,7 @@ public class JwtRestIT extends ESRestTestCase { final String name = randomName(); final String mail = randomMail(); - final String rules = formatted(""" + final String rules = Strings.format(""" { "all": [ { "field": { "realm.name": "jwt1" } }, { "field": { "dn": "%s" } } @@ -160,7 +161,7 @@ public class JwtRestIT extends ESRestTestCase { final List groups = randomList(1, 12, () -> randomAlphaOfLengthBetween(4, 12)); final String mappedGroup = randomFrom(groups); - final String rules = formatted(""" + final String rules = Strings.format(""" { "all": [ { "field": { "realm.name": "jwt1" } }, { "field": { "groups": "%s" } } @@ -175,7 +176,7 @@ public class JwtRestIT extends ESRestTestCase { final String dn = randomDn(); final String name = randomName(); final String mail = randomMail(); - final String rules = formatted(""" + final String rules = Strings.format(""" { "all": [ { "field": { "realm.name": "jwt1" } }, { "field": { "metadata.jwt_claim_sub": "%s" } } diff --git a/x-pack/plugin/security/qa/profile/src/javaRestTest/java/org/elasticsearch/xpack/security/profile/ProfileIT.java b/x-pack/plugin/security/qa/profile/src/javaRestTest/java/org/elasticsearch/xpack/security/profile/ProfileIT.java index 01437d8e5a0e..fc25bda6d89b 100644 --- a/x-pack/plugin/security/qa/profile/src/javaRestTest/java/org/elasticsearch/xpack/security/profile/ProfileIT.java +++ b/x-pack/plugin/security/qa/profile/src/javaRestTest/java/org/elasticsearch/xpack/security/profile/ProfileIT.java @@ -102,7 +102,7 @@ public class ProfileIT extends ESRestTestCase { final Map activateProfileMap = doActivateProfile(); final String profileUid = (String) activateProfileMap.get("uid"); final Request profileHasPrivilegesRequest = new Request("POST", "_security/profile/_has_privileges"); - profileHasPrivilegesRequest.setJsonEntity(formatted(""" + profileHasPrivilegesRequest.setJsonEntity(Strings.format(""" { "uids": ["some_missing_profile", "%s"], "privileges": { @@ -152,7 +152,7 @@ public class ProfileIT extends ESRestTestCase { // Create the profile documents for (String uid : uids) { - final String source = String.format(Locale.ROOT, SAMPLE_PROFILE_DOCUMENT_TEMPLATE, uid, uid, Instant.now().toEpochMilli()); + final String source = Strings.format(SAMPLE_PROFILE_DOCUMENT_TEMPLATE, uid, uid, Instant.now().toEpochMilli()); final Request indexRequest = new Request("PUT", ".security-profile/_doc/profile_" + uid); indexRequest.setJsonEntity(source); indexRequest.addParameter("refresh", "wait_for"); @@ -264,7 +264,7 @@ public class ProfileIT extends ESRestTestCase { final String payload; switch (randomIntBetween(0, 2)) { case 0 -> { - payload = formatted(""" + payload = Strings.format(""" { "name": "rac", "hint": { @@ -274,7 +274,8 @@ public class ProfileIT extends ESRestTestCase { """, "not-" + uid); } case 1 -> { - payload = formatted(""" + Object[] args = new Object[] { randomBoolean() ? "\"demo\"" : "[\"demo\"]" }; + payload = Strings.format(""" { "name": "rac", "hint": { @@ -283,10 +284,11 @@ public class ProfileIT extends ESRestTestCase { } } } - """, randomBoolean() ? "\"demo\"" : "[\"demo\"]"); + """, args); } default -> { - payload = String.format(Locale.ROOT, """ + Object[] args = new Object[] { "not-" + uid, randomBoolean() ? "\"demo\"" : "[\"demo\"]" }; + payload = Strings.format(""" { "name": "rac", "hint": { @@ -295,7 +297,7 @@ public class ProfileIT extends ESRestTestCase { "kibana.spaces": %s } } - }""", "not-" + uid, randomBoolean() ? "\"demo\"" : "[\"demo\"]"); + }""", args); } } suggestProfilesRequest1.setJsonEntity(payload); @@ -463,7 +465,7 @@ public class ProfileIT extends ESRestTestCase { private Map doActivateProfile(String username, String password) throws IOException { final Request activateProfileRequest = new Request("POST", "_security/profile/_activate"); - activateProfileRequest.setJsonEntity(String.format(Locale.ROOT, """ + activateProfileRequest.setJsonEntity(Strings.format(""" { "grant_type": "password", "username": "%s", diff --git a/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/QueryApiKeyIT.java b/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/QueryApiKeyIT.java index 184606ed9521..f04641ae70b2 100644 --- a/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/QueryApiKeyIT.java +++ b/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/QueryApiKeyIT.java @@ -11,6 +11,7 @@ import org.apache.http.HttpHeaders; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.test.XContentTestUtils; import org.elasticsearch.xcontent.XContentType; @@ -21,7 +22,6 @@ import java.time.Instant; import java.util.ArrayList; import java.util.Base64; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.function.Consumer; @@ -113,8 +113,8 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { var subset = randomSubsetOf(randomIntBetween(1, 5), apiKeys); assertQuery( API_KEY_ADMIN_AUTH_HEADER, - formatted(""" - { "query": { "ids": { "values": [%s] } } }""", + Strings.format(""" + { "query": { "ids": { "values": [%s] } } }""", subset.stream().map(m -> "\"" + m.get("id") + "\"").collect(Collectors.joining(","))), keys -> { assertThat(keys, hasSize(subset.size())); @@ -132,8 +132,8 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { // Search for fields that are not allowed in Query DSL but used internally by the service itself final String fieldName = randomFrom("doc_type", "api_key_invalidated"); - assertQueryError(API_KEY_ADMIN_AUTH_HEADER, 400, String.format(Locale.ROOT, """ - { "query": { "term": {"%s": "%s"} } }""", fieldName, randomAlphaOfLengthBetween(3, 8))); + assertQueryError(API_KEY_ADMIN_AUTH_HEADER, 400, Strings.format(""" + { "query": { "term": {"%s": "%s"} } }""", fieldName, randomAlphaOfLengthBetween(3, 8))); // Search for api keys won't return other entities assertQuery(API_KEY_ADMIN_AUTH_HEADER, """ @@ -164,10 +164,10 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { final String authHeader = randomFrom(API_KEY_ADMIN_AUTH_HEADER, API_KEY_USER_AUTH_HEADER); final String invalidatedApiKeyId1 = createAndInvalidateApiKey("temporary-key-1", authHeader); final String queryString = randomFrom(""" - {"query": { "term": {"name": "temporary-key-1"} } }""", formatted(""" - {"query":{"bool":{"must":[{"term":{"name":{"value":"temporary-key-1"}}},\ - {"term":{"invalidated":{"value":"%s"}}}]}}} - """, randomBoolean())); + {"query": { "term": {"name": "temporary-key-1"} } }""", Strings.format(""" + {"query":{"bool":{"must":[{"term":{"name":{"value":"temporary-key-1"}}},\ + {"term":{"invalidated":{"value":"%s"}}}]}}} + """, randomBoolean())); assertQuery(authHeader, queryString, apiKeys -> { if (queryString.contains(""" @@ -230,7 +230,7 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { final String authHeader = randomFrom(API_KEY_ADMIN_AUTH_HEADER, API_KEY_USER_AUTH_HEADER); final int total = randomIntBetween(8, 12); final List apiKeyNames = IntStream.range(0, total) - .mapToObj(i -> formatted("k-%02d", i)) + .mapToObj(i -> Strings.format("k-%02d", i)) .toList(); final List apiKeyIds = new ArrayList<>(total); for (int i = 0; i < total; i++) { @@ -260,9 +260,9 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { } else { searchAfter.append(sortValues.get(0)); } - request2.setJsonEntity(String.format(Locale.ROOT, """ - {"size":%s,"sort":["%s"],"search_after":[%s]} - """, size, sortField, searchAfter)); + request2.setJsonEntity(Strings.format(""" + {"size":%s,"sort":["%s"],"search_after":[%s]} + """, size, sortField, searchAfter)); actualSize = collectApiKeys(apiKeyInfos, request2, total, size); if (actualSize == 0 && apiKeyInfos.size() < remaining) { fail("fail to retrieve all API keys, expect [" + remaining + "] keys, got [" + apiKeyInfos + "]"); @@ -599,10 +599,10 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { final String metadataString = XContentTestUtils.convertToXContent(metadata == null ? Map.of() : metadata, XContentType.JSON) .utf8ToString(); if (expiration == null) { - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" {"name":"%s", "role_descriptors":%s, "metadata":%s}""", name, roleDescriptorsString, metadataString)); } else { - request.setJsonEntity(String.format(Locale.ROOT, """ + request.setJsonEntity(Strings.format(""" {"name":"%s", "expiration": "%s", "role_descriptors":%s,\ "metadata":%s}""", name, expiration, roleDescriptorsString, metadataString)); } @@ -617,7 +617,7 @@ public class QueryApiKeyIT extends SecurityInBasicRestTestCase { final Tuple tuple = createApiKey(name, null, authHeader); final Request request = new Request("DELETE", "/_security/api_key"); request.setOptions(request.getOptions().toBuilder().addHeader(HttpHeaders.AUTHORIZATION, authHeader)); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"ids": ["%s"],"owner":true}""", tuple.v1())); assertOK(client().performRequest(request)); return tuple.v1(); diff --git a/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/SecurityWithBasicLicenseIT.java b/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/SecurityWithBasicLicenseIT.java index e6f7fe6ca8a2..e3de90ce2a05 100644 --- a/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/SecurityWithBasicLicenseIT.java +++ b/x-pack/plugin/security/qa/security-basic/src/javaRestTest/java/org/elasticsearch/xpack/security/SecurityWithBasicLicenseIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.test.rest.ObjectPath; import org.elasticsearch.xpack.security.authc.InternalRealms; @@ -512,7 +513,7 @@ public class SecurityWithBasicLicenseIT extends SecurityInBasicRestTestCase { // Profile hasPrivileges final Request hasPrivilegesRequest = new Request("POST", "_security/profile/_has_privileges"); hasPrivilegesRequest.setOptions(requestOptions); - hasPrivilegesRequest.setJsonEntity(formatted(""" + hasPrivilegesRequest.setJsonEntity(Strings.format(""" { "uids": [ "%s" diff --git a/x-pack/plugin/security/qa/security-disabled/src/javaRestTest/java/org/elasticsearch/xpack/security/SetSecurityUserProcessorWithSecurityDisabledIT.java b/x-pack/plugin/security/qa/security-disabled/src/javaRestTest/java/org/elasticsearch/xpack/security/SetSecurityUserProcessorWithSecurityDisabledIT.java index 4e0d1b83a875..58251fcdbabf 100644 --- a/x-pack/plugin/security/qa/security-disabled/src/javaRestTest/java/org/elasticsearch/xpack/security/SetSecurityUserProcessorWithSecurityDisabledIT.java +++ b/x-pack/plugin/security/qa/security-disabled/src/javaRestTest/java/org/elasticsearch/xpack/security/SetSecurityUserProcessorWithSecurityDisabledIT.java @@ -10,6 +10,7 @@ import org.apache.http.util.EntityUtils; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import static org.hamcrest.Matchers.containsString; @@ -26,7 +27,7 @@ public class SetSecurityUserProcessorWithSecurityDisabledIT extends ESRestTestCa final String index = "index-" + getTestName(); { final Request putPipeline = new Request("PUT", "/_ingest/pipeline/" + pipeline); - putPipeline.setJsonEntity(formatted(""" + putPipeline.setJsonEntity(Strings.format(""" { "description": "Test pipeline (%s)", "processors": [ { "set_security_user": { "field": "user" } } ] diff --git a/x-pack/plugin/security/qa/service-account/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/service/ServiceAccountIT.java b/x-pack/plugin/security/qa/service-account/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/service/ServiceAccountIT.java index 1a06da6efb46..035680eb322b 100644 --- a/x-pack/plugin/security/qa/service-account/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/service/ServiceAccountIT.java +++ b/x-pack/plugin/security/qa/service-account/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/service/ServiceAccountIT.java @@ -35,7 +35,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Base64; import java.util.List; -import java.util.Locale; import java.util.Map; import static org.hamcrest.Matchers.anEmptyMap; @@ -281,7 +280,7 @@ public class ServiceAccountIT extends ESRestTestCase { responseAsMap(response), equalTo( XContentHelper.convertToMap( - new BytesArray(String.format(Locale.ROOT, AUTHENTICATE_RESPONSE, "token1", "file")), + new BytesArray(Strings.format(AUTHENTICATE_RESPONSE, "token1", "file")), false, XContentType.JSON ).v2() @@ -328,7 +327,7 @@ public class ServiceAccountIT extends ESRestTestCase { final String refreshToken = (String) oauthTokenResponseMap.get("refresh_token"); final Request refreshTokenRequest = new Request("POST", "_security/oauth2/token"); - refreshTokenRequest.setJsonEntity(formatted(""" + refreshTokenRequest.setJsonEntity(Strings.format(""" {"grant_type":"refresh_token","refresh_token":"%s"} """, refreshToken)); final Response refreshTokenResponse = adminClient().performRequest(refreshTokenRequest); @@ -373,7 +372,7 @@ public class ServiceAccountIT extends ESRestTestCase { responseAsMap(response), equalTo( XContentHelper.convertToMap( - new BytesArray(String.format(Locale.ROOT, AUTHENTICATE_RESPONSE, "api-token-1", "index")), + new BytesArray(Strings.format(AUTHENTICATE_RESPONSE, "api-token-1", "index")), false, XContentType.JSON ).v2() @@ -520,7 +519,7 @@ public class ServiceAccountIT extends ESRestTestCase { assertThat(e.getMessage(), containsString("is unauthorized for API key")); final Request invalidateApiKeysRequest = new Request("DELETE", "_security/api_key"); - invalidateApiKeysRequest.setJsonEntity(formatted(""" + invalidateApiKeysRequest.setJsonEntity(Strings.format(""" {"ids":["%s"],"owner":true}""", apiKeyId1)); invalidateApiKeysRequest.setOptions(requestOptions); final Response invalidateApiKeysResponse = client().performRequest(invalidateApiKeysRequest); diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DlsFlsRequestCacheTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DlsFlsRequestCacheTests.java index 7d80212305e4..f57ecc461fed 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DlsFlsRequestCacheTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DlsFlsRequestCacheTests.java @@ -16,6 +16,7 @@ import org.elasticsearch.client.internal.Client; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.cache.request.RequestCacheStats; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.mustache.MustachePlugin; @@ -36,7 +37,6 @@ import java.util.Arrays; import java.util.Base64; import java.util.Collection; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutionException; @@ -97,7 +97,7 @@ public class DlsFlsRequestCacheTests extends SecuritySingleNodeTestCase { @Override protected String configRoles() { - return String.format(Locale.ROOT, """ + return Strings.format(""" %s%s: cluster: [ "manage_own_api_key" ] indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentAndFieldLevelSecurityTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentAndFieldLevelSecurityTests.java index 0f4fe241d2b8..caa23c0377cf 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentAndFieldLevelSecurityTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentAndFieldLevelSecurityTests.java @@ -19,6 +19,7 @@ import org.elasticsearch.client.internal.Requests; import org.elasticsearch.cluster.metadata.MappingMetadata; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortOrder; @@ -29,7 +30,6 @@ import org.elasticsearch.xpack.core.XPackSettings; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE; @@ -49,7 +49,7 @@ public class DocumentAndFieldLevelSecurityTests extends SecurityIntegTestCase { @Override protected String configUsers() { final String usersPasswdHashed = new String(getFastStoredHashAlgoForTests().hash(USERS_PASSWD)); - return super.configUsers() + String.format(Locale.ROOT, """ + return super.configUsers() + Strings.format(""" user1:%s user2:%s user3:%s diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentLevelSecurityTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentLevelSecurityTests.java index ad586e3e83f0..19a940ca19e1 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentLevelSecurityTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/DocumentLevelSecurityTests.java @@ -81,7 +81,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import static java.util.stream.Collectors.toList; @@ -125,7 +124,7 @@ public class DocumentLevelSecurityTests extends SecurityIntegTestCase { @Override protected String configUsers() { final String usersPasswdHashed = new String(getFastStoredHashAlgoForTests().hash(USERS_PASSWD)); - return super.configUsers() + String.format(Locale.ROOT, """ + return super.configUsers() + Strings.format(""" user1:%s user2:%s user3:%s diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/FieldLevelSecurityRandomTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/FieldLevelSecurityRandomTests.java index 042c8c7603b9..f05692d97a61 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/FieldLevelSecurityRandomTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/FieldLevelSecurityRandomTests.java @@ -10,6 +10,7 @@ import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.SecurityIntegTestCase; @@ -21,7 +22,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; @@ -92,7 +92,7 @@ public class FieldLevelSecurityRandomTests extends SecurityIntegTestCase { roleFields.append(" - ").append(field).append('\n'); } - return String.format(Locale.ROOT, """ + return Strings.format(""" %s role1: cluster: [ none ] diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndexPrivilegeIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndexPrivilegeIntegTests.java index 5e4be993d7cc..10ea09285b2e 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndexPrivilegeIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndexPrivilegeIntegTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.UUIDs; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.xpack.core.security.authc.support.Hasher; import org.elasticsearch.xpack.core.security.authc.support.UsernamePasswordToken; @@ -127,7 +128,7 @@ public class IndexPrivilegeIntegTests extends AbstractPrivilegeTestCase { final Hasher passwdHasher = getFastStoredHashAlgoForTests(); final String usersPasswdHashed = new String(passwdHasher.hash(SecuritySettingsSourceField.TEST_PASSWORD_SECURE_STRING)); - return super.configUsers() + formatted(""" + return super.configUsers() + Strings.format(""" admin:%1$s u1:%1$s u2:%1$s @@ -660,26 +661,26 @@ public class IndexPrivilegeIntegTests extends AbstractPrivilegeTestCase { if (userIsAllowed) { assertAccessIsAllowed(user, "PUT", "/" + index + "/_doc/321", "{ \"foo\" : \"bar\" }"); // test auto mapping update is allowed but deprecated - Response response = assertAccessIsAllowed(user, "PUT", "/" + index + "/_doc/4321", formatted(""" + Response response = assertAccessIsAllowed(user, "PUT", "/" + index + "/_doc/4321", Strings.format(""" { "%s" : "foo" }""", UUIDs.randomBase64UUID())); String warningHeader = response.getHeader("Warning"); - assertThat(warningHeader, containsString(formatted(""" + assertThat(warningHeader, containsString(Strings.format(""" the index privilege [index] allowed the update mapping action [indices:admin/mapping/auto_put] on index [%s], \ this privilege will not permit mapping updates in the next major release - users who require access to update \ mappings must be granted explicit privileges""", index))); assertAccessIsAllowed(user, "POST", "/" + index + "/_update/321", """ { "doc" : { "foo" : "baz" } } """); - response = assertAccessIsAllowed(user, "POST", "/" + index + "/_update/321", formatted(""" + response = assertAccessIsAllowed(user, "POST", "/" + index + "/_update/321", Strings.format(""" { "doc" : { "%s" : "baz" } } """, UUIDs.randomBase64UUID())); warningHeader = response.getHeader("Warning"); - assertThat(warningHeader, containsString(formatted(""" + assertThat(warningHeader, containsString(Strings.format(""" the index privilege [index] allowed the update mapping action [indices:admin/mapping/auto_put] on index [%s], \ this privilege will not permit mapping updates in the next major release - users who require access to update \ mappings must be granted explicit privileges\ """, index))); - assertThat(warningHeader, containsString(formatted(""" + assertThat(warningHeader, containsString(Strings.format(""" the index privilege [index] allowed the update mapping action [indices:admin/mapping/auto_put] on index [%s], \ this privilege will not permit mapping updates in the next major release - users who require access to update \ mappings must be granted explicit privileges\ @@ -710,7 +711,7 @@ public class IndexPrivilegeIntegTests extends AbstractPrivilegeTestCase { assertAccessIsAllowed(user, "PUT", "/" + index + "/_doc/321", "{ \"foo\" : \"bar\" }"); // test auto mapping update is allowed but deprecated - Response response = assertAccessIsAllowed(user, "PUT", "/" + index + "/_doc/4321", formatted(""" + Response response = assertAccessIsAllowed(user, "PUT", "/" + index + "/_doc/4321", Strings.format(""" { "%s" : "foo" }""", UUIDs.randomBase64UUID())); String warningHeader = response.getHeader("Warning"); assertThat( @@ -725,7 +726,7 @@ public class IndexPrivilegeIntegTests extends AbstractPrivilegeTestCase { assertAccessIsAllowed(user, "POST", "/" + index + "/_update/321", """ { "doc" : { "foo" : "baz" } } """); - response = assertAccessIsAllowed(user, "POST", "/" + index + "/_update/321", formatted(""" + response = assertAccessIsAllowed(user, "POST", "/" + index + "/_update/321", Strings.format(""" { "doc" : { "%s" : "baz" } } """, UUIDs.randomBase64UUID())); warningHeader = response.getHeader("Warning"); @@ -745,7 +746,7 @@ public class IndexPrivilegeIntegTests extends AbstractPrivilegeTestCase { break; default: - fail(formatted("Unknown action %s to execute", action)); + fail(Strings.format("Unknown action %s to execute", action)); } } diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndicesPermissionsWithAliasesWildcardsAndRegexsTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndicesPermissionsWithAliasesWildcardsAndRegexsTests.java index b2c5d0345097..3372434c4534 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndicesPermissionsWithAliasesWildcardsAndRegexsTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/IndicesPermissionsWithAliasesWildcardsAndRegexsTests.java @@ -16,6 +16,7 @@ import org.elasticsearch.cluster.metadata.ComposableIndexTemplate; import org.elasticsearch.cluster.metadata.Template; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.datastreams.DataStreamsPlugin; import org.elasticsearch.index.mapper.DateFieldMapper; import org.elasticsearch.index.query.QueryBuilders; @@ -55,7 +56,7 @@ public class IndicesPermissionsWithAliasesWildcardsAndRegexsTests extends Securi @Override protected String configRoles() { - return formatted(""" + return Strings.format(""" %s role1: cluster: [ all ] diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/InternalUserAndRoleIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/InternalUserAndRoleIntegTests.java index c934746e2b46..e678bc7865e8 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/InternalUserAndRoleIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/InternalUserAndRoleIntegTests.java @@ -23,7 +23,6 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import java.nio.file.Path; -import java.util.Locale; public class InternalUserAndRoleIntegTests extends AbstractPrivilegeTestCase { private static final String[] INTERNAL_USERNAMES = new String[] { @@ -53,7 +52,7 @@ public class InternalUserAndRoleIntegTests extends AbstractPrivilegeTestCase { } private String defaultRole(String roleName) { - return formatted(""" + return org.elasticsearch.core.Strings.format(""" %s: cluster: [ none ] indices: @@ -68,7 +67,7 @@ public class InternalUserAndRoleIntegTests extends AbstractPrivilegeTestCase { final String usersPasswdHashed = new String(passwdHasher.hash(SecuritySettingsSourceField.TEST_PASSWORD_SECURE_STRING)); StringBuilder builder = new StringBuilder(super.configUsers()); for (String username : INTERNAL_USERNAMES) { - builder.append(String.format(Locale.ROOT, "%s:%s\n", username, usersPasswdHashed)); + builder.append(org.elasticsearch.core.Strings.format("%s:%s\n", username, usersPasswdHashed)); } return builder + "user:" + usersPasswdHashed + "\n"; } @@ -78,10 +77,10 @@ public class InternalUserAndRoleIntegTests extends AbstractPrivilegeTestCase { StringBuilder builder = new StringBuilder(super.configUsersRoles()); // non-internal username maps to all internal role names for (String roleName : INTERNAL_ROLE_NAMES) { - builder.append(String.format(Locale.ROOT, "%s:%s\n", roleName, NON_INTERNAL_USERNAME)); + builder.append(org.elasticsearch.core.Strings.format("%s:%s\n", roleName, NON_INTERNAL_USERNAME)); } // all internal usernames are mapped to custom role - return builder + String.format(Locale.ROOT, "%s:%s\n", NON_INTERNAL_ROLE_NAME, Strings.join(INTERNAL_USERNAMES, ",")); + return builder + org.elasticsearch.core.Strings.format("%s:%s\n", NON_INTERNAL_ROLE_NAME, Strings.join(INTERNAL_USERNAMES, ",")); } private static Path repositoryLocation; diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/KibanaUserRoleIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/KibanaUserRoleIntegTests.java index 3a6d1c88f39e..960d5157fac5 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/KibanaUserRoleIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/KibanaUserRoleIntegTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.cluster.metadata.MappingMetadata; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.test.NativeRealmIntegTestCase; import org.elasticsearch.test.SecuritySettingsSourceField; @@ -37,7 +38,7 @@ public class KibanaUserRoleIntegTests extends NativeRealmIntegTestCase { @Override public String configRoles() { - return formatted(""" + return Strings.format(""" %s my_kibana_user: indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/MultipleIndicesPermissionsTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/MultipleIndicesPermissionsTests.java index 590df3c15749..dbbbc90d0f5d 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/MultipleIndicesPermissionsTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/MultipleIndicesPermissionsTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.internal.Client; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.SecurityIntegTestCase; @@ -75,7 +76,7 @@ public class MultipleIndicesPermissionsTests extends SecurityIntegTestCase { @Override protected String configRoles() { // The definition of TEST_ROLE here is intentionally different than the definition in the superclass. - return formatted(""" + return Strings.format(""" %s: cluster: [ all ] indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityClearScrollTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityClearScrollTests.java index fe1c13653c25..83cda0e51851 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityClearScrollTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityClearScrollTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.action.search.ClearScrollResponse; import org.elasticsearch.action.search.MultiSearchRequestBuilder; import org.elasticsearch.action.search.MultiSearchResponse; import org.elasticsearch.action.search.SearchPhaseExecutionException; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecurityIntegTestCase; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.xcontent.XContentType; @@ -51,7 +52,7 @@ public class SecurityClearScrollTests extends SecurityIntegTestCase { @Override protected String configRoles() { - return formatted(""" + return Strings.format(""" %s allowed_role: cluster: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityFeatureStateIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityFeatureStateIntegTests.java index b8b7a293a377..670ff9c4cfe7 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityFeatureStateIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/integration/SecurityFeatureStateIntegTests.java @@ -17,13 +17,13 @@ import org.elasticsearch.client.ResponseException; import org.elasticsearch.cluster.SnapshotsInProgress; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.xpack.core.security.authc.support.UsernamePasswordToken; import org.junit.AfterClass; import org.junit.BeforeClass; import java.nio.file.Path; -import java.util.Locale; import static org.elasticsearch.test.SecuritySettingsSource.ES_TEST_ROOT_USER; import static org.hamcrest.Matchers.containsString; @@ -93,7 +93,7 @@ public class SecurityFeatureStateIntegTests extends AbstractPrivilegeTestCase { // create a test user final Request createUserRequest = new Request("PUT", "/_security/user/" + LOCAL_TEST_USER_NAME); createUserRequest.addParameter("refresh", "wait_for"); - createUserRequest.setJsonEntity(String.format(Locale.ROOT, """ + createUserRequest.setJsonEntity(Strings.format(""" { "password": "%s", "roles": [ "%s" ]} """, LOCAL_TEST_USER_PASSWORD, roleName)); performSuperuserRequest(createUserRequest); diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/license/LicensingTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/license/LicensingTests.java index 2072ab0d99fa..be9c62219c1f 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/license/LicensingTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/license/LicensingTests.java @@ -71,7 +71,7 @@ public class LicensingTests extends SecurityIntegTestCase { private static final SecureString HASH_PASSWD = new SecureString(Hasher.BCRYPT4.hash(new SecureString("passwd".toCharArray()))); - private static final String ROLES = formatted(""" + private static final String ROLES = Strings.format(""" %s: cluster: [ all ] indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/TokenAuthIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/TokenAuthIntegTests.java index 16ef1853adee..bef49c104402 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/TokenAuthIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/TokenAuthIntegTests.java @@ -19,6 +19,7 @@ import org.elasticsearch.common.CheckedSupplier; import org.elasticsearch.common.UUIDs; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.SecurityIntegTestCase; @@ -44,7 +45,6 @@ import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -150,7 +150,7 @@ public class TokenAuthIntegTests extends SecurityIntegTestCase { Request updateRequest = new Request(HttpPost.METHOD_NAME, SecuritySystemIndices.SECURITY_TOKENS_ALIAS + "/_update/" + docId.get()); updateRequest.addParameter("refresh", WriteRequest.RefreshPolicy.IMMEDIATE.getValue()); updateRequest.setOptions(SECURITY_REQUEST_OPTIONS); - updateRequest.setJsonEntity(formatted(""" + updateRequest.setJsonEntity(Strings.format(""" { "doc": { "creation_time": %s @@ -443,7 +443,7 @@ public class TokenAuthIntegTests extends SecurityIntegTestCase { Request updateRequest = new Request(HttpPost.METHOD_NAME, SecuritySystemIndices.SECURITY_TOKENS_ALIAS + "/_update/" + docId.get()); updateRequest.addParameter("refresh", WriteRequest.RefreshPolicy.IMMEDIATE.getValue()); updateRequest.setOptions(SECURITY_REQUEST_OPTIONS); - updateRequest.setJsonEntity(formatted(""" + updateRequest.setJsonEntity(Strings.format(""" { "doc": { "refresh_token": { @@ -675,7 +675,7 @@ public class TokenAuthIntegTests extends SecurityIntegTestCase { assertThat(ObjectPath.evaluate(authenticateMap, "authentication_realm.name"), equalTo("file")); assertThat(ObjectPath.evaluate(authenticateMap, "authentication_type"), is("token")); - final TokenInvalidation tokenInvalidation = getSecurityClient().invalidateTokens(String.format(Locale.ROOT, """ + final TokenInvalidation tokenInvalidation = getSecurityClient().invalidateTokens(Strings.format(""" { "realm_name":"%s", "username":"%s" diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthDelegationIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthDelegationIntegTests.java index df7dbff845bc..9115c3555158 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthDelegationIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthDelegationIntegTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.test.SecurityIntegTestCase; import org.elasticsearch.test.SecuritySettingsSource; @@ -105,7 +106,7 @@ public class PkiAuthDelegationIntegTests extends SecurityIntegTestCase { @Override protected String configRoles() { - return formatted(""" + return Strings.format(""" %s role_manage: cluster: [ manage ] @@ -123,7 +124,7 @@ public class PkiAuthDelegationIntegTests extends SecurityIntegTestCase { @Override protected String configUsersRoles() { - return formatted(""" + return Strings.format(""" %s role_manage:user_manage role_manage_security:user_manage_security diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthenticationTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthenticationTests.java index c0bbe037ca2f..5b90b5855329 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthenticationTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authc/pki/PkiAuthenticationTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.network.NetworkAddress; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.ssl.SslClientAuthenticationMode; import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.core.Strings; import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.test.SecuritySingleNodeTestCase; import org.elasticsearch.xpack.core.common.socket.SocketAccess; @@ -141,6 +142,6 @@ public class PkiAuthenticationTests extends SecuritySingleNodeTestCase { node().injector().getInstance(HttpServerTransport.class).boundAddress().boundAddresses() ); final InetSocketAddress inetSocketAddress = transportAddress.address(); - return formatted("https://%s/", NetworkAddress.format(inetSocketAddress)); + return Strings.format("https://%s/", NetworkAddress.format(inetSocketAddress)); } } diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/AnalyzeTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/AnalyzeTests.java index 5f66d475f530..a77e3d14f288 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/AnalyzeTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/AnalyzeTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.security.authz; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecurityIntegTestCase; import org.elasticsearch.test.SecuritySettingsSourceField; @@ -35,7 +36,7 @@ public class AnalyzeTests extends SecurityIntegTestCase { @Override protected String configRoles() { // role that has analyze indices privileges only - return formatted(""" + return Strings.format(""" %s analyze_indices: indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/ReadActionsTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/ReadActionsTests.java index b674141668ea..48a0fabd1e31 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/ReadActionsTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/ReadActionsTests.java @@ -18,6 +18,7 @@ import org.elasticsearch.action.termvectors.MultiTermVectorsAction; import org.elasticsearch.action.termvectors.MultiTermVectorsResponse; import org.elasticsearch.action.termvectors.TermVectorsAction; import org.elasticsearch.client.internal.Requests; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.IndexNotFoundException; import org.elasticsearch.search.SearchHit; @@ -39,7 +40,7 @@ public class ReadActionsTests extends SecurityIntegTestCase { @Override protected String configRoles() { - return formatted(""" + return Strings.format(""" %s: cluster: [ ALL ] indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/WriteActionsTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/WriteActionsTests.java index 924b5d1f5b99..c55e5b409279 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/WriteActionsTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/WriteActionsTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.update.UpdateAction; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.client.internal.Requests; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.IndexNotFoundException; import org.elasticsearch.index.engine.DocumentMissingException; import org.elasticsearch.rest.RestStatus; @@ -33,7 +34,7 @@ public class WriteActionsTests extends SecurityIntegTestCase { @Override protected String configRoles() { - return formatted(""" + return Strings.format(""" %s: cluster: [ ALL ] indices: diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/profile/ProfileDomainIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/profile/ProfileDomainIntegTests.java index fde9e781d9ef..9c271a50fe49 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/profile/ProfileDomainIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/profile/ProfileDomainIntegTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.action.support.PlainActionFuture; import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.index.engine.VersionConflictEngineException; import org.elasticsearch.xcontent.XContentType; @@ -275,7 +276,7 @@ public class ProfileDomainIntegTests extends AbstractProfileIntegTestCase { existingUid = future.actionGet().uid(); assertThat(existingUid, endsWith("_0")); final UpdateRequest updateRequest = client().prepareUpdate(SECURITY_PROFILE_ALIAS, "profile_" + existingUid) - .setDoc(formatted(""" + .setDoc(Strings.format(""" { "user_profile": { "user": { "username": "%s" } @@ -357,13 +358,16 @@ public class ProfileDomainIntegTests extends AbstractProfileIntegTestCase { } final String newUsername = i == otherRacUserIndex ? OTHER_RAC_USER_NAME : "some-other-name-" + randomAlphaOfLength(8); // Manually update the username to create hash collision - final UpdateRequest updateRequest = client().prepareUpdate(SECURITY_PROFILE_ALIAS, "profile_" + currentUid).setDoc(formatted(""" - { - "user_profile": { - "user": { "username": "%s" } - } - } - """, newUsername), XContentType.JSON).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).request(); + final UpdateRequest updateRequest = client().prepareUpdate(SECURITY_PROFILE_ALIAS, "profile_" + currentUid) + .setDoc(Strings.format(""" + { + "user_profile": { + "user": { "username": "%s" } + } + } + """, newUsername), XContentType.JSON) + .setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE) + .request(); client().update(updateRequest).actionGet(); if (newUsername.equals(OTHER_RAC_USER_NAME)) { // The manually updated profile document can still be activated by the other rac user diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/filter/IpFilteringUpdateTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/filter/IpFilteringUpdateTests.java index bc206f4557f6..6b94591cab19 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/filter/IpFilteringUpdateTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/filter/IpFilteringUpdateTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.security.transport.filter; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.test.SecurityIntegTestCase; import org.junit.BeforeClass; @@ -16,7 +17,6 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.util.Arrays; -import java.util.Locale; import static org.elasticsearch.test.ESIntegTestCase.Scope.TEST; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; @@ -184,7 +184,7 @@ public class IpFilteringUpdateTests extends SecurityIntegTestCase { } IPFilter ipFilter = internalCluster().getDataNodeInstance(IPFilter.class); - String message = String.format(Locale.ROOT, "Expected allowed connection for profile %s against host %s", profile, host); + String message = Strings.format("Expected allowed connection for profile %s against host %s", profile, host); assertThat(message, ipFilter.accept(profile, new InetSocketAddress(InetAddress.getByName(host), 0)), is(true)); } @@ -195,7 +195,7 @@ public class IpFilteringUpdateTests extends SecurityIntegTestCase { } IPFilter ipFilter = internalCluster().getDataNodeInstance(IPFilter.class); - String message = String.format(Locale.ROOT, "Expected rejection for profile %s against host %s", profile, host); + String message = Strings.format("Expected rejection for profile %s against host %s", profile, host); assertThat(message, ipFilter.accept(profile, new InetSocketAddress(InetAddress.getByName(host), 0)), is(false)); } } diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/ssl/SslIntegrationTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/ssl/SslIntegrationTests.java index 7139c345f059..a4453521ffb4 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/ssl/SslIntegrationTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/transport/ssl/SslIntegrationTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.common.network.NetworkAddress; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.ssl.SslConfiguration; import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.core.Strings; import org.elasticsearch.env.TestEnvironment; import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.test.SecurityIntegTestCase; @@ -121,6 +122,6 @@ public class SslIntegrationTests extends SecurityIntegTestCase { internalCluster().getInstance(HttpServerTransport.class).boundAddress().boundAddresses() ); final InetSocketAddress inetSocketAddress = transportAddress.address(); - return formatted("https://%s/", NetworkAddress.format(inetSocketAddress)); + return Strings.format("https://%s/", NetworkAddress.format(inetSocketAddress)); } } diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/user/AnonymousUserIntegTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/user/AnonymousUserIntegTests.java index 18dd2a33ae70..71a4d7d9231c 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/user/AnonymousUserIntegTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/user/AnonymousUserIntegTests.java @@ -18,6 +18,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.SecurityIntegTestCase; import org.elasticsearch.test.TestSecurityClient; import org.elasticsearch.xpack.core.XPackSettings; @@ -71,7 +72,7 @@ public class AnonymousUserIntegTests extends SecurityIntegTestCase { @Override public String configRoles() { - return formatted(""" + return Strings.format(""" %s anonymous: cluster: [ manage_token ] diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/ChangePasswordRequestBuilderTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/ChangePasswordRequestBuilderTests.java index 70feac92a84f..6994440ef930 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/ChangePasswordRequestBuilderTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/ChangePasswordRequestBuilderTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.client.internal.Client; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentType; @@ -45,7 +46,7 @@ public class ChangePasswordRequestBuilderTests extends ESTestCase { public void testWithHashedPassword() throws IOException { final Hasher hasher = getFastStoredHashAlgoForTests(); final char[] hash = hasher.hash(new SecureString("superlongpassword".toCharArray())); - final String json = formatted(""" + final String json = Strings.format(""" { "password_hash": "%s" }""", new String(hash)); @@ -62,7 +63,7 @@ public class ChangePasswordRequestBuilderTests extends ESTestCase { userHasher = getFastStoredHashAlgoForTests(); } final char[] hash = userHasher.hash(new SecureString("superlongpassword".toCharArray())); - final String json = formatted(""" + final String json = Strings.format(""" {"password_hash": "%s"} """, new String(hash)); ChangePasswordRequestBuilder builder = new ChangePasswordRequestBuilder(mock(Client.class)); @@ -77,7 +78,7 @@ public class ChangePasswordRequestBuilderTests extends ESTestCase { public void testWithHashedPasswordNotHash() { final Hasher systemHasher = getFastStoredHashAlgoForTests(); final char[] hash = randomAlphaOfLength(20).toCharArray(); - final String json = formatted(""" + final String json = Strings.format(""" { "password_hash": "%s" }""", new String(hash)); diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/HasPrivilegesRequestBuilderTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/HasPrivilegesRequestBuilderTests.java index d404668a9f66..b5d728d4a3c0 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/HasPrivilegesRequestBuilderTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/HasPrivilegesRequestBuilderTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.action.admin.cluster.health.ClusterHealthAction; import org.elasticsearch.action.admin.cluster.stats.ClusterStatsAction; import org.elasticsearch.client.internal.Client; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.XContentType; import org.elasticsearch.xpack.core.security.action.user.HasPrivilegesRequest; @@ -18,7 +19,6 @@ import org.elasticsearch.xpack.core.security.action.user.HasPrivilegesRequestBui import org.elasticsearch.xpack.core.security.authz.RoleDescriptor; import java.nio.charset.StandardCharsets; -import java.util.Locale; import static org.hamcrest.Matchers.arrayContaining; import static org.hamcrest.Matchers.containsString; @@ -93,7 +93,7 @@ public class HasPrivilegesRequestBuilderTests extends ESTestCase { } public void testParseValidJsonWithJustClusterPrivileges() throws Exception { - String json = String.format(Locale.ROOT, """ + String json = Strings.format(""" { "cluster": [ "manage","%s","%s"] }""", ClusterHealthAction.NAME, ClusterStatsAction.NAME); final HasPrivilegesRequestBuilder builder = new HasPrivilegesRequestBuilder(mock(Client.class)); diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/PutUserRequestBuilderTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/PutUserRequestBuilderTests.java index 684013921e2e..7d5453e0d2eb 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/PutUserRequestBuilderTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/action/user/PutUserRequestBuilderTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.common.ValidationException; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentType; @@ -162,7 +163,7 @@ public class PutUserRequestBuilderTests extends ESTestCase { public void testWithValidPasswordHash() throws IOException { final Hasher hasher = getFastStoredHashAlgoForTests(); final char[] hash = hasher.hash(new SecureString("secretpassword".toCharArray())); - final String json = formatted(""" + final String json = Strings.format(""" { "password_hash": "%s", "roles": [] @@ -186,7 +187,7 @@ public class PutUserRequestBuilderTests extends ESTestCase { userHasher = getFastStoredHashAlgoForTests(); } final char[] hash = userHasher.hash(new SecureString("secretpassword".toCharArray())); - final String json = formatted(""" + final String json = Strings.format(""" { "password_hash": "%s", "roles": [] diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java index b0ff033f4ce7..ce5020e44a7c 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/audit/logfile/LoggingAuditTrailTests.java @@ -603,7 +603,7 @@ public class LoggingAuditTrailTests extends ESTestCase { roleDescriptorsStringBuilder, createApiKeyRequest.getMetadata() == null || createApiKeyRequest.getMetadata().isEmpty() ? "" - : formatted(",\"metadata\":%s", metadataWithSerialization.serialization()) + : Strings.format(",\"metadata\":%s", metadataWithSerialization.serialization()) ); List output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); @@ -635,7 +635,7 @@ public class LoggingAuditTrailTests extends ESTestCase { """, keyId, updateApiKeyRequest.getRoleDescriptors() == null ? "" : "," + roleDescriptorsStringBuilder, - updateApiKeyRequest.getMetadata() == null ? "" : formatted(",\"metadata\":%s", metadataWithSerialization.serialization()) + updateApiKeyRequest.getMetadata() == null ? "" : Strings.format(",\"metadata\":%s", metadataWithSerialization.serialization()) ); output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); @@ -665,9 +665,11 @@ public class LoggingAuditTrailTests extends ESTestCase { """ "change":{"apikeys":{"ids":[%s]%s%s}}\ """, - bulkUpdateApiKeyRequest.getIds().stream().map(s -> formatted("\"%s\"", s)).collect(Collectors.joining(",")), + bulkUpdateApiKeyRequest.getIds().stream().map(s -> Strings.format("\"%s\"", s)).collect(Collectors.joining(",")), bulkUpdateApiKeyRequest.getRoleDescriptors() == null ? "" : "," + roleDescriptorsStringBuilder, - bulkUpdateApiKeyRequest.getMetadata() == null ? "" : formatted(",\"metadata\":%s", metadataWithSerialization.serialization()) + bulkUpdateApiKeyRequest.getMetadata() == null + ? "" + : Strings.format(",\"metadata\":%s", metadataWithSerialization.serialization()) ); output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); @@ -760,7 +762,7 @@ public class LoggingAuditTrailTests extends ESTestCase { output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); String generatedPutRoleAuditEventString = output.get(1); - String expectedPutRoleAuditEventString = String.format(Locale.ROOT, """ + String expectedPutRoleAuditEventString = Strings.format(""" "put":{"role":{"name":"%s","role_descriptor":%s}}\ """, putRoleRequest.name(), auditedRolesMap.get(putRoleRequest.name())); assertThat(generatedPutRoleAuditEventString, containsString(expectedPutRoleAuditEventString)); @@ -1238,7 +1240,7 @@ public class LoggingAuditTrailTests extends ESTestCase { output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); String generatedEnableUserAuditEventString = output.get(1); - String expectedEnableUserAuditEventString = formatted(""" + String expectedEnableUserAuditEventString = Strings.format(""" "change":{"enable":{"user":{"name":"%s"}}}\ """, username); assertThat(generatedEnableUserAuditEventString, containsString(expectedEnableUserAuditEventString)); @@ -1263,7 +1265,7 @@ public class LoggingAuditTrailTests extends ESTestCase { output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); String generatedDisableUserAuditEventString = output.get(1); - String expectedDisableUserAuditEventString = formatted(""" + String expectedDisableUserAuditEventString = Strings.format(""" "change":{"disable":{"user":{"name":"%s"}}}\ """, username); assertThat(generatedDisableUserAuditEventString, containsString(expectedDisableUserAuditEventString)); @@ -1287,7 +1289,7 @@ public class LoggingAuditTrailTests extends ESTestCase { output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); String generatedChangePasswordAuditEventString = output.get(1); - String expectedChangePasswordAuditEventString = formatted(""" + String expectedChangePasswordAuditEventString = Strings.format(""" "change":{"password":{"user":{"name":"%s"}}}\ """, username); assertThat(generatedChangePasswordAuditEventString, containsString(expectedChangePasswordAuditEventString)); @@ -1313,7 +1315,7 @@ public class LoggingAuditTrailTests extends ESTestCase { output = CapturingLogger.output(logger.getName(), Level.INFO); assertThat(output.size(), is(2)); String generatedDeleteUserAuditEventString = output.get(1); - String expectedDeleteUserAuditEventString = formatted(""" + String expectedDeleteUserAuditEventString = Strings.format(""" "delete":{"user":{"name":"%s"}}\ """, username); assertThat(generatedDeleteUserAuditEventString, containsString(expectedDeleteUserAuditEventString)); @@ -1354,7 +1356,7 @@ public class LoggingAuditTrailTests extends ESTestCase { assertThat(output.size(), is(2)); String generatedCreateServiceAccountTokenAuditEventString = output.get(1); - final String expectedCreateServiceAccountTokenAuditEventString = String.format(Locale.ROOT, """ + final String expectedCreateServiceAccountTokenAuditEventString = Strings.format(""" "create":{"service_token":{"namespace":"%s","service":"%s","name":"%s"}}""", namespace, serviceName, tokenName); assertThat(generatedCreateServiceAccountTokenAuditEventString, containsString(expectedCreateServiceAccountTokenAuditEventString)); generatedCreateServiceAccountTokenAuditEventString = generatedCreateServiceAccountTokenAuditEventString.replace( @@ -1389,7 +1391,7 @@ public class LoggingAuditTrailTests extends ESTestCase { assertThat(output.size(), is(2)); String generatedDeleteServiceAccountTokenAuditEventString = output.get(1); - final String expectedDeleteServiceAccountTokenAuditEventString = String.format(Locale.ROOT, """ + final String expectedDeleteServiceAccountTokenAuditEventString = Strings.format(""" "delete":{"service_token":{"namespace":"%s","service":"%s","name":"%s"}}""", namespace, serviceName, tokenName); assertThat(generatedDeleteServiceAccountTokenAuditEventString, containsString(expectedDeleteServiceAccountTokenAuditEventString)); generatedDeleteServiceAccountTokenAuditEventString = generatedDeleteServiceAccountTokenAuditEventString.replace( @@ -1468,7 +1470,7 @@ public class LoggingAuditTrailTests extends ESTestCase { auditTrail.accessGranted(requestId, authentication, UpdateProfileDataAction.NAME, updateProfileDataRequest, authorizationInfo); assertThat(output.size(), is(2)); String generatedUpdateAuditEventString = output.get(1); - final String expectedUpdateAuditEventString = formatted(""" + final String expectedUpdateAuditEventString = Strings.format(""" "put":{"uid":"%s","labels":{"space":"production"},"data":{"theme":"default"}}""", updateProfileDataRequest.getUid()); assertThat(generatedUpdateAuditEventString, containsString(expectedUpdateAuditEventString)); generatedUpdateAuditEventString = generatedUpdateAuditEventString.replace(", " + expectedUpdateAuditEventString, ""); @@ -1504,12 +1506,10 @@ public class LoggingAuditTrailTests extends ESTestCase { checkedFields = new MapBuilder<>(commonFields); checkedFields.remove(LoggingAuditTrail.ORIGIN_ADDRESS_FIELD_NAME); checkedFields.remove(LoggingAuditTrail.ORIGIN_TYPE_FIELD_NAME); + Object[] args = new Object[] { setProfileEnabledRequest.isEnabled() ? "enable" : "disable" }; checkedFields.put("type", "audit") .put(LoggingAuditTrail.EVENT_TYPE_FIELD_NAME, "security_config_change") - .put( - LoggingAuditTrail.EVENT_ACTION_FIELD_NAME, - formatted("change_%s_user_profile", setProfileEnabledRequest.isEnabled() ? "enable" : "disable") - ) + .put(LoggingAuditTrail.EVENT_ACTION_FIELD_NAME, Strings.format("change_%s_user_profile", args)) .put(LoggingAuditTrail.REQUEST_ID_FIELD_NAME, requestId); assertMsg(generatedSetEnabledAuditEventString, checkedFields.map()); // clear log diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/file/FileUserRolesStoreTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/file/FileUserRolesStoreTests.java index 728aa35499f8..258770b10c74 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/file/FileUserRolesStoreTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/file/FileUserRolesStoreTests.java @@ -294,7 +294,7 @@ public class FileUserRolesStoreTests extends ESTestCase { Path file = createTempFile(); Files.write(file, input.getBytes(StandardCharsets.UTF_8)); Map usersRoles = FileUserRolesStore.parseFile(file, null); - String reason = formatted("Expected userRoles to be empty, but was %s", usersRoles.keySet()); + String reason = Strings.format("Expected userRoles to be empty, but was %s", usersRoles.keySet()); assertThat(reason, usersRoles.keySet(), hasSize(0)); } diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/AuthorizationDenialMessagesTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/AuthorizationDenialMessagesTests.java index 2e0486fece9a..7cd56bc75f2d 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/AuthorizationDenialMessagesTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/AuthorizationDenialMessagesTests.java @@ -54,7 +54,7 @@ public class AuthorizationDenialMessagesTests extends ESTestCase { assertThat( rolesDescription, - equalTo(formatted(" with assigned roles [%s]", Strings.collectionToCommaDelimitedString(assignedRoleNames))) + equalTo(Strings.format(" with assigned roles [%s]", Strings.collectionToCommaDelimitedString(assignedRoleNames))) ); } @@ -74,7 +74,7 @@ public class AuthorizationDenialMessagesTests extends ESTestCase { assertThat( rolesDescription, - equalTo(formatted(" with assigned roles [%s]", Strings.collectionToCommaDelimitedString(assignedRoleNames))) + equalTo(Strings.format(" with assigned roles [%s]", Strings.collectionToCommaDelimitedString(assignedRoleNames))) ); } @@ -105,7 +105,7 @@ public class AuthorizationDenialMessagesTests extends ESTestCase { assertThat( rolesDescription, - equalTo(formatted(" with assigned roles [%s]", Strings.collectionToCommaDelimitedString(assignedRoleNames))) + equalTo(Strings.format(" with assigned roles [%s]", Strings.collectionToCommaDelimitedString(assignedRoleNames))) ); } @@ -130,7 +130,7 @@ public class AuthorizationDenialMessagesTests extends ESTestCase { assertThat( rolesDescription, equalTo( - formatted( + Strings.format( " with effective roles [] (assigned roles [%s] were not found)", Strings.collectionToCommaDelimitedString(assignedRoleNames.stream().sorted().toList()) ) @@ -164,7 +164,7 @@ public class AuthorizationDenialMessagesTests extends ESTestCase { assertThat( rolesDescription, equalTo( - formatted( + Strings.format( " with effective roles [%s]", Strings.collectionToCommaDelimitedString(effectiveRoleNames.stream().sorted().toList()) ) diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/operator/OperatorOnlyRegistryTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/operator/OperatorOnlyRegistryTests.java index 217691755202..5394861b8460 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/operator/OperatorOnlyRegistryTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/operator/OperatorOnlyRegistryTests.java @@ -12,11 +12,11 @@ import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequ import org.elasticsearch.common.settings.ClusterSettings; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.junit.Before; import java.util.HashSet; -import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; @@ -90,7 +90,7 @@ public class OperatorOnlyRegistryTests extends ESTestCase { violation = operatorOnlyRegistry.check(ClusterUpdateSettingsAction.NAME, request); assertThat( violation.message(), - containsString(String.format(Locale.ROOT, "settings [%s,%s]", transientSetting.getKey(), persistentSetting.getKey())) + containsString(Strings.format("settings [%s,%s]", transientSetting.getKey(), persistentSetting.getKey())) ); } case 1 -> { @@ -98,14 +98,14 @@ public class OperatorOnlyRegistryTests extends ESTestCase { persistentSetting = convertToConcreteSettingIfNecessary(randomFrom(DYNAMIC_SETTINGS)); request = prepareClusterUpdateSettingsRequest(transientSetting, persistentSetting); violation = operatorOnlyRegistry.check(ClusterUpdateSettingsAction.NAME, request); - assertThat(violation.message(), containsString(formatted("setting [%s]", transientSetting.getKey()))); + assertThat(violation.message(), containsString(Strings.format("setting [%s]", transientSetting.getKey()))); } case 2 -> { transientSetting = convertToConcreteSettingIfNecessary(randomFrom(DYNAMIC_SETTINGS)); persistentSetting = convertToConcreteSettingIfNecessary(randomFrom(IP_FILTER_SETTINGS)); request = prepareClusterUpdateSettingsRequest(transientSetting, persistentSetting); violation = operatorOnlyRegistry.check(ClusterUpdateSettingsAction.NAME, request); - assertThat(violation.message(), containsString(formatted("setting [%s]", persistentSetting.getKey()))); + assertThat(violation.message(), containsString(Strings.format("setting [%s]", persistentSetting.getKey()))); } case 3 -> { transientSetting = convertToConcreteSettingIfNecessary(randomFrom(DYNAMIC_SETTINGS)); diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/oauth2/RestGetTokenActionTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/oauth2/RestGetTokenActionTests.java index 17ab028eb535..2ac33a780313 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/oauth2/RestGetTokenActionTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/oauth2/RestGetTokenActionTests.java @@ -10,6 +10,7 @@ import org.apache.lucene.util.SetOnce; import org.elasticsearch.ElasticsearchSecurityException; import org.elasticsearch.action.ActionRequestValidationException; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.rest.AbstractRestChannel; import org.elasticsearch.rest.RestChannel; @@ -142,7 +143,7 @@ public class RestGetTokenActionTests extends ESTestCase { } public void testParser() throws Exception { - final String request = formatted(""" + final String request = Strings.format(""" { "grant_type": "password", "username": "user1", @@ -160,7 +161,7 @@ public class RestGetTokenActionTests extends ESTestCase { public void testParserRefreshRequest() throws Exception { final String token = randomAlphaOfLengthBetween(4, 32); - final String request = formatted(""" + final String request = Strings.format(""" { "grant_type": "refresh_token", "refresh_token": "%s", diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/profile/RestSuggestProfilesActionTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/profile/RestSuggestProfilesActionTests.java index 81b2579608ab..26412106229a 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/profile/RestSuggestProfilesActionTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/profile/RestSuggestProfilesActionTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.xpack.security.rest.action.profile; import org.elasticsearch.ElasticsearchSecurityException; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.license.MockLicenseState; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestStatus; @@ -98,7 +99,7 @@ public class RestSuggestProfilesActionTests extends RestActionTestCase { ) .withPath("/_security/profile/_suggest") .withParams(new HashMap<>(Map.of("data", randomAlphaOfLengthBetween(3, 8)))) - .withContent(new BytesArray(formatted("{\"data\": \"%s\"}", randomAlphaOfLengthBetween(3, 8))), XContentType.JSON) + .withContent(new BytesArray(Strings.format("{\"data\": \"%s\"}", randomAlphaOfLengthBetween(3, 8))), XContentType.JSON) .build(); final IllegalArgumentException e = expectThrows( diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/user/RestGetUserPrivilegesActionTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/user/RestGetUserPrivilegesActionTests.java index d0c33a516599..af48949f2d31 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/user/RestGetUserPrivilegesActionTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/rest/action/user/RestGetUserPrivilegesActionTests.java @@ -33,7 +33,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; -import java.util.Locale; import java.util.Set; import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder; @@ -186,7 +185,7 @@ public class RestGetUserPrivilegesActionTests extends ESTestCase { "clusters": [ "*", "remote-2" ] } ]"""; - assertThat(json, equalTo(XContentHelper.stripWhitespace(String.format(Locale.ROOT, """ + assertThat(json, equalTo(XContentHelper.stripWhitespace(Strings.format(""" { "cluster": [ "monitor", "manage_ml", "manage_watcher" ], "global": [ diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/filter/IPFilterTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/filter/IPFilterTests.java index 04c624298c56..7a73fbff2db8 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/filter/IPFilterTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/filter/IPFilterTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.settings.ClusterSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.BoundTransportAddress; import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.core.Strings; import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.license.MockLicenseState; import org.elasticsearch.license.TestUtils; @@ -262,7 +263,7 @@ public class IPFilterTests extends ESTestCase { ipFilter.setBoundTransportAddress(transport.boundAddress(), transport.profileBoundAddresses()); // don't use the assert helper because we don't want the audit trail to be invoked here - String message = formatted("Expected address %s to be allowed", "8.8.8.8"); + String message = Strings.format("Expected address %s to be allowed", "8.8.8.8"); InetAddress address = InetAddresses.forString("8.8.8.8"); assertThat(message, ipFilter.accept("default", new InetSocketAddress(address, 0)), is(true)); verifyNoMoreInteractions(auditTrail); @@ -289,7 +290,7 @@ public class IPFilterTests extends ESTestCase { private void assertAddressIsAllowedForProfile(String profile, String... inetAddresses) { for (String inetAddress : inetAddresses) { - String message = formatted("Expected address %s to be allowed", inetAddress); + String message = Strings.format("Expected address %s to be allowed", inetAddress); InetSocketAddress address = new InetSocketAddress(InetAddresses.forString(inetAddress), 0); assertTrue(message, ipFilter.accept(profile, address)); ArgumentCaptor ruleCaptor = ArgumentCaptor.forClass(SecurityIpFilterRule.class); @@ -304,7 +305,7 @@ public class IPFilterTests extends ESTestCase { private void assertAddressIsDeniedForProfile(String profile, String... inetAddresses) { for (String inetAddress : inetAddresses) { - String message = formatted("Expected address %s to be denied", inetAddress); + String message = Strings.format("Expected address %s to be denied", inetAddress); InetSocketAddress address = new InetSocketAddress(InetAddresses.forString(inetAddress), 0); assertFalse(message, ipFilter.accept(profile, address)); ArgumentCaptor ruleCaptor = ArgumentCaptor.forClass(SecurityIpFilterRule.class); diff --git a/x-pack/plugin/shutdown/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownIT.java b/x-pack/plugin/shutdown/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownIT.java index d99be7b2ea05..62c98befa6f4 100644 --- a/x-pack/plugin/shutdown/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownIT.java +++ b/x-pack/plugin/shutdown/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/shutdown/NodeShutdownIT.java @@ -344,7 +344,7 @@ public class NodeShutdownIT extends ESRestTestCase implements ReadinessClientPro // Create an index, pin the allocation to the node we're about to shut down final String indexName = "test-idx"; Request createIndexRequest = new Request("PUT", indexName); - createIndexRequest.setJsonEntity(formatted(""" + createIndexRequest.setJsonEntity(Strings.format(""" { "settings": { "number_of_shards": %s, diff --git a/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/ShapeQueryOverShapeTests.java b/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/ShapeQueryOverShapeTests.java index 0bcd4723effd..dbefc82702ce 100644 --- a/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/ShapeQueryOverShapeTests.java +++ b/x-pack/plugin/spatial/src/internalClusterTest/java/org/elasticsearch/xpack/spatial/search/ShapeQueryOverShapeTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.geo.GeoJson; import org.elasticsearch.common.geo.ShapeRelation; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.GeometryCollection; import org.elasticsearch.geometry.MultiPoint; @@ -136,7 +137,7 @@ public class ShapeQueryOverShapeTests extends ShapeQueryTestCase { String location = """ "location" : {"type":"polygon", "coordinates":[[[-10,-10],[10,-10],[10,10],[-10,10],[-10,-10]]]}"""; - client().prepareIndex(indexName).setId("1").setSource(formatted(""" + client().prepareIndex(indexName).setId("1").setSource(Strings.format(""" { %s, "1" : { %s, "2" : { %s, "3" : { %s } }} } """, location, location, location, location), XContentType.JSON).setRefreshPolicy(IMMEDIATE).get(); client().prepareIndex(searchIndex) @@ -230,13 +231,14 @@ public class ShapeQueryOverShapeTests extends ShapeQueryTestCase { * Test that the indexed shape routing can be provided if it is required */ public void testIndexShapeRouting() { - String source = formatted(""" + Object[] args = new Object[] { -Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE, -Float.MAX_VALUE }; + String source = Strings.format(""" { "shape" : { "type" : "bbox", "coordinates" : [[%s,%s], [%s, %s]] } - }""", -Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE, -Float.MAX_VALUE); + }""", args); client().prepareIndex(INDEX).setId("0").setSource(source, XContentType.JSON).setRouting("ABC").get(); client().admin().indices().prepareRefresh(INDEX).get(); diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoGridQueryBuilderTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoGridQueryBuilderTests.java index c00c10b5a843..fc782adc5c5c 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoGridQueryBuilderTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/GeoGridQueryBuilderTests.java @@ -123,7 +123,7 @@ public class GeoGridQueryBuilderTests extends AbstractQueryTestCase jps.setObject(1, someInt, Types.TIMESTAMP)); - assertEquals(formatted("Unable to convert value [%.128s] of type [INTEGER] to [TIMESTAMP]", someInt), sqle.getMessage()); + assertEquals(Strings.format("Unable to convert value [%.128s] of type [INTEGER] to [TIMESTAMP]", someInt), sqle.getMessage()); Integer randomIntNotShort = randomIntBetween(32768, Integer.MAX_VALUE); sqle = expectThrows(SQLException.class, () -> jps.setObject(1, randomIntNotShort, Types.SMALLINT)); @@ -298,7 +299,7 @@ public class JdbcPreparedStatementTests extends ESTestCase { long someLong = randomLong(); SQLException sqle = expectThrows(SQLException.class, () -> jps.setObject(1, someLong, Types.TIMESTAMP)); - assertEquals(formatted("Unable to convert value [%.128s] of type [LONG] to [TIMESTAMP]", someLong), sqle.getMessage()); + assertEquals(Strings.format("Unable to convert value [%.128s] of type [LONG] to [TIMESTAMP]", someLong), sqle.getMessage()); Long randomLongNotShort = randomLongBetween(Integer.MAX_VALUE + 1, Long.MAX_VALUE); sqle = expectThrows(SQLException.class, () -> jps.setObject(1, randomLongNotShort, Types.INTEGER)); @@ -339,7 +340,7 @@ public class JdbcPreparedStatementTests extends ESTestCase { float someFloat = randomFloat(); SQLException sqle = expectThrows(SQLException.class, () -> jps.setObject(1, someFloat, Types.TIMESTAMP)); - assertEquals(formatted("Unable to convert value [%.128s] of type [FLOAT] to [TIMESTAMP]", someFloat), sqle.getMessage()); + assertEquals(Strings.format("Unable to convert value [%.128s] of type [FLOAT] to [TIMESTAMP]", someFloat), sqle.getMessage()); Float floatNotInt = 5_155_000_000f; sqle = expectThrows(SQLException.class, () -> jps.setObject(1, floatNotInt, Types.INTEGER)); @@ -376,7 +377,7 @@ public class JdbcPreparedStatementTests extends ESTestCase { double someDouble = randomDouble(); SQLException sqle = expectThrows(SQLException.class, () -> jps.setObject(1, someDouble, Types.TIMESTAMP)); - assertEquals(formatted("Unable to convert value [%.128s] of type [DOUBLE] to [TIMESTAMP]", someDouble), sqle.getMessage()); + assertEquals(Strings.format("Unable to convert value [%.128s] of type [DOUBLE] to [TIMESTAMP]", someDouble), sqle.getMessage()); Double doubleNotInt = 5_155_000_000d; sqle = expectThrows(SQLException.class, () -> jps.setObject(1, doubleNotInt, Types.INTEGER)); diff --git a/x-pack/plugin/sql/qa/jdbc/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/jdbc/single_node/JdbcShardFailureIT.java b/x-pack/plugin/sql/qa/jdbc/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/jdbc/single_node/JdbcShardFailureIT.java index dd92d96e6838..f83047411f0b 100644 --- a/x-pack/plugin/sql/qa/jdbc/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/jdbc/single_node/JdbcShardFailureIT.java +++ b/x-pack/plugin/sql/qa/jdbc/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/jdbc/single_node/JdbcShardFailureIT.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.sql.qa.jdbc.single_node; import org.elasticsearch.client.Request; +import org.elasticsearch.core.Strings; import org.elasticsearch.xpack.sql.qa.jdbc.JdbcIntegrationTestCase; import org.junit.Before; @@ -63,7 +64,7 @@ public class JdbcShardFailureIT extends JdbcIntegrationTestCase { request.addParameter("refresh", "true"); StringBuilder bulk = new StringBuilder(); for (int i = 0; i < 20; i++) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{}} {"test_field":%s} """, i)); diff --git a/x-pack/plugin/sql/qa/mixed-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/mixed_node/SqlCompatIT.java b/x-pack/plugin/sql/qa/mixed-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/mixed_node/SqlCompatIT.java index c5eaa27c52c9..e7e4132052c8 100644 --- a/x-pack/plugin/sql/qa/mixed-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/mixed_node/SqlCompatIT.java +++ b/x-pack/plugin/sql/qa/mixed-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/mixed_node/SqlCompatIT.java @@ -157,7 +157,7 @@ public class SqlCompatIT extends BaseRestSqlTestCase { assertThat(cursor, Matchers.not(Matchers.emptyOrNullString())); Request scrollReq = new Request("POST", "_sql"); - scrollReq.setJsonEntity(formatted("{\"cursor\": \"%s\"}", cursor)); + scrollReq.setJsonEntity(Strings.format("{\"cursor\": \"%s\"}", cursor)); ResponseException exception = expectThrows(ResponseException.class, () -> client2.performRequest(scrollReq)); assertThat( diff --git a/x-pack/plugin/sql/qa/server/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/multi_node/RestSqlMultinodeIT.java b/x-pack/plugin/sql/qa/server/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/multi_node/RestSqlMultinodeIT.java index 5722c711c004..37e19fe428b4 100644 --- a/x-pack/plugin/sql/qa/server/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/multi_node/RestSqlMultinodeIT.java +++ b/x-pack/plugin/sql/qa/server/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/multi_node/RestSqlMultinodeIT.java @@ -93,7 +93,7 @@ public class RestSqlMultinodeIT extends ESRestTestCase { int a = 3 * i; int b = a + 1; int c = b + 1; - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_id":"%s"}} {"a": %s, "b": %s, "c": %s} """, i, a, b, c)); diff --git a/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/ConsistentFunctionArgHandlingIT.java b/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/ConsistentFunctionArgHandlingIT.java index c49cc5b4cf01..a3f966e712b2 100644 --- a/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/ConsistentFunctionArgHandlingIT.java +++ b/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/ConsistentFunctionArgHandlingIT.java @@ -12,6 +12,7 @@ import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; import org.elasticsearch.common.UUIDs; import org.elasticsearch.core.CheckedConsumer; import org.elasticsearch.core.PathUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.xpack.sql.qa.jdbc.JdbcIntegrationTestCase; @@ -22,7 +23,6 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -204,7 +204,7 @@ public class ConsistentFunctionArgHandlingIT extends JdbcIntegrationTestCase { if (results.stream().map(Tuple::v2).distinct().count() > 1) { int maxResultWidth = results.stream().map(Tuple::v2).mapToInt(o -> asLiteralInQuery(o).length()).max().orElse(20); String resultsAsString = results.stream() - .map(r -> String.format(Locale.ROOT, "%2$-" + maxResultWidth + "s // %1$s", r.v1(), asLiteralInQuery(r.v2()))) + .map(r -> Strings.format("%2$-" + maxResultWidth + "s // %1$s", r.v1(), asLiteralInQuery(r.v2()))) .collect(joining("\n")); fail("The result of the last call differs from the other calls:\n" + resultsAsString); } diff --git a/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/JdbcShardFailureIT.java b/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/JdbcShardFailureIT.java index daeb2891c240..492971cf2a13 100644 --- a/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/JdbcShardFailureIT.java +++ b/x-pack/plugin/sql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/sql/qa/single_node/JdbcShardFailureIT.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.sql.qa.single_node; import org.elasticsearch.client.Request; +import org.elasticsearch.core.Strings; import org.elasticsearch.xpack.sql.qa.jdbc.JdbcIntegrationTestCase; import java.io.IOException; @@ -15,7 +16,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.Statement; -import java.util.Locale; import java.util.Properties; import static org.hamcrest.Matchers.containsString; @@ -54,7 +54,7 @@ public class JdbcShardFailureIT extends JdbcIntegrationTestCase { request.addParameter("refresh", "true"); StringBuilder bulk = new StringBuilder(); for (int i = 0; i < 20; i++) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{}} {"test_field":%s} """, i)); @@ -101,7 +101,7 @@ public class JdbcShardFailureIT extends JdbcIntegrationTestCase { String indexName = "/test" + i; Request request = new Request("PUT", indexName); boolean indexWithDocVals = i < okShards; - request.setJsonEntity(String.format(Locale.ROOT, mappingTemplate, indexWithDocVals, indexWithDocVals)); + request.setJsonEntity(Strings.format(mappingTemplate, indexWithDocVals, indexWithDocVals)); assertOK(provisioningClient().performRequest(request)); request = new Request("POST", indexName + "/_doc"); diff --git a/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/CustomDateFormatTestCase.java b/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/CustomDateFormatTestCase.java index 5ba9ed6c816f..861d6f158232 100644 --- a/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/CustomDateFormatTestCase.java +++ b/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/CustomDateFormatTestCase.java @@ -49,7 +49,7 @@ public abstract class CustomDateFormatTestCase extends BaseRestSqlTestCase { for (int i = 0; i < customFormats.length; i++) { String field = "date_" + i; String format = DateTimeFormatter.ofPattern(customFormats[i], Locale.ROOT).format(DateUtils.nowWithMillisResolution()); - docs[i] = formatted(""" + docs[i] = org.elasticsearch.core.Strings.format(""" {"%s":"%s"} """, field, format); datesConditions.append(i > 0 ? " OR " : "").append(field + randomFrom(operators) + randomFrom(nowFunctions)); diff --git a/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlTestCase.java b/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlTestCase.java index 8c1d9fa38eab..3f8e7801118e 100644 --- a/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlTestCase.java +++ b/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlTestCase.java @@ -1171,7 +1171,7 @@ public abstract class RestSqlTestCase extends BaseRestSqlTestCase implements Err int size = 20; String[] docs = new String[size]; for (int i = 0; i < size; i++) { - docs[i] = formatted(""" + docs[i] = org.elasticsearch.core.Strings.format(""" {"text":"text%s", "number":%s} """, i, i); } @@ -1219,7 +1219,7 @@ public abstract class RestSqlTestCase extends BaseRestSqlTestCase implements Err request.addParameter("refresh", "true"); StringBuilder bulk = new StringBuilder(); for (int i = 0; i < count; i++) { - bulk.append(formatted(""" + bulk.append(org.elasticsearch.core.Strings.format(""" {"index":{"_id":"%s"}} {"text":"text%s", "number":%s} """, i, i, i)); diff --git a/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlUsageTestCase.java b/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlUsageTestCase.java index 6c697f80a5b2..c979feba781c 100644 --- a/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlUsageTestCase.java +++ b/x-pack/plugin/sql/qa/server/src/main/java/org/elasticsearch/xpack/sql/qa/rest/RestSqlUsageTestCase.java @@ -12,6 +12,7 @@ import org.apache.http.entity.StringEntity; import org.elasticsearch.client.Request; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xcontent.json.JsonXContent; import org.elasticsearch.xpack.sql.proto.Mode; @@ -300,7 +301,7 @@ public abstract class RestSqlUsageTestCase extends ESRestTestCase { request.addParameter("refresh", "true"); StringBuilder bulk = new StringBuilder(); for (IndexDocument doc : docs) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{}} {"condition":"%s","name":"%s","page_count":%s} """, doc.condition, doc.name, doc.pageCount)); diff --git a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlRequestParsersTests.java b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlRequestParsersTests.java index 77898a8c02a8..871e559eedf7 100644 --- a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlRequestParsersTests.java +++ b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlRequestParsersTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.sql.action; import org.elasticsearch.Version; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xcontent.XContentParseException; @@ -57,7 +58,7 @@ public class SqlRequestParsersTests extends ESTestCase { {"cursor" : "whatever", "fetch_size":123}""", "unknown field [fetch_size]", SqlClearCursorRequest::fromXContent); Mode randomMode = randomFrom(Mode.values()); - SqlClearCursorRequest request = generateRequest(formatted(""" + SqlClearCursorRequest request = generateRequest(Strings.format(""" { "cursor": "whatever", "mode": "%s", @@ -72,7 +73,7 @@ public class SqlRequestParsersTests extends ESTestCase { assertTrue(request.binaryCommunication()); randomMode = randomFrom(Mode.values()); - request = generateRequest(formatted(""" + request = generateRequest(Strings.format(""" { "cursor": "whatever", "mode": "%s", @@ -117,7 +118,7 @@ public class SqlRequestParsersTests extends ESTestCase { assertEquals(Mode.PLAIN, request.mode()); Mode randomMode = randomFrom(Mode.values()); - request = generateRequest(formatted(""" + request = generateRequest(Strings.format(""" { "query": "whatever", "client_id": "foo", @@ -162,7 +163,7 @@ public class SqlRequestParsersTests extends ESTestCase { list.add(new SqlTypedParamValue("integer", 123, false)); } - SqlQueryRequest request = generateRequest(formatted(""" + SqlQueryRequest request = generateRequest(Strings.format(""" { "cursor": "whatever", "mode": "%s", @@ -190,7 +191,7 @@ public class SqlRequestParsersTests extends ESTestCase { public void testParamsSuccessfulParsingInDriverMode() throws IOException { Mode driverMode = randomValueOtherThanMany((m) -> Mode.isDriver(m) == false, () -> randomFrom(Mode.values())); - String json = formatted(""" + String json = Strings.format(""" { "params": [ { @@ -235,7 +236,7 @@ public class SqlRequestParsersTests extends ESTestCase { public void testParamsSuccessfulParsingInNonDriverMode() throws IOException { Mode nonDriverMode = randomValueOtherThanMany(Mode::isDriver, () -> randomFrom(Mode.values())); - String json = formatted(""" + String json = Strings.format(""" { "params": [ 35000, "1960-01-01", false, "foo" ], "mode": "%s" @@ -263,17 +264,17 @@ public class SqlRequestParsersTests extends ESTestCase { public void testParamsParsingFailure_QueryRequest_NonDriver() throws IOException { Mode m = randomValueOtherThanMany(Mode::isDriver, () -> randomFrom(Mode.values())); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "params": [ { "whatever": 35000 }, "1960-01-01", false, "foo" ], "mode": "%s" }""", m), "[sql/query] failed to parse field [params]", SqlQueryRequest::fromXContent); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "params": [ 350.123, "1960-01-01", { "foobar": false }, "foo" ], "mode": "}%s" }""", m), "[sql/query] failed to parse field [params]", SqlQueryRequest::fromXContent); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "mode": "%s", "params": [ 350.123, "1960-01-01", false, { "type": "keyword", "value": "foo" } ] @@ -282,18 +283,18 @@ public class SqlRequestParsersTests extends ESTestCase { public void testParamsParsingFailure_TranslateRequest_NonDriver() throws IOException { Mode m = randomValueOtherThanMany(Mode::isDriver, () -> randomFrom(Mode.values())); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "params": [ { "whatever": 35000 }, "1960-01-01", false, "foo" ], "mode": "%s" }""", m), "[sql/query] failed to parse field [params]", SqlTranslateRequest::fromXContent); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "params": [ 350.123, "1960-01-01", { "foobar": false }, "foo" ], "mode": "}%s" }""", m), "[sql/query] failed to parse field [params]", SqlTranslateRequest::fromXContent); assertXContentParsingErrorMessage( - formatted(""" + Strings.format(""" { "mode": "%s", "params": [ 350.123, "1960-01-01", false, { "type": "keyword", "value": "foo" } ] @@ -305,7 +306,7 @@ public class SqlRequestParsersTests extends ESTestCase { public void testParamsParsingFailure_Driver() throws IOException { Mode m = randomValueOtherThanMany((t) -> Mode.isDriver(t) == false, () -> randomFrom(Mode.values())); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "params": [ 35000, @@ -320,7 +321,7 @@ public class SqlRequestParsersTests extends ESTestCase { ], "mode": "%s" }""", m), "[params] must be an array where each entry is an object with a value/type pair", SqlQueryRequest::fromXContent); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "params": [ { @@ -336,7 +337,7 @@ public class SqlRequestParsersTests extends ESTestCase { ], "mode": "%s" }""", m), "[params] must be an array where each entry is an object with a value/type pair", SqlQueryRequest::fromXContent); - assertXContentParsingErrorMessage(formatted(""" + assertXContentParsingErrorMessage(Strings.format(""" { "mode": "%s", "params": [ diff --git a/x-pack/plugin/sql/sql-client/src/test/java/org/elasticsearch/xpack/sql/client/RemoteFailureTests.java b/x-pack/plugin/sql/sql-client/src/test/java/org/elasticsearch/xpack/sql/client/RemoteFailureTests.java index 7750a527e647..d093332e4842 100644 --- a/x-pack/plugin/sql/sql-client/src/test/java/org/elasticsearch/xpack/sql/client/RemoteFailureTests.java +++ b/x-pack/plugin/sql/sql-client/src/test/java/org/elasticsearch/xpack/sql/client/RemoteFailureTests.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.sql.client; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import java.io.IOException; @@ -154,9 +155,10 @@ public class RemoteFailureTests extends ESTestCase { """); int i = 0; while (tooBig.length() < RemoteFailure.MAX_RAW_RESPONSE) { - tooBig.append(formatted(""" + Object[] args = new Object[] { i++ }; + tooBig.append(Strings.format(""" "%04d" : "lots and lots and lots and lots and lots of words", - """, i++)); + """, args)); } tooBig.append(""" "end" : "lots and lots and lots and lots and lots of words" diff --git a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/function/scalar/datetime/DateTimeDateFormatProcessorTests.java b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/function/scalar/datetime/DateTimeDateFormatProcessorTests.java index a44f641a5ff4..459b7758f18a 100644 --- a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/function/scalar/datetime/DateTimeDateFormatProcessorTests.java +++ b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/function/scalar/datetime/DateTimeDateFormatProcessorTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.xpack.sql.expression.function.scalar.datetime; import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; import org.elasticsearch.core.PathUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xpack.ql.tree.Source; @@ -94,7 +95,7 @@ public class DateTimeDateFormatProcessorTests extends ESTestCase { .makePipe() .asProcessor() .process(null); - assertEquals(String.format(Locale.ROOT, """ + assertEquals(Strings.format(""" Testfile: %s Line number: %s diff --git a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/literal/interval/IntervalsTests.java b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/literal/interval/IntervalsTests.java index e3505e2b6f85..d8238201744a 100644 --- a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/literal/interval/IntervalsTests.java +++ b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/expression/literal/interval/IntervalsTests.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.sql.expression.literal.interval; import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xpack.ql.ParsingException; import org.elasticsearch.xpack.sql.expression.literal.interval.Intervals.TimeUnit; @@ -86,7 +87,7 @@ public class IntervalsTests extends ESTestCase { int randomSeconds = randomNonNegativeInt(); int randomMillis = randomBoolean() ? (randomBoolean() ? 0 : 999) : randomInt(999); String value = format(Locale.ROOT, "%s%d", sign, randomSeconds); - value += randomMillis > 0 ? formatted(".%03d", randomMillis) : ""; + value += randomMillis > 0 ? Strings.format(".%03d", randomMillis) : ""; TemporalAmount amount = parseInterval(EMPTY, value, INTERVAL_SECOND); assertEquals(maybeNegate(sign, Duration.ofSeconds(randomSeconds).plusMillis(randomMillis)), amount); } @@ -131,7 +132,7 @@ public class IntervalsTests extends ESTestCase { boolean withMillis = randomBoolean(); int randomMilli = withMillis ? randomInt(999) : 0; - String millisString = withMillis && randomMilli > 0 ? formatted(".%03d", randomMilli) : ""; + String millisString = withMillis && randomMilli > 0 ? Strings.format(".%03d", randomMilli) : ""; String value = format(Locale.ROOT, "%s%d %d:%d:%d%s", sign, randomDay, randomHour, randomMinute, randomSecond, millisString); TemporalAmount amount = parseInterval(EMPTY, value, INTERVAL_DAY_TO_SECOND); @@ -159,7 +160,7 @@ public class IntervalsTests extends ESTestCase { boolean withMillis = randomBoolean(); int randomMilli = withMillis ? randomInt(999) : 0; - String millisString = withMillis && randomMilli > 0 ? formatted(".%03d", randomMilli) : ""; + String millisString = withMillis && randomMilli > 0 ? Strings.format(".%03d", randomMilli) : ""; String value = format(Locale.ROOT, "%s%d:%d:%d%s", sign, randomHour, randomMinute, randomSecond, millisString); TemporalAmount amount = parseInterval(EMPTY, value, INTERVAL_HOUR_TO_SECOND); @@ -175,7 +176,7 @@ public class IntervalsTests extends ESTestCase { boolean withMillis = randomBoolean(); int randomMilli = withMillis ? randomInt(999) : 0; - String millisString = withMillis && randomMilli > 0 ? formatted(".%03d", randomMilli) : ""; + String millisString = withMillis && randomMilli > 0 ? Strings.format(".%03d", randomMilli) : ""; String value = format(Locale.ROOT, "%s%d:%d%s", sign, randomMinute, randomSecond, millisString); TemporalAmount amount = parseInterval(EMPTY, value, INTERVAL_MINUTE_TO_SECOND); diff --git a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/parser/EscapedFunctionsTests.java b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/parser/EscapedFunctionsTests.java index 4cb717b501ce..a7a36fe65ae5 100644 --- a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/parser/EscapedFunctionsTests.java +++ b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/parser/EscapedFunctionsTests.java @@ -6,6 +6,7 @@ */ package org.elasticsearch.xpack.sql.parser; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xpack.ql.expression.Expression; import org.elasticsearch.xpack.ql.expression.Literal; @@ -119,7 +120,7 @@ public class EscapedFunctionsTests extends ESTestCase { } private LikePattern likeEscape(String like, String character) { - Expression exp = parser.createExpression(formatted("exp LIKE '%s' ", like) + buildExpression("escape", "'%s'", character)); + Expression exp = parser.createExpression(Strings.format("exp LIKE '%s' ", like) + buildExpression("escape", "'%s'", character)); assertThat(exp, instanceOf(Like.class)); return ((Like) exp).pattern(); } diff --git a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/planner/QueryTranslatorTests.java b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/planner/QueryTranslatorTests.java index f363e06318d9..d5b4a31e9e38 100644 --- a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/planner/QueryTranslatorTests.java +++ b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/planner/QueryTranslatorTests.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.sql.planner; import org.elasticsearch.common.time.DateFormatter; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.query.ExistsQueryBuilder; import org.elasticsearch.search.aggregations.AggregationBuilder; @@ -769,7 +770,7 @@ public class QueryTranslatorTests extends ESTestCase { + randomFunction.name() + "(date + INTERVAL 1 YEAR)" ); - assertESQuery(p, containsString(formatted(""" + assertESQuery(p, containsString(Strings.format(""" { "terms": { "script": { @@ -802,7 +803,7 @@ public class QueryTranslatorTests extends ESTestCase { ); assertEquals(EsQueryExec.class, p.getClass()); EsQueryExec eqe = (EsQueryExec) p; - assertThat(eqe.queryContainer().toString().replaceAll("\\s+", ""), containsString(formatted(""" + assertThat(eqe.queryContainer().toString().replaceAll("\\s+", ""), containsString(Strings.format(""" { "terms": { "script": { @@ -1130,7 +1131,7 @@ public class QueryTranslatorTests extends ESTestCase { assertThat( ee.queryContainer().aggs().asAggBuilder().toString().replaceAll("\\s+", ""), endsWith( - formatted( + Strings.format( """ { "buckets_path": { @@ -1203,7 +1204,7 @@ public class QueryTranslatorTests extends ESTestCase { assertEquals(((MetricAggRef) fe).property(), metricToAgg.get(funcName)); String aggName = eqe.queryContainer().aggs().asAggBuilder().getSubAggregations().iterator().next().getName(); - assertESQuery(p, endsWith(formatted(""" + assertESQuery(p, endsWith(Strings.format(""" "aggregations":{"%s":{"extended_stats":{"field":"int","sigma":2.0}}}}}}\ """, aggName))); } diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformIT.java index a0cb50ea3f66..bd5e1cb06893 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformIT.java @@ -220,7 +220,7 @@ public class TransformIT extends TransformRestTestCase { putPipeline.setEntity(new StringEntity(Strings.toString(pipelineBuilder), ContentType.APPLICATION_JSON)); assertOK(client().performRequest(putPipeline)); - String update = formatted(""" + String update = Strings.format(""" { "description": "updated config", "dest": { @@ -407,7 +407,7 @@ public class TransformIT extends TransformRestTestCase { // test randomly: with explicit settings and reset to default String reqsPerSec = randomBoolean() ? "1000" : "null"; String maxPageSize = randomBoolean() ? "1000" : "null"; - String update = formatted(""" + String update = Strings.format(""" { "settings" : { "docs_per_second": %s, @@ -482,14 +482,14 @@ public class TransformIT extends TransformRestTestCase { private void indexMoreDocs(long timestamp, long userId, String index) throws Exception { StringBuilder bulkBuilder = new StringBuilder(); for (int i = 0; i < 25; i++) { - bulkBuilder.append(formatted(""" + bulkBuilder.append(Strings.format(""" {"create":{"_index":"%s"}} """, index)); int stars = (i + 20) % 5; long business = (i + 100) % 50; - String source = formatted(""" + String source = Strings.format(""" {"user_id":"user_%s","count":%s,"business_id":"business_%s","stars":%s,"timestamp":%s} """, userId, i, business, stars, timestamp); bulkBuilder.append(source); diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java index 7561c68e8eed..5a450ff86188 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java @@ -464,7 +464,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { long business = i % 50; String dateString = dateStringProvider.apply(i); - sourceBuilder.append(formatted(""" + sourceBuilder.append(Strings.format(""" {"create":{"_index":"%s"}} """, indexName)); @@ -472,7 +472,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { if (user != null) { sourceBuilder.append("\"user_id\":\"").append("user_").append(user).append("\","); } - sourceBuilder.append(formatted(""" + sourceBuilder.append(Strings.format(""" "count":%s,"business_id":"business_%s","stars":%s,"comment":"Great stuff, deserves %s stars","regular_object":\ {"foo": 42},"nested_object":{"bar": 43},"timestamp":"%s"} """, i, business, stars, stars, dateString)); diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByIT.java index 870eb9e715f3..998327ee9fb3 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.integration.continuous; import org.elasticsearch.client.Response; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.xpack.core.transform.transforms.DestConfig; @@ -93,7 +94,8 @@ public class DateHistogramGroupByIT extends ContinuousTestCase { @Override @SuppressWarnings("unchecked") public void testIteration(int iteration, Set modifiedEvents) throws IOException { - String query = formatted(""" + Object[] args = new Object[] { timestampField, missing ? "\"missing\": \"" + MISSING_BUCKET_KEY + "\"," : "" }; + String query = Strings.format(""" { "aggs": { "second": { @@ -106,7 +108,7 @@ public class DateHistogramGroupByIT extends ContinuousTestCase { } } } - """, timestampField, missing ? "\"missing\": \"" + MISSING_BUCKET_KEY + "\"," : ""); + """, args); Response searchResponse = search( CONTINUOUS_EVENTS_SOURCE_INDEX, diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByOtherTimeFieldIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByOtherTimeFieldIT.java index 409022842e18..755482ed4b28 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByOtherTimeFieldIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/DateHistogramGroupByOtherTimeFieldIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.integration.continuous; import org.elasticsearch.client.Response; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.xpack.core.transform.transforms.DestConfig; @@ -100,11 +101,12 @@ public class DateHistogramGroupByOtherTimeFieldIT extends ContinuousTestCase { @Override public void testIteration(int iteration, Set modifiedEvents) throws IOException { - String eventAgg = formatted(""" + String eventAgg = Strings.format(""" , "aggs" : {"event": {"terms": {"field": "%s", "size": 1000, "order": {"_key": "asc"}}}} """, termsField); - String querySource = formatted(""" + Object[] args = new Object[] { metricTimestampField, addGroupByTerms ? eventAgg : "" }; + String querySource = Strings.format(""" { "aggs": { "second": { @@ -116,7 +118,7 @@ public class DateHistogramGroupByOtherTimeFieldIT extends ContinuousTestCase { } } } - """, metricTimestampField, addGroupByTerms ? eventAgg : ""); + """, args); Response searchResponseSource = search( CONTINUOUS_EVENTS_SOURCE_INDEX, diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/HistogramGroupByIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/HistogramGroupByIT.java index 3f9219ff1fa0..c9aabd8aa069 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/HistogramGroupByIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/HistogramGroupByIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.integration.continuous; import org.elasticsearch.client.Response; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.xpack.core.transform.transforms.DestConfig; import org.elasticsearch.xpack.core.transform.transforms.SourceConfig; @@ -70,7 +71,7 @@ public class HistogramGroupByIT extends ContinuousTestCase { @Override @SuppressWarnings("unchecked") public void testIteration(int iteration, Set modifiedEvents) throws IOException { - String querySource = formatted(""" + String querySource = Strings.format(""" { "aggs": { "metric": { diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/LatestContinuousIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/LatestContinuousIT.java index a5de3be478e2..81e6e2328f7b 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/LatestContinuousIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/LatestContinuousIT.java @@ -74,7 +74,7 @@ public class LatestContinuousIT extends ContinuousTestCase { public void testIteration(int iteration, Set modifiedEvents) throws IOException { var runtimeMappings = toJson(RUNTIME_MAPPINGS); - String query = formatted(""" + String query = format(""" { "runtime_mappings" : %s, "aggs": { diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsGroupByIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsGroupByIT.java index af38fd6cee4a..c0617795fba9 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsGroupByIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsGroupByIT.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.transform.integration.continuous; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.xpack.core.transform.transforms.DestConfig; @@ -74,7 +75,8 @@ public class TermsGroupByIT extends ContinuousTestCase { @Override @SuppressWarnings("unchecked") public void testIteration(int iteration, Set modifiedEvents) throws IOException { - String query = formatted(""" + Object[] args = new Object[] { termsField, missing ? "\"missing\": \"" + MISSING_BUCKET_KEY + "\"," : "", metricField }; + String query = Strings.format(""" { "aggs": { "event": { @@ -95,7 +97,7 @@ public class TermsGroupByIT extends ContinuousTestCase { }, "sort": ["event"] } - """, termsField, missing ? "\"missing\": \"" + MISSING_BUCKET_KEY + "\"," : "", metricField); + """, args); var searchResponseSource = entityAsMap( search(CONTINUOUS_EVENTS_SOURCE_INDEX, query, Map.of("allow_partial_search_results", "false", "size", "0")) diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsOnDateGroupByIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsOnDateGroupByIT.java index 658a60985f4e..d9e159b0b9b2 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsOnDateGroupByIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TermsOnDateGroupByIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.integration.continuous; import org.elasticsearch.client.Response; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.xpack.core.transform.transforms.DestConfig; @@ -83,7 +84,8 @@ public class TermsOnDateGroupByIT extends ContinuousTestCase { @Override @SuppressWarnings("unchecked") public void testIteration(int iteration, Set modifiedEvents) throws IOException { - String query = formatted(""" + Object[] args = new Object[] { timestampField, missing ? "\"missing\": \"" + MISSING_BUCKET_KEY + "\"," : "", metricField }; + String query = Strings.format(""" { "aggs": { "some-timestamp": { @@ -103,7 +105,7 @@ public class TermsOnDateGroupByIT extends ContinuousTestCase { } } } - """, timestampField, missing ? "\"missing\": \"" + MISSING_BUCKET_KEY + "\"," : "", metricField); + """, args); Response searchResponseSource = search( CONTINUOUS_EVENTS_SOURCE_INDEX, diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TransformContinuousIT.java b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TransformContinuousIT.java index bc9ab27b62eb..229b0e8719e0 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TransformContinuousIT.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/continuous/TransformContinuousIT.java @@ -198,7 +198,7 @@ public class TransformContinuousIT extends TransformRestTestCase { int numDocs = randomIntBetween(1000, 20000); Set modifiedEvents = new HashSet<>(); - String action = formatted(""" + String action = Strings.format(""" {"create":{"_index":"%s"}} """, sourceIndexName); for (int numDoc = 0; numDoc < numDocs; numDoc++) { @@ -415,7 +415,7 @@ public class TransformContinuousIT extends TransformRestTestCase { logger.info("Creating source index with: {}", indexSettingsAndMappings); if (isDataStream) { Request createCompositeTemplate = new Request("PUT", "_index_template/" + indexName + "_template"); - createCompositeTemplate.setJsonEntity(formatted(""" + createCompositeTemplate.setJsonEntity(Strings.format(""" { "index_patterns": [ "%s" ], "data_stream": { diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformGetAndGetStatsIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformGetAndGetStatsIT.java index bebf3076b345..0f1af34ed5ee 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformGetAndGetStatsIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformGetAndGetStatsIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.WarningsHandler; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.transforms.persistence.TransformInternalIndexConstants; import org.junit.After; @@ -380,7 +381,7 @@ public class TransformGetAndGetStatsIT extends TransformRestTestCase { String transformSrc = "reviews_cont_pivot_test"; createReviewsIndex(transformSrc); final Request createTransformRequest = createRequestWithAuth("PUT", getTransformEndpoint() + transformId, null); - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" @@ -450,7 +451,7 @@ public class TransformGetAndGetStatsIT extends TransformRestTestCase { long now = Instant.now().toEpochMilli() - 1_000; for (int i = 0; i < numDocs; i++) { // Doing only new users so that there is a deterministic number of docs for progress - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"user_id":"user_%s","business_id":"business_%s","stars":%s,"timestamp":%s} """, transformSrc, randomFrom(42, 47, 113), 10, 5, now)); @@ -497,7 +498,7 @@ public class TransformGetAndGetStatsIT extends TransformRestTestCase { int numberOfTransforms = randomIntBetween(1_500, 4_000); for (int i = 0; i < numberOfTransforms; ++i) { - String transformId = formatted("t-%05d", i); + String transformId = Strings.format("t-%05d", i); final Request createTransformRequest = createRequestWithAuth("PUT", getTransformEndpoint() + transformId, null); createTransformRequest.setJsonEntity(config); assertOK(client().performRequest(createTransformRequest)); @@ -519,20 +520,20 @@ public class TransformGetAndGetStatsIT extends TransformRestTestCase { assertEquals(size, configs.size()); assertEquals(size, stats.size()); - assertThat(configs.get(0).get("id"), equalTo(formatted("t-%05d", from))); - assertThat(configs.get(configs.size() - 1).get("id"), equalTo(formatted("t-%05d", from + size - 1))); - assertThat(stats.get(0).get("id"), equalTo(formatted("t-%05d", from))); - assertThat(stats.get(stats.size() - 1).get("id"), equalTo(formatted("t-%05d", from + size - 1))); + assertThat(configs.get(0).get("id"), equalTo(Strings.format("t-%05d", from))); + assertThat(configs.get(configs.size() - 1).get("id"), equalTo(Strings.format("t-%05d", from + size - 1))); + assertThat(stats.get(0).get("id"), equalTo(Strings.format("t-%05d", from))); + assertThat(stats.get(stats.size() - 1).get("id"), equalTo(Strings.format("t-%05d", from + size - 1))); if (size > 2) { int randomElement = randomIntBetween(1, size - 1); - assertThat(configs.get(randomElement).get("id"), equalTo(formatted("t-%05d", from + randomElement))); - assertThat(stats.get(randomElement).get("id"), equalTo(formatted("t-%05d", from + randomElement))); + assertThat(configs.get(randomElement).get("id"), equalTo(Strings.format("t-%05d", from + randomElement))); + assertThat(stats.get(randomElement).get("id"), equalTo(Strings.format("t-%05d", from + randomElement))); } } for (int i = 0; i < numberOfTransforms; ++i) { - deleteTransform(formatted("t-%05d", i)); + deleteTransform(Strings.format("t-%05d", i)); } } diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformLatestRestIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformLatestRestIT.java index 2a26c2dd25af..9224b838b058 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformLatestRestIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformLatestRestIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.integration; import org.elasticsearch.client.Request; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.junit.Before; import java.io.IOException; @@ -56,7 +57,7 @@ public class TransformLatestRestIT extends TransformRestTestCase { String transformIndex = "aggregate_metric_double_latest_reviews"; setupDataAccessRole(DATA_ACCESS_ROLE, REVIEWS_INDEX_NAME, transformIndex); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -109,7 +110,7 @@ public class TransformLatestRestIT extends TransformRestTestCase { String statsField = "stars_stats"; setupDataAccessRole(DATA_ACCESS_ROLE, REVIEWS_INDEX_NAME, transformIndex); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java index d3c0cf026e53..6ce335ef0be1 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestIT.java @@ -245,7 +245,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { ); // same pivot as testSimplePivot, but we retrieve the grouping key using a script and add prefix - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" @@ -298,7 +298,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { String pipelineId = "my-pivot-pipeline"; int pipelineValue = 42; Request pipelineRequest = new Request("PUT", "/_ingest/pipeline/" + pipelineId); - pipelineRequest.setJsonEntity(formatted(""" + pipelineRequest.setJsonEntity(Strings.format(""" { "description" : "my pivot pipeline", "processors" : [ @@ -342,7 +342,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -402,7 +402,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -462,17 +462,17 @@ public class TransformPivotRestIT extends TransformRestTestCase { int stars = (i * 32) % 5; long business = (stars * user) % 13; String location = (user + 10) + "," + (user + 15); - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"user_id":"user_%s","business_id":"business_%s","stars":%s,"location":"%s","timestamp":%s} """, indexName, user, business, stars, location, dateStamp)); stars = 5; business = 11; - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"user_id":"user_%s","business_id":"business_%s","stars":%s,"location":"%s","timestamp":%s} """, indexName, user26, business, stars, location, dateStamp)); - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"business_id":"business_%s","stars":%s,"location":"%s","timestamp":%s} """, indexName, business, stars, location, dateStamp)); @@ -510,7 +510,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -561,7 +561,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -624,7 +624,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { // add 5 data points with 3 new users: 27, 28, 29 for (int i = 25; i < 30; i++) { String location = (i + 10) + "," + (i + 15); - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"user_id":"user_%s","business_id":"business_%s","stars":%s,"location":"%s","timestamp":%s} """, indexName, i, i, 3, location, dateStamp)); @@ -673,7 +673,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -780,7 +780,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -880,7 +880,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -929,7 +929,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -980,7 +980,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { String pipelineId = "my-preview-pivot-pipeline"; int pipelineValue = 42; Request pipelineRequest = new Request("PUT", "/_ingest/pipeline/" + pipelineId); - pipelineRequest.setJsonEntity(formatted(""" + pipelineRequest.setJsonEntity(Strings.format(""" { "description": "my pivot preview pipeline", "processors": [ @@ -998,7 +998,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { setupDataAccessRole(DATA_ACCESS_ROLE, REVIEWS_INDEX_NAME); final Request createPreviewRequest = createRequestWithAuth("POST", getTransformEndpoint() + "_preview", null); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1070,7 +1070,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { final Request createPreviewRequest = createRequestWithAuth("POST", getTransformEndpoint() + "_preview", null); createPreviewRequest.setOptions(RequestOptions.DEFAULT.toBuilder().setWarningsHandler(WarningsHandler.PERMISSIVE)); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1126,7 +1126,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1187,7 +1187,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1252,7 +1252,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1323,7 +1323,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1392,7 +1392,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1457,7 +1457,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1528,7 +1528,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1601,7 +1601,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1656,7 +1656,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1713,7 +1713,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { String statsField = "stars_stats"; setupDataAccessRole(DATA_ACCESS_ROLE, REVIEWS_INDEX_NAME, transformIndex); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1796,7 +1796,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1890,7 +1890,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -1957,7 +1957,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -2005,7 +2005,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { final StringBuilder bulk = new StringBuilder(); for (int i = 0; i < 20; i++) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"id":"id_%s","rating":%s,"timestamp":"%s"} """, indexName, i % 5, 7, nanoResolutionTimeStamp)); @@ -2042,7 +2042,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -2113,7 +2113,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -2210,7 +2210,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_WITH_SOME_DATA_ACCESS ); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -2363,7 +2363,7 @@ public class TransformPivotRestIT extends TransformRestTestCase { String randomNanos = "," + randomIntBetween(100000000, 999999999); final StringBuilder bulk = new StringBuilder(); for (int i = 0; i < numDocs; i++) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"id":"id_%s","rating":%s,"timestamp":"2020-01-27T01:59:00%sZ"} """, indexName, i % 10, i % 7, randomNanos)); diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestSpecialCasesIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestSpecialCasesIT.java index 66d5890268ae..d3dbc2d53a59 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestSpecialCasesIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformPivotRestSpecialCasesIT.java @@ -72,7 +72,7 @@ public class TransformPivotRestSpecialCasesIT extends TransformRestTestCase { final Request createTransformRequest = new Request("PUT", getTransformEndpoint() + transformId); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -144,7 +144,7 @@ public class TransformPivotRestSpecialCasesIT extends TransformRestTestCase { } final StringBuilder bulk = new StringBuilder(); - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"host":"host-1","cpu": 22} {"index":{"_index":"%s"}} @@ -162,7 +162,7 @@ public class TransformPivotRestSpecialCasesIT extends TransformRestTestCase { """, indexName, indexName, indexName, indexName, indexName, indexName, indexName)); // missing value for cpu - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"host":"host-3"} @@ -174,7 +174,7 @@ public class TransformPivotRestSpecialCasesIT extends TransformRestTestCase { final Request createTransformRequest = new Request("PUT", getTransformEndpoint() + transformId); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" @@ -299,7 +299,7 @@ public class TransformPivotRestSpecialCasesIT extends TransformRestTestCase { String transformIndex = "empty-terms-agg-key"; String transformId = "empty-terms-agg-key"; final Request createTransformRequest = new Request("PUT", getTransformEndpoint() + transformId); - final String config = formatted(""" + final String config = Strings.format(""" { "source": { "index": "%s" @@ -363,7 +363,7 @@ public class TransformPivotRestSpecialCasesIT extends TransformRestTestCase { private void verifyDestIndexHitsCount(String sourceIndex, String transformId, int maxPageSearchSize, long expectedDestIndexCount) throws Exception { String transformIndex = transformId; - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformResetIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformResetIT.java index a6900a7b95ff..caa4fc8d0b0a 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformResetIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformResetIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.junit.Before; import java.io.IOException; @@ -79,7 +80,7 @@ public class TransformResetIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_1 ); - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java index 84554c0d8ae2..cdf7ccf2f31d 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRestTestCase.java @@ -73,7 +73,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { int hour = 10; int min = 10; for (int i = 0; i < numDocs; i++) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"create":{"_index":"%s"}} """, indexName)); long user = Math.round(Math.pow(i * 31 % 1000, distributionTable[i % distributionTable.length]) % numUsers); @@ -206,7 +206,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { builder.endObject(); if (isDataStream) { Request createCompositeTemplate = new Request("PUT", "_index_template/" + indexName + "_template"); - createCompositeTemplate.setJsonEntity(formatted(""" + createCompositeTemplate.setJsonEntity(Strings.format(""" { "index_patterns": [ "%s" ], "data_stream": { @@ -252,7 +252,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { protected void createContinuousPivotReviewsTransform(String transformId, String transformIndex, String authHeader) throws IOException { // Set frequency high for testing - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" @@ -311,18 +311,18 @@ public abstract class TransformRestTestCase extends ESRestTestCase { String config = "{"; if (pipeline != null) { - config += formatted(""" + config += Strings.format(""" "dest": {"index":"%s", "pipeline":"%s"},""", transformIndex, pipeline); } else { - config += formatted(""" + config += Strings.format(""" "dest": {"index":"%s"},""", transformIndex); } if (query != null) { - config += formatted(""" + config += Strings.format(""" "source": {"index":"%s", "query":{%s}},""", sourceIndex, query); } else { - config += formatted(""" + config += Strings.format(""" "source": {"index":"%s"},""", sourceIndex); } @@ -360,7 +360,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { } protected void createLatestReviewsTransform(String transformId, String transformIndex) throws IOException { - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" @@ -605,7 +605,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { protected void setupDataAccessRole(String role, String... indices) throws IOException { String indicesStr = Arrays.stream(indices).collect(Collectors.joining("\",\"", "\"", "\"")); Request request = new Request("PUT", "/_security/role/" + role); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "indices": [ { @@ -622,7 +622,7 @@ public abstract class TransformRestTestCase extends ESRestTestCase { String rolesStr = roles.stream().collect(Collectors.joining("\",\"", "\"", "\"")); Request request = new Request("PUT", "/_security/user/" + user); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "password" : "%s", "roles" : [ %s ]} """, password, rolesStr)); client().performRequest(request); diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRobustnessIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRobustnessIT.java index 8022bb6b48d6..1ed27453fadd 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRobustnessIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformRobustnessIT.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.integration; import org.elasticsearch.client.Request; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.core.Strings; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.transforms.persistence.TransformInternalIndexConstants; @@ -32,7 +33,7 @@ public class TransformRobustnessIT extends TransformRestTestCase { String transformId = "simple_continuous_pivot"; String transformIndex = "pivot_reviews_continuous"; final Request createTransformRequest = new Request("PUT", TransformField.REST_BASE_PATH_TRANSFORMS + transformId); - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": "%s" diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java index 78b1ab7ed378..11f12c38b2ab 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.junit.Before; import java.io.IOException; @@ -87,7 +88,7 @@ public class TransformUpdateIT extends TransformRestTestCase { getTransformEndpoint() + transformId, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_1 ); - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" @@ -181,7 +182,7 @@ public class TransformUpdateIT extends TransformRestTestCase { ) : createRequestWithAuth("PUT", getTransformEndpoint() + transformIdCloned, BASIC_AUTH_VALUE_TRANSFORM_ADMIN_2); - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "%s" diff --git a/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java b/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java index e71265eb18e5..5b1348f1b1ab 100644 --- a/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java +++ b/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java @@ -16,6 +16,7 @@ import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.action.support.master.AcknowledgedRequest; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xcontent.XContentType; @@ -65,7 +66,7 @@ public class TransformInternalIndexIT extends TransformSingleNodeTestCase { String transformIndex = "transform-index-deletes-old"; createSourceIndex(transformIndex); String transformId = "transform-update-deletes-old-transform-config"; - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "bar" diff --git a/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformOldTransformsIT.java b/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformOldTransformsIT.java index e5642f2209f0..9ce0ad5de557 100644 --- a/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformOldTransformsIT.java +++ b/x-pack/plugin/transform/src/internalClusterTest/java/org/elasticsearch/xpack/transform/integration/TransformOldTransformsIT.java @@ -16,6 +16,7 @@ import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.action.support.master.AcknowledgedRequest; import org.elasticsearch.common.ValidationException; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.VersionUtils; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; @@ -77,7 +78,7 @@ public class TransformOldTransformsIT extends TransformSingleNodeTestCase { Version.V_7_2_0, VersionUtils.getPreviousVersion(TransformDeprecations.MIN_TRANSFORM_VERSION) ); - String config = formatted(""" + String config = Strings.format(""" { "dest": { "index": "bar" diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationResultUtilsTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationResultUtilsTests.java index ccb6369d7515..7dc441141793 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationResultUtilsTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationResultUtilsTests.java @@ -9,6 +9,7 @@ package org.elasticsearch.xpack.transform.transforms.pivot; import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.core.Strings; import org.elasticsearch.script.Script; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.Aggregation; @@ -224,7 +225,7 @@ public class AggregationResultUtilsTests extends ESTestCase { public void testExtractCompositeAggregationResults() throws IOException { String targetField = randomAlphaOfLengthBetween(5, 10); - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s" : {"terms" : { "field" : "doesn't_matter_for_this_test"} } } """, targetField)); @@ -254,7 +255,7 @@ public class AggregationResultUtilsTests extends ESTestCase { String targetField = randomAlphaOfLengthBetween(5, 10); String targetField2 = randomAlphaOfLengthBetween(5, 10) + "_2"; - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s": { "terms": { @@ -295,7 +296,7 @@ public class AggregationResultUtilsTests extends ESTestCase { public void testExtractCompositeAggregationResultsMultiAggregations() throws IOException { String targetField = randomAlphaOfLengthBetween(5, 10); - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s": { "terms": { @@ -361,7 +362,7 @@ public class AggregationResultUtilsTests extends ESTestCase { String targetField = randomAlphaOfLengthBetween(5, 10); String targetField2 = randomAlphaOfLengthBetween(5, 10) + "_2"; - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s": { "terms": { @@ -452,7 +453,7 @@ public class AggregationResultUtilsTests extends ESTestCase { String targetField = randomAlphaOfLengthBetween(5, 10); String targetField2 = randomAlphaOfLengthBetween(5, 10) + "_2"; - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s": { "terms": { @@ -516,7 +517,7 @@ public class AggregationResultUtilsTests extends ESTestCase { String targetField = randomAlphaOfLengthBetween(5, 10); String targetField2 = randomAlphaOfLengthBetween(5, 10) + "_2"; - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s": { "terms": { @@ -604,7 +605,7 @@ public class AggregationResultUtilsTests extends ESTestCase { String targetField = randomAlphaOfLengthBetween(5, 10); String targetField2 = randomAlphaOfLengthBetween(5, 10) + "_2"; - GroupConfig groupBy = parseGroupConfig(formatted(""" + GroupConfig groupBy = parseGroupConfig(Strings.format(""" { "%s": { "terms": { diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java index 9e31445fb7b8..6919cc0a982d 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.aggregations.AggregationsPlugin; import org.elasticsearch.client.internal.Client; import org.elasticsearch.common.ValidationException; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.IndexNotFoundException; import org.elasticsearch.license.XPackLicenseState; import org.elasticsearch.search.SearchHit; @@ -419,7 +420,7 @@ public class PivotTests extends ESTestCase { {"pivot_global": {"global": {}}}"""); } - return parseAggregations(formatted(""" + return parseAggregations(Strings.format(""" { "pivot_%s": { "%s": { diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java index bd487c30bd0a..1666fde56df1 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregationsTests.java @@ -10,6 +10,7 @@ package org.elasticsearch.xpack.transform.transforms.pivot; import org.elasticsearch.aggregations.AggregationsPlugin; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.index.query.TermQueryBuilder; import org.elasticsearch.search.SearchModule; @@ -150,7 +151,7 @@ public class TransformAggregationsTests extends ESTestCase { .collect(Collectors.toList()); for (String aggregationName : aggregationNames) { - String message = formatted(""" + String message = Strings.format(""" The following aggregation is unknown to transform: [%s]. If this is a newly added aggregation, \ please open an issue to add transform support for it. Afterwards add "%s" to the list in %s. \ Thanks!\ diff --git a/x-pack/plugin/vector-tile/src/javaRestTest/java/org/elasticsearch/xpack/vectortile/VectorTileRestIT.java b/x-pack/plugin/vector-tile/src/javaRestTest/java/org/elasticsearch/xpack/vectortile/VectorTileRestIT.java index 2ab1310d0769..4be4079f4aa4 100644 --- a/x-pack/plugin/vector-tile/src/javaRestTest/java/org/elasticsearch/xpack/vectortile/VectorTileRestIT.java +++ b/x-pack/plugin/vector-tile/src/javaRestTest/java/org/elasticsearch/xpack/vectortile/VectorTileRestIT.java @@ -17,6 +17,7 @@ import org.apache.http.client.methods.HttpPut; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.core.Strings; import org.elasticsearch.geometry.Geometry; import org.elasticsearch.geometry.LinearRing; import org.elasticsearch.geometry.MultiPolygon; @@ -35,7 +36,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; -import java.util.Locale; /** * Rest test for _mvt end point. The tests only check that the structure of the vector tiles is sound in @@ -92,7 +92,7 @@ public class VectorTileRestIT extends ESRestTestCase { for (int i = 0; i < 30; i += 10) { for (int j = 0; j <= i; j++) { final Request putRequest = new Request(HttpPost.METHOD_NAME, INDEX_POINTS + "/_doc/"); - putRequest.setJsonEntity(String.format(Locale.ROOT, """ + putRequest.setJsonEntity(Strings.format(""" { "location": "POINT(%s %s)", "name": "point%s", "value1": %s, "value2": %s }""", x, y, i, i, i + 1)); @@ -135,7 +135,7 @@ public class VectorTileRestIT extends ESRestTestCase { assertThat(response.getStatusLine().getStatusCode(), Matchers.equalTo(HttpStatus.SC_OK)); final Request putRequest = new Request(HttpPost.METHOD_NAME, indexName + "/_doc/" + id); - putRequest.setJsonEntity(String.format(Locale.ROOT, """ + putRequest.setJsonEntity(Strings.format(""" { "location": "%s", "name": "geometry", "value1": %s, "value2": %s, "nullField" : null, "ignore_value" : "" }""", WellKnownText.toWKT(geometry), 1, 2)); @@ -192,7 +192,7 @@ public class VectorTileRestIT extends ESRestTestCase { + " " + y + "))"; - putRequest.setJsonEntity(String.format(Locale.ROOT, """ + putRequest.setJsonEntity(Strings.format(""" { "location": "%s", "name": "collection", "value1": %s, "value2": %s }""", collection, 1, 2)); @@ -678,7 +678,7 @@ public class VectorTileRestIT extends ESRestTestCase { { // desc order, polygon should be the first hit final Request mvtRequest = new Request(getHttpMethod(), INDEX_POINTS_SHAPES + "/_mvt/location/" + z + "/" + x + "/" + y); - mvtRequest.setJsonEntity(formatted(""" + mvtRequest.setJsonEntity(Strings.format(""" { "size" : 100, "grid_precision" : 0, @@ -701,7 +701,7 @@ public class VectorTileRestIT extends ESRestTestCase { { // asc order, polygon should be the last hit final Request mvtRequest = new Request(getHttpMethod(), INDEX_POINTS_SHAPES + "/_mvt/location/" + z + "/" + x + "/" + y); - mvtRequest.setJsonEntity(formatted(""" + mvtRequest.setJsonEntity(Strings.format(""" { "size" : 100, "grid_precision" : 0, diff --git a/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/test/AbstractWatcherIntegrationTestCase.java b/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/test/AbstractWatcherIntegrationTestCase.java index 10a61a188acb..d962cddb4f8f 100644 --- a/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/test/AbstractWatcherIntegrationTestCase.java +++ b/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/test/AbstractWatcherIntegrationTestCase.java @@ -24,6 +24,7 @@ import org.elasticsearch.common.settings.ClusterSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.datastreams.DataStreamsPlugin; @@ -633,7 +634,7 @@ public abstract class AbstractWatcherIntegrationTestCase extends ESIntegTestCase public void trigger(String watchId, int times, TimeValue timeValue) throws Exception { assertBusy(() -> { long triggeredCount = schedulers.stream().filter(scheduler -> scheduler.trigger(watchId, times, timeValue)).count(); - String msg = formatted("watch was triggered on [%d] schedulers, expected [1]", triggeredCount); + String msg = Strings.format("watch was triggered on [%d] schedulers, expected [1]", triggeredCount); if (triggeredCount > 1) { logger.warn(msg); } diff --git a/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/transform/TransformIntegrationTests.java b/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/transform/TransformIntegrationTests.java index 0e8918e8bc6d..19af70d76d9f 100644 --- a/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/transform/TransformIntegrationTests.java +++ b/x-pack/plugin/watcher/src/internalClusterTest/java/org/elasticsearch/xpack/watcher/transform/TransformIntegrationTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.protocol.xpack.watcher.PutWatchResponse; import org.elasticsearch.script.MockScriptPlugin; @@ -107,7 +108,7 @@ public class TransformIntegrationTests extends AbstractWatcherIntegrationTestCas script = mockScript("['key3' : ctx.payload.key1 + ctx.payload.key2]"); } else { logger.info("testing script transform with an indexed script"); - assertAcked(client().admin().cluster().preparePutStoredScript().setId("my-script").setContent(new BytesArray(formatted(""" + assertAcked(client().admin().cluster().preparePutStoredScript().setId("my-script").setContent(new BytesArray(Strings.format(""" { "script": { "lang": "%s", diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherIndexingListenerTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherIndexingListenerTests.java index 7e71c9a8f94e..69be65996c8f 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherIndexingListenerTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherIndexingListenerTests.java @@ -30,6 +30,7 @@ import org.elasticsearch.cluster.routing.TestShardRouting; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.time.DateUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.index.Index; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.shard.ShardId; @@ -52,7 +53,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; @@ -455,7 +455,7 @@ public class WatcherIndexingListenerTests extends ESTestCase { boolean shouldBeTriggered = sac.shouldBeTriggered("watch_" + i); boolean hasAlreadyBeenTriggered = bitSet.get(i); if (shouldBeTriggered) { - String message = String.format(Locale.ROOT, "Watch [%s] has already been " + "triggered", i); + String message = Strings.format("Watch [%s] has already been " + "triggered", i); assertThat(message, hasAlreadyBeenTriggered, is(false)); bitSet.set(i); } diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/common/http/HttpClientTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/common/http/HttpClientTests.java index d8481840e9d8..f52a7f8a65aa 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/common/http/HttpClientTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/common/http/HttpClientTests.java @@ -19,6 +19,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.ssl.SslVerificationMode; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.env.Environment; @@ -48,7 +49,6 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; -import java.util.Locale; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicReference; @@ -483,7 +483,7 @@ public class HttpClientTests extends ESTestCase { request = HttpRequest.builder("localhost", webServer.getPort()).path(path).build(); } else { // ensure that fromUrl acts the same way than the above builder - request = HttpRequest.builder().fromUrl(String.format(Locale.ROOT, "http://localhost:%s%s", webServer.getPort(), path)).build(); + request = HttpRequest.builder().fromUrl(Strings.format("http://localhost:%s%s", webServer.getPort(), path)).build(); } httpClient.execute(request); @@ -822,6 +822,6 @@ public class HttpClientTests extends ESTestCase { } private String getWebserverUri() { - return String.format(Locale.ROOT, "http://%s:%s", webServer.getHostName(), webServer.getPort()); + return Strings.format("http://%s:%s", webServer.getHostName(), webServer.getPort()); } } diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/notification/email/attachment/ReportingAttachmentParserTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/notification/email/attachment/ReportingAttachmentParserTests.java index 86733d5de874..075182af8798 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/notification/email/attachment/ReportingAttachmentParserTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/notification/email/attachment/ReportingAttachmentParserTests.java @@ -44,7 +44,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -529,7 +528,7 @@ public class ReportingAttachmentParserTests extends ESTestCase { // parameterize the messages assertEquals( attachment.getWarnings(), - WARNINGS.values().stream().map(s -> String.format(Locale.ROOT, s, reportId)).collect(Collectors.toSet()) + WARNINGS.values().stream().map(s -> Strings.format(s, reportId)).collect(Collectors.toSet()) ); Attachment.Bytes bytesAttachment = (Attachment.Bytes) attachment; @@ -610,7 +609,7 @@ public class ReportingAttachmentParserTests extends ESTestCase { // parameterize the messages assertEquals( attachment.getWarnings(), - customWarnings.values().stream().map(s -> String.format(Locale.ROOT, s, reportId)).collect(Collectors.toSet()) + customWarnings.values().stream().map(s -> Strings.format(s, reportId)).collect(Collectors.toSet()) ); // ensure the reportId is parameterized in attachment.getWarnings().forEach(s -> { assertThat(s, containsString(reportId)); }); diff --git a/x-pack/plugin/write-load-forecaster/src/internalClusterTest/java/org/elasticsearch/xpack/writeloadforecaster/WriteLoadForecasterIT.java b/x-pack/plugin/write-load-forecaster/src/internalClusterTest/java/org/elasticsearch/xpack/writeloadforecaster/WriteLoadForecasterIT.java index 6d7164ec770c..6821a29654c8 100644 --- a/x-pack/plugin/write-load-forecaster/src/internalClusterTest/java/org/elasticsearch/xpack/writeloadforecaster/WriteLoadForecasterIT.java +++ b/x-pack/plugin/write-load-forecaster/src/internalClusterTest/java/org/elasticsearch/xpack/writeloadforecaster/WriteLoadForecasterIT.java @@ -25,6 +25,7 @@ import org.elasticsearch.cluster.metadata.Template; import org.elasticsearch.cluster.routing.allocation.WriteLoadForecaster; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.datastreams.DataStreamsPlugin; import org.elasticsearch.index.Index; @@ -38,7 +39,6 @@ import org.junit.Before; import java.util.Collection; import java.util.List; -import java.util.Locale; import java.util.OptionalDouble; import java.util.concurrent.atomic.AtomicBoolean; @@ -200,7 +200,7 @@ public class WriteLoadForecasterIT extends ESIntegTestCase { String value = DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.formatMillis(System.currentTimeMillis()); bulkRequest.add( new IndexRequest(dataStream).opType(DocWriteRequest.OpType.CREATE) - .source(String.format(Locale.ROOT, "{\"%s\":\"%s\"}", DEFAULT_TIMESTAMP_FIELD, value), XContentType.JSON) + .source(Strings.format("{\"%s\":\"%s\"}", DEFAULT_TIMESTAMP_FIELD, value), XContentType.JSON) ); } client().bulk(bulkRequest).actionGet(); diff --git a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/FullClusterRestartIT.java b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/FullClusterRestartIT.java index 56ad255eb102..42c551b16655 100644 --- a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/FullClusterRestartIT.java +++ b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/FullClusterRestartIT.java @@ -42,7 +42,6 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -448,7 +447,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { final StringBuilder bulk = new StringBuilder(); for (int i = 0; i < numDocs; i++) { bulk.append("{\"index\":{\"_index\":\"rollup-docs\"}}\n"); - String date = String.format(Locale.ROOT, "%04d-01-01T00:%02d:00Z", year, i); + String date = Strings.format("%04d-01-01T00:%02d:00Z", year, i); bulk.append("{\"timestamp\":\"").append(date).append("\",\"value\":").append(i).append("}\n"); } bulk.append("\r\n"); @@ -467,7 +466,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { intervalType = "interval"; } - createRollupJobRequest.setJsonEntity(formatted(""" + createRollupJobRequest.setJsonEntity(Strings.format(""" { "index_pattern": "rollup-*", "rollup_index": "results-rollup", @@ -812,7 +811,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { private void createUser(final boolean oldCluster) throws Exception { final String id = oldCluster ? "preupgrade_user" : "postupgrade_user"; Request request = new Request("PUT", "/_security/user/" + id); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "password" : "l0ng-r4nd0m-p@ssw0rd", "roles" : [ "admin", "other_role1" ], @@ -987,7 +986,7 @@ public class FullClusterRestartIT extends AbstractFullClusterRestartTestCase { } private static void createComposableTemplate(RestClient client, String templateName, String indexPattern) throws IOException { - StringEntity templateJSON = new StringEntity(formatted(""" + StringEntity templateJSON = new StringEntity(Strings.format(""" { "index_patterns": "%s", "data_stream": {} diff --git a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MLModelDeploymentFullClusterRestartIT.java b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MLModelDeploymentFullClusterRestartIT.java index 875ac4cef777..a2b61b55a297 100644 --- a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MLModelDeploymentFullClusterRestartIT.java +++ b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MLModelDeploymentFullClusterRestartIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.upgrades.AbstractFullClusterRestartTestCase; import org.elasticsearch.xpack.core.ml.inference.assignment.AllocationStatus; import org.junit.Before; @@ -133,7 +134,7 @@ public class MLModelDeploymentFullClusterRestartIT extends AbstractFullClusterRe private void putModelDefinition(String modelId) throws IOException { Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/definition/0"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"total_definition_length":%s,"definition": "%s","total_parts": 1}""", RAW_MODEL_SIZE, BASE_64_ENCODED_MODEL)); client().performRequest(request); } @@ -146,7 +147,7 @@ public class MLModelDeploymentFullClusterRestartIT extends AbstractFullClusterRe String quotedWords = vocabularyWithPad.stream().map(s -> "\"" + s + "\"").collect(Collectors.joining(",")); Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/vocabulary"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "vocabulary": [%s] } """, quotedWords)); client().performRequest(request); @@ -205,7 +206,7 @@ public class MLModelDeploymentFullClusterRestartIT extends AbstractFullClusterRe private Response infer(String input, String modelId) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/deployment/_infer"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "docs": [{"input":"%s"}] } """, input)); @@ -217,7 +218,7 @@ public class MLModelDeploymentFullClusterRestartIT extends AbstractFullClusterRe private Response newInfer(String input, String modelId) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "docs": [{"input":"%s"}] } """, input)); var response = client().performRequest(request); diff --git a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlConfigIndexMappingsFullClusterRestartIT.java b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlConfigIndexMappingsFullClusterRestartIT.java index fe952e555e83..bfc078ffe920 100644 --- a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlConfigIndexMappingsFullClusterRestartIT.java +++ b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlConfigIndexMappingsFullClusterRestartIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.upgrades.AbstractFullClusterRestartTestCase; import org.elasticsearch.xpack.test.rest.IndexMappingTemplateAsserter; import org.elasticsearch.xpack.test.rest.XPackRestTestConstants; @@ -72,7 +73,7 @@ public class MlConfigIndexMappingsFullClusterRestartIT extends AbstractFullClust } private void createAnomalyDetectorJob(String jobId) throws IOException { - String jobConfig = formatted(""" + String jobConfig = Strings.format(""" { "job_id": "%s", "analysis_config": { diff --git a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlHiddenIndicesFullClusterRestartIT.java b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlHiddenIndicesFullClusterRestartIT.java index b4e3cbe0b1d7..ff15b6a42818 100644 --- a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlHiddenIndicesFullClusterRestartIT.java +++ b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlHiddenIndicesFullClusterRestartIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.WarningsHandler; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.upgrades.AbstractFullClusterRestartTestCase; import org.elasticsearch.xcontent.XContentParser; @@ -163,7 +164,7 @@ public class MlHiddenIndicesFullClusterRestartIT extends AbstractFullClusterRest } private void createAnomalyDetectorJob(String jobId) throws IOException { - String jobConfig = formatted(""" + String jobConfig = Strings.format(""" { "job_id": "%s", "analysis_config": { diff --git a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlMigrationFullClusterRestartIT.java b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlMigrationFullClusterRestartIT.java index ddfbe1dc017d..61ce6f7827e2 100644 --- a/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlMigrationFullClusterRestartIT.java +++ b/x-pack/qa/full-cluster-restart/src/test/java/org/elasticsearch/xpack/restart/MlMigrationFullClusterRestartIT.java @@ -205,7 +205,7 @@ public class MlMigrationFullClusterRestartIT extends AbstractFullClusterRestartT } private void putJob(String jobId) throws IOException { - String jobConfig = formatted(""" + String jobConfig = Strings.format(""" { "job_id": "%s", "analysis_config": { diff --git a/x-pack/qa/kerberos-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosAuthenticationIT.java b/x-pack/qa/kerberos-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosAuthenticationIT.java index 3477f356078c..4e2d37fda209 100644 --- a/x-pack/qa/kerberos-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosAuthenticationIT.java +++ b/x-pack/qa/kerberos-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosAuthenticationIT.java @@ -133,7 +133,7 @@ public class KerberosAuthenticationIT extends ESRestTestCase { final String kerberosTicket = callbackHandler.getBase64EncodedTokenForSpnegoHeader(host); final Request request = new Request("POST", "/_security/oauth2/token"); - String json = formatted(""" + String json = Strings.format(""" { "grant_type" : "_kerberos", "kerberos_ticket" : "%s"} """, kerberosTicket); request.setJsonEntity(json); diff --git a/x-pack/qa/multi-node/src/javaRestTest/java/org/elasticsearch/multi_node/RollupIT.java b/x-pack/qa/multi-node/src/javaRestTest/java/org/elasticsearch/multi_node/RollupIT.java index 0e3a5c0c0c15..91e273f7e34b 100644 --- a/x-pack/qa/multi-node/src/javaRestTest/java/org/elasticsearch/multi_node/RollupIT.java +++ b/x-pack/qa/multi-node/src/javaRestTest/java/org/elasticsearch/multi_node/RollupIT.java @@ -114,7 +114,7 @@ public class RollupIT extends ESRestTestCase { final Request createRollupJobRequest = new Request("PUT", "/_rollup/job/rollup-job-test"); int pageSize = randomIntBetween(2, 50); // fast cron so test runs quickly - createRollupJobRequest.setJsonEntity(formatted(""" + createRollupJobRequest.setJsonEntity(Strings.format(""" { "index_pattern": "rollup-*", "rollup_index": "results-rollup", diff --git a/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtWithOidcAuthIT.java b/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtWithOidcAuthIT.java index 1044e81af67f..47e4b02d6364 100644 --- a/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtWithOidcAuthIT.java +++ b/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/jwt/JwtWithOidcAuthIT.java @@ -17,6 +17,7 @@ import com.nimbusds.openid.connect.sdk.OIDCScopeValue; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.core.Strings; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.rest.RestUtils; import org.elasticsearch.test.TestMatchers; @@ -65,7 +66,7 @@ public class JwtWithOidcAuthIT extends C2IdOpTestCase { clientId = randomFrom(ALLOWED_AUDIENCES); redirectUri = "https://" + randomAlphaOfLength(4) + ".rp.example.com/" + randomAlphaOfLength(6); String clientSecret = randomAlphaOfLength(24); - String clientSetup = formatted(""" + String clientSetup = Strings.format(""" { "grant_types": [ "implicit" ], "response_types": [ "token id_token" ], @@ -80,7 +81,7 @@ public class JwtWithOidcAuthIT extends C2IdOpTestCase { public void setupRoleMapping() throws Exception { try (var restClient = getElasticsearchClient()) { var client = new TestSecurityClient(restClient); - final String mappingJson = formatted(""" + final String mappingJson = Strings.format(""" { "roles": [ "%s" ], "enabled": true, diff --git a/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/C2IdOpTestCase.java b/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/C2IdOpTestCase.java index da8d9e800bf6..9723ba708c9b 100644 --- a/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/C2IdOpTestCase.java +++ b/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/C2IdOpTestCase.java @@ -33,6 +33,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.core.CheckedFunction; import org.elasticsearch.core.PathUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.TimeValue; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xpack.core.common.socket.SocketAccess; @@ -125,7 +126,7 @@ public abstract class C2IdOpTestCase extends ESRestTestCase { final BasicHttpContext context = new BasicHttpContext(); // Initiate the authentication process HttpPost httpPost = new HttpPost(C2ID_LOGIN_API + "initAuthRequest"); - String initJson = formatted(""" + String initJson = Strings.format(""" {"qs":"%s"} """, opAuthUri.getRawQuery()); configureJsonRequest(httpPost, initJson); diff --git a/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/OpenIdConnectAuthIT.java b/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/OpenIdConnectAuthIT.java index a62268402808..d8016ec68540 100644 --- a/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/OpenIdConnectAuthIT.java +++ b/x-pack/qa/oidc-op-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/oidc/OpenIdConnectAuthIT.java @@ -17,6 +17,7 @@ import org.elasticsearch.client.RestClient; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.core.Nullable; +import org.elasticsearch.core.Strings; import org.elasticsearch.core.Tuple; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; @@ -58,7 +59,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { */ @BeforeClass public static void registerClients() throws Exception { - String codeClient = formatted(""" + String codeClient = Strings.format(""" { "grant_types": [ "authorization_code" ], "response_types": [ "code" ], @@ -67,7 +68,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { "redirect_uris": [ "https://my.fantastic.rp/cb" ], "token_endpoint_auth_method": "client_secret_basic" }""", CLIENT_SECRET); - String implicitClient = formatted(""" + String implicitClient = Strings.format(""" { "grant_types": [ "implicit" ], "response_types": [ "token id_token" ], @@ -75,7 +76,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { "preferred_client_secret": "%s", "redirect_uris": [ "https://my.fantastic.rp/cb" ] }""", CLIENT_SECRET); - String postClient = formatted(""" + String postClient = Strings.format(""" { "grant_types": [ "authorization_code" ], "response_types": [ "code" ], @@ -84,7 +85,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { "redirect_uris": [ "https://my.fantastic.rp/cb" ], "token_endpoint_auth_method": "client_secret_post" }""", CLIENT_SECRET); - String jwtClient = formatted(""" + String jwtClient = Strings.format(""" { "grant_types": [ "authorization_code" ], "response_types": [ "code" ], @@ -269,7 +270,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { { "cluster" : ["manage_oidc", "manage_token"] }"""); restClient.performRequest(createRoleRequest); Request createUserRequest = new Request("PUT", "/_security/user/facilitator"); - createUserRequest.setJsonEntity(formatted(""" + createUserRequest.setJsonEntity(Strings.format(""" { "password" : "%s", "roles" : ["facilitator"] }""", FACILITATOR_PASSWORD)); restClient.performRequest(createUserRequest); } @@ -278,7 +279,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { private void setRoleMappings() throws Exception { try (RestClient restClient = getElasticsearchClient()) { Request createRoleMappingRequest = new Request("PUT", "/_security/role_mapping/oidc_kibana"); - createRoleMappingRequest.setJsonEntity(formatted(""" + createRoleMappingRequest.setJsonEntity(Strings.format(""" { "roles": [ "kibana_admin" ], "enabled": true, @@ -310,7 +311,7 @@ public class OpenIdConnectAuthIT extends C2IdOpTestCase { restClient.performRequest(createRoleMappingRequest); createRoleMappingRequest = new Request("PUT", "/_security/role_mapping/oidc_limited"); - createRoleMappingRequest.setJsonEntity(formatted(""" + createRoleMappingRequest.setJsonEntity(Strings.format(""" { "roles": [ "limited_user" ], "enabled": true, diff --git a/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/DocValueOnlyFieldsIT.java b/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/DocValueOnlyFieldsIT.java index ed8b6dbfd2e1..968262448c87 100644 --- a/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/DocValueOnlyFieldsIT.java +++ b/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/DocValueOnlyFieldsIT.java @@ -176,7 +176,7 @@ public class DocValueOnlyFieldsIT extends ESClientYamlSuiteTestCase { // register repo on old ES and take snapshot Request createRepoRequest = new Request("PUT", "/_snapshot/" + repoName); - createRepoRequest.setJsonEntity(formatted(""" + createRepoRequest.setJsonEntity(Strings.format(""" {"type":"fs","settings":{"location":"%s"}} """, repoLocation)); assertOK(oldEs.performRequest(createRepoRequest)); @@ -189,7 +189,7 @@ public class DocValueOnlyFieldsIT extends ESClientYamlSuiteTestCase { // register repo on new ES and restore snapshot Request createRepoRequest2 = new Request("PUT", "/_snapshot/" + repoName); - createRepoRequest2.setJsonEntity(formatted(""" + createRepoRequest2.setJsonEntity(Strings.format(""" {"type":"fs","settings":{"location":"%s"}} """, repoLocation)); assertOK(client().performRequest(createRepoRequest2)); diff --git a/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldMappingsIT.java b/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldMappingsIT.java index 65a578f07125..67dbdec6b839 100644 --- a/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldMappingsIT.java +++ b/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldMappingsIT.java @@ -144,7 +144,7 @@ public class OldMappingsIT extends ESRestTestCase { // register repo on old ES and take snapshot Request createRepoRequest = new Request("PUT", "/_snapshot/" + repoName); - createRepoRequest.setJsonEntity(formatted(""" + createRepoRequest.setJsonEntity(Strings.format(""" {"type":"fs","settings":{"location":"%s"}} """, repoLocation)); assertOK(oldEs.performRequest(createRepoRequest)); @@ -157,7 +157,7 @@ public class OldMappingsIT extends ESRestTestCase { // register repo on new ES and restore snapshot Request createRepoRequest2 = new Request("PUT", "/_snapshot/" + repoName); - createRepoRequest2.setJsonEntity(formatted(""" + createRepoRequest2.setJsonEntity(Strings.format(""" {"type":"fs","settings":{"location":"%s"}} """, repoLocation)); assertOK(client().performRequest(createRepoRequest2)); diff --git a/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldRepositoryAccessIT.java b/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldRepositoryAccessIT.java index fa5465ee2a2c..f4acc4491def 100644 --- a/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldRepositoryAccessIT.java +++ b/x-pack/qa/repository-old-versions/src/test/java/org/elasticsearch/oldrepos/OldRepositoryAccessIT.java @@ -178,9 +178,9 @@ public class OldRepositoryAccessIT extends ESRestTestCase { // register repo on old ES and take snapshot Request createRepoRequest = new Request("PUT", "/_snapshot/" + repoName); - createRepoRequest.setJsonEntity(sourceOnlyRepository ? formatted(""" + createRepoRequest.setJsonEntity(sourceOnlyRepository ? Strings.format(""" {"type":"source","settings":{"location":"%s","delegate_type":"fs"}} - """, repoLocation) : formatted(""" + """, repoLocation) : Strings.format(""" {"type":"fs","settings":{"location":"%s"}} """, repoLocation)); assertOK(oldEs.performRequest(createRepoRequest)); @@ -281,7 +281,7 @@ public class OldRepositoryAccessIT extends ESRestTestCase { } private static String sourceForDoc(int i) { - return "{\"test\":\"test" + i + "\",\"val\":" + i + ",\"create_date\":\"2020-01-" + formatted("%02d", i + 1) + "\"}"; + return "{\"test\":\"test" + i + "\",\"val\":" + i + ",\"create_date\":\"2020-01-" + Strings.format("%02d", i + 1) + "\"}"; } @SuppressWarnings("removal") diff --git a/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/AbstractMultiClusterUpgradeTestCase.java b/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/AbstractMultiClusterUpgradeTestCase.java index ae803257c5fa..1149a88e0e5a 100644 --- a/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/AbstractMultiClusterUpgradeTestCase.java +++ b/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/AbstractMultiClusterUpgradeTestCase.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.RestClient; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.core.IOUtils; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.xcontent.json.JsonXContent; import org.junit.AfterClass; @@ -110,7 +111,7 @@ public abstract class AbstractMultiClusterUpgradeTestCase extends ESRestTestCase if (leaderRemoteClusterSeed != null) { logger.info("Configuring leader remote cluster [{}]", leaderRemoteClusterSeed); Request request = new Request("PUT", "/_cluster/settings"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "persistent": { "cluster.remote.leader.seeds": "%s" @@ -130,7 +131,7 @@ public abstract class AbstractMultiClusterUpgradeTestCase extends ESRestTestCase if (followerRemoteClusterSeed != null) { logger.info("Configuring follower remote cluster [{}]", followerRemoteClusterSeed); Request request = new Request("PUT", "/_cluster/settings"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "persistent": { "cluster.remote.follower.seeds": "%s" diff --git a/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/CcrRollingUpgradeIT.java b/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/CcrRollingUpgradeIT.java index b67f78c28e7e..c51814cd1935 100644 --- a/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/CcrRollingUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade-multi-cluster/src/test/java/org/elasticsearch/upgrades/CcrRollingUpgradeIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.elasticsearch.xcontent.ObjectPath; import java.io.IOException; @@ -293,7 +294,7 @@ public class CcrRollingUpgradeIT extends AbstractMultiClusterUpgradeTestCase { private static void followIndex(RestClient client, String leaderCluster, String leaderIndex, String followIndex) throws IOException { final Request request = new Request("PUT", "/" + followIndex + "/_ccr/follow?wait_for_active_shards=1"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"remote_cluster": "%s", "leader_index": "%s", "read_poll_timeout": "10ms"} """, leaderCluster, leaderIndex)); assertOK(client.performRequest(request)); @@ -301,7 +302,7 @@ public class CcrRollingUpgradeIT extends AbstractMultiClusterUpgradeTestCase { private static void putAutoFollowPattern(RestClient client, String name, String remoteCluster, String pattern) throws IOException { Request request = new Request("PUT", "/_ccr/auto_follow/" + name); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "leader_index_patterns": [ "%s" ], "remote_cluster": "%s", diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/DataStreamsUpgradeIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/DataStreamsUpgradeIT.java index 8fba728cf55e..4c399d0a01a9 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/DataStreamsUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/DataStreamsUpgradeIT.java @@ -13,6 +13,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.cluster.metadata.DataStream; import org.elasticsearch.cluster.metadata.DataStreamTestHelper; import org.elasticsearch.core.Booleans; +import org.elasticsearch.core.Strings; import org.hamcrest.Matchers; import java.io.IOException; @@ -47,7 +48,7 @@ public class DataStreamsUpgradeIT extends AbstractUpgradeTestCase { StringBuilder b = new StringBuilder(); for (int i = 0; i < 1000; i++) { - b.append(formatted(""" + b.append(Strings.format(""" {"create":{"_index":"logs-foobar"}} {"@timestamp":"2020-12-12","test":"value%s"} """, i)); diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java index 69e6d7ba1407..18d9148edfc4 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexingIT.java @@ -10,6 +10,7 @@ import org.apache.http.util.EntityUtils; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.core.Booleans; +import org.elasticsearch.core.Strings; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -111,7 +112,7 @@ public class IndexingIT extends AbstractUpgradeTestCase { private void bulk(String index, String valueSuffix, int count) throws IOException { StringBuilder b = new StringBuilder(); for (int i = 0; i < count; i++) { - b.append(formatted(""" + b.append(Strings.format(""" {"index": {"_index": "%s"}} {"f1": "v%s%s", "f2": %s} """, index, i, valueSuffix, i)); @@ -127,7 +128,7 @@ public class IndexingIT extends AbstractUpgradeTestCase { searchTestIndexRequest.addParameter(TOTAL_HITS_AS_INT_PARAM, "true"); searchTestIndexRequest.addParameter("filter_path", "hits.total"); Response searchTestIndexResponse = client().performRequest(searchTestIndexRequest); - assertEquals(formatted(""" + assertEquals(Strings.format(""" {"hits":{"total":%s}}\ """, count), EntityUtils.toString(searchTestIndexResponse.getEntity(), StandardCharsets.UTF_8)); } diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MLModelDeploymentsUpgradeIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MLModelDeploymentsUpgradeIT.java index fd6bffaf5bee..a5d3e3ea43cd 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MLModelDeploymentsUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MLModelDeploymentsUpgradeIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.Version; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.common.xcontent.support.XContentMapValues; +import org.elasticsearch.core.Strings; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -191,7 +192,7 @@ public class MLModelDeploymentsUpgradeIT extends AbstractUpgradeTestCase { private void putModelDefinition(String modelId) throws IOException { Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/definition/0"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" {"total_definition_length":%s,"definition": "%s","total_parts": 1}""", RAW_MODEL_SIZE, BASE_64_ENCODED_MODEL)); client().performRequest(request); } @@ -204,7 +205,7 @@ public class MLModelDeploymentsUpgradeIT extends AbstractUpgradeTestCase { String quotedWords = vocabularyWithPad.stream().map(s -> "\"" + s + "\"").collect(Collectors.joining(",")); Request request = new Request("PUT", "_ml/trained_models/" + modelId + "/vocabulary"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "vocabulary": [%s] } """, quotedWords)); client().performRequest(request); @@ -276,7 +277,7 @@ public class MLModelDeploymentsUpgradeIT extends AbstractUpgradeTestCase { private Response infer(String input, String modelId) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/deployment/_infer"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "docs": [{"input":"%s"}] } """, input)); request.setOptions(request.getOptions().toBuilder().setWarningsHandler(PERMISSIVE).build()); @@ -287,7 +288,7 @@ public class MLModelDeploymentsUpgradeIT extends AbstractUpgradeTestCase { private Response newInfer(String input, String modelId) throws IOException { Request request = new Request("POST", "/_ml/trained_models/" + modelId + "/_infer"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "docs": [{"input":"%s"}] } """, input)); var response = client().performRequest(request); diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MlTrainedModelsUpgradeIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MlTrainedModelsUpgradeIT.java index 78f57ad22d5a..fc14edf0df6b 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MlTrainedModelsUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/MlTrainedModelsUpgradeIT.java @@ -12,6 +12,7 @@ import org.elasticsearch.Version; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.core.Strings; import org.elasticsearch.xpack.test.rest.XPackRestTestConstants; import org.junit.BeforeClass; @@ -153,7 +154,7 @@ public class MlTrainedModelsUpgradeIT extends AbstractUpgradeTestCase { } void createAndRunRegressionJob() throws Exception { - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": [ "%s" ] @@ -172,7 +173,7 @@ public class MlTrainedModelsUpgradeIT extends AbstractUpgradeTestCase { } void createAndRunClassificationJob() throws Exception { - String config = formatted(""" + String config = Strings.format(""" { "source": { "index": [ "%s" ] @@ -205,7 +206,7 @@ public class MlTrainedModelsUpgradeIT extends AbstractUpgradeTestCase { } void createPipeline(String id, String modelType, String modelId) throws Exception { - String body = formatted(""" + String body = Strings.format(""" { "processors": [ { @@ -225,7 +226,7 @@ public class MlTrainedModelsUpgradeIT extends AbstractUpgradeTestCase { } void createIndexWithName(String index) throws IOException { - String mapping = formatted(""" + String mapping = Strings.format(""" "properties": { "%s": { "type": "boolean" diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/SearchableSnapshotsRollingUpgradeIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/SearchableSnapshotsRollingUpgradeIT.java index bd52bea94685..025136c418b3 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/SearchableSnapshotsRollingUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/SearchableSnapshotsRollingUpgradeIT.java @@ -409,7 +409,7 @@ public class SearchableSnapshotsRollingUpgradeIT extends AbstractUpgradeTestCase } else { assertThat("Parameter 'storage' was introduced in 7.12.0 with " + Storage.SHARED_CACHE, storage, equalTo(Storage.FULL_COPY)); } - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "index": "%s", "renamed_index": "%s", diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TokenBackwardsCompatibilityIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TokenBackwardsCompatibilityIT.java index 7d737662eba3..6d65aff668ff 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TokenBackwardsCompatibilityIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TokenBackwardsCompatibilityIT.java @@ -16,6 +16,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.WarningsHandler; +import org.elasticsearch.core.Strings; import org.elasticsearch.search.SearchHits; import org.elasticsearch.test.rest.ObjectPath; import org.junit.After; @@ -299,7 +300,7 @@ public class TokenBackwardsCompatibilityIT extends AbstractUpgradeTestCase { private void assertRefreshTokenInvalidated(String refreshToken) throws IOException { for (RestClient client : twoClients) { Request refreshTokenRequest = new Request("POST", "/_security/oauth2/token"); - refreshTokenRequest.setJsonEntity(formatted(""" + refreshTokenRequest.setJsonEntity(Strings.format(""" { "refresh_token": "%s", "grant_type": "refresh_token" @@ -336,7 +337,7 @@ public class TokenBackwardsCompatibilityIT extends AbstractUpgradeTestCase { private Map createTokens(RestClient client, String username, String password) throws IOException { final Request createTokenRequest = new Request("POST", "/_security/oauth2/token"); - createTokenRequest.setJsonEntity(formatted(""" + createTokenRequest.setJsonEntity(Strings.format(""" { "username": "%s", "password": "%s", @@ -349,7 +350,7 @@ public class TokenBackwardsCompatibilityIT extends AbstractUpgradeTestCase { private void storeTokens(RestClient client, int idx, String accessToken, String refreshToken) throws IOException { final Request indexRequest = new Request("PUT", "token_backwards_compatibility_it/_doc/old_cluster_token" + idx); - indexRequest.setJsonEntity(formatted(""" + indexRequest.setJsonEntity(Strings.format(""" { "token": "%s", "refresh_token": "%s" @@ -368,7 +369,7 @@ public class TokenBackwardsCompatibilityIT extends AbstractUpgradeTestCase { private Map refreshToken(RestClient client, String refreshToken) throws IOException { final Request refreshTokenRequest = new Request("POST", "/_security/oauth2/token"); - refreshTokenRequest.setJsonEntity(formatted(""" + refreshTokenRequest.setJsonEntity(Strings.format(""" { "refresh_token": "%s", "grant_type": "refresh_token" @@ -408,7 +409,7 @@ public class TokenBackwardsCompatibilityIT extends AbstractUpgradeTestCase { final var bulkRequest = new Request("POST", "/.security-tokens/_bulk?refresh=true"); bulkRequest.setOptions(bulkRequest.getOptions().toBuilder().setWarningsHandler(WarningsHandler.PERMISSIVE)); final long newExpirationTime = Instant.now().plus(1, ChronoUnit.HOURS).toEpochMilli(); - bulkRequest.setJsonEntity(tokensIds.stream().map(tokenId -> formatted(""" + bulkRequest.setJsonEntity(tokensIds.stream().map(tokenId -> Strings.format(""" {"update": {"_id": "%s"}} {"doc": {"access_token": {"user_token": {"expiration_time": %s}}}} """, tokenId, newExpirationTime)).collect(Collectors.joining("\n"))); diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TransformSurvivesUpgradeIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TransformSurvivesUpgradeIT.java index 71469b3fe2fa..3f4eb491d6cf 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TransformSurvivesUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/TransformSurvivesUpgradeIT.java @@ -256,7 +256,7 @@ public class TransformSurvivesUpgradeIT extends AbstractUpgradeTestCase { TRANSFORM_INTERNAL_INDEX_PREFIX + "*," + TRANSFORM_INTERNAL_INDEX_PREFIX_DEPRECATED + "*" + "/_search" ); - getStatsDocsRequest.setJsonEntity(formatted(""" + getStatsDocsRequest.setJsonEntity(Strings.format(""" { "query": { "bool": { @@ -373,7 +373,7 @@ public class TransformSurvivesUpgradeIT extends AbstractUpgradeTestCase { final StringBuilder bulk = new StringBuilder(); for (int i = 0; i < numDocs; i++) { for (String entity : entityIds) { - bulk.append(formatted(""" + bulk.append(Strings.format(""" {"index":{"_index":"%s"}} {"user_id":"%s","stars":%s,"timestamp":%s} """, indexName, entity, randomLongBetween(0, 5), timeStamp)); diff --git a/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java index 7404fbd4b8b2..30eae681990b 100644 --- a/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java +++ b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/realm/CustomRoleMappingRealmIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.test.rest.ESRestTestCase; import org.hamcrest.Matchers; import org.junit.Before; @@ -40,7 +41,7 @@ public class CustomRoleMappingRealmIT extends ESRestTestCase { public void setupRoleMapping() throws Exception { expectedRole = randomAlphaOfLengthBetween(4, 16); Request request = new Request("PUT", "/_security/role_mapping/test"); - request.setJsonEntity(formatted(""" + request.setJsonEntity(Strings.format(""" { "enabled": true, "roles": [ "%s" ], diff --git a/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java index 2d7d8ff76aed..f11b6d0a63a0 100644 --- a/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java +++ b/x-pack/qa/security-example-spi-extension/src/javaRestTest/java/org/elasticsearch/example/role/CustomRolesProviderIT.java @@ -14,6 +14,7 @@ import org.elasticsearch.client.ResponseException; import org.elasticsearch.common.settings.SecureString; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.core.Strings; import org.elasticsearch.example.realm.CustomRealm; import org.elasticsearch.example.realm.CustomRealmIT; import org.elasticsearch.test.rest.ESRestTestCase; @@ -55,7 +56,7 @@ public class CustomRolesProviderIT extends ESRestTestCase { public void setupTestUser(String role) throws IOException { final String endpoint = "/_security/user/" + TEST_USER; Request request = new Request(HttpPut.METHOD_NAME, endpoint); - final String body = formatted(""" + final String body = Strings.format(""" { "username": "%s", "password": "%s", diff --git a/x-pack/qa/security-setup-password-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/esnative/tool/ResetPasswordToolIT.java b/x-pack/qa/security-setup-password-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/esnative/tool/ResetPasswordToolIT.java index 9bc42bc742e3..ab849872cc6c 100644 --- a/x-pack/qa/security-setup-password-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/esnative/tool/ResetPasswordToolIT.java +++ b/x-pack/qa/security-setup-password-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authc/esnative/tool/ResetPasswordToolIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.cli.MockTerminal; import org.elasticsearch.client.Request; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; +import org.elasticsearch.core.Strings; import java.io.IOException; import java.io.UncheckedIOException; @@ -70,7 +71,7 @@ public class ResetPasswordToolIT extends AbstractPasswordToolTestCase { + Base64.getEncoder().encodeToString(("test_admin:x-pack-test-password").getBytes(StandardCharsets.UTF_8)); try { Request putUserRequest = new Request("PUT", "/_security/user/" + nativeUser); - putUserRequest.setJsonEntity(formatted(""" + putUserRequest.setJsonEntity(Strings.format(""" { "password" : "l0ng-r4nd0m-p@ssw0rd", "roles" : [ "admin", "other_role1" ], diff --git a/x-pack/qa/third-party/active-directory/src/test/java/org/elasticsearch/xpack/security/authc/ldap/MultiGroupMappingIT.java b/x-pack/qa/third-party/active-directory/src/test/java/org/elasticsearch/xpack/security/authc/ldap/MultiGroupMappingIT.java index e90b16f705a2..3349d52c493a 100644 --- a/x-pack/qa/third-party/active-directory/src/test/java/org/elasticsearch/xpack/security/authc/ldap/MultiGroupMappingIT.java +++ b/x-pack/qa/third-party/active-directory/src/test/java/org/elasticsearch/xpack/security/authc/ldap/MultiGroupMappingIT.java @@ -7,6 +7,7 @@ package org.elasticsearch.xpack.security.authc.ldap; import org.elasticsearch.common.util.CollectionUtils; +import org.elasticsearch.core.Strings; import org.junit.BeforeClass; import java.io.IOException; @@ -34,7 +35,7 @@ public class MultiGroupMappingIT extends AbstractAdLdapRealmTestCase { @Override protected String configRoles() { - return formatted(""" + return Strings.format(""" %s MarvelCharacters: cluster: [ NONE ]