diff --git a/src/CloudNative.CloudEvents.Amqp/AmqpClientExtensions.cs b/src/CloudNative.CloudEvents.Amqp/AmqpClientExtensions.cs index 01ee993..0444760 100644 --- a/src/CloudNative.CloudEvents.Amqp/AmqpClientExtensions.cs +++ b/src/CloudNative.CloudEvents.Amqp/AmqpClientExtensions.cs @@ -20,7 +20,7 @@ namespace CloudNative.CloudEvents.Amqp message.ApplicationProperties.Map.ContainsKey(SpecVersionAmqpHeader); public static CloudEvent ToCloudEvent(this Message message, - ICloudEventFormatter formatter, + CloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) { if (HasCloudEventsContentType(message)) diff --git a/src/CloudNative.CloudEvents.Amqp/AmqpCloudEventMessage.cs b/src/CloudNative.CloudEvents.Amqp/AmqpCloudEventMessage.cs index 61b0d2e..cc0c7ec 100644 --- a/src/CloudNative.CloudEvents.Amqp/AmqpCloudEventMessage.cs +++ b/src/CloudNative.CloudEvents.Amqp/AmqpCloudEventMessage.cs @@ -13,7 +13,7 @@ namespace CloudNative.CloudEvents.Amqp { public class AmqpCloudEventMessage : Message { - public AmqpCloudEventMessage(CloudEvent cloudEvent, ContentMode contentMode, ICloudEventFormatter formatter) + public AmqpCloudEventMessage(CloudEvent cloudEvent, ContentMode contentMode, CloudEventFormatter formatter) { ApplicationProperties = new ApplicationProperties(); MapHeaders(cloudEvent); diff --git a/src/CloudNative.CloudEvents.AspNetCore/CloudEventJsonInputFormatter.cs b/src/CloudNative.CloudEvents.AspNetCore/CloudEventJsonInputFormatter.cs index 6033da9..2541732 100644 --- a/src/CloudNative.CloudEvents.AspNetCore/CloudEventJsonInputFormatter.cs +++ b/src/CloudNative.CloudEvents.AspNetCore/CloudEventJsonInputFormatter.cs @@ -16,9 +16,9 @@ namespace CloudNative.CloudEvents public class CloudEventJsonInputFormatter : TextInputFormatter { - private readonly ICloudEventFormatter _formatter; + private readonly CloudEventFormatter _formatter; - public CloudEventJsonInputFormatter(ICloudEventFormatter formatter) + public CloudEventJsonInputFormatter(CloudEventFormatter formatter) { _formatter = formatter; SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse("application/json")); diff --git a/src/CloudNative.CloudEvents.AspNetCore/HttpRequestExtension.cs b/src/CloudNative.CloudEvents.AspNetCore/HttpRequestExtension.cs index e133dbe..638a91c 100644 --- a/src/CloudNative.CloudEvents.AspNetCore/HttpRequestExtension.cs +++ b/src/CloudNative.CloudEvents.AspNetCore/HttpRequestExtension.cs @@ -22,7 +22,7 @@ namespace CloudNative.CloudEvents /// List of extension instances /// A CloudEvent instance or 'null' if the request message doesn't hold a CloudEvent public static async ValueTask ReadCloudEventAsync(this HttpRequest httpRequest, - ICloudEventFormatter formatter, + CloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) { if (HasCloudEventsContentType(httpRequest)) diff --git a/src/CloudNative.CloudEvents.Avro/AvroEventFormatter.cs b/src/CloudNative.CloudEvents.Avro/AvroEventFormatter.cs index 17201fc..a22af0c 100644 --- a/src/CloudNative.CloudEvents.Avro/AvroEventFormatter.cs +++ b/src/CloudNative.CloudEvents.Avro/AvroEventFormatter.cs @@ -16,7 +16,7 @@ namespace CloudNative.CloudEvents /// /// Formatter that implements the Avro Event Format /// - public class AvroEventFormatter : ICloudEventFormatter + public class AvroEventFormatter : CloudEventFormatter { private const string DataName = "data"; private static readonly RecordSchema avroSchema; diff --git a/src/CloudNative.CloudEvents.Kafka/KafkaClientExtensions.cs b/src/CloudNative.CloudEvents.Kafka/KafkaClientExtensions.cs index 18a280b..85b91e5 100644 --- a/src/CloudNative.CloudEvents.Kafka/KafkaClientExtensions.cs +++ b/src/CloudNative.CloudEvents.Kafka/KafkaClientExtensions.cs @@ -20,11 +20,11 @@ namespace CloudNative.CloudEvents.Kafka (ExtractContentType(message)?.StartsWith(CloudEvent.MediaType, StringComparison.InvariantCultureIgnoreCase) == true); public static CloudEvent ToCloudEvent(this Message message, - ICloudEventFormatter eventFormatter, params CloudEventAttribute[] extensionAttributes) => + CloudEventFormatter eventFormatter, params CloudEventAttribute[] extensionAttributes) => ToCloudEvent(message, eventFormatter, (IEnumerable) extensionAttributes); public static CloudEvent ToCloudEvent(this Message message, - ICloudEventFormatter eventFormatter, IEnumerable extensionAttributes) + CloudEventFormatter eventFormatter, IEnumerable extensionAttributes) { if (!IsCloudEvent(message)) { diff --git a/src/CloudNative.CloudEvents.Kafka/KafkaCloudEventMessage.cs b/src/CloudNative.CloudEvents.Kafka/KafkaCloudEventMessage.cs index 740aed6..bf6af3d 100644 --- a/src/CloudNative.CloudEvents.Kafka/KafkaCloudEventMessage.cs +++ b/src/CloudNative.CloudEvents.Kafka/KafkaCloudEventMessage.cs @@ -18,7 +18,7 @@ namespace CloudNative.CloudEvents.Kafka internal const string KafkaContentTypeAttributeName = "content-type"; internal const string SpecVersionKafkaHeader = KafkaHeaderPrefix + "specversion"; - public KafkaCloudEventMessage(CloudEvent cloudEvent, ContentMode contentMode, ICloudEventFormatter formatter) + public KafkaCloudEventMessage(CloudEvent cloudEvent, ContentMode contentMode, CloudEventFormatter formatter) { // TODO: Is this appropriate? Why can't we transport a CloudEvent without data in Kafka? if (cloudEvent.Data == null) @@ -70,7 +70,7 @@ namespace CloudNative.CloudEvents.Kafka MapHeaders(cloudEvent, formatter); } - private void MapHeaders(CloudEvent cloudEvent, ICloudEventFormatter formatter) + private void MapHeaders(CloudEvent cloudEvent, CloudEventFormatter formatter) { foreach (var pair in cloudEvent.GetPopulatedAttributes()) diff --git a/src/CloudNative.CloudEvents.Mqtt/MqttClientExtensions.cs b/src/CloudNative.CloudEvents.Mqtt/MqttClientExtensions.cs index a8f2d47..185be71 100644 --- a/src/CloudNative.CloudEvents.Mqtt/MqttClientExtensions.cs +++ b/src/CloudNative.CloudEvents.Mqtt/MqttClientExtensions.cs @@ -9,7 +9,7 @@ namespace CloudNative.CloudEvents.Mqtt public static class MqttClientExtensions { public static CloudEvent ToCloudEvent(this MqttApplicationMessage message, - ICloudEventFormatter eventFormatter, params CloudEventAttribute[] extensionAttributes) + CloudEventFormatter eventFormatter, params CloudEventAttribute[] extensionAttributes) { return eventFormatter.DecodeStructuredEvent(message.Payload, extensionAttributes); } diff --git a/src/CloudNative.CloudEvents.Mqtt/MqttCloudEventMessage.cs b/src/CloudNative.CloudEvents.Mqtt/MqttCloudEventMessage.cs index 76a5684..cabed99 100644 --- a/src/CloudNative.CloudEvents.Mqtt/MqttCloudEventMessage.cs +++ b/src/CloudNative.CloudEvents.Mqtt/MqttCloudEventMessage.cs @@ -9,7 +9,7 @@ namespace CloudNative.CloudEvents.Mqtt // TODO: Update to a newer version of MQTTNet and support both binary and structured mode? public class MqttCloudEventMessage : MqttApplicationMessage { - public MqttCloudEventMessage(CloudEvent cloudEvent, ICloudEventFormatter formatter) + public MqttCloudEventMessage(CloudEvent cloudEvent, CloudEventFormatter formatter) { this.Payload = formatter.EncodeStructuredEvent(cloudEvent, out var contentType); } diff --git a/src/CloudNative.CloudEvents.NewtonsoftJson/JsonEventFormatter.cs b/src/CloudNative.CloudEvents.NewtonsoftJson/JsonEventFormatter.cs index 60de051..b8f8bb4 100644 --- a/src/CloudNative.CloudEvents.NewtonsoftJson/JsonEventFormatter.cs +++ b/src/CloudNative.CloudEvents.NewtonsoftJson/JsonEventFormatter.cs @@ -16,7 +16,7 @@ namespace CloudNative.CloudEvents.NewtonsoftJson /// /// Formatter that implements the JSON Event Format /// - public class JsonEventFormatter : ICloudEventFormatter + public class JsonEventFormatter : CloudEventFormatter { private const string DataBase64 = "data_base64"; private const string Data = "data"; diff --git a/src/CloudNative.CloudEvents/ICloudEventFormatter.cs b/src/CloudNative.CloudEvents/CloudEventFormatter.cs similarity index 98% rename from src/CloudNative.CloudEvents/ICloudEventFormatter.cs rename to src/CloudNative.CloudEvents/CloudEventFormatter.cs index 82636de..a98c32c 100644 --- a/src/CloudNative.CloudEvents/ICloudEventFormatter.cs +++ b/src/CloudNative.CloudEvents/CloudEventFormatter.cs @@ -13,7 +13,7 @@ namespace CloudNative.CloudEvents /// /// Implemented by formatters /// - public abstract class ICloudEventFormatter + public abstract class CloudEventFormatter { /// /// Decode a structured event from a stream diff --git a/src/CloudNative.CloudEvents/Http/CloudEventHttpContent.cs b/src/CloudNative.CloudEvents/Http/CloudEventHttpContent.cs index 98095f1..103d7d8 100644 --- a/src/CloudNative.CloudEvents/Http/CloudEventHttpContent.cs +++ b/src/CloudNative.CloudEvents/Http/CloudEventHttpContent.cs @@ -26,7 +26,7 @@ namespace CloudNative.CloudEvents.Http /// CloudEvent /// Content mode. Structured or binary. /// Event formatter - public CloudEventHttpContent(CloudEvent cloudEvent, ContentMode contentMode, ICloudEventFormatter formatter) + public CloudEventHttpContent(CloudEvent cloudEvent, ContentMode contentMode, CloudEventFormatter formatter) { if (contentMode == ContentMode.Structured) { diff --git a/src/CloudNative.CloudEvents/Http/HttpClientExtensions.cs b/src/CloudNative.CloudEvents/Http/HttpClientExtensions.cs index 718ce78..5c52095 100644 --- a/src/CloudNative.CloudEvents/Http/HttpClientExtensions.cs +++ b/src/CloudNative.CloudEvents/Http/HttpClientExtensions.cs @@ -80,7 +80,7 @@ namespace CloudNative.CloudEvents.Http /// The extension attributes to use when parsing the CloudEvent. /// A CloudEvent instance or 'null' if the response message doesn't hold a CloudEvent public static Task ToCloudEventAsync(this HttpResponseMessage httpResponseMessage, - ICloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) => + CloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) => ToCloudEventInternalAsync(httpResponseMessage.Headers, httpResponseMessage.Content, formatter, extensionAttributes); /// @@ -91,12 +91,12 @@ namespace CloudNative.CloudEvents.Http /// List of extension instances /// A CloudEvent instance or 'null' if the request message doesn't hold a CloudEvent public static Task ToCloudEventAsync(this HttpRequestMessage httpRequestMessage, - ICloudEventFormatter formatter, + CloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) => ToCloudEventInternalAsync(httpRequestMessage.Headers, httpRequestMessage.Content, formatter, extensionAttributes); private static async Task ToCloudEventInternalAsync(HttpHeaders headers, HttpContent content, - ICloudEventFormatter formatter, IEnumerable extensionAttributes) + CloudEventFormatter formatter, IEnumerable extensionAttributes) { if (HasCloudEventsContentType(content)) { diff --git a/src/CloudNative.CloudEvents/Http/HttpListenerExtensions.cs b/src/CloudNative.CloudEvents/Http/HttpListenerExtensions.cs index 7b5a6e9..9c455eb 100644 --- a/src/CloudNative.CloudEvents/Http/HttpListenerExtensions.cs +++ b/src/CloudNative.CloudEvents/Http/HttpListenerExtensions.cs @@ -26,7 +26,7 @@ namespace CloudNative.CloudEvents.Http /// Formatter /// Task public static Task CopyFromAsync(this HttpListenerResponse httpListenerResponse, CloudEvent cloudEvent, - ContentMode contentMode, ICloudEventFormatter formatter) + ContentMode contentMode, CloudEventFormatter formatter) { if (contentMode == ContentMode.Structured) { @@ -99,7 +99,7 @@ namespace CloudNative.CloudEvents.Http /// List of extension instances /// A CloudEvent instance or 'null' if the request message doesn't hold a CloudEvent public static CloudEvent ToCloudEvent(this HttpListenerRequest httpListenerRequest, - ICloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) + CloudEventFormatter formatter, params CloudEventAttribute[] extensionAttributes) { if (HasCloudEventsContentType(httpListenerRequest)) { diff --git a/src/CloudNative.CloudEvents/Http/HttpUtilities.cs b/src/CloudNative.CloudEvents/Http/HttpUtilities.cs index 4381935..b4e26bc 100644 --- a/src/CloudNative.CloudEvents/Http/HttpUtilities.cs +++ b/src/CloudNative.CloudEvents/Http/HttpUtilities.cs @@ -21,7 +21,7 @@ namespace CloudNative.CloudEvents.Http public const string SpecVersionHttpHeader = HttpHeaderPrefix + "specversion"; - internal static Stream MapDataAttributeToStream(CloudEvent cloudEvent, ICloudEventFormatter formatter) => + internal static Stream MapDataAttributeToStream(CloudEvent cloudEvent, CloudEventFormatter formatter) => cloudEvent.Data switch { byte[] bytes => new MemoryStream(bytes), diff --git a/src/CloudNative.CloudEvents/Http/HttpWebExtensions.cs b/src/CloudNative.CloudEvents/Http/HttpWebExtensions.cs index ba8f902..464d32d 100644 --- a/src/CloudNative.CloudEvents/Http/HttpWebExtensions.cs +++ b/src/CloudNative.CloudEvents/Http/HttpWebExtensions.cs @@ -25,7 +25,7 @@ namespace CloudNative.CloudEvents.Http /// Formatter /// Task public static async Task CopyFromAsync(this HttpWebRequest httpWebRequest, CloudEvent cloudEvent, - ContentMode contentMode, ICloudEventFormatter formatter) + ContentMode contentMode, CloudEventFormatter formatter) { if (contentMode == ContentMode.Structured) {