Repository navigation
Add SerializerV2 foundation - #8222
Aaronontheweb merged 10 commits into
Conversation
Aaronontheweb
left a comment
There was a problem hiding this comment.
Good first steps but we have not validated the concept yet
| public Serialization(Akka.Actor.ExtendedActorSystem system) { } | ||
| public Akka.Actor.ExtendedActorSystem System { get; } | ||
| public void AddSerializationMap(System.Type type, Akka.Serialization.Serializer serializer) { } | ||
| public void AddSerializationMap(System.Type type, Akka.Serialization.SerializerV2 serializer) { } |
There was a problem hiding this comment.
Breaking change throughout this PR - SerializerV2 is the new root for all the Akka.Serialization work, not Serializer or SerializerWithStringManifest. This is all per the spec we laid out last year.
| thisManifest = thePayload.GetType().TypeQualifiedName(); | ||
| } | ||
|
|
||
| var thisManifest = Akka.Serialization.Serialization.ManifestFor(theSerializer, thePayload); |
There was a problem hiding this comment.
We can collapse the above code because having a manifest is now standard under SerializerV2.
| /// <summary> | ||
| /// A serializer that writes directly into caller-owned buffers and reads from sequence-backed input. | ||
| /// </summary> | ||
| public abstract class SerializerV2 : Serializer |
There was a problem hiding this comment.
Behaves like a SerializerWithStringManifest and is semantically its own protocol - sub-classes Serializer right now, temporarily, for migration compatibility while we get to work on introducing the new serialization system. We are going to drop the : Serializer later and rely on the SerializerV1Adapter instead to forward-port old serializer to new V2 serializer behavior.
Add rows for akkadotnet#8222 (Serializer overloads, ByteArraySerializer manifest), akkadotnet#8465 (explicit TLS hostname check), akkadotnet#8132 (TCP connects bypass akka.io.dns) and akkadotnet#7557 (object handler without predicate blocks later Receive calls). State net10.0-only once, folding in akkadotnet#8594 and the dependency bumps; fix the ByteString row's write types; narrow the akkadotnet#8698 row to module serializers; drop the .Internal AddOrSet row and say why in the preamble; shorten rows; use asterisk list markers.
…8698 (#8700) * Audit BREAKING_CHANGES_V1.6.md against v1.5.71 and catch up through #8698 Restate the definition (binary / source / behavioral compatibility against the last stable v1.5 release), drop rows that are not breaking under it (Artery-only, DynamicTypeLoading-off-only, fixes, dev-only comparisons), fold the TargetInvocationException and trim-annotation rows into one row each, shorten the rest, mark every row Merged with its PR, and add the breaking changes from #8694 and #8698. * Add pre-ledger breaking changes to BREAKING_CHANGES_V1.6.md Cover changes on dev since the v1.5 line diverged that landed before the ledger existed: net10.0-only targeting and ByteString removal (#8132), App.config HOCON loading removal (#7456), and the AddOrSet removal (#7622). * Apply review feedback to BREAKING_CHANGES_V1.6.md Add rows for #8222 (Serializer overloads, ByteArraySerializer manifest), #8465 (explicit TLS hostname check), #8132 (TCP connects bypass akka.io.dns) and #7557 (object handler without predicate blocks later Receive calls). State net10.0-only once, folding in #8594 and the dependency bumps; fix the ByteString row's write types; narrow the #8698 row to module serializers; drop the .Internal AddOrSet row and say why in the preamble; shorten rows; use asterisk list markers. * Drop the #7557 ReceiveActor row from BREAKING_CHANGES_V1.6.md The Receive(typeof(object), Func<object, bool>) regression is being fixed in a separate PR instead of documented.
Adds the SerializerV2 foundation and compatibility bridge.