diff --git a/src/Squidex/Config/Orleans/ClientWrapper.cs b/src/Squidex/Config/Orleans/ClientWrapper.cs index c5c36c04c..d65c73e6e 100644 --- a/src/Squidex/Config/Orleans/ClientWrapper.cs +++ b/src/Squidex/Config/Orleans/ClientWrapper.cs @@ -9,7 +9,6 @@ using System; using Orleans; using Orleans.Configuration; using Squidex.Config.Domain; -using Squidex.Domain.Apps.Entities; using Squidex.Infrastructure; namespace Squidex.Config.Orleans @@ -25,8 +24,7 @@ namespace Squidex.Config.Orleans .UseLocalhostClustering(40000) .Configure(options => { - options.ClusterId = Constants.OrleansClusterId; - options.ServiceId = Constants.OrleansClusterId; + options.Configure(); }) .ConfigureServices((context, services) => { @@ -34,8 +32,7 @@ namespace Squidex.Config.Orleans }) .ConfigureApplicationParts(builder => { - builder.AddApplicationPart(SquidexEntities.Assembly); - builder.AddApplicationPart(SquidexInfrastructure.Assembly); + builder.AddMyParts(); }) .Build(); } diff --git a/src/Squidex/Config/Orleans/Extensions.cs b/src/Squidex/Config/Orleans/Extensions.cs new file mode 100644 index 000000000..7f9a14a8e --- /dev/null +++ b/src/Squidex/Config/Orleans/Extensions.cs @@ -0,0 +1,30 @@ +// ========================================================================== +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex UG (haftungsbeschraenkt) +// All rights reserved. Licensed under the MIT license. +// ========================================================================== + +using Orleans; +using Orleans.ApplicationParts; +using Orleans.Configuration; +using Squidex.Domain.Apps.Entities; +using Squidex.Infrastructure; + +namespace Squidex.Config.Orleans +{ + public static class Extensions + { + public static void AddMyParts(this IApplicationPartManager builder) + { + builder.AddApplicationPart(SquidexEntities.Assembly); + builder.AddApplicationPart(SquidexInfrastructure.Assembly); + } + + public static void Configure(this ClusterOptions options) + { + options.ClusterId = Constants.OrleansClusterId; + options.ServiceId = Constants.OrleansClusterId; + } + } +} diff --git a/src/Squidex/Config/Orleans/SiloWrapper.cs b/src/Squidex/Config/Orleans/SiloWrapper.cs index 578d08376..839ff6312 100644 --- a/src/Squidex/Config/Orleans/SiloWrapper.cs +++ b/src/Squidex/Config/Orleans/SiloWrapper.cs @@ -15,7 +15,6 @@ using Orleans; using Orleans.Configuration; using Orleans.Hosting; using Squidex.Config.Domain; -using Squidex.Domain.Apps.Entities; using Squidex.Domain.Apps.Entities.Contents; using Squidex.Domain.Apps.Entities.Rules; using Squidex.Infrastructure; @@ -27,7 +26,7 @@ using Squidex.Infrastructure.Tasks; namespace Squidex.Config.Orleans { - public class SiloWrapper : DisposableObjectBase, IInitializable, IDisposable + public sealed class SiloWrapper : DisposableObjectBase, IInitializable, IDisposable { private readonly Lazy silo; private readonly ISemanticLog log; @@ -67,8 +66,11 @@ namespace Squidex.Config.Orleans }) .Configure(options => { - options.ClusterId = Constants.OrleansClusterId; - options.ServiceId = Constants.OrleansClusterId; + options.Configure(); + }) + .ConfigureApplicationParts(builder => + { + builder.AddMyParts(); }) .ConfigureLogging((hostingContext, builder) => { @@ -76,11 +78,6 @@ namespace Squidex.Config.Orleans builder.AddSemanticLog(); builder.AddFilter(); }) - .ConfigureApplicationParts(builder => - { - builder.AddApplicationPart(SquidexEntities.Assembly); - builder.AddApplicationPart(SquidexInfrastructure.Assembly); - }) .ConfigureServices((context, services) => { services.AddAppSiloServices(context.Configuration); diff --git a/src/Squidex/Squidex.csproj b/src/Squidex/Squidex.csproj index af29f0cc4..8977d8570 100644 --- a/src/Squidex/Squidex.csproj +++ b/src/Squidex/Squidex.csproj @@ -81,7 +81,7 @@ - +