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");