From 62c320a41ef07a48f07a8db2d2f5d3585075a3dc Mon Sep 17 00:00:00 2001 From: Charles d'Avernas Date: Sun, 8 Sep 2024 10:59:04 +0200 Subject: [PATCH 1/2] fix(Solution): Updated all packages Signed-off-by: Charles d'Avernas --- .../ServerlessWorkflow.Sdk.Builders.csproj | 2 +- .../ServerlessWorkflow.Sdk.IO.csproj | 2 +- src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj | 4 ++-- .../ServerlessWorkflow.Sdk.UnitTests.csproj | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj b/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj index a38055c..0a6760e 100644 --- a/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj +++ b/src/ServerlessWorkflow.Sdk.Builders/ServerlessWorkflow.Sdk.Builders.csproj @@ -5,7 +5,7 @@ enable enable 1.0.0 - alpha2.14 + alpha2.15 $(VersionPrefix) $(VersionPrefix) en diff --git a/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj b/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj index b8616ab..1540114 100644 --- a/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj +++ b/src/ServerlessWorkflow.Sdk.IO/ServerlessWorkflow.Sdk.IO.csproj @@ -5,7 +5,7 @@ enable enable 1.0.0 - alpha2.14 + alpha2.15 $(VersionPrefix) $(VersionPrefix) en diff --git a/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj b/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj index b0a3bf2..e9b98c3 100644 --- a/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj +++ b/src/ServerlessWorkflow.Sdk/ServerlessWorkflow.Sdk.csproj @@ -5,7 +5,7 @@ enable enable 1.0.0 - alpha2.14 + alpha2.15 $(VersionPrefix) $(VersionPrefix) en @@ -36,7 +36,7 @@ - + diff --git a/tests/ServerlessWorkflow.Sdk.UnitTests/ServerlessWorkflow.Sdk.UnitTests.csproj b/tests/ServerlessWorkflow.Sdk.UnitTests/ServerlessWorkflow.Sdk.UnitTests.csproj index db8a416..864b498 100644 --- a/tests/ServerlessWorkflow.Sdk.UnitTests/ServerlessWorkflow.Sdk.UnitTests.csproj +++ b/tests/ServerlessWorkflow.Sdk.UnitTests/ServerlessWorkflow.Sdk.UnitTests.csproj @@ -15,7 +15,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + all From 0c7aabb527a97db42cef25c0f765c81a9717bf0c Mon Sep 17 00:00:00 2001 From: Charles d'Avernas Date: Sun, 8 Sep 2024 11:27:18 +0200 Subject: [PATCH 2/2] fix(Sdk): Fixed YAML serializers and deserializers Signed-off-by: Charles d'Avernas --- .../OAuth2AuthenticationEndpointsDefinition.cs | 6 +++--- .../Models/ErrorCatcherDefinition.cs | 1 - .../Serialization/Yaml/MapEntryYamlConverter.cs | 8 ++++---- .../Serialization/Yaml/OneOfConverter.cs | 6 +++--- .../Serialization/Yaml/OneOfNodeDeserializer.cs | 6 +++--- .../Serialization/Yaml/OneOfScalarDeserializer.cs | 6 +++--- .../Serialization/Yaml/TaskDefinitionYamlConverter.cs | 6 +++--- 7 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/ServerlessWorkflow.Sdk/Models/Authentication/OAuth2AuthenticationEndpointsDefinition.cs b/src/ServerlessWorkflow.Sdk/Models/Authentication/OAuth2AuthenticationEndpointsDefinition.cs index 0f264a2..8f61f3b 100644 --- a/src/ServerlessWorkflow.Sdk/Models/Authentication/OAuth2AuthenticationEndpointsDefinition.cs +++ b/src/ServerlessWorkflow.Sdk/Models/Authentication/OAuth2AuthenticationEndpointsDefinition.cs @@ -25,20 +25,20 @@ public record OAuth2AuthenticationEndpointsDefinition /// [Required] [DataMember(Name = "authority", Order = 1), JsonPropertyName("authority"), JsonPropertyOrder(1), YamlMember(Alias = "authority", Order = 1)] - public virtual Uri Token { get; set; } = new("/oauth2/token"); + public virtual Uri Token { get; set; } = new("/oauth2/token", UriKind.RelativeOrAbsolute); /// /// Gets/sets the relative path to the revocation endpoint. Defaults to `/oauth2/revoke` /// [Required] [DataMember(Name = "revocation", Order = 2), JsonPropertyName("revocation"), JsonPropertyOrder(2), YamlMember(Alias = "revocation", Order = 2)] - public virtual Uri Revocation { get; set; } = new("/oauth2/revoke"); + public virtual Uri Revocation { get; set; } = new("/oauth2/revoke", UriKind.RelativeOrAbsolute); /// /// Gets/sets the relative path to the introspection endpoint. Defaults to `/oauth2/introspect` /// [Required] [DataMember(Name = "introspection", Order = 3), JsonPropertyName("introspection"), JsonPropertyOrder(3), YamlMember(Alias = "introspection", Order = 3)] - public virtual Uri Introspection { get; set; } = new("/oauth2/introspect"); + public virtual Uri Introspection { get; set; } = new("/oauth2/introspect", UriKind.RelativeOrAbsolute); } \ No newline at end of file diff --git a/src/ServerlessWorkflow.Sdk/Models/ErrorCatcherDefinition.cs b/src/ServerlessWorkflow.Sdk/Models/ErrorCatcherDefinition.cs index c038937..d7a00ce 100644 --- a/src/ServerlessWorkflow.Sdk/Models/ErrorCatcherDefinition.cs +++ b/src/ServerlessWorkflow.Sdk/Models/ErrorCatcherDefinition.cs @@ -53,7 +53,6 @@ public virtual RetryPolicyDefinition? Retry get => this.RetryValue?.T1Value; set { - ArgumentNullException.ThrowIfNull(value); this.RetryValue = value; } } diff --git a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/MapEntryYamlConverter.cs b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/MapEntryYamlConverter.cs index 713b932..e55c783 100644 --- a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/MapEntryYamlConverter.cs +++ b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/MapEntryYamlConverter.cs @@ -30,10 +30,10 @@ public class MapEntryYamlConverter(Func serializerFactory, Func type.IsGenericType && type.GetGenericTypeDefinition() == typeof(MapEntry<,>); /// - public virtual object? ReadYaml(IParser parser, Type type) => this.CreateGenericConverter(type).ReadYaml(parser, type); + public virtual object? ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) => this.CreateGenericConverter(type).ReadYaml(parser, type, rootDeserializer); /// - public virtual void WriteYaml(IEmitter emitter, object? value, Type type) => this.CreateGenericConverter(type).WriteYaml(emitter, value, type); + public virtual void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer rootSerializer) => this.CreateGenericConverter(type).WriteYaml(emitter, value, type, rootSerializer); /// /// Creates a new generic @@ -56,7 +56,7 @@ class MapEntryConverter (ISerializer serializer, IDeserializer des public bool Accepts(Type type) => type == typeof(MapEntry); /// - public virtual object ReadYaml(IParser parser, Type type) + public virtual object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) { parser.Consume(); var key = deserializer.Deserialize(parser); @@ -66,7 +66,7 @@ public virtual object ReadYaml(IParser parser, Type type) } /// - public virtual void WriteYaml(IEmitter emitter, object? value, Type type) + public virtual void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer rootSerializer) { if (value == null) { diff --git a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfConverter.cs b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfConverter.cs index 27301f4..e6303bb 100644 --- a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfConverter.cs +++ b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfConverter.cs @@ -30,10 +30,10 @@ public class OneOfConverter public virtual bool Accepts(Type type) => type.GetGenericType(typeof(OneOf<,>)) != null; /// - public virtual object? ReadYaml(IParser parser, Type type) => throw new NotImplementedException(); + public virtual object? ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) => throw new NotImplementedException(); /// - public virtual void WriteYaml(IEmitter emitter, object? value, Type type) + public virtual void WriteYaml(IEmitter emitter, object? value, Type type, ObjectSerializer rootSerializer) { if (value == null || value is not IOneOf oneOf) { @@ -47,7 +47,7 @@ public virtual void WriteYaml(IEmitter emitter, object? value, Type type) return; } var jsonNode = JsonSerializer.Default.SerializeToNode(toSerialize); - new JsonNodeTypeConverter().WriteYaml(emitter, jsonNode, toSerialize.GetType()); + new JsonNodeTypeConverter().WriteYaml(emitter, jsonNode, toSerialize.GetType(), rootSerializer); } } \ No newline at end of file diff --git a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfNodeDeserializer.cs b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfNodeDeserializer.cs index 37a6748..07528e1 100644 --- a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfNodeDeserializer.cs +++ b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfNodeDeserializer.cs @@ -31,10 +31,10 @@ public class OneOfNodeDeserializer(INodeDeserializer inner) protected INodeDeserializer Inner { get; } = inner; /// - public virtual bool Deserialize(IParser reader, Type expectedType, Func nestedObjectDeserializer, out object? value) + public virtual bool Deserialize(IParser reader, Type expectedType, Func nestedObjectDeserializer, out object? value, ObjectDeserializer rootDeserializer) { - if (!typeof(IOneOf).IsAssignableFrom(expectedType)) return this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value); - if (!this.Inner.Deserialize(reader, typeof(Dictionary), nestedObjectDeserializer, out value)) return false; + if (!typeof(IOneOf).IsAssignableFrom(expectedType)) return this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value, rootDeserializer); + if (!this.Inner.Deserialize(reader, typeof(Dictionary), nestedObjectDeserializer, out value, rootDeserializer)) return false; value = JsonSerializer.Default.Deserialize(JsonSerializer.Default.SerializeToText(value!), expectedType); return true; } diff --git a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfScalarDeserializer.cs b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfScalarDeserializer.cs index 0b92b3b..2da9549 100644 --- a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfScalarDeserializer.cs +++ b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/OneOfScalarDeserializer.cs @@ -31,10 +31,10 @@ public class OneOfScalarDeserializer(INodeDeserializer inner) protected INodeDeserializer Inner { get; } = inner; /// - public virtual bool Deserialize(IParser reader, Type expectedType, Func nestedObjectDeserializer, out object? value) + public virtual bool Deserialize(IParser reader, Type expectedType, Func nestedObjectDeserializer, out object? value, ObjectDeserializer rootDeserializer) { - if (!typeof(IOneOf).IsAssignableFrom(expectedType)) return this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value); - if (!this.Inner.Deserialize(reader, typeof(object), nestedObjectDeserializer, out value)) return false; + if (!typeof(IOneOf).IsAssignableFrom(expectedType)) return this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value, rootDeserializer); + if (!this.Inner.Deserialize(reader, typeof(object), nestedObjectDeserializer, out value, rootDeserializer)) return false; value = JsonSerializer.Default.Deserialize(JsonSerializer.Default.SerializeToText(value!), expectedType); return true; } diff --git a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/TaskDefinitionYamlConverter.cs b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/TaskDefinitionYamlConverter.cs index b7ff903..7bc2e22 100644 --- a/src/ServerlessWorkflow.Sdk/Serialization/Yaml/TaskDefinitionYamlConverter.cs +++ b/src/ServerlessWorkflow.Sdk/Serialization/Yaml/TaskDefinitionYamlConverter.cs @@ -34,10 +34,10 @@ public class TaskDefinitionYamlDeserializer(INodeDeserializer inner) protected INodeDeserializer Inner { get; } = inner; /// - public virtual bool Deserialize(IParser reader, Type expectedType, Func nestedObjectDeserializer, out object? value) + public virtual bool Deserialize(IParser reader, Type expectedType, Func nestedObjectDeserializer, out object? value, ObjectDeserializer rootDeserializer) { - if (!typeof(TaskDefinition).IsAssignableFrom(expectedType)) return this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value); - if (!this.Inner.Deserialize(reader, typeof(Dictionary), nestedObjectDeserializer, out value)) return false; + if (!typeof(TaskDefinition).IsAssignableFrom(expectedType)) return this.Inner.Deserialize(reader, expectedType, nestedObjectDeserializer, out value, rootDeserializer); + if (!this.Inner.Deserialize(reader, typeof(Dictionary), nestedObjectDeserializer, out value, rootDeserializer)) return false; value = JsonSerializer.Default.Deserialize(JsonSerializer.Default.SerializeToText(value!)); return true; }