Skip to content

Commit

Permalink
Upgrade to Orleans v8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
wassim-k committed Jan 8, 2024
1 parent 19d4b39 commit d6be648
Show file tree
Hide file tree
Showing 13 changed files with 57 additions and 77 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Setup .NET Core
uses: actions/setup-dotnet@v2
with:
dotnet-version: 7.0.x
dotnet-version: 8.0.x

- name: Build
run: |
Expand Down
Original file line number Diff line number Diff line change
@@ -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
{
Expand All @@ -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<IGrainStateSerializer>(name) ?? _serviceProvider.GetRequiredService<IGrainStateSerializer>();
options.GrainStateSerializer = _serviceProvider.GetKeyedService<IGrainStateSerializer>(name) ?? _serviceProvider.GetRequiredService<IGrainStateSerializer>();
}
}
}
Expand Down
24 changes: 6 additions & 18 deletions Orleans.Providers.MongoDB/MongoDBSiloExtensions.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down Expand Up @@ -205,22 +204,11 @@ public static ISiloBuilder UseMongoDBClient(this ISiloBuilder builder, Func<ISer
Action<OptionsBuilder<MongoDBGrainStorageOptions>> configureOptions = null)
{
configureOptions?.Invoke(services.AddOptions<MongoDBGrainStorageOptions>(name));
services.AddTransient<IPostConfigureOptions<MongoDBGrainStorageOptions>, MongoDBGrainStorageConfigurator>();

if (string.Equals(name, ProviderConstants.DEFAULT_STORAGE_PROVIDER_NAME, StringComparison.Ordinal))
{
services.TryAddSingleton(sp => sp.GetServiceByName<IGrainStorage>(ProviderConstants.DEFAULT_STORAGE_PROVIDER_NAME));
}

services.TryAddSingleton<IGrainStateSerializer, JsonGrainStateSerializer>();

services.ConfigureNamedOptionForLogging<MongoDBGrainStorageOptions>(name);

services.AddTransient<IConfigurationValidator>(sp => new MongoDBGrainStorageOptionsValidator(sp.GetRequiredService<IOptionsMonitor<MongoDBGrainStorageOptions>>().Get(name), name));
services.AddSingletonNamedService(name, MongoGrainStorageFactory.Create);
services.AddSingletonNamedService(name, (s, n) => (ILifecycleParticipant<ISiloLifecycle>)s.GetRequiredServiceByName<IGrainStorage>(n));

return services;
services.ConfigureNamedOptionForLogging<MongoDBGrainStorageOptions>(name);
services.AddTransient<IPostConfigureOptions<MongoDBGrainStorageOptions>, MongoDBGrainStorageConfigurator>();
return services.AddGrainStorage(name, MongoGrainStorageFactory.Create);
}
}
}
12 changes: 6 additions & 6 deletions Orleans.Providers.MongoDB/Orleans.Providers.MongoDB.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,20 @@
<PackageIcon>OrleansLogo.png</PackageIcon>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/OrleansContrib/Orleans.Providers.MongoDB</PackageProjectUrl>
<PackageReleaseNotes>Migration to Orleans 7.0 completed.</PackageReleaseNotes>
<PackageReleaseNotes>Migration to Orleans 8.0 completed.</PackageReleaseNotes>
<PackageTags>Orleans OrleansProviders MongoDB</PackageTags>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<TargetFrameworks>net7.0</TargetFrameworks>
<Version>7.6.1</Version>
<TargetFrameworks>net8.0</TargetFrameworks>
<Version>8.0.0</Version>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Orleans.Reminders" Version="7.2.1" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1">
<PackageReference Include="Microsoft.Orleans.Reminders" Version="8.0.0" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MongoDB.Driver" Version="2.21.0" />
<PackageReference Include="MongoDB.Driver" Version="2.23.1" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Orleans.Sdk" Version="7.2.1" />
<PackageReference Include="Microsoft.Orleans.Core.Abstractions" Version="7.2.1" />
<PackageReference Include="Microsoft.Orleans.Reminders" Version="7.2.1" />
<PackageReference Include="Microsoft.Orleans.Sdk" Version="8.0.0" />
<PackageReference Include="Microsoft.Orleans.Core.Abstractions" Version="8.0.0" />
<PackageReference Include="Microsoft.Orleans.Reminders" Version="8.0.0" />
</ItemGroup>

</Project>
8 changes: 4 additions & 4 deletions Test/Grains/Orleans.Providers.MongoDB.Test.Grains.csproj
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Orleans.Sdk" Version="7.2.1" />
<PackageReference Include="Microsoft.Orleans.Core" Version="7.2.1" />
<PackageReference Include="Microsoft.Orleans.Streaming" Version="7.2.1" />
<PackageReference Include="Microsoft.Orleans.Sdk" Version="8.0.0" />
<PackageReference Include="Microsoft.Orleans.Core" Version="8.0.0" />
<PackageReference Include="Microsoft.Orleans.Streaming" Version="8.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
8 changes: 4 additions & 4 deletions Test/Host/Orleans.Providers.MongoDB.Test.Host.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="EphemeralMongo6" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
<PackageReference Include="EphemeralMongo6" Version="1.1.3" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
13 changes: 6 additions & 7 deletions Test/Host/Program.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
{
Expand Down Expand Up @@ -59,8 +58,8 @@ public static async Task Main(string[] args)
settings.DefaultValueHandling = DefaultValueHandling.Populate;
})
.ConfigureServices(services => services
.AddSingletonNamedService<IGrainStateSerializer, BinaryGrainStateSerializer>(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME)
.AddSingletonNamedService<IGrainStateSerializer, BsonGrainStateSerializer>("MongoDBBsonStore"))
.AddKeyedSingleton<IGrainStateSerializer, BinaryGrainStateSerializer>(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME)
.AddKeyedSingleton<IGrainStateSerializer, BsonGrainStateSerializer>("MongoDBBsonStore"))
.AddMongoDBGrainStorage(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME, options =>
{
options.DatabaseName = "OrleansTestAppPubSubStore";
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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);
}
}
}
21 changes: 11 additions & 10 deletions UnitTest/Orleans.Providers.MongoDB.UnitTest.csproj
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
<GenerateRuntimeConfigDevFile>true</GenerateRuntimeConfigDevFile>
<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="EphemeralMongo6" Version="1.1.2" />
<PackageReference Include="FakeItEasy" Version="7.4.0" />
<PackageReference Include="FluentAssertions" Version="6.11.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" />
<PackageReference Include="Microsoft.Orleans.CodeGenerator" Version="7.2.1">
<PackageReference Include="EphemeralMongo6" Version="1.1.3" />
<PackageReference Include="FakeItEasy" Version="8.1.0" />
<PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.Orleans.CodeGenerator" Version="8.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit" Version="2.5.0" />
<PackageReference Include="xunit.runner.console" Version="2.5.0">
<PackageReference Include="xunit" Version="2.6.5" />
<PackageReference Include="xunit.runner.console" Version="2.6.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.6">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
12 changes: 6 additions & 6 deletions UnitTest/Serializers/SerializationTests.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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;

Expand All @@ -24,8 +24,8 @@ public void CorrectSerializerIsUsed()
.UseOrleans((ctx, siloBuilder) =>
{
siloBuilder.Services
.AddSingletonNamedService<IGrainStateSerializer, BsonGrainStateSerializer>("BsonProvider")
.AddSingletonNamedService<IGrainStateSerializer, BinaryGrainStateSerializer>("BinaryProvider");
.AddKeyedSingleton<IGrainStateSerializer, BsonGrainStateSerializer>("BsonProvider")
.AddKeyedSingleton<IGrainStateSerializer, BinaryGrainStateSerializer>("BinaryProvider");
siloBuilder
.UseLocalhostClustering()
Expand Down Expand Up @@ -76,7 +76,7 @@ public async void BsonSerializerForPubSubStore_Throws()
.UseOrleans((ctx, siloBuilder) =>
{
siloBuilder.Services
.AddSingletonNamedService<IGrainStateSerializer, BsonGrainStateSerializer>(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME);
.AddKeyedSingleton<IGrainStateSerializer, BsonGrainStateSerializer>(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME);
siloBuilder
.AddMemoryStreams<DefaultMemoryMessageBodySerializer>("OrleansTestStream")
Expand Down
9 changes: 4 additions & 5 deletions UnitTest/Storage/StorageTests.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -24,7 +23,7 @@ public async Task ThrowErrorWhenUpdatingCollectionWithAUniqueIndex()
.UseOrleans((ctx, siloBuilder) =>
{
siloBuilder.Services
.AddSingletonNamedService<IGrainStateSerializer, BsonGrainStateSerializer>(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME);
.AddKeyedSingleton<IGrainStateSerializer, BsonGrainStateSerializer>(ProviderConstants.DEFAULT_PUBSUB_PROVIDER_NAME);
siloBuilder
.AddMemoryStreams<DefaultMemoryMessageBodySerializer>("OrleansTestStream")
Expand Down
2 changes: 1 addition & 1 deletion libs/orleans
Submodule orleans updated 1195 files

0 comments on commit d6be648

Please sign in to comment.