Skip to content

Commit 0309498

Browse files
authored
Bump Hyperion to 0.12.2 (#5805)
* Bump Hyperion to 0.12.2 * Add HyperionSerializerSettings immutable modifier methods * Fix unit tests
1 parent ab332ea commit 0309498

File tree

4 files changed

+84
-10
lines changed

4 files changed

+84
-10
lines changed

src/common.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<XunitVersion>2.4.1</XunitVersion>
1414
<XunitRunnerVersion>2.4.3</XunitRunnerVersion>
1515
<TestSdkVersion>17.0.0</TestSdkVersion>
16-
<HyperionVersion>0.12.0</HyperionVersion>
16+
<HyperionVersion>0.12.2</HyperionVersion>
1717
<NewtonsoftJsonVersion>[12.0.3,)</NewtonsoftJsonVersion>
1818
<NBenchVersion>2.0.1</NBenchVersion>
1919
<ProtobufVersion>3.19.4</ProtobufVersion>

src/contrib/serializers/Akka.Serialization.Hyperion.Tests/HyperionConfigTests.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,14 @@ public void TypeFilter_defined_in_config_should_filter_serializer_properly(objec
9393
");
9494
using (var system = ActorSystem.Create(nameof(HyperionConfigTests), config))
9595
{
96-
var serializer = (HyperionSerializer)system.Serialization.FindSerializerForType(typeof(object));
96+
var deserializer = (HyperionSerializer)system.Serialization.FindSerializerForType(typeof(object));
97+
var serializer = new HyperionSerializer(null, deserializer.Settings.WithDisallowUnsafeType(false));
9798

98-
((TypeFilter)serializer.Settings.TypeFilter).FilteredTypes.Count.Should().Be(2);
99+
((TypeFilter)deserializer.Settings.TypeFilter).FilteredTypes.Count.Should().Be(2);
100+
99101
var serialized = serializer.ToBinary(sampleObject);
100102
object deserialized = null;
101-
Action act = () => deserialized = serializer.FromBinary<object>(serialized);
103+
Action act = () => deserialized = deserializer.FromBinary<object>(serialized);
102104
if (shouldSucceed)
103105
{
104106
act.Should().NotThrow();

src/contrib/serializers/Akka.Serialization.Hyperion.Tests/HyperionSerializerSetupSpec.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,10 @@ public void Setup_surrogate_should_work()
130130
[MemberData(nameof(DangerousObjectFactory))]
131131
public void Setup_disallow_unsafe_type_should_work(object dangerousObject, Type type)
132132
{
133-
var serializer = new HyperionSerializer((ExtendedActorSystem)Sys, HyperionSerializerSettings.Default);
133+
var deserializer = new HyperionSerializer((ExtendedActorSystem)Sys, HyperionSerializerSettings.Default);
134+
var serializer = new HyperionSerializer((ExtendedActorSystem)Sys, deserializer.Settings.WithDisallowUnsafeType(false));
134135
var serialized = serializer.ToBinary(dangerousObject);
135-
serializer.Invoking(s => s.FromBinary(serialized, type)).Should().Throw<SerializationException>();
136+
deserializer.Invoking(s => s.FromBinary(serialized, type)).Should().Throw<SerializationException>();
136137
}
137138

138139
[Theory]
@@ -146,12 +147,13 @@ public void Setup_TypeFilter_should_filter_types_properly(object sampleObject, b
146147
.Build());
147148

148149
var settings = setup.ApplySettings(HyperionSerializerSettings.Default);
149-
var serializer = new HyperionSerializer((ExtendedActorSystem)Sys, settings);
150-
151-
((TypeFilter)serializer.Settings.TypeFilter).FilteredTypes.Count.Should().Be(2);
150+
var deserializer = new HyperionSerializer((ExtendedActorSystem)Sys, settings);
151+
var serializer = new HyperionSerializer((ExtendedActorSystem)Sys, deserializer.Settings.WithDisallowUnsafeType(false));
152152
var serialized = serializer.ToBinary(sampleObject);
153+
154+
((TypeFilter)deserializer.Settings.TypeFilter).FilteredTypes.Count.Should().Be(2);
153155
object deserialized = null;
154-
Action act = () => deserialized = serializer.FromBinary<object>(serialized);
156+
Action act = () => deserialized = deserializer.FromBinary<object>(serialized);
155157
if (shouldSucceed)
156158
{
157159
act.Should().NotThrow();

src/contrib/serializers/Akka.Serialization.Hyperion/HyperionSerializer.cs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,5 +401,75 @@ public HyperionSerializerSettings(
401401
DisallowUnsafeType = disallowUnsafeType;
402402
TypeFilter = typeFilter;
403403
}
404+
405+
public HyperionSerializerSettings WithPreserveObjectReference(bool preserveObjectReferences)
406+
=> new HyperionSerializerSettings(
407+
preserveObjectReferences: preserveObjectReferences,
408+
versionTolerance: VersionTolerance,
409+
knownTypesProvider: KnownTypesProvider,
410+
packageNameOverrides: PackageNameOverrides,
411+
surrogates: Surrogates,
412+
disallowUnsafeType: DisallowUnsafeType,
413+
typeFilter: TypeFilter);
414+
415+
public HyperionSerializerSettings WithVersionTolerance(bool versionTolerance)
416+
=> new HyperionSerializerSettings(
417+
preserveObjectReferences: PreserveObjectReferences,
418+
versionTolerance: versionTolerance,
419+
knownTypesProvider: KnownTypesProvider,
420+
packageNameOverrides: PackageNameOverrides,
421+
surrogates: Surrogates,
422+
disallowUnsafeType: DisallowUnsafeType,
423+
typeFilter: TypeFilter);
424+
425+
public HyperionSerializerSettings WithKnownTypesProvider(Type knownTypesProvider)
426+
=> new HyperionSerializerSettings(
427+
preserveObjectReferences: PreserveObjectReferences,
428+
versionTolerance: VersionTolerance,
429+
knownTypesProvider: knownTypesProvider,
430+
packageNameOverrides: PackageNameOverrides,
431+
surrogates: Surrogates,
432+
disallowUnsafeType: DisallowUnsafeType,
433+
typeFilter: TypeFilter);
434+
435+
public HyperionSerializerSettings WithPackageNameOverrides(IEnumerable<Func<string, string>> packageNameOverrides)
436+
=> new HyperionSerializerSettings(
437+
preserveObjectReferences: PreserveObjectReferences,
438+
versionTolerance: VersionTolerance,
439+
knownTypesProvider: KnownTypesProvider,
440+
packageNameOverrides: packageNameOverrides,
441+
surrogates: Surrogates,
442+
disallowUnsafeType: DisallowUnsafeType,
443+
typeFilter: TypeFilter);
444+
445+
public HyperionSerializerSettings WithSurrogates(IEnumerable<Surrogate> surrogates)
446+
=> new HyperionSerializerSettings(
447+
preserveObjectReferences: PreserveObjectReferences,
448+
versionTolerance: VersionTolerance,
449+
knownTypesProvider: KnownTypesProvider,
450+
packageNameOverrides: PackageNameOverrides,
451+
surrogates: surrogates,
452+
disallowUnsafeType: DisallowUnsafeType,
453+
typeFilter: TypeFilter);
454+
455+
public HyperionSerializerSettings WithDisallowUnsafeType(bool disallowUnsafeType)
456+
=> new HyperionSerializerSettings(
457+
preserveObjectReferences: PreserveObjectReferences,
458+
versionTolerance: VersionTolerance,
459+
knownTypesProvider: KnownTypesProvider,
460+
packageNameOverrides: PackageNameOverrides,
461+
surrogates: Surrogates,
462+
disallowUnsafeType: disallowUnsafeType,
463+
typeFilter: TypeFilter);
464+
465+
public HyperionSerializerSettings WithTypeFilter(ITypeFilter typeFilter)
466+
=> new HyperionSerializerSettings(
467+
preserveObjectReferences: PreserveObjectReferences,
468+
versionTolerance: VersionTolerance,
469+
knownTypesProvider: KnownTypesProvider,
470+
packageNameOverrides: PackageNameOverrides,
471+
surrogates: Surrogates,
472+
disallowUnsafeType: DisallowUnsafeType,
473+
typeFilter: typeFilter);
404474
}
405475
}

0 commit comments

Comments
 (0)