diff --git a/Directory.Packages.props b/Directory.Packages.props index 7245377fe7..33f94be047 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -161,10 +161,10 @@ - - - - + + + + @@ -178,8 +178,8 @@ packages and the base image stays as it is — the font is supplied from an embedded resource instead. linux-x64 AND linux-arm64 natives ship in the package, which the multi-arch portal image requires. --> - - + + - - - - + + + + diff --git a/src/MeshWeaver.Connection.Orleans/MeshWeaver.Connection.Orleans.csproj b/src/MeshWeaver.Connection.Orleans/MeshWeaver.Connection.Orleans.csproj index 33cd32cfa4..cd6974f38a 100644 --- a/src/MeshWeaver.Connection.Orleans/MeshWeaver.Connection.Orleans.csproj +++ b/src/MeshWeaver.Connection.Orleans/MeshWeaver.Connection.Orleans.csproj @@ -3,7 +3,9 @@ {99d1ee84-f6ea-448a-bf1b-7f7bfc46e9a1} + + diff --git a/test/MeshWeaver.Hosting.Orleans.Test/PodHubStaleReleaseTest.cs b/test/MeshWeaver.Hosting.Orleans.Test/PodHubStaleReleaseTest.cs index 0a456bf32b..5d908f2b21 100644 --- a/test/MeshWeaver.Hosting.Orleans.Test/PodHubStaleReleaseTest.cs +++ b/test/MeshWeaver.Hosting.Orleans.Test/PodHubStaleReleaseTest.cs @@ -144,7 +144,10 @@ private PropertyInfo KeepAliveOf(IPodHubGrain grain, out IGrainContext context) var directoryType = Assembly.Load("Orleans.Runtime").GetType("Orleans.Runtime.ActivationDirectory", true)!; var directory = (IEnumerable>)Services(0).GetRequiredService(directoryType); context = directory.Single(entry => entry.Key.Equals(grain.GetGrainId())).Value; - var keepAlive = context.GetType().GetProperty("KeepAliveUntil"); + // Orleans 10.4 made ActivationData.KeepAliveUntil internal (it was public through 10.3.1), so + // the lookup names NonPublic too — the property and its DateTime.MaxValue pin are unchanged. + var keepAlive = context.GetType().GetProperty( + "KeepAliveUntil", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); Assert.NotNull(keepAlive); return keepAlive; } diff --git a/test/MeshWeaver.Hosting.Orleans.Test/PodHubUnclaimedDeliveryTest.cs b/test/MeshWeaver.Hosting.Orleans.Test/PodHubUnclaimedDeliveryTest.cs index 7eac1cfb91..5159de812a 100644 --- a/test/MeshWeaver.Hosting.Orleans.Test/PodHubUnclaimedDeliveryTest.cs +++ b/test/MeshWeaver.Hosting.Orleans.Test/PodHubUnclaimedDeliveryTest.cs @@ -75,7 +75,10 @@ public async Task LostLocalRoute_RefusalCancelsThePreviousOwnersPin() var directoryType = Assembly.Load("Orleans.Runtime").GetType("Orleans.Runtime.ActivationDirectory", true)!; var directory = (IEnumerable>)Services(0).GetRequiredService(directoryType); var context = directory.Single(entry => entry.Key.Equals(grain.GetGrainId())).Value; - var keepAlive = context.GetType().GetProperty("KeepAliveUntil"); + // Orleans 10.4 made ActivationData.KeepAliveUntil internal (it was public through 10.3.1), so + // the lookup names NonPublic too — the property and its DateTime.MaxValue pin are unchanged. + var keepAlive = context.GetType().GetProperty( + "KeepAliveUntil", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); Assert.NotNull(keepAlive); ((DateTime)keepAlive.GetValue(context)!).Should().Be(DateTime.MaxValue, "the owner claim must really have pinned this activation");