From f0d15fc4a430afac80565f6551803ea5e565a064 Mon Sep 17 00:00:00 2001 From: AMER JUSUPOVIC Date: Mon, 1 May 2023 12:00:15 -0500 Subject: [PATCH 1/6] add .ConfigureAwait(false) to await calls in ExecuteWithFailoverPolicyAsync --- .../AzureAppConfigurationProvider.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs index 6a267b386..febf520dc 100644 --- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs +++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs @@ -871,10 +871,10 @@ private async Task ExecuteWithFailOverPolicyAsync(IEnumerable(clients, async (client) => { - await funcToExecute(client); + await funcToExecute(client).ConfigureAwait(false); return null; - }, cancellationToken); + }, cancellationToken).ConfigureAwait(false); } private bool IsFailOverable(AggregateException ex) From e48df1ff7dd140925fa74fdba9cd61176d65a468 Mon Sep 17 00:00:00 2001 From: AMER JUSUPOVIC Date: Mon, 1 May 2023 16:01:15 -0500 Subject: [PATCH 2/6] add warning rule for CA2007 configureawait, add another missing configureawait call to provider --- AzureAppConfigurationRules.ruleset | 6 ++++++ ...soft.Extensions.Configuration.AzureAppConfiguration.sln | 7 ++++++- .../Microsoft.Azure.AppConfiguration.AspNetCore.csproj | 7 ++++++- ...icrosoft.Azure.AppConfiguration.Functions.Worker.csproj | 5 +++++ .../AzureAppConfigurationProvider.cs | 2 +- ...t.Extensions.Configuration.AzureAppConfiguration.csproj | 5 +++++ 6 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 AzureAppConfigurationRules.ruleset diff --git a/AzureAppConfigurationRules.ruleset b/AzureAppConfigurationRules.ruleset new file mode 100644 index 000000000..5c2c57d66 --- /dev/null +++ b/AzureAppConfigurationRules.ruleset @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Microsoft.Extensions.Configuration.AzureAppConfiguration.sln b/Microsoft.Extensions.Configuration.AzureAppConfiguration.sln index f7e8b7a05..f2ce3e8aa 100644 --- a/Microsoft.Extensions.Configuration.AzureAppConfiguration.sln +++ b/Microsoft.Extensions.Configuration.AzureAppConfiguration.sln @@ -19,7 +19,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.AppConfigur EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.AzureAppConfiguration.Functions.Worker", "tests\Tests.AzureAppConfiguration.Functions.Worker\Tests.AzureAppConfiguration.Functions.Worker.csproj", "{A9287214-6689-479F-A9F8-D0C02DE433F0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleAppWithFailOver", "examples\ConsoleAppWithFailOver\ConsoleAppWithFailOver.csproj", "{A6C611F1-D687-4262-8904-828C239CF2E5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleAppWithFailOver", "examples\ConsoleAppWithFailOver\ConsoleAppWithFailOver.csproj", "{A6C611F1-D687-4262-8904-828C239CF2E5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Properties", "Properties", "{4EC40BFD-526B-474E-8A7E-EF463FB2D55A}" + ProjectSection(SolutionItems) = preProject + AzureAppConfigurationRules.ruleset = AzureAppConfigurationRules.ruleset + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj b/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj index ca809d394..53aa8d4f8 100644 --- a/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj +++ b/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj @@ -38,5 +38,10 @@ $(OfficialVersion)-$(CDP_PATCH_NUMBER)-$(Revision) - + + + ..\..\AzureAppConfigurationRules.ruleset + True + + diff --git a/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj b/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj index 21b2e4558..a0729ba2e 100644 --- a/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj +++ b/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj @@ -35,4 +35,9 @@ $(OfficialVersion)-$(CDP_PATCH_NUMBER)-$(Revision) + + ..\..\AzureAppConfigurationRules.ruleset + True + + diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs index febf520dc..ea4211e0a 100644 --- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs +++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs @@ -660,7 +660,7 @@ private async Task> LoadKey ConfigurationSetting watchedKv = null; try { - await CallWithRequestTracing(async () => watchedKv = await client.GetConfigurationSettingAsync(watchedKey, watchedLabel, cancellationToken)).ConfigureAwait(false); + await CallWithRequestTracing(async () => watchedKv = await client.GetConfigurationSettingAsync(watchedKey, watchedLabel, cancellationToken).ConfigureAwait(false)).ConfigureAwait(false); } catch (RequestFailedException e) when (e.Status == (int)HttpStatusCode.NotFound) { diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Microsoft.Extensions.Configuration.AzureAppConfiguration.csproj b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Microsoft.Extensions.Configuration.AzureAppConfiguration.csproj index a6afe3153..e83d71d9c 100644 --- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Microsoft.Extensions.Configuration.AzureAppConfiguration.csproj +++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Microsoft.Extensions.Configuration.AzureAppConfiguration.csproj @@ -51,5 +51,10 @@ $(OfficialVersion)-$(CDP_PATCH_NUMBER)-$(Revision) + + + ..\..\AzureAppConfigurationRules.ruleset + True + From a2fc30f4d22febee1d5fce1f1aa032938b72de11 Mon Sep 17 00:00:00 2001 From: AMER JUSUPOVIC Date: Mon, 1 May 2023 16:04:36 -0500 Subject: [PATCH 3/6] enforce ca2007 with an error message --- AzureAppConfigurationRules.ruleset | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AzureAppConfigurationRules.ruleset b/AzureAppConfigurationRules.ruleset index 5c2c57d66..5e6344ce8 100644 --- a/AzureAppConfigurationRules.ruleset +++ b/AzureAppConfigurationRules.ruleset @@ -1,6 +1,6 @@  - + \ No newline at end of file From b80ade4316076868c8c60ca30a07fdcce58d8c60 Mon Sep 17 00:00:00 2001 From: AMER JUSUPOVIC Date: Mon, 1 May 2023 17:12:00 -0500 Subject: [PATCH 4/6] fix spacing in csproj, comment in ruleset file --- AzureAppConfigurationRules.ruleset | 1 + .../Microsoft.Azure.AppConfiguration.AspNetCore.csproj | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/AzureAppConfigurationRules.ruleset b/AzureAppConfigurationRules.ruleset index 5e6344ce8..07329d0b4 100644 --- a/AzureAppConfigurationRules.ruleset +++ b/AzureAppConfigurationRules.ruleset @@ -1,4 +1,5 @@  + diff --git a/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj b/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj index 53aa8d4f8..8de36e505 100644 --- a/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj +++ b/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj @@ -40,8 +40,8 @@ - ..\..\AzureAppConfigurationRules.ruleset - True + ..\..\AzureAppConfigurationRules.ruleset + True From 6001a286c182d485a581ecb946a1f3ac567bc86e Mon Sep 17 00:00:00 2001 From: AMER JUSUPOVIC Date: Mon, 1 May 2023 17:13:37 -0500 Subject: [PATCH 5/6] fix spacing again --- .../Microsoft.Azure.AppConfiguration.Functions.Worker.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj b/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj index a0729ba2e..bd65a5669 100644 --- a/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj +++ b/src/Microsoft.Azure.AppConfiguration.Functions.Worker/Microsoft.Azure.AppConfiguration.Functions.Worker.csproj @@ -36,8 +36,8 @@ - ..\..\AzureAppConfigurationRules.ruleset - True + ..\..\AzureAppConfigurationRules.ruleset + True From 2a57cc6dc73532158b696cbdd0665c09e4ef6da8 Mon Sep 17 00:00:00 2001 From: AMER JUSUPOVIC Date: Mon, 1 May 2023 17:17:19 -0500 Subject: [PATCH 6/6] spacing --- .../Microsoft.Azure.AppConfiguration.AspNetCore.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj b/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj index 8de36e505..f7ba31a38 100644 --- a/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj +++ b/src/Microsoft.Azure.AppConfiguration.AspNetCore/Microsoft.Azure.AppConfiguration.AspNetCore.csproj @@ -38,7 +38,7 @@ $(OfficialVersion)-$(CDP_PATCH_NUMBER)-$(Revision) - + ..\..\AzureAppConfigurationRules.ruleset True