Skip to content

Commit 41f42ca

Browse files
authored
V4.0.0/handler services descriptor (#25)
📝 updated DocFX ♻️ refactored original HandlerServicesDescriptor into a lean IHandlerServicesDescriptor interface accompanied by HandlerDiscoveryModel ⬆️ bump dependencies ➖ remove support for TFM .net6.0 ✏️ housekeeping 🔀 changed default lifetime from Scoped --> Singleton for DataSource and DataStore 🔀 ensure Scoped lifetime for Respositories (incl. minor housekeeping) ➖ removed dependency to Cuemon.Extensions.Newtonsoft.Json ➕ added depedency to Codebelt.Extensions.Newtonsoft.Json 👷 updated CI ✅ consequence changes after .net9 and default enablement of ValidateOnBuild and ValidateScopes; turns out its quite helpful to get better acquainted with Scoped use-cases ➖ removed dependency to Cuemon.Extensions.Xunit ➕ added depedency to Codebelt.Extensions.Xunit 📦 updated NuGet package definition 💬 updated community health pages 🎨 minor DRY change
1 parent cec50d3 commit 41f42ca

File tree

155 files changed

+1176
-447
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+1176
-447
lines changed

.docfx/api/index.md

Lines changed: 0 additions & 139 deletions
This file was deleted.

.docfx/images/128x128.png

6.33 KB
Loading

.docfx/index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
uid: frontpage-md
3+
title: Savvy I/O by Codebelt
4+
---
5+
![Savvy I/O by Codebelt](/images/128x128.png)
6+
7+
# Savvy I/O by Codebelt
8+
9+
Proceed to the [docs](/api/dotnet/Savvyio.html) to learn more about the capabilities of this project.

.nuget/Savvyio.Core/PackageReleaseNotes.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ Availability: .NET 9 and .NET 8
55
- REMOVED Support for TFM .NET 6 (LTS)
66
- CHANGED Dependencies to latest and greatest with respect to TFMs
77

8+
# New Features
9+
- ADDED HandlerDiscoveryModel record in the Savvyio namespace that represents a model for handler services discovery
10+
- ADDED IHandlerServicesDescriptor interface in the Savvyio namespace that defines a contract about implementations of the IHandler{TRequest} interface such as name, declared members and what type of request they handle
11+
 
812
Version: 3.0.0
913
Availability: .NET 8 and .NET 6
1014

.nuget/Savvyio.Extensions.DependencyInjection/PackageReleaseNotes.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ Availability: .NET 9 and .NET 8
55
- REMOVED Support for TFM .NET 6 (LTS)
66
- CHANGED Dependencies to latest and greatest with respect to TFMs
77

8+
# New Features
9+
- EXTENDED ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection namespace with a new extension method for the IServiceCollection interface: AddHandlerServicesDescriptor
10+
- ADDED ServiceProviderExtensions class in the Savvyio.Extensions.DependencyInjection namespace that consist of extension methods for the IServiceCollection interface: WriteHandlerDiscoveriesToLog{TCategoryName}
11+
 
12+
# Improvements
13+
- CHANGED AddDataStore{TService, T, TOptions} extension method on the ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection.Data namespace to use a default lifetime of Singleton
14+
- CHANGED AddDataSource{TService} extension method on the ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection namespace to use a default lifetime of Singleton
15+
 
816
Version: 3.0.0
917
Availability: .NET 8 and .NET 6
1018

.nuget/Savvyio.Extensions.Newtonsoft.Json/PackageReleaseNotes.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ Availability: .NET 9 and .NET 8
55
- REMOVED Support for TFM .NET 6 (LTS)
66
- CHANGED Dependencies to latest and greatest with respect to TFMs
77

8+
# Breaking Changes
9+
- CHANGED external dependency on Cuemon.Extensions.Newtonsoft.Json to Codebelt.Extensions.Newtonsoft.Json
10+
 
811
Version: 3.0.0
912
Availability: .NET 8 and .NET 6
1013

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,29 @@ For more details, please refer to `PackageReleaseNotes.txt` on a per assembly ba
88

99
This major release is first and foremost focused on ironing out any wrinkles that have been introduced with .NET 9 preview releases so the final release is production ready together with the official launch from Microsoft.
1010

11+
### Added
12+
13+
#### Savvyio.Core
14+
15+
- HandlerDiscoveryModel record in the Savvyio namespace that represents a model for handler services discovery
16+
- IHandlerServicesDescriptor interface in the Savvyio namespace that defines a contract about implementations of the IHandler{TRequest} interface such as name, declared members and what type of request they handle
17+
18+
#### Savvyio.Extensions.DependencyInjection
19+
20+
- ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection namespace was extended with a new extension method for the IServiceCollection interface: AddHandlerServicesDescriptor
21+
- ServiceProviderExtensions class in the Savvyio.Extensions.DependencyInjection namespace that consist of extension methods for the IServiceCollection interface: WriteHandlerDiscoveriesToLog{TCategoryName}
22+
23+
### Changed
24+
25+
#### Savvyio.Extensions.DependencyInjection
26+
27+
- AddDataStore{TService, T, TOptions} extension method on the ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection.Data namespace to use a default lifetime of Singleton
28+
- AddDataSource{TService} extension method on the ServiceCollectionExtensions class in the Savvyio.Extensions.DependencyInjection namespace to use a default lifetime of Singleton
29+
30+
#### Savvyio.Extensions.Newtonsoft.Json
31+
32+
- External dependency on `Cuemon.Extensions.Newtonsoft.Json` was changed to `Codebelt.Extensions.Newtonsoft.Json`
33+
1134
## [3.0.0] - 2024-09-01
1235

1336
Noticeable highlights:

Directory.Build.props

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@
6969
<ItemGroup Condition="'$(IsTestProject)' == 'true'">
7070
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
7171
<PackageReference Include="Microsoft.TestPlatform.ObjectModel" Version="17.10.0" Condition="$(TargetFramework.StartsWith('net4')) AND '$(IsLinux)' == 'true'" />
72-
<PackageReference Include="xunit" Version="2.9.0" />
73-
<PackageReference Include="xunit.runner.console" Version="2.9.0" />
72+
<PackageReference Include="xunit" Version="2.9.2" />
73+
<PackageReference Include="xunit.runner.console" Version="2.9.2" />
7474
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
7575
<PrivateAssets>all</PrivateAssets>
7676
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -83,7 +83,7 @@
8383
<PrivateAssets>all</PrivateAssets>
8484
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
8585
</PackageReference>
86-
<PackageReference Include="Cuemon.Extensions.Xunit.App" Version="9.0.0-preview.4" />
86+
<PackageReference Include="Codebelt.Extensions.Xunit.App" Version="9.0.0-preview.9" />
8787
</ItemGroup>
8888

8989
</Project>

Directory.Build.targets

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
<Target Name="ApplyFileVersion" AfterTargets="MinVer">
1616
<PropertyGroup>
17-
<BUILD_BUILDNUMBER Condition="'$(BUILD_BUILDNUMBER)' == ''">00000</BUILD_BUILDNUMBER>
18-
<FileVersion>$(MinVerMajor).$(MinVerMinor).$(MinVerPatch).$(BUILD_BUILDNUMBER)</FileVersion>
17+
<GITHUB_RUN_NUMBER Condition="'$(GITHUB_RUN_NUMBER)' == ''">0</GITHUB_RUN_NUMBER>
18+
<FileVersion>$(MinVerMajor).$(MinVerMinor).$(MinVerPatch).$(GITHUB_RUN_NUMBER)</FileVersion>
1919
</PropertyGroup>
2020
</Target>
2121
</Project>

src/Savvyio.Commands/CommandHandler.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ protected CommandHandler()
1717
}
1818

1919
/// <summary>
20-
/// Registers the delegates responsible of handling types that implements the <see cref="ICommand"/> interface.
20+
/// Registers the delegates responsible for handling types that implements the <see cref="ICommand"/> interface.
2121
/// </summary>
2222
/// <param name="handlers">The registry that store the delegates of type <see cref="ICommand"/>.</param>
2323
protected abstract void RegisterDelegates(IFireForgetRegistry<ICommand> handlers);
2424

2525
/// <summary>
26-
/// Gets the activator responsible of invoking delegates that handles <see cref="ICommand" />.
26+
/// Gets the activator responsible for invoking delegates that handles <see cref="ICommand" />.
2727
/// </summary>
28-
/// <value>The activator responsible of invoking delegates that handles <see cref="ICommand" />.</value>
28+
/// <value>The activator responsible for invoking delegates that handles <see cref="ICommand" />.</value>
2929
public IFireForgetActivator<ICommand> Delegates { get; }
3030
}
3131
}

0 commit comments

Comments
 (0)