diff --git a/Orleans.Providers.MongoDB/Configuration/MongoDBGrainStorageConfigurator.cs b/Orleans.Providers.MongoDB/Configuration/MongoDBGrainStorageConfigurator.cs index 674429e..64e1c11 100644 --- a/Orleans.Providers.MongoDB/Configuration/MongoDBGrainStorageConfigurator.cs +++ b/Orleans.Providers.MongoDB/Configuration/MongoDBGrainStorageConfigurator.cs @@ -1,8 +1,7 @@ -using System; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Orleans.Providers.MongoDB.StorageProviders.Serializers; -using Orleans.Runtime; +using System; namespace Orleans.Providers.MongoDB.Configuration { @@ -26,7 +25,7 @@ public void PostConfigure(string name, MongoDBGrainStorageOptions options) { // First, try to get a IGrainStateSerializer that was registered with the same name as the State provider // If none is found, fallback to system wide default - options.GrainStateSerializer = _serviceProvider.GetServiceByName(name) ?? _serviceProvider.GetRequiredService(); + options.GrainStateSerializer = _serviceProvider.GetKeyedService(name) ?? _serviceProvider.GetRequiredService(); } } } diff --git a/Orleans.Providers.MongoDB/MongoDBSiloExtensions.cs b/Orleans.Providers.MongoDB/MongoDBSiloExtensions.cs index b61ed65..749d983 100644 --- a/Orleans.Providers.MongoDB/MongoDBSiloExtensions.cs +++ b/Orleans.Providers.MongoDB/MongoDBSiloExtensions.cs @@ -1,5 +1,4 @@ -using System; -using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; @@ -11,8 +10,8 @@ using Orleans.Providers.MongoDB.Reminders; using Orleans.Providers.MongoDB.StorageProviders; using Orleans.Providers.MongoDB.StorageProviders.Serializers; -using Orleans.Runtime; -using Orleans.Storage; +using Orleans.Runtime.Hosting; +using System; // ReSharper disable AccessToStaticMemberViaDerivedType // ReSharper disable CheckNamespace @@ -205,22 +204,11 @@ public static ISiloBuilder UseMongoDBClient(this ISiloBuilder builder, Func> configureOptions = null) { configureOptions?.Invoke(services.AddOptions(name)); - services.AddTransient, MongoDBGrainStorageConfigurator>(); - - if (string.Equals(name, ProviderConstants.DEFAULT_STORAGE_PROVIDER_NAME, StringComparison.Ordinal)) - { - services.TryAddSingleton(sp => sp.GetServiceByName(ProviderConstants.DEFAULT_STORAGE_PROVIDER_NAME)); - } - services.TryAddSingleton(); - - services.ConfigureNamedOptionForLogging(name); - services.AddTransient(sp => new MongoDBGrainStorageOptionsValidator(sp.GetRequiredService>().Get(name), name)); - services.AddSingletonNamedService(name, MongoGrainStorageFactory.Create); - services.AddSingletonNamedService(name, (s, n) => (ILifecycleParticipant)s.GetRequiredServiceByName(n)); - - return services; + services.ConfigureNamedOptionForLogging(name); + services.AddTransient, MongoDBGrainStorageConfigurator>(); + return services.AddGrainStorage(name, MongoGrainStorageFactory.Create); } } } \ No newline at end of file diff --git a/Orleans.Providers.MongoDB/Orleans.Providers.MongoDB.csproj b/Orleans.Providers.MongoDB/Orleans.Providers.MongoDB.csproj index 992437c..0b35425 100644 --- a/Orleans.Providers.MongoDB/Orleans.Providers.MongoDB.csproj +++ b/Orleans.Providers.MongoDB/Orleans.Providers.MongoDB.csproj @@ -11,20 +11,20 @@ OrleansLogo.png MIT https://github.com/OrleansContrib/Orleans.Providers.MongoDB - Migration to Orleans 7.0 completed. + Migration to Orleans 8.0 completed. Orleans OrleansProviders MongoDB snupkg - net7.0 - 7.6.1 + net8.0 + 8.0.0 - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Test/GrainInterfaces/Orleans.Providers.MongoDB.Test.GrainInterfaces.csproj b/Test/GrainInterfaces/Orleans.Providers.MongoDB.Test.GrainInterfaces.csproj index 9f4e572..994f0e2 100644 --- a/Test/GrainInterfaces/Orleans.Providers.MongoDB.Test.GrainInterfaces.csproj +++ b/Test/GrainInterfaces/Orleans.Providers.MongoDB.Test.GrainInterfaces.csproj @@ -1,14 +1,14 @@ - net7.0 + net8.0 false - - - + + + diff --git a/Test/Grains/Orleans.Providers.MongoDB.Test.Grains.csproj b/Test/Grains/Orleans.Providers.MongoDB.Test.Grains.csproj index 135d8bd..5982e64 100644 --- a/Test/Grains/Orleans.Providers.MongoDB.Test.Grains.csproj +++ b/Test/Grains/Orleans.Providers.MongoDB.Test.Grains.csproj @@ -1,14 +1,14 @@ - net7.0 + net8.0 false - - - + + + diff --git a/Test/Host/Orleans.Providers.MongoDB.Test.Host.csproj b/Test/Host/Orleans.Providers.MongoDB.Test.Host.csproj index 3e81a80..5fb9dc0 100644 --- a/Test/Host/Orleans.Providers.MongoDB.Test.Host.csproj +++ b/Test/Host/Orleans.Providers.MongoDB.Test.Host.csproj @@ -2,13 +2,13 @@ Exe - net7.0 + net8.0 - - - + + + diff --git a/Test/Host/Program.cs b/Test/Host/Program.cs index bae6213..89b81b0 100644 --- a/Test/Host/Program.cs +++ b/Test/Host/Program.cs @@ -1,7 +1,3 @@ -using System; -using System.Linq; -using System.Net; -using System.Threading.Tasks; using EphemeralMongo; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -16,7 +12,10 @@ using Orleans.Providers.MongoDB.Configuration; using Orleans.Providers.MongoDB.StorageProviders.Serializers; using Orleans.Providers.MongoDB.Test.GrainInterfaces; -using Orleans.Runtime; +using System; +using System.Linq; +using System.Net; +using System.Threading.Tasks; namespace Orleans.Providers.MongoDB.Test.Host { @@ -59,8 +58,8 @@ public static async Task Main(string[] args) settings.DefaultValueHandling = DefaultValueHandling.Populate; }) .ConfigureServices(services => services - .AddSingletonNamedService(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME) - .AddSingletonNamedService("MongoDBBsonStore")) + .AddKeyedSingleton(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME) + .AddKeyedSingleton("MongoDBBsonStore")) .AddMongoDBGrainStorage(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME, options => { options.DatabaseName = "OrleansTestAppPubSubStore"; diff --git a/UnitTest/Membership/MongoMembershipTableTests_MultipleDeprecated.cs b/UnitTest/Membership/MongoMembershipTableTests_MultipleDeprecated.cs index 8d72e18..b6b4dc4 100644 --- a/UnitTest/Membership/MongoMembershipTableTests_MultipleDeprecated.cs +++ b/UnitTest/Membership/MongoMembershipTableTests_MultipleDeprecated.cs @@ -1,11 +1,11 @@  -using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Orleans.Messaging; using Orleans.Providers.MongoDB.Configuration; using Orleans.Providers.MongoDB.Membership; using Orleans.Providers.MongoDB.UnitTest.Fixtures; +using System.Threading.Tasks; using TestExtensions; using UnitTests; using UnitTests.MembershipTests; @@ -107,11 +107,5 @@ public async Task Test_UpdateRowInParallel() { await MembershipTable_UpdateRowInParallel(false); } - - [Fact, TestCategory("Functional")] - public async Task Test_UpdateIAmAlive() - { - await MembershipTable_UpdateIAmAlive(false); - } } } \ No newline at end of file diff --git a/UnitTest/Orleans.Providers.MongoDB.UnitTest.csproj b/UnitTest/Orleans.Providers.MongoDB.UnitTest.csproj index 2b213e7..ea20812 100644 --- a/UnitTest/Orleans.Providers.MongoDB.UnitTest.csproj +++ b/UnitTest/Orleans.Providers.MongoDB.UnitTest.csproj @@ -1,26 +1,27 @@ - + - net7.0 + net8.0 true true + false + true false - - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/UnitTest/Serializers/SerializationTests.cs b/UnitTest/Serializers/SerializationTests.cs index 00b8387..4e4a5f3 100644 --- a/UnitTest/Serializers/SerializationTests.cs +++ b/UnitTest/Serializers/SerializationTests.cs @@ -1,6 +1,4 @@ -using System; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Orleans.Hosting; @@ -9,6 +7,8 @@ using Orleans.Providers.MongoDB.UnitTest.Fixtures; using Orleans.Runtime; using Orleans.Streams; +using System; +using System.Threading.Tasks; using TestExtensions; using Xunit; @@ -24,8 +24,8 @@ public void CorrectSerializerIsUsed() .UseOrleans((ctx, siloBuilder) => { siloBuilder.Services - .AddSingletonNamedService("BsonProvider") - .AddSingletonNamedService("BinaryProvider"); + .AddKeyedSingleton("BsonProvider") + .AddKeyedSingleton("BinaryProvider"); siloBuilder .UseLocalhostClustering() @@ -76,7 +76,7 @@ public async void BsonSerializerForPubSubStore_Throws() .UseOrleans((ctx, siloBuilder) => { siloBuilder.Services - .AddSingletonNamedService(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME); + .AddKeyedSingleton(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME); siloBuilder .AddMemoryStreams("OrleansTestStream") diff --git a/UnitTest/Storage/StorageTests.cs b/UnitTest/Storage/StorageTests.cs index 58c1e16..f9df8ed 100644 --- a/UnitTest/Storage/StorageTests.cs +++ b/UnitTest/Storage/StorageTests.cs @@ -1,13 +1,12 @@ -using System; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using MongoDB.Bson; using MongoDB.Driver; using Orleans.Hosting; using Orleans.Providers.MongoDB.StorageProviders.Serializers; using Orleans.Providers.MongoDB.UnitTest.Fixtures; -using Orleans.Runtime; +using System; +using System.Threading.Tasks; using TestExtensions; using Xunit; using static Orleans.Providers.MongoDB.UnitTest.Storage.TestGrains.StorageTests; @@ -24,7 +23,7 @@ public async Task ThrowErrorWhenUpdatingCollectionWithAUniqueIndex() .UseOrleans((ctx, siloBuilder) => { siloBuilder.Services - .AddSingletonNamedService(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME); + .AddKeyedSingleton(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME); siloBuilder .AddMemoryStreams("OrleansTestStream") diff --git a/libs/orleans b/libs/orleans index b63d948..71b58f4 160000 --- a/libs/orleans +++ b/libs/orleans @@ -1 +1 @@ -Subproject commit b63d948d369e7aa18efa6cac18e926643c2a97db +Subproject commit 71b58f43e0530c5650f01d38c58fd5679762f61e