Skip to content

Commit

Permalink
fix: remove serialize method from deserializer class
Browse files Browse the repository at this point in the history
  • Loading branch information
jose-sousa-8 committed Oct 2, 2023
1 parent 7126a3b commit 7c0aa63
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public static IConsumerMiddlewareConfigurationBuilder AddSchemaRegistryAvroDeser
this IConsumerMiddlewareConfigurationBuilder middlewares)
{
return middlewares.Add(
resolver => new SerializerConsumerMiddleware(
resolver => new DeserializerConsumerMiddleware(
new ConfluentAvroDeserializer(resolver),
new SchemaRegistryTypeResolver(new ConfluentAvroTypeNameResolver(resolver.Resolve<ISchemaRegistryClient>()))));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,45 +4,13 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Confluent.SchemaRegistry;
using Confluent.SchemaRegistry.Serdes;

/// <summary>
/// A protobuf message serializer integrated with the confluent schema registry
/// </summary>
public class ConfluentProtobufDeserializer : IDeserializer
{
private readonly ISchemaRegistryClient schemaRegistryClient;
private readonly ProtobufSerializerConfig serializerConfig;

/// <summary>
/// Initializes a new instance of the <see cref="ConfluentProtobufDeserializer"/> class.
/// </summary>
/// <param name="resolver">An instance of <see cref="IDependencyResolver"/></param>
/// <param name="serializerConfig">An instance of <see cref="ProtobufSerializerConfig"/></param>
public ConfluentProtobufDeserializer(IDependencyResolver resolver, ProtobufSerializerConfig serializerConfig = null)
{
this.schemaRegistryClient =
resolver.Resolve<ISchemaRegistryClient>() ??
throw new InvalidOperationException(
$"No schema registry configuration was found. Set it using {nameof(ClusterConfigurationBuilderExtensions.WithSchemaRegistry)} on cluster configuration");

this.serializerConfig = serializerConfig;
}

/// <inheritdoc/>
public Task SerializeAsync(object message, Stream output, ISerializerContext context)
{
return ConfluentSerializerWrapper
.GetOrCreateSerializer(
message.GetType(),
() => Activator.CreateInstance(
typeof(ProtobufSerializer<>).MakeGenericType(message.GetType()),
this.schemaRegistryClient,
this.serializerConfig))
.SerializeAsync(message, output, context);
}

/// <inheritdoc/>
public Task<object> DeserializeAsync(Stream input, Type type, ISerializerContext context)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ public static IConsumerMiddlewareConfigurationBuilder AddSchemaRegistryProtobufD
this IConsumerMiddlewareConfigurationBuilder middlewares)
{
return middlewares.Add(
resolver => new SerializerConsumerMiddleware(
new ConfluentProtobufDeserializer(resolver),
resolver => new DeserializerConsumerMiddleware(
new ConfluentProtobufDeserializer(),
new SchemaRegistryTypeResolver(new ConfluentProtobufTypeNameResolver(resolver.Resolve<ISchemaRegistryClient>()))));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class SerializerConsumerMiddlewareTests

private bool nextCalled;

private SerializerConsumerMiddleware target;
private DeserializerConsumerMiddleware target;

[TestInitialize]
public void Setup()
Expand All @@ -28,7 +28,7 @@ public void Setup()
this.deserializerMock = new Mock<IDeserializer>();
this.typeResolverMock = new Mock<IMessageTypeResolver>();

this.target = new SerializerConsumerMiddleware(
this.target = new DeserializerConsumerMiddleware(
this.deserializerMock.Object,
this.typeResolverMock.Object);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public static IConsumerMiddlewareConfigurationBuilder AddDeserializer<TDeseriali
where TResolver : class, IMessageTypeResolver
{
return middlewares.Add(
resolver => new SerializerConsumerMiddleware(
resolver => new DeserializerConsumerMiddleware(
serializerFactory(resolver),
resolverFactory(resolver)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@
/// <summary>
/// Middleware to deserialize messages when consuming
/// </summary>
public class SerializerConsumerMiddleware : IMessageMiddleware
public class DeserializerConsumerMiddleware : IMessageMiddleware
{
private readonly IDeserializer deserializer;
private readonly IMessageTypeResolver typeResolver;

/// <summary>
/// Initializes a new instance of the <see cref="SerializerConsumerMiddleware"/> class.
/// Initializes a new instance of the <see cref="DeserializerConsumerMiddleware"/> class.
/// </summary>
/// <param name="deserializer">Instance of <see cref="IDeserializer"/></param>
/// <param name="typeResolver">Instance of <see cref="IMessageTypeResolver"/></param>
public SerializerConsumerMiddleware(
public DeserializerConsumerMiddleware(
IDeserializer deserializer,
IMessageTypeResolver typeResolver)
{
Expand Down

0 comments on commit 7c0aa63

Please sign in to comment.