Skip to content

Commit 06ce35f

Browse files
committed
Cleanup
Signed-off-by: Tomasz Maruszak <maruszaktomasz@gmail.com>
1 parent c653493 commit 06ce35f

File tree

22 files changed

+204
-105
lines changed

22 files changed

+204
-105
lines changed

src/.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ csharp_style_allow_embedded_statements_on_same_line_experimental = true:silent
103103
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true:silent
104104
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true:silent
105105
csharp_style_prefer_primary_constructors = true:suggestion
106+
csharp_prefer_system_threading_lock = true:suggestion
107+
dotnet_diagnostic.xUnit1045.severity = silent
106108

107109
[*.{cs,vb}]
108110
#### Naming styles ####
@@ -186,6 +188,7 @@ dotnet_style_qualification_for_event = false:suggestion
186188
dotnet_diagnostic.VSTHRD200.severity = none
187189
# not supported by .netstandard2.0
188190
dotnet_diagnostic.CA1510.severity = none
191+
dotnet_diagnostic.CA1512.severity = none
189192

190193
[*.{csproj,xml}]
191194
indent_style = space

src/SlimMessageBus.Host.CircuitBreaker/Implementation/CircuitBreakerConsumerInterceptor.cs

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
/// <summary>
44
/// Circuit breaker to toggle consumer status on an external events.
55
/// </summary>
6-
internal sealed class CircuitBreakerConsumerInterceptor(ILogger<CircuitBreakerConsumerInterceptor> logger) : IAbstractConsumerInterceptor
6+
internal sealed partial class CircuitBreakerConsumerInterceptor(ILogger<CircuitBreakerConsumerInterceptor> logger) : IAbstractConsumerInterceptor
77
{
8+
private readonly ILogger<CircuitBreakerConsumerInterceptor> _logger = logger;
9+
810
public int Order => 100;
911

1012
public async Task<bool> CanStart(AbstractConsumer consumer)
@@ -33,12 +35,12 @@ async Task BreakerChanged(Circuit state)
3335
var bus = consumer.Settings[0].MessageBusSettings.Name ?? "default";
3436
if (shouldPause)
3537
{
36-
logger.LogWarning("Circuit breaker tripped for '{Path}' on '{Bus}' bus. Consumer paused.", path, bus);
38+
LogCircuitTripped(path, bus);
3739
await consumer.DoStop().ConfigureAwait(false);
3840
}
3941
else
4042
{
41-
logger.LogInformation("Circuit breaker restored for '{Path}' on '{Bus}' bus. Consumer resumed.", path, bus);
43+
LogCircuitRestored(path, bus);
4244
await consumer.DoStart().ConfigureAwait(false);
4345
}
4446
consumer.SetIsPaused(shouldPause);
@@ -89,4 +91,32 @@ public async Task<bool> CanStop(AbstractConsumer consumer)
8991
public Task Started(AbstractConsumer consumer) => Task.CompletedTask;
9092

9193
public Task Stopped(AbstractConsumer consumer) => Task.CompletedTask;
94+
95+
#region Logging
96+
97+
[LoggerMessage(
98+
EventId = 0,
99+
Level = LogLevel.Warning,
100+
Message = "Circuit breaker tripped for '{Path}' on '{Bus}' bus. Consumer paused.")]
101+
private partial void LogCircuitTripped(string path, string bus);
102+
103+
[LoggerMessage(
104+
EventId = 1,
105+
Level = LogLevel.Information,
106+
Message = "Circuit breaker restored for '{Path}' on '{Bus}' bus. Consumer resumed.")]
107+
private partial void LogCircuitRestored(string path, string bus);
108+
109+
#endregion
110+
}
111+
112+
#if NETSTANDARD2_0
113+
114+
partial class CircuitBreakerConsumerInterceptor
115+
{
116+
private partial void LogCircuitTripped(string path, string bus)
117+
=> _logger.LogWarning("Circuit breaker tripped for '{Path}' on '{Bus}' bus. Consumer paused.", path, bus);
118+
119+
private partial void LogCircuitRestored(string path, string bus)
120+
=> _logger.LogInformation("Circuit breaker restored for '{Path}' on '{Bus}' bus. Consumer resumed.", path, bus);
92121
}
122+
#endif

src/SlimMessageBus.Host.Outbox/Services/OutboxLockRenewalTimerFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class OutboxLockRenewalTimerFactory<TOutboxMessage, TOutboxMessageKey>(IS
99
private bool _isDisposed = false;
1010

1111
public IOutboxLockRenewalTimer CreateRenewalTimer(TimeSpan lockDuration, TimeSpan interval, Action<Exception> lockLost, CancellationToken cancellationToken)
12-
=> (OutboxLockRenewalTimer<TOutboxMessage, TOutboxMessageKey>)ActivatorUtilities.CreateInstance(_scope.ServiceProvider, typeof(OutboxLockRenewalTimer<TOutboxMessage, TOutboxMessageKey>), lockDuration, interval, lockLost, cancellationToken);
12+
=> ActivatorUtilities.CreateInstance<OutboxLockRenewalTimer<TOutboxMessage, TOutboxMessageKey>>(_scope.ServiceProvider, lockDuration, interval, lockLost, cancellationToken);
1313

1414
public async ValueTask DisposeAsync()
1515
{

src/SlimMessageBus.Host.Serialization.Avro/SlimMessageBus.Host.Serialization.Avro.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
1515
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" Condition="'$(TargetFramework)' == 'net6.0'" />
1616
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" Condition="'$(TargetFramework)' == 'net8.0'" />
17-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0-rc*" Condition="'$(TargetFramework)' == 'net9.0'" />
17+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" Condition="'$(TargetFramework)' == 'net9.0'" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/SlimMessageBus.Host.Serialization.GoogleProtobuf/GoogleProtobufMessageSerializer.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ public GoogleProtobufMessageSerializer(ILoggerFactory loggerFactory, IMessagePar
1515
_messageParserFactory = messageParserFactory ?? new MessageParserFactory();
1616
}
1717

18-
public byte[] Serialize(Type t, object message)
19-
{
20-
return ((IMessage)message).ToByteArray();
21-
}
18+
public byte[] Serialize(Type t, object message)
19+
=> ((IMessage)message).ToByteArray();
2220

2321
public object Deserialize(Type t, byte[] payload)
2422
{
@@ -31,7 +29,7 @@ public object Deserialize(Type t, byte[] payload)
3129
BindingFlags.Instance,
3230
null,
3331
messageParser,
34-
new object[] { payload });
32+
[payload]);
3533

3634
return message;
3735
}

src/SlimMessageBus.Host.Serialization.GoogleProtobuf/SlimMessageBus.Host.Serialization.GoogleProtobuf.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
1515
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" Condition="'$(TargetFramework)' == 'net6.0'" />
1616
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" Condition="'$(TargetFramework)' == 'net8.0'" />
17-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0-rc*" Condition="'$(TargetFramework)' == 'net9.0'" />
17+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" Condition="'$(TargetFramework)' == 'net9.0'" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/SlimMessageBus.Host.Serialization.Hybrid/SlimMessageBus.Host.Serialization.Hybrid.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
1717
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" Condition="'$(TargetFramework)' == 'net6.0'" />
1818
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" Condition="'$(TargetFramework)' == 'net8.0'" />
19-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0-rc*" Condition="'$(TargetFramework)' == 'net9.0'" />
19+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" Condition="'$(TargetFramework)' == 'net9.0'" />
2020
</ItemGroup>
2121

2222
<ItemGroup>

src/SlimMessageBus.Host.Serialization.Json/JsonMessageSerializer.cs

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace SlimMessageBus.Host.Serialization.Json;
77

88
using Newtonsoft.Json;
99

10-
public class JsonMessageSerializer : IMessageSerializer, IMessageSerializer<string>
10+
public partial class JsonMessageSerializer : IMessageSerializer, IMessageSerializer<string>
1111
{
1212
private readonly ILogger _logger;
1313
private readonly Encoding _encoding;
@@ -30,10 +30,10 @@ public JsonMessageSerializer()
3030
public byte[] Serialize(Type t, object message)
3131
{
3232
var jsonPayload = JsonConvert.SerializeObject(message, t, _serializerSettings);
33-
_logger.LogDebug("Type {MessageType} serialized from {Message} to JSON {MessageJson}", t, message, jsonPayload);
33+
LogSerialized(t, message, jsonPayload);
3434
return _encoding.GetBytes(jsonPayload);
35-
}
36-
35+
}
36+
3737
public object Deserialize(Type t, byte[] payload)
3838
{
3939
var jsonPayload = string.Empty;
@@ -44,7 +44,11 @@ public object Deserialize(Type t, byte[] payload)
4444
}
4545
catch (Exception e)
4646
{
47-
_logger.LogError(e, "Type {MessageType} could not been deserialized, payload: {MessagePayload}, JSON: {MessageJson}", t, _logger.IsEnabled(LogLevel.Debug) ? Convert.ToBase64String(payload) : "(...)", jsonPayload);
47+
var base64Payload = _logger.IsEnabled(LogLevel.Debug)
48+
? Convert.ToBase64String(payload)
49+
: "(...)";
50+
51+
LogDeserializationFailed(t, jsonPayload, base64Payload, e);
4852
throw;
4953
}
5054
}
@@ -56,16 +60,66 @@ public object Deserialize(Type t, byte[] payload)
5660
string IMessageSerializer<string>.Serialize(Type t, object message)
5761
{
5862
var payload = JsonConvert.SerializeObject(message, t, _serializerSettings);
59-
_logger.LogDebug("Type {MessageType} serialized from {Message} to JSON {MessageJson}", t, message, payload);
63+
LogSerialized(t, message, payload);
6064
return payload;
6165
}
6266

6367
public object Deserialize(Type t, string payload)
6468
{
65-
var message = JsonConvert.DeserializeObject(payload, t, _serializerSettings);
66-
_logger.LogDebug("Type {MessageType} deserialized from JSON {MessageJson} to {Message}", t, payload, message);
67-
return message;
69+
try
70+
{
71+
var message = JsonConvert.DeserializeObject(payload, t, _serializerSettings);
72+
LogDeserializedFromString(t, payload, message);
73+
return message;
74+
}
75+
catch (Exception e)
76+
{
77+
LogDeserializationFailed(t, payload, string.Empty, e);
78+
throw;
79+
}
6880
}
6981

82+
#endregion
83+
84+
#region Logging
85+
86+
#if !NETSTANDARD2_0
87+
88+
[LoggerMessage(
89+
EventId = 0,
90+
Level = LogLevel.Debug,
91+
Message = "Type {MessageType} serialized from {Message} to JSON {MessageJson}")]
92+
private partial void LogSerialized(Type messageType, object message, string messageJson);
93+
94+
[LoggerMessage(
95+
EventId = 1,
96+
Level = LogLevel.Debug,
97+
Message = "Type {MessageType} deserialized from JSON {MessageJson} to {Message}")]
98+
private partial void LogDeserializedFromString(Type messageType, string messageJson, object message);
99+
100+
[LoggerMessage(
101+
EventId = 2,
102+
Level = LogLevel.Error,
103+
Message = "Type {MessageType} could not been deserialized, payload: {MessagePayload}, JSON: {MessageJson}")]
104+
private partial void LogDeserializationFailed(Type messageType, string messageJson, string messagePayload, Exception e);
105+
106+
#endif
107+
70108
#endregion
71-
}
109+
}
110+
111+
#if NETSTANDARD2_0
112+
113+
public partial class JsonMessageSerializer
114+
{
115+
private void LogSerialized(Type messageType, object message, string messageJson)
116+
=> _logger.LogDebug("Type {MessageType} serialized from {Message} to JSON {MessageJson}", messageType, message, messageJson);
117+
118+
private void LogDeserializedFromString(Type messageType, string messageJson, object message)
119+
=> _logger.LogDebug("Type {MessageType} deserialized from JSON {MessageJson} to {Message}", messageType, messageJson, message);
120+
121+
private void LogDeserializationFailed(Type messageType, string messageJson, string messagePayload, Exception e)
122+
=> _logger.LogError(e, "Type {MessageType} could not been deserialized, payload: {MessagePayload}, JSON: {MessageJson}", messageType, messagePayload, messageJson);
123+
}
124+
125+
#endif

src/SlimMessageBus.Host.Serialization.Json/SlimMessageBus.Host.Serialization.Json.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
1515
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" Condition="'$(TargetFramework)' == 'net6.0'" />
1616
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" Condition="'$(TargetFramework)' == 'net8.0'" />
17-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0-rc*" Condition="'$(TargetFramework)' == 'net9.0'" />
17+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" Condition="'$(TargetFramework)' == 'net9.0'" />
1818

1919
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
2020
</ItemGroup>

src/SlimMessageBus.Host.Serialization.SystemTextJson/SlimMessageBus.Host.Serialization.SystemTextJson.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<PackageReference Include="System.Text.Json" Version="6.0.10" Condition="'$(TargetFramework)' == 'netstandard2.0'" />
1414
<PackageReference Include="System.Text.Json" Version="6.0.10" Condition="'$(TargetFramework)' == 'net6.0'" />
1515
<PackageReference Include="System.Text.Json" Version="8.0.5" Condition="'$(TargetFramework)' == 'net8.0'" />
16-
<PackageReference Include="System.Text.Json" Version="9.0.0-rc*" Condition="'$(TargetFramework)' == 'net9.0'" />
16+
<PackageReference Include="System.Text.Json" Version="9.0.0" Condition="'$(TargetFramework)' == 'net9.0'" />
1717
</ItemGroup>
1818

1919
<ItemGroup>

0 commit comments

Comments
 (0)