Browse Source

Orleans upgraded.

pull/282/head
Sebastian 8 years ago
parent
commit
bd762fe5a7
  1. 4
      src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj
  2. 8
      src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj
  3. 4
      src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj
  4. 4
      src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj
  5. 2
      src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj
  6. 4
      src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj
  7. 2
      src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj
  8. 4
      src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj
  9. 10
      src/Squidex.Infrastructure/Squidex.Infrastructure.csproj
  10. 15
      src/Squidex/Config/Orleans/ClientWrapper.cs
  11. 130
      src/Squidex/Config/Orleans/ConfigUtilities.cs
  12. 2
      src/Squidex/Config/Orleans/SiloWrapper.cs
  13. 18
      src/Squidex/Squidex.csproj
  14. 2
      tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj
  15. 4
      tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj
  16. 2
      tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj
  17. 2
      tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj
  18. 4
      tests/Squidex.Tests/Squidex.Tests.csproj
  19. 2
      tools/Migrate_00/Migrate_00.csproj

4
src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj

@ -8,8 +8,8 @@
<DebugSymbols>True</DebugSymbols>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Fody" Version="2.4.6" />
<PackageReference Include="Freezable.Fody" Version="1.8.0" />
<PackageReference Include="Fody" Version="3.0.3" />
<PackageReference Include="Freezable.Fody" Version="1.9.0" />
<PackageReference Include="System.Collections.Immutable" Version="1.4.0" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
</ItemGroup>

8
src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj

@ -16,15 +16,15 @@
<PackageReference Include="Algolia.Search" Version="4.2.2" />
<PackageReference Include="Elasticsearch.Net" Version="6.0.2" />
<PackageReference Include="Jint" Version="2.11.58" />
<PackageReference Include="Microsoft.OData.Core" Version="7.4.1" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.1" />
<PackageReference Include="Microsoft.OData.Core" Version="7.4.4" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<PackageReference Include="NJsonSchema" Version="9.10.35" />
<PackageReference Include="NodaTime" Version="2.2.4" />
<PackageReference Include="NodaTime" Version="2.2.5" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.Collections.Immutable" Version="1.4.0" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
<PackageReference Include="WindowsAzure.Storage" Version="9.1.0" />
<PackageReference Include="WindowsAzure.Storage" Version="9.1.1" />
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

4
src/Squidex.Domain.Apps.Entities.MongoDb/Squidex.Domain.Apps.Entities.MongoDb.csproj

@ -15,8 +15,8 @@
<ProjectReference Include="..\Squidex.Domain.Apps.Entities\Squidex.Domain.Apps.Entities.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.OData.Core" Version="7.4.1" />
<PackageReference Include="MongoDB.Driver" Version="2.5.0" />
<PackageReference Include="Microsoft.OData.Core" Version="7.4.4" />
<PackageReference Include="MongoDB.Driver" Version="2.5.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

4
src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj

@ -14,8 +14,8 @@
<ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.0-rc2" />
<PackageReference Include="NodaTime" Version="2.2.4" />
<PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.0" />
<PackageReference Include="NodaTime" Version="2.2.5" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

2
src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj

@ -13,7 +13,7 @@
<ItemGroup>
<PackageReference Include="GraphQL" Version="0.17.3" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.0.1" />
<PackageReference Include="NodaTime" Version="2.2.4" />
<PackageReference Include="NodaTime" Version="2.2.5" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="4.8.0" />

4
src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj

@ -13,10 +13,10 @@
<ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4" Version="2.1.2" />
<PackageReference Include="IdentityServer4" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.0.2" />
<PackageReference Include="Microsoft.Win32.Registry" Version="4.4.0" />
<PackageReference Include="MongoDB.Driver" Version="2.5.0" />
<PackageReference Include="MongoDB.Driver" Version="2.5.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.Security.Principal.Windows" Version="4.4.1" />

2
src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj

@ -6,7 +6,7 @@
<ItemGroup>
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="WindowsAzure.Storage" Version="9.1.0" />
<PackageReference Include="WindowsAzure.Storage" Version="9.1.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />

4
src/Squidex.Infrastructure.MongoDb/Squidex.Infrastructure.MongoDb.csproj

@ -11,8 +11,8 @@
<ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.OData.Core" Version="7.4.1" />
<PackageReference Include="MongoDB.Driver" Version="2.5.0" />
<PackageReference Include="Microsoft.OData.Core" Version="7.4.4" />
<PackageReference Include="MongoDB.Driver" Version="2.5.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="4.8.0" />

10
src/Squidex.Infrastructure/Squidex.Infrastructure.csproj

@ -10,11 +10,11 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.1" />
<PackageReference Include="Microsoft.Orleans.Core" Version="2.0.0-rc2" />
<PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.0-rc2" />
<PackageReference Include="Microsoft.Orleans.OrleansRuntime" Version="2.0.0-rc2" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.1" />
<PackageReference Include="NodaTime" Version="2.2.4" />
<PackageReference Include="Microsoft.Orleans.Core" Version="2.0.0" />
<PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.0" />
<PackageReference Include="Microsoft.Orleans.OrleansRuntime" Version="2.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<PackageReference Include="NodaTime" Version="2.2.5" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0001" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />

15
src/Squidex/Config/Orleans/ClientWrapper.cs

@ -17,20 +17,15 @@ namespace Squidex.Config.Orleans
{
public sealed class ClientWrapper : DisposableObjectBase, IInitializable, IDisposable
{
private readonly IClusterClient client;
public IClusterClient Client
{
get { return client; }
}
public IClusterClient Client { get; }
public ClientWrapper()
{
client = new ClientBuilder()
Client = new ClientBuilder()
.UseDashboard()
.UseStaticClustering(options =>
{
options.Gateways.Add(new IPEndPoint(IPAddress.Loopback, 40000).ToGatewayUri());
options.Gateways.Add(new IPEndPoint(ConfigUtilities.SiloAddress, 40000).ToGatewayUri());
})
.Configure<ClusterOptions>(options =>
{
@ -46,14 +41,14 @@ namespace Squidex.Config.Orleans
public void Initialize()
{
client.Connect().Wait();
Client.Connect().Wait();
}
protected override void DisposeObject(bool disposing)
{
if (disposing)
{
client.Close().Wait();
Client.Close().Wait();
}
}
}

130
src/Squidex/Config/Orleans/ConfigUtilities.cs

@ -0,0 +1,130 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Threading.Tasks;
using Orleans.Runtime;
namespace Squidex.Config.Orleans
{
public static class ConfigUtilities
{
public static IPAddress SiloAddress { get; } = GetBestIPAddressAsync().Result;
private static Task<IPAddress> GetBestIPAddressAsync()
{
return ResolveIPAddressAsync(Dns.GetHostName(), null, AddressFamily.InterNetwork);
}
internal static async Task<IPAddress> ResolveIPAddressAsync(string addressOrHost, byte[] subnet, AddressFamily family)
{
var loopback = family == AddressFamily.InterNetwork ? IPAddress.Loopback : IPAddress.IPv6Loopback;
IList<IPAddress> nodeIps;
if (string.IsNullOrEmpty(addressOrHost))
{
nodeIps =
NetworkInterface.GetAllNetworkInterfaces()
.SelectMany(i => i.GetIPProperties().UnicastAddresses)
.Select(a => a.Address)
.Where(a => a.AddressFamily == family && !IPAddress.IsLoopback(a))
.ToList();
}
else
{
if (addressOrHost.Equals("loopback", StringComparison.OrdinalIgnoreCase))
{
return loopback;
}
if (IPAddress.TryParse(addressOrHost, out IPAddress address))
{
return address;
}
nodeIps = await Dns.GetHostAddressesAsync(addressOrHost);
}
var candidates = new List<IPAddress>();
foreach (var nodeIp in nodeIps.Where(x => x.AddressFamily == family))
{
if (subnet == null)
{
candidates.Add(nodeIp);
}
else
{
var ip = nodeIp;
if (subnet.Select((b, i) => ip.GetAddressBytes()[i] == b).All(x => x))
{
candidates.Add(nodeIp);
}
}
}
if (candidates.Count > 0)
{
return PickIPAddress(candidates);
}
var subnetStr = Utils.EnumerableToString(subnet, null, ".", false);
throw new ArgumentException($"Hostname '{addressOrHost}' with subnet {subnetStr} and family {family} is not a valid IP address or DNS name");
}
internal static IPAddress PickIPAddress(IReadOnlyList<IPAddress> candidates)
{
IPAddress result = null;
foreach (IPAddress address in candidates)
{
if (result == null)
{
result = address;
}
else
{
if (CompareIPAddresses(address, result))
{
result = address;
}
}
}
return result;
}
private static bool CompareIPAddresses(IPAddress lhs, IPAddress rhs)
{
var lbytes = lhs.GetAddressBytes();
var rbytes = rhs.GetAddressBytes();
if (lbytes.Length != rbytes.Length)
{
return lbytes.Length < rbytes.Length;
}
for (int i = 0; i < lbytes.Length; i++)
{
if (lbytes[i] != rbytes[i])
{
return lbytes[i] < rbytes[i];
}
}
return false;
}
}
}

2
src/Squidex/Config/Orleans/SiloWrapper.cs

@ -104,7 +104,7 @@ namespace Squidex.Config.Orleans
{
["MongoDB"] = () =>
{
hostBuilder.ConfigureEndpoints(Dns.GetHostName(), 11111, 40000, listenOnAnyHostAddress: true);
hostBuilder.ConfigureEndpoints(ConfigUtilities.SiloAddress, 11111, 40000, true);
var mongoConfiguration = config.GetRequiredValue("store:mongoDb:configuration");
var mongoDatabaseName = config.GetRequiredValue("store:mongoDb:database");

18
src/Squidex/Squidex.csproj

@ -56,8 +56,8 @@
<PackageReference Include="Algolia.Search" Version="4.2.2" />
<PackageReference Include="Ben.BlockingDetector" Version="0.0.3" />
<PackageReference Include="EventStore.ClientAPI.NetCore" Version="4.1.0.23" />
<PackageReference Include="IdentityServer4" Version="2.1.2" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="2.4.0" />
<PackageReference Include="IdentityServer4" Version="2.2.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="2.6.0" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.3" />
@ -74,18 +74,18 @@
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.4" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.0.1" />
<PackageReference Include="Microsoft.Data.Edm" Version="5.8.3" />
<PackageReference Include="Microsoft.OData.Core" Version="7.4.1" />
<PackageReference Include="Microsoft.Orleans.Client" Version="2.0.0-rc2" />
<PackageReference Include="Microsoft.OData.Core" Version="7.4.4" />
<PackageReference Include="Microsoft.Orleans.Client" Version="2.0.0" />
<PackageReference Include="Microsoft.Orleans.Server " Version="2.0.0-rc2" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
<PackageReference Include="MongoDB.Driver" Version="2.5.0" />
<PackageReference Include="MongoDB.Driver" Version="2.5.1" />
<PackageReference Include="NJsonSchema" Version="9.10.35" />
<PackageReference Include="NodaTime.Serialization.JsonNet" Version="2.0.0" />
<PackageReference Include="NSwag.AspNetCore" Version="11.15.4" />
<PackageReference Include="OpenCover" Version="4.6.519" />
<PackageReference Include="Orleans.Providers.MongoDB" Version="2.0.0-rc6" />
<PackageReference Include="OrleansDashboard" Version="2.0.0-rc2a" />
<PackageReference Include="Orleans.Providers.MongoDB" Version="2.0.0" />
<PackageReference Include="OrleansDashboard" Version="2.0.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="ReportGenerator" Version="3.1.2" />
<PackageReference Include="StackExchange.Redis.StrongName" Version="1.2.6" />
@ -109,4 +109,8 @@
<AdditionalFiles Include="..\..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="Microsoft.Orleans.Server" Version="2.0.0" />
</ItemGroup>
</Project>

2
tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj

@ -12,7 +12,7 @@
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.5.1" />
<PackageReference Include="FluentAssertions" Version="4.19.4" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

4
tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj

@ -21,8 +21,8 @@
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.5.1" />
<PackageReference Include="FluentAssertions" Version="4.19.4" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.1" />
<PackageReference Include="MongoDB.Driver" Version="2.5.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="MongoDB.Driver" Version="2.5.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

2
tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj

@ -13,7 +13,7 @@
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.5.1" />
<PackageReference Include="FluentAssertions" Version="4.19.4" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

2
tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj

@ -16,7 +16,7 @@
<PackageReference Include="Google.Cloud.Storage.V1" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.0.1" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.4.0" />

4
tests/Squidex.Tests/Squidex.Tests.csproj

@ -10,9 +10,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.5.1" />
<PackageReference Include="IdentityServer4" Version="2.1.2" />
<PackageReference Include="IdentityServer4" Version="2.2.0" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.1.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="NJsonSchema" Version="9.10.35" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />

2
tools/Migrate_00/Migrate_00.csproj

@ -4,7 +4,7 @@
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MongoDB.Driver" Version="2.5.0" />
<PackageReference Include="MongoDB.Driver" Version="2.5.1" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
</ItemGroup>

Loading…
Cancel
Save