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/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