From 5eb8ff826f4e6315b35e626f03f147699952d620 Mon Sep 17 00:00:00 2001 From: kasperk81 <83082615+kasperk81@users.noreply.github.com> Date: Mon, 29 Apr 2024 11:55:32 +0300 Subject: [PATCH 1/3] delete newtonsoftjson support --- .../Microsoft.DotNet.TemplateLocator.csproj | 7 -- ...Microsoft.DotNet.MSBuildSdkResolver.csproj | 5 - ...soft.NET.Sdk.WorkloadManifestReader.csproj | 6 +- ...rkloadManifestProvider.GlobalJsonReader.cs | 13 --- ...toryWorkloadManifestProvider.JsonReader.cs | 5 - .../WorkloadManifestReader.Localization.cs | 5 - .../WorkloadManifestReader.NewtonsoftJson.cs | 97 ------------------- .../WorkloadManifestReader.SystemTextJson.cs | 4 - .../WorkloadManifestReader.cs | 4 - .../WorkloadPackId.cs | 4 - .../WorkloadResolver.cs | 4 - .../WorkloadSet.cs | 14 --- 12 files changed, 1 insertion(+), 167 deletions(-) delete mode 100644 src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.NewtonsoftJson.cs diff --git a/src/Microsoft.DotNet.TemplateLocator/Microsoft.DotNet.TemplateLocator.csproj b/src/Microsoft.DotNet.TemplateLocator/Microsoft.DotNet.TemplateLocator.csproj index 8d02feb5b8c9..3805dccfbf24 100644 --- a/src/Microsoft.DotNet.TemplateLocator/Microsoft.DotNet.TemplateLocator.csproj +++ b/src/Microsoft.DotNet.TemplateLocator/Microsoft.DotNet.TemplateLocator.csproj @@ -16,9 +16,6 @@ 5.0.100.0 - True - $(DefineConstants);USE_SYSTEM_TEXT_JSON - $(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage @@ -63,8 +60,4 @@ - - - - diff --git a/src/Resolvers/Microsoft.DotNet.MSBuildSdkResolver/Microsoft.DotNet.MSBuildSdkResolver.csproj b/src/Resolvers/Microsoft.DotNet.MSBuildSdkResolver/Microsoft.DotNet.MSBuildSdkResolver.csproj index 84d4256976e8..f271a17d2500 100644 --- a/src/Resolvers/Microsoft.DotNet.MSBuildSdkResolver/Microsoft.DotNet.MSBuildSdkResolver.csproj +++ b/src/Resolvers/Microsoft.DotNet.MSBuildSdkResolver/Microsoft.DotNet.MSBuildSdkResolver.csproj @@ -13,9 +13,6 @@ Enable - True - $(DefineConstants);USE_SYSTEM_TEXT_JSON - 8.0.0 @@ -105,8 +102,6 @@ - - diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj index afc2aa64034c..21be2e999e87 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj @@ -11,9 +11,6 @@ Enable true - - True - $(DefineConstants);USE_SYSTEM_TEXT_JSON @@ -25,8 +22,7 @@ - - + diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.GlobalJsonReader.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.GlobalJsonReader.cs index 522c16a0f5d4..4fa2878d5b43 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.GlobalJsonReader.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.GlobalJsonReader.cs @@ -5,12 +5,7 @@ using Microsoft.NET.Sdk.Localization; using static Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestReader; -#if USE_SYSTEM_TEXT_JSON using System.Text.Json; -#else -using Newtonsoft.Json; -using JsonTokenType = Newtonsoft.Json.JsonToken; -#endif namespace Microsoft.NET.Sdk.WorkloadManifestReader { @@ -27,19 +22,12 @@ public static class GlobalJsonReader using var fileStream = File.OpenRead(globalJsonPath); -#if USE_SYSTEM_TEXT_JSON var readerOptions = new JsonReaderOptions { AllowTrailingCommas = true, CommentHandling = JsonCommentHandling.Skip }; var reader = new Utf8JsonStreamReader(fileStream, readerOptions); -#else - using var textReader = new StreamReader(fileStream, Encoding.UTF8, true); - using var jsonReader = new JsonTextReader(textReader); - - var reader = new Utf8JsonStreamReader(jsonReader); -#endif string? workloadVersion = null; @@ -96,4 +84,3 @@ public static class GlobalJsonReader } } } - diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs index 93e9769e8dc9..098bccf40955 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.JsonReader.cs @@ -6,12 +6,7 @@ using static Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestReader; using System.Runtime.Serialization; -#if USE_SYSTEM_TEXT_JSON using System.Text.Json; -#else -using Newtonsoft.Json; -using JsonTokenType = Newtonsoft.Json.JsonToken; -#endif namespace Microsoft.NET.Sdk.WorkloadManifestReader { diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.Localization.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.Localization.cs index 6eb8baf26808..340ef241a301 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.Localization.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.Localization.cs @@ -4,12 +4,7 @@ using System.Globalization; using System.Runtime.CompilerServices; - -#if USE_SYSTEM_TEXT_JSON using System.Text.Json; -#else -using JsonTokenType = Newtonsoft.Json.JsonToken; -#endif namespace Microsoft.NET.Sdk.WorkloadManifestReader { diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.NewtonsoftJson.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.NewtonsoftJson.cs deleted file mode 100644 index 5cf8e46ce734..000000000000 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.NewtonsoftJson.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -#if !USE_SYSTEM_TEXT_JSON - -using System; -using System.Collections.Generic; -using System.IO; - -using Newtonsoft.Json; - -using JsonTokenType = Newtonsoft.Json.JsonToken; - -namespace Microsoft.NET.Sdk.WorkloadManifestReader -{ - public partial class WorkloadManifestReader - { - public static WorkloadManifest ReadWorkloadManifest(string manifestId, Stream manifestStream, Stream? localizationStream, string manifestPath) - { - using var textReader = new StreamReader(manifestStream, Encoding.UTF8, true); - using var jsonReader = new JsonTextReader(textReader); - - var manifestReader = new Utf8JsonStreamReader(jsonReader); - - return ReadWorkloadManifest(manifestId, manifestPath, ReadLocalizationCatalog(localizationStream), ref manifestReader); ; - } - - private static LocalizationCatalog? ReadLocalizationCatalog(Stream? localizationStream) - { - if (localizationStream == null) - { - return null; - } - - using var textReader = new StreamReader(localizationStream, Encoding.UTF8, true); - using var jsonReader = new JsonTextReader(textReader); - - var localizationReader = new Utf8JsonStreamReader(jsonReader); - - return ReadLocalizationCatalog(ref localizationReader); - } - - // this is a compat wrapper so the source matches the system.text.json impl - internal ref struct Utf8JsonStreamReader - { - public Utf8JsonStreamReader(JsonTextReader reader) - { - this.reader = reader; - } - - JsonTextReader reader; - - public long TokenStartIndex => reader.LineNumber; //FIXME: rationalize line/col and offset - - public JsonTokenType TokenType => reader.TokenType; - - public int CurrentDepth => reader.Depth; - - public string GetString() => reader.Value as string ?? throw new InvalidOperationException("Not a string token"); - - public bool TryGetInt64(out long value) - { - long? v = reader.Value as long? ?? reader.Value as int?; - if (v.HasValue) - { - value = v.Value; - return true; - } - value = 0; - return false; - } - - public bool GetBool() => reader.Value as bool? ?? throw new InvalidOperationException("Not a bool token"); - - public bool Read() - { - // system.text.json allows ignoring comments with an option. newtonsoft.json doesn't, so do it here. - while (reader.Read()) - { - if (reader.TokenType != JsonTokenType.Comment) - { - return true; - } - } - return false; - } - } - } - - internal static class JsonTokenTypeExtensions - { - public static bool IsBool(this JsonTokenType tokenType) => tokenType == JsonTokenType.Boolean; - public static bool IsInt(this JsonTokenType tokenType) => tokenType == JsonTokenType.Integer; - } -} - -#endif diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.SystemTextJson.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.SystemTextJson.cs index a122d085e6e8..f27bef172ad3 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.SystemTextJson.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.SystemTextJson.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#if USE_SYSTEM_TEXT_JSON - using System.Buffers; using System.Text.Json; @@ -128,5 +126,3 @@ internal static class JsonTokenTypeExtensions public static bool IsInt(this JsonTokenType tokenType) => tokenType == JsonTokenType.Number; } } - -#endif diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.cs index fc2d7ffe34ec..6b66ef9167d1 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadManifestReader.cs @@ -4,11 +4,7 @@ using Microsoft.NET.Sdk.Localization; using FXVersion = Microsoft.DotNet.MSBuildSdkResolver.FXVersion; -#if USE_SYSTEM_TEXT_JSON using System.Text.Json; -#else -using JsonTokenType = Newtonsoft.Json.JsonToken; -#endif namespace Microsoft.NET.Sdk.WorkloadManifestReader { diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadPackId.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadPackId.cs index ebef4f3f87d2..cb09d54def75 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadPackId.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadPackId.cs @@ -1,10 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -#if USE_SYSTEM_TEXT_JSON using System.Text.Json; using System.Text.Json.Serialization; -#endif namespace Microsoft.NET.Sdk.WorkloadManifestReader { @@ -47,7 +45,6 @@ public WorkloadPackId(string id) public static bool operator !=(WorkloadPackId a, WorkloadPackId b) => !a.Equals(b); } -#if USE_SYSTEM_TEXT_JSON internal class PackIdJsonConverter : JsonConverter { public override WorkloadPackId Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) => @@ -55,5 +52,4 @@ public override WorkloadPackId Read(ref Utf8JsonReader reader, Type typeToConver public override void Write(Utf8JsonWriter writer, WorkloadPackId value, JsonSerializerOptions options) => writer.WriteStringValue(value.ToString()); } -#endif } diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadResolver.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadResolver.cs index 9abffabb6c78..dc616b977c8a 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadResolver.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadResolver.cs @@ -5,9 +5,7 @@ using Microsoft.DotNet.Workloads.Workload; using Microsoft.NET.Sdk.Localization; using FXVersion = Microsoft.DotNet.MSBuildSdkResolver.FXVersion; -#if USE_SYSTEM_TEXT_JSON using System.Text.Json.Serialization; -#endif namespace Microsoft.NET.Sdk.WorkloadManifestReader { @@ -674,9 +672,7 @@ public PackInfo(WorkloadPackId id, string version, WorkloadPackKind kind, string /// /// The workload pack ID. The NuGet package ID may differ from this. /// -#if USE_SYSTEM_TEXT_JSON [JsonConverter(typeof(PackIdJsonConverter))] -#endif public WorkloadPackId Id { get; } public string Version { get; } diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadSet.cs b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadSet.cs index dd38adca009c..611187316735 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadSet.cs +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadSet.cs @@ -5,13 +5,7 @@ using Microsoft.DotNet.MSBuildSdkResolver; using Strings = Microsoft.NET.Sdk.Localization.Strings; - -#if USE_SYSTEM_TEXT_JSON using System.Text.Json; -#else -using Newtonsoft.Json; -#endif - namespace Microsoft.NET.Sdk.WorkloadManifestReader { @@ -73,16 +67,12 @@ public static WorkloadSet FromDictionaryForJson(IDictionary dic public static WorkloadSet FromJson(string json, SdkFeatureBand defaultFeatureBand) { -#if USE_SYSTEM_TEXT_JSON var jsonSerializerOptions = new JsonSerializerOptions() { AllowTrailingCommas = true, ReadCommentHandling = JsonCommentHandling.Skip }; return FromDictionaryForJson(JsonSerializer.Deserialize>(json, jsonSerializerOptions)!, defaultFeatureBand); -#else - return FromDictionaryForJson(JsonConvert.DeserializeObject>(json)!, defaultFeatureBand); -#endif } public Dictionary ToDictionaryForJson() @@ -93,11 +83,7 @@ public Dictionary ToDictionaryForJson() public string ToJson() { -#if USE_SYSTEM_TEXT_JSON var json = JsonSerializer.Serialize(ToDictionaryForJson(), new JsonSerializerOptions() { WriteIndented = true }); -#else - var json = JsonConvert.SerializeObject(ToDictionaryForJson(), Formatting.Indented); -#endif return json; } From c7f8f4e368336d6a2eb980d282d9802cd86c1c43 Mon Sep 17 00:00:00 2001 From: kasperk81 <83082615+kasperk81@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:45:53 +0300 Subject: [PATCH 2/3] move s.t.j to netframework section --- .../Microsoft.NET.Sdk.WorkloadManifestReader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj index 21be2e999e87..bb6b99bee459 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj @@ -22,13 +22,13 @@ - + From 3af2668427b8153bd5334b12a5714841456ac229 Mon Sep 17 00:00:00 2001 From: kasperk81 <83082615+kasperk81@users.noreply.github.com> Date: Mon, 29 Apr 2024 12:46:29 +0300 Subject: [PATCH 3/3] override --- .../Microsoft.NET.Sdk.WorkloadManifestReader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj index bb6b99bee459..b70e76818b34 100644 --- a/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj +++ b/src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/Microsoft.NET.Sdk.WorkloadManifestReader.csproj @@ -28,7 +28,7 @@ - +