Skip to content

Commit d167365

Browse files
bieluclaude
andcommitted
fix: drop the JsonPointer.Net dependency from the readers
The readers were built against JsonPointer.Net 5.3.1 and used it only to resolve the fragment of an external reference. JsonPointer.Net 7 removed JsonPointer.Parse(string), so an app that pulls in 7.x (for example through JsonSchema.Net 9) hit MissingMethodException when a reference was resolved. Resolve the fragment with the library's own JsonPointer instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 7eed22a commit d167365

3 files changed

Lines changed: 3 additions & 5 deletions

File tree

‎Directory.Packages.props‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
</PropertyGroup>
55

66
<ItemGroup Label="Library">
7-
<PackageVersion Include="JsonPointer.Net" Version="5.3.1" />
87
<PackageVersion Include="System.Text.Json" Version="9.0.1" />
98
<PackageVersion Include="YamlDotNet" Version="13.0.1" />
109
</ItemGroup>

‎src/ByteBard.AsyncAPI.Readers/AsyncApiJsonDocumentReader.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ namespace ByteBard.AsyncAPI.Readers
66
using System.Text.Json.Nodes;
77
using System.Threading;
88
using System.Threading.Tasks;
9-
using Json.Pointer;
109
using ByteBard.AsyncAPI.Exceptions;
1110
using ByteBard.AsyncAPI.Extensions;
1211
using ByteBard.AsyncAPI.Models;
1312
using ByteBard.AsyncAPI.Models.Interfaces;
1413
using ByteBard.AsyncAPI.Readers.Interface;
14+
using ByteBard.AsyncAPI.Readers.ParseNodes;
1515
using ByteBard.AsyncAPI.Readers.Services;
1616
using ByteBard.AsyncAPI.Services;
1717
using ByteBard.AsyncAPI.Validations;
@@ -369,8 +369,8 @@ private IAsyncApiSerializable ResolveStreamReference(Stream stream, IAsyncApiRef
369369

370370
if (reference.Reference.IsFragment)
371371
{
372-
var pointer = JsonPointer.Parse(reference.Reference.FragmentId);
373-
if (pointer.TryEvaluate(json, out var pointerResult))
372+
var pointerResult = new JsonPointer(reference.Reference.FragmentId).Find(json);
373+
if (pointerResult != null)
374374
{
375375
json = pointerResult;
376376
}

‎src/ByteBard.AsyncAPI.Readers/ByteBard.AsyncAPI.Readers.csproj‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="JsonPointer.Net" />
1312
<PackageReference Include="Microsoft.SourceLink.GitHub">
1413
<PrivateAssets>all</PrivateAssets>
1514
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

0 commit comments

Comments
 (0)