GEODE-8851: FunctionRemoteContext should support version ordinals GEODE_1_12_1 and GEODE_1_13_1 (#5928)

- Also adds KnownVersion.isNewerThanOrEqualTo as synonym to
  KnownVersion.isNotOlderThan.
diff --git a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
index 50ce9e4..075b99d 100644
--- a/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
+++ b/geode-core/src/integrationTest/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt
@@ -1297,8 +1297,8 @@
 toData,19
 
 org/apache/geode/internal/cache/execute/FunctionRemoteContext,2
-fromData,145
-toData,123
+fromData,187
+toData,165
 
 org/apache/geode/internal/cache/ha/HARegionQueue$DispatchedAndCurrentEvents,2
 fromData,37
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionRemoteContext.java b/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionRemoteContext.java
index 32d69d6..52afddd 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionRemoteContext.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionRemoteContext.java
@@ -86,7 +86,12 @@
     }
     this.isReExecute = DataSerializer.readBoolean(in);
 
-    if (StaticSerialization.getVersionForDataStream(in).isNotOlderThan(KnownVersion.GEODE_1_14_0)) {
+    KnownVersion dataStreamVersion = StaticSerialization.getVersionForDataStream(in);
+    if (dataStreamVersion.isNewerThanOrEqualTo(KnownVersion.GEODE_1_14_0)
+        || (dataStreamVersion.isNewerThanOrEqualTo(KnownVersion.GEODE_1_12_1)
+            && dataStreamVersion.isOlderThan(KnownVersion.GEODE_1_13_0))
+        || (dataStreamVersion.isNewerThanOrEqualTo(KnownVersion.GEODE_1_13_1)
+            && dataStreamVersion.isOlderThan(KnownVersion.GEODE_1_14_0))) {
       this.principal = DataSerializer.readObject(in);
     }
   }
@@ -109,8 +114,12 @@
     }
     DataSerializer.writeBoolean(this.isReExecute, out);
 
-    if (StaticSerialization.getVersionForDataStream(out)
-        .isNotOlderThan(KnownVersion.GEODE_1_14_0)) {
+    KnownVersion dataStreamVersion = StaticSerialization.getVersionForDataStream(out);
+    if (dataStreamVersion.isNewerThanOrEqualTo(KnownVersion.GEODE_1_14_0)
+        || (dataStreamVersion.isNewerThanOrEqualTo(KnownVersion.GEODE_1_12_1)
+            && dataStreamVersion.isOlderThan(KnownVersion.GEODE_1_13_0))
+        || (dataStreamVersion.isNewerThanOrEqualTo(KnownVersion.GEODE_1_13_1)
+            && dataStreamVersion.isOlderThan(KnownVersion.GEODE_1_14_0))) {
       DataSerializer.writeObject(this.principal, out);
     }
   }
diff --git a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/Version.java b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/Version.java
index cb7d8d1..ea47514 100644
--- a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/Version.java
+++ b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/Version.java
@@ -65,6 +65,17 @@
   boolean isNotOlderThan(Version version);
 
   /**
+   * Test if this version is newer than or equal to the given version. Synonym for
+   * {@link #isNotOlderThan(Version)}.
+   *
+   * @param version to compare to this version
+   * @return true if this is the same version or newer, otherwise false.
+   */
+  default boolean isNewerThanOrEqualTo(Version version) {
+    return isNotOlderThan(version);
+  }
+
+  /**
    * Test if this version is newer than given version.
    *
    * @param version to compare to this version