Skip to content

Commit 60215f1

Browse files
authored
Use System.Text.Json source generation (#72)
1 parent 40ee30e commit 60215f1

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

examples/Elastic.Ephemeral.Example/Elastic.Ephemeral.Example.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</ItemGroup>
1414

1515
<ItemGroup>
16-
<PackageReference Include="Elastic.Transport" Version="0.10.1" />
16+
<PackageReference Include="Elastic.Transport" Version="0.10.2" />
1717
</ItemGroup>
1818

1919
</Project>

src/Elastic.Stack.ArtifactsApi/Resolvers/ApiResolver.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static string LatestBuildHash(string version)
7474
try
7575
{
7676
// if packages is empty it turns into an array[] otherwise its a dictionary :/
77-
var packages = JsonSerializer.Deserialize<ArtifactsSearchResponse>(json).Packages;
77+
var packages = JsonSerializer.Deserialize(json, ApiResolverSerializerContext.Default.ArtifactsSearchResponse).Packages;
7878
if (packages.Count == 0)
7979
throw new Exception("Can not get build hash for: " + version);
8080
return GetBuildHash(packages.First().Value.DownloadUrl);
@@ -123,4 +123,8 @@ internal class SearchPackage
123123
[JsonPropertyName("os")] public string[] OperatingSystem { get; set; }
124124
[JsonPropertyName("classifier")] public string Classifier { get; set; }
125125
}
126+
127+
[JsonSerializable(typeof(ArtifactsVersionsResponse))]
128+
[JsonSerializable(typeof(ArtifactsSearchResponse))]
129+
internal sealed partial class ApiResolverSerializerContext : JsonSerializerContext;
126130
}

src/Elastic.Stack.ArtifactsApi/Resolvers/SnapshotApiResolver.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static bool TryResolve(Product product, Version version, OSPlatform os, s
4545
{
4646
var json = ApiResolver.FetchJson($"search/{version}/{query}");
4747
// if packages is empty it turns into an array[] otherwise its a dictionary :/
48-
packages = JsonSerializer.Deserialize<ArtifactsSearchResponse>(json).Packages;
48+
packages = JsonSerializer.Deserialize(json, ApiResolverSerializerContext.Default.ArtifactsSearchResponse).Packages;
4949
}
5050
catch
5151
{
@@ -82,7 +82,7 @@ public static bool TryResolve(Product product, Version version, OSPlatform os, s
8282
private static IReadOnlyCollection<Version> LoadVersions()
8383
{
8484
var json = ApiResolver.FetchJson("versions");
85-
var versions = JsonSerializer.Deserialize<ArtifactsVersionsResponse>(json).Versions;
85+
var versions = JsonSerializer.Deserialize(json, ApiResolverSerializerContext.Default.ArtifactsVersionsResponse).Versions;
8686

8787
return new List<Version>(versions.Select(v => new Version(v)));
8888
}

0 commit comments

Comments
 (0)