Skip to content

Commit 6b5dbe5

Browse files
CR4567Chris
andauthored
Updated mongoDb driver for compatibility with MongoDB >= 8 (#265)
* updated mongoDb driver * fix render issue in new mongo client update * updated squidex packages * add conditions for imagemagick * fix ImageMagick conditional import * moved build.props to correct folder * some package adjustments * added kafka package condition --------- Co-authored-by: Chris <reichelt@easierlife.de>
1 parent 9c32ee2 commit 6b5dbe5

File tree

11 files changed

+92
-44
lines changed

11 files changed

+92
-44
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ RUN dotnet restore
2525
COPY backend .
2626

2727
# Test Backend
28-
RUN dotnet test --no-restore --filter Category!=Dependencies
28+
RUN dotnet test --no-restore --filter Category!=Dependencies --configuration Release
2929

3030
# Publish
3131
RUN dotnet publish src/Notifo/Notifo.csproj --output /build/ --configuration Release -p:version=$NOTIFO__BUILD__VERSION

backend/Directory.Build.props

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
3+
<DefineConstants>$(DefineConstants);INCLUDE_MAGICK;INCLUDE_KAFKA</DefineConstants>
4+
</PropertyGroup>
5+
6+
<PropertyGroup Condition="'$(DefineConstants.Contains(INCLUDE_MAGICK))'">
7+
<IncludeMagick>true</IncludeMagick>
8+
</PropertyGroup>
9+
10+
<PropertyGroup Condition="'$(DefineConstants.Contains(INCLUDE_KAFKA))'">
11+
<IncludeKafka>true</IncludeKafka>
12+
</PropertyGroup>
13+
</Project>

backend/src/Notifo.Domain.Integrations/Notifo.Domain.Integrations.csproj

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
<ItemGroup>
1212
<PackageReference Include="AWSSDK.SimpleEmail" Version="3.7.401.11" />
13-
<PackageReference Include="Confluent.Kafka" Version="2.5.3" />
1413
<PackageReference Include="Discord.Net" Version="3.16.0" />
1514
<PackageReference Include="FirebaseAdmin" Version="3.0.1" />
1615
<PackageReference Include="FluentValidation" Version="11.10.0" />
@@ -23,9 +22,9 @@
2322
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2423
</PackageReference>
2524
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
26-
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
25+
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
2726
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
28-
<PackageReference Include="MongoDB.Driver" Version="2.28.0" />
27+
<PackageReference Include="MongoDB.Driver" Version="2.30.0" />
2928
<PackageReference Include="NodaTime" Version="3.1.12" />
3029
<PackageReference Include="OpenNotifications" Version="0.3.0" />
3130
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
@@ -36,7 +35,7 @@
3635
<PackageReference Include="Telegram.Bot" Version="19.0.0" />
3736
<PackageReference Include="Twilio" Version="7.3.1" />
3837
</ItemGroup>
39-
38+
4039
<ItemGroup>
4140
<ProjectReference Include="..\Notifo.Domain.Integrations.Abstractions\Notifo.Domain.Integrations.Abstractions.csproj" />
4241
<ProjectReference Include="..\Notifo.Infrastructure\Notifo.Infrastructure.csproj" />

backend/src/Notifo.Domain/Notifo.Domain.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2929
</PackageReference>
3030
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
31-
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
31+
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
3232
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
3333
<PackageReference Include="Mjml.Net" Version="4.1.0" />
3434
<PackageReference Include="Mjml.Net.PostProcessors" Version="4.1.0" />
35-
<PackageReference Include="MongoDB.Driver" Version="2.28.0" />
35+
<PackageReference Include="MongoDB.Driver" Version="2.30.0" />
3636
<PackageReference Include="NodaTime" Version="3.1.12" />
3737
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
3838
<PackageReference Include="System.Collections" Version="4.3.0" />

backend/src/Notifo.Identity/Notifo.Identity.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
2020
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.0.2" />
2121
<PackageReference Include="OpenIddict.AspNetCore" Version="5.8.0" />
22-
<PackageReference Include="Squidex.OpenIddict.MongoDb" Version="5.8.1" />
22+
<PackageReference Include="Squidex.OpenIddict.MongoDb" Version="5.8.4" />
2323
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
2424
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
2525
<PackageReference Include="System.Text.Json" Version="8.0.5" />

backend/src/Notifo.Infrastructure/Assets/AssetsServiceExtensions.cs

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
using MongoDB.Driver;
1010
using MongoDB.Driver.GridFS;
1111
using Squidex.Assets;
12+
#if INCLUDE_MAGICK
13+
using Squidex.Assets.ImageMagick;
14+
#endif
15+
using Squidex.Assets.ImageSharp;
1216
using Squidex.Assets.Remote;
1317

1418
namespace Microsoft.Extensions.DependencyInjection;
@@ -17,11 +21,23 @@ public static class AssetsServiceExtensions
1721
{
1822
public static void AddMyAssets(this IServiceCollection services, IConfiguration config)
1923
{
20-
var thumbnailGenerator = new CompositeThumbnailGenerator(
21-
[
22-
new ImageSharpThumbnailGenerator(),
23-
new ImageMagickThumbnailGenerator()
24-
]);
24+
services.AddSingletonAs<ImageSharpThumbnailGenerator>()
25+
.AsSelf();
26+
27+
#if INCLUDE_MAGICK
28+
services.AddSingletonAs<ImageMagickThumbnailGenerator>()
29+
.AsSelf();
30+
#endif
31+
32+
services.AddSingletonAs(c =>
33+
new CompositeThumbnailGenerator(
34+
[
35+
c.GetRequiredService<ImageSharpThumbnailGenerator>(),
36+
#if INCLUDE_MAGICK
37+
c.GetRequiredService<ImageMagickThumbnailGenerator>(),
38+
#endif
39+
]))
40+
.AsSelf();
2541

2642
var resizerUrl = config.GetValue<string>("assets:resizerUrl");
2743

@@ -32,13 +48,15 @@ public static void AddMyAssets(this IServiceCollection services, IConfiguration
3248
options.BaseAddress = new Uri(resizerUrl);
3349
});
3450

35-
services.AddSingletonAs(c => new RemoteThumbnailGenerator(c.GetRequiredService<IHttpClientFactory>(), thumbnailGenerator))
36-
.As<IAssetThumbnailGenerator>();
51+
services.AddSingletonAs<IAssetThumbnailGenerator>(c => new RemoteThumbnailGenerator(
52+
c.GetRequiredService<IHttpClientFactory>(),
53+
c.GetRequiredService<CompositeThumbnailGenerator>()))
54+
.AsSelf();
3755
}
3856
else
3957
{
40-
services.AddSingletonAs(c => thumbnailGenerator)
41-
.As<IAssetThumbnailGenerator>();
58+
services.AddSingletonAs<IAssetThumbnailGenerator>(c => c.GetRequiredService<CompositeThumbnailGenerator>())
59+
.AsSelf();
4260
}
4361

4462
config.ConfigureByOption("assetStore:type", new Alternatives

backend/src/Notifo.Infrastructure/MongoDb/MongoDbExtensions.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,9 @@ public static FilterDefinition<T> Eq<T>(this FilterDefinitionBuilder<T> builder,
113113
return new RawFilterDefinition<T>(filter);
114114
}
115115

116-
private sealed class RawFilterDefinition<T>(BsonDocument document)
117-
: FilterDefinition<T>
116+
private sealed class RawFilterDefinition<T>(BsonDocument document) : FilterDefinition<T>
118117
{
119-
public override BsonDocument Render(IBsonSerializer<T> documentSerializer, IBsonSerializerRegistry serializerRegistry, LinqProvider linqProvider)
118+
public override BsonDocument Render(RenderArgs<T> args)
120119
{
121120
return document;
122121
}

backend/src/Notifo.Infrastructure/Notifo.Infrastructure.csproj

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,39 +15,42 @@
1515
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1616
</PackageReference>
1717
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
18-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
18+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
1919
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
20-
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
21-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
22-
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="8.0.0" />
23-
<PackageReference Include="Microsoft.Extensions.ObjectPool" Version="8.0.8" />
20+
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
21+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
22+
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="8.0.1" />
23+
<PackageReference Include="Microsoft.Extensions.ObjectPool" Version="8.0.16" />
2424
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
2525
<PackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="8.0.0" />
26-
<PackageReference Include="MongoDB.Driver" Version="2.28.0" />
26+
<PackageReference Include="MongoDB.Driver" Version="2.30.0" />
2727
<PackageReference Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="1.5.0" />
2828
<PackageReference Include="NodaTime" Version="3.1.12" />
2929
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.2.0" />
3030
<PackageReference Include="OpenTelemetry" Version="1.9.0" />
3131
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
32-
<PackageReference Include="Squidex.Assets" Version="6.19.0" />
33-
<PackageReference Include="Squidex.Assets.Azure" Version="6.19.0" />
34-
<PackageReference Include="Squidex.Assets.FTP" Version="6.19.0" />
35-
<PackageReference Include="Squidex.Assets.GoogleCloud" Version="6.19.0" />
36-
<PackageReference Include="Squidex.Assets.ImageMagick" Version="6.19.0" />
37-
<PackageReference Include="Squidex.Assets.ImageSharp" Version="6.19.0" />
38-
<PackageReference Include="Squidex.Assets.Mongo" Version="6.19.0" />
39-
<PackageReference Include="Squidex.Assets.S3" Version="6.19.0" />
40-
<PackageReference Include="Squidex.Caching" Version="6.19.0" />
41-
<PackageReference Include="Squidex.Hosting" Version="6.19.0" />
42-
<PackageReference Include="Squidex.Hosting.Abstractions" Version="6.19.0" />
43-
<PackageReference Include="Squidex.Log" Version="6.19.0" />
44-
<PackageReference Include="Squidex.Messaging" Version="6.19.0" />
45-
<PackageReference Include="Squidex.Text" Version="6.19.0" />
32+
<PackageReference Include="Squidex.Assets" Version="7.22.0" />
33+
<PackageReference Include="Squidex.Assets.Azure" Version="7.22.0" />
34+
<PackageReference Include="Squidex.Assets.FTP" Version="7.22.0" />
35+
<PackageReference Include="Squidex.Assets.GoogleCloud" Version="7.22.0" />
36+
<PackageReference Include="Squidex.Assets.ImageSharp" Version="7.22.0" />
37+
<PackageReference Include="Squidex.Assets.Mongo" Version="7.22.0" />
38+
<PackageReference Include="Squidex.Assets.S3" Version="7.22.0" />
39+
<PackageReference Include="Squidex.Caching" Version="7.22.0" />
40+
<PackageReference Include="Squidex.Hosting" Version="7.22.0" />
41+
<PackageReference Include="Squidex.Hosting.Abstractions" Version="7.22.0" />
42+
<PackageReference Include="Squidex.Log" Version="7.22.0" />
43+
<PackageReference Include="Squidex.Messaging" Version="7.22.0" />
44+
<PackageReference Include="Squidex.Text" Version="7.22.0" />
4645
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
4746
<PackageReference Include="System.Text.Json" Version="8.0.5" />
4847
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="8.0.1" />
4948
</ItemGroup>
5049

50+
<ItemGroup Condition="'$(IncludeMagick)' == 'true'">
51+
<PackageReference Include="Squidex.Assets.ImageMagick" Version="7.22.0" />
52+
</ItemGroup>
53+
5154
<ItemGroup>
5255
<AdditionalFiles Include="..\..\stylecop.json" Link="stylecop.json" />
5356
</ItemGroup>

backend/src/Notifo/Areas/Account/Pages/Setup.cshtml.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Notifo.Identity;
1414
using Notifo.Infrastructure.Reflection;
1515
using Squidex.Assets;
16+
using Squidex.Assets.FTP;
1617
using NotifoValidationException = Notifo.Infrastructure.Validation.ValidationException;
1718

1819
#pragma warning disable MA0048 // File name must match type name

backend/src/Notifo/Notifo.csproj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.8" />
2020
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="8.0.8" />
2121
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.8" />
22-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
22+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
2323
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
2424
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.5" />
2525
<PackageReference Include="Namotion.Reflection" Version="3.1.1" />
@@ -30,7 +30,7 @@
3030
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
3131
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
3232
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
33-
<PackageReference Include="Squidex.Messaging.All" Version="6.19.0" />
33+
<PackageReference Include="Squidex.Messaging.All" Version="7.22.0" />
3434
<PackageReference Include="Squidex.OpenTelemetry.Exporter.Stackdriver" Version="0.0.0-alpha.0.97" />
3535
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
3636
<PackageReference Include="System.Text.Json" Version="8.0.5" />
@@ -43,6 +43,10 @@
4343
<ProjectReference Include="..\Notifo.Infrastructure\Notifo.Infrastructure.csproj" />
4444
</ItemGroup>
4545

46+
<ItemGroup Condition="'$(IncludeKafka)' == 'true'">
47+
<PackageReference Include="Squidex.Messaging.Kafka" Version="7.23.0" />
48+
</ItemGroup>
49+
4650
<ItemGroup>
4751
<None Remove="Areas\Api\Controllers\TrackingPixel.png" />
4852
</ItemGroup>

0 commit comments

Comments
 (0)