From 2aeed15ed7d7df8d8d855bcc2c021dff828135e9 Mon Sep 17 00:00:00 2001 From: Darrel Miller Date: Wed, 13 Jun 2018 14:04:41 -0400 Subject: [PATCH] Added spec version to signature of custom extension parsers --- src/Microsoft.OpenApi.Readers/OpenApiReaderSettings.cs | 2 +- src/Microsoft.OpenApi.Readers/ParsingContext.cs | 2 +- src/Microsoft.OpenApi.Readers/V2/OpenApiV2Deserializer.cs | 2 +- src/Microsoft.OpenApi.Readers/V3/OpenApiV3Deserializer.cs | 2 +- test/Microsoft.OpenApi.Readers.Tests/TestCustomExtension.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.OpenApi.Readers/OpenApiReaderSettings.cs b/src/Microsoft.OpenApi.Readers/OpenApiReaderSettings.cs index 15d21e704..1b1c2f367 100644 --- a/src/Microsoft.OpenApi.Readers/OpenApiReaderSettings.cs +++ b/src/Microsoft.OpenApi.Readers/OpenApiReaderSettings.cs @@ -42,7 +42,7 @@ public class OpenApiReaderSettings /// /// Dictionary of parsers for converting extensions into strongly typed classes /// - public Dictionary> ExtensionParsers { get; set; } = new Dictionary>(); + public Dictionary> ExtensionParsers { get; set; } = new Dictionary>(); /// /// Rules to use for validating OpenAPI specification. If none are provided a default set of rules are applied. diff --git a/src/Microsoft.OpenApi.Readers/ParsingContext.cs b/src/Microsoft.OpenApi.Readers/ParsingContext.cs index e655fd811..f693bfddc 100644 --- a/src/Microsoft.OpenApi.Readers/ParsingContext.cs +++ b/src/Microsoft.OpenApi.Readers/ParsingContext.cs @@ -25,7 +25,7 @@ public class ParsingContext private readonly Dictionary _tempStorage = new Dictionary(); private IOpenApiVersionService _versionService; private readonly Dictionary> _loopStacks = new Dictionary>(); - internal Dictionary> ExtensionParsers { get; set; } = new Dictionary>(); + internal Dictionary> ExtensionParsers { get; set; } = new Dictionary>(); internal RootNode RootNode { get; set; } internal List Tags { get; private set; } = new List(); internal Uri BaseUrl { get; set; } diff --git a/src/Microsoft.OpenApi.Readers/V2/OpenApiV2Deserializer.cs b/src/Microsoft.OpenApi.Readers/V2/OpenApiV2Deserializer.cs index 23b5e04d6..4ebf2f693 100644 --- a/src/Microsoft.OpenApi.Readers/V2/OpenApiV2Deserializer.cs +++ b/src/Microsoft.OpenApi.Readers/V2/OpenApiV2Deserializer.cs @@ -43,7 +43,7 @@ private static IOpenApiExtension LoadExtension(string name, ParseNode node) { if (node.Context.ExtensionParsers.TryGetValue(name, out var parser)) { - return parser(node.CreateAny()); + return parser(node.CreateAny(), OpenApiSpecVersion.OpenApi2_0); } else { diff --git a/src/Microsoft.OpenApi.Readers/V3/OpenApiV3Deserializer.cs b/src/Microsoft.OpenApi.Readers/V3/OpenApiV3Deserializer.cs index 52d90cc82..cdf175090 100644 --- a/src/Microsoft.OpenApi.Readers/V3/OpenApiV3Deserializer.cs +++ b/src/Microsoft.OpenApi.Readers/V3/OpenApiV3Deserializer.cs @@ -68,7 +68,7 @@ private static IOpenApiExtension LoadExtension(string name, ParseNode node) { if (node.Context.ExtensionParsers.TryGetValue(name, out var parser)) { - return parser(node.CreateAny()); + return parser(node.CreateAny(), OpenApiSpecVersion.OpenApi3_0); } else { diff --git a/test/Microsoft.OpenApi.Readers.Tests/TestCustomExtension.cs b/test/Microsoft.OpenApi.Readers.Tests/TestCustomExtension.cs index b5d7a7787..e3dbfa19b 100644 --- a/test/Microsoft.OpenApi.Readers.Tests/TestCustomExtension.cs +++ b/test/Microsoft.OpenApi.Readers.Tests/TestCustomExtension.cs @@ -26,7 +26,7 @@ public void ParseCustomExtension() "; var settings = new OpenApiReaderSettings() { - ExtensionParsers = { { "x-foo", (a) => { + ExtensionParsers = { { "x-foo", (a,v) => { var fooNode = (OpenApiObject)a; return new FooExtension() { Bar = (fooNode["bar"] as OpenApiString)?.Value,