You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2020/06/18 03:25:50 UTC

[geode] branch develop updated: GEODE-8274: Improve readability of Version comparison. (#5266)

This is an automated email from the ASF dual-hosted git repository.

jbarrett pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new c93773f  GEODE-8274: Improve readability of Version comparison. (#5266)
c93773f is described below

commit c93773fbe71f9f15db4b3ae9d264ba4845cf0bf4
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Wed Jun 17 20:25:10 2020 -0700

    GEODE-8274: Improve readability of Version comparison. (#5266)
    
    * Refactor Version.compareTo(Version) >= 0 to Version.isNotOlderThan(Version).
    * Refactor Version.compareTo(Version) < 0 to Version.isOlderThan(Version).
    * Refactor Version.compareTo(Version) > 0 to Version.isNewerThan(Version).
    * Refactor Version.compareTo(Version) <= 0 to Version.isNotNewerThan(Version).
    * Add test
---
 .../codeAnalysis/sanctionedDataSerializables.txt   |  3 +-
 .../client/internal/ClientSideHandshakeImpl.java   | 12 +++----
 .../internal/streaming/StreamingOperation.java     |  2 +-
 .../geode/internal/InternalDataSerializer.java     |  2 +-
 .../geode/internal/VersionedObjectOutput.java      |  2 +-
 .../internal/cache/AbstractUpdateOperation.java    |  2 +-
 .../org/apache/geode/internal/cache/EventID.java   |  4 +--
 ...xpireDisconnectedClientTransactionsMessage.java |  4 +--
 .../internal/cache/InitialImageOperation.java      | 12 +++----
 .../geode/internal/cache/PartitionedRegion.java    |  4 +--
 .../cache/PartitionedRegionQueryEvaluator.java     |  2 +-
 .../geode/internal/cache/TXCommitMessage.java      |  2 +-
 .../internal/cache/TXRegionLockRequestImpl.java    |  4 +--
 .../cache/execute/FunctionRemoteContext.java       |  4 +--
 .../cache/partitioned/IndexCreationMsg.java        |  2 +-
 .../cache/partitioned/PartitionMessage.java        |  4 +--
 .../internal/cache/partitioned/QueryMessage.java   |  4 +--
 .../internal/cache/tier/sockets/BaseCommand.java   |  6 ++--
 .../cache/tier/sockets/BaseCommandQuery.java       |  4 +--
 .../cache/tier/sockets/CacheClientNotifier.java    |  4 +--
 .../cache/tier/sockets/ChunkedMessage.java         |  2 +-
 .../tier/sockets/ClientDataSerializerMessage.java  |  4 +--
 .../tier/sockets/ClientInstantiatorMessage.java    |  2 +-
 .../tier/sockets/ClientInterestMessageImpl.java    |  2 +-
 .../tier/sockets/ClientMarkerMessageImpl.java      |  2 +-
 .../cache/tier/sockets/ClientPingMessageImpl.java  |  2 +-
 .../tier/sockets/ClientProxyMembershipID.java      |  2 +-
 .../tier/sockets/ClientRegistrationMetadata.java   |  2 +-
 .../tier/sockets/ClientUpdateMessageImpl.java      |  8 ++---
 .../cache/tier/sockets/MessageDispatcher.java      |  2 +-
 .../cache/tier/sockets/ServerConnection.java       |  4 +--
 .../tier/sockets/ServerSideHandshakeFactory.java   |  2 +-
 .../tier/sockets/ServerSideHandshakeImpl.java      | 18 +++++-----
 .../cache/tier/sockets/SocketMessageWriter.java    |  8 ++---
 .../tier/sockets/command/CloseConnection.java      |  2 +-
 .../sockets/command/GatewayReceiverCommand.java    |  2 +-
 .../internal/cache/tier/sockets/command/Put65.java |  4 +--
 .../tier/sockets/command/RegisterInterest61.java   |  2 +-
 .../sockets/command/RegisterInterestList66.java    |  2 +-
 .../geode/internal/cache/versions/VersionTag.java  |  2 +-
 .../internal/cache/wan/GatewaySenderAdvisor.java   |  4 +--
 .../org/apache/geode/internal/tcp/Connection.java  |  2 +-
 .../configuration/domain/Configuration.java        |  2 +-
 .../org/apache/geode/pdx/internal/PdxField.java    |  2 +-
 .../org/apache/geode/pdx/internal/PdxType.java     |  2 +-
 .../membership/gms/MemberIdentifierImpl.java       |  6 ++--
 .../gemstone/gemfire/OldClientSupportProvider.java |  4 +--
 .../geode/internal/serialization/Version.java      | 41 ++++++++++++++++++++++
 .../internal/serialization/VersionJUnitTest.java   | 28 +++++++++++++++
 49 files changed, 159 insertions(+), 89 deletions(-)

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 6c48fc4..29c8e97 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
@@ -355,7 +355,7 @@ fromData,17
 toData,17
 
 org/apache/geode/distributed/internal/streaming/StreamingOperation$StreamingReplyMessage,2
-fromData,425
+fromData,417
 toData,86
 
 org/apache/geode/distributed/internal/tcpserver/InfoResponse,2
@@ -2108,3 +2108,4 @@ toData,105
 org/apache/geode/pdx/internal/PdxType,2
 fromData,109
 toData,124
+
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
index e66f42c..2622021 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
@@ -128,7 +128,7 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
     // handshakes.
     // Client side handshake code uses this.currentClientVersion which can be
     // set via tests.
-    if (currentClientVersion.compareTo(Version.GFE_603) >= 0) {
+    if (currentClientVersion.isNotOlderThan(Version.GFE_603)) {
       this.overrides = new byte[] {this.clientConflation};
     }
   }
@@ -235,13 +235,13 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
       // Read delta-propagation property value from server.
       // [sumedh] Static variable below? Client can connect to different
       // DSes with different values of this. It shoule be a member variable.
-      if (!communicationMode.isWAN() && currentClientVersion.compareTo(Version.GFE_61) >= 0) {
+      if (!communicationMode.isWAN() && currentClientVersion.isNotOlderThan(Version.GFE_61)) {
         ((InternalDistributedSystem) system).setDeltaEnabledOnServer(dis.readBoolean());
       }
 
       // validate that the remote side has a different distributed system id.
       if (communicationMode.isWAN() && Version.GFE_66.compareTo(conn.getWanSiteVersion()) <= 0
-          && currentClientVersion.compareTo(Version.GFE_66) >= 0) {
+          && currentClientVersion.isNotOlderThan(Version.GFE_66)) {
         int remoteDistributedSystemId = in.read();
         int localDistributedSystemId =
             ((InternalDistributedSystem) system).getDistributionManager().getDistributedSystemId();
@@ -254,7 +254,7 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
       }
       // Read the PDX registry size from the remote size
       if (communicationMode.isWAN() && Version.GFE_80.compareTo(conn.getWanSiteVersion()) <= 0
-          && currentClientVersion.compareTo(Version.GFE_80) >= 0) {
+          && currentClientVersion.isNotOlderThan(Version.GFE_80)) {
         int remotePdxSize = dis.readInt();
         serverQStatus.setPdxSize(remotePdxSize);
       }
@@ -323,7 +323,7 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
       // [sumedh] nothing more to be done for older clients used in tests
       // there is a difference in serializer map registration for >= 6.5.1.6
       // clients but that is not used in tests
-      if (currentClientVersion.compareTo(Version.GFE_61) < 0) {
+      if (currentClientVersion.isOlderThan(Version.GFE_61)) {
         return new ServerQueueStatus(endpointType, queueSize, member);
       }
       HashMap instantiatorMap = DataSerializer.readHashMap(dis);
@@ -393,7 +393,7 @@ public class ClientSideHandshakeImpl extends Handshake implements ClientSideHand
       DataOutput idOut = new VersionedDataOutputStream(hdos, Version.GFE_82);
       DataSerializer.writeObject(this.id, idOut);
 
-      if (currentClientVersion.compareTo(Version.GFE_603) >= 0) {
+      if (currentClientVersion.isNotOlderThan(Version.GFE_603)) {
         byte[] overrides = getOverrides();
         for (int bytes = 0; bytes < overrides.length; bytes++) {
           hdos.writeByte(overrides[bytes]);
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/streaming/StreamingOperation.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/streaming/StreamingOperation.java
index 66f195c..0deb1f2 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/streaming/StreamingOperation.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/streaming/StreamingOperation.java
@@ -513,7 +513,7 @@ public abstract class StreamingOperation {
       this.lastMsg = in.readBoolean();
       this.pdxReadSerialized = in.readBoolean();
       Version senderVersion = StaticSerialization.getVersionForDataStream(in);
-      boolean isSenderAbove_8_1 = senderVersion.compareTo(Version.GFE_81) > 0;
+      boolean isSenderAbove_8_1 = senderVersion.isNewerThan(Version.GFE_81);
       InternalCache cache = null;
       Boolean initialPdxReadSerialized = false;
       try {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java b/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
index a7ed6bd..733f72b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/InternalDataSerializer.java
@@ -354,7 +354,7 @@ public abstract class InternalDataSerializer extends DataSerializer {
       VersionedDataStream vout = (VersionedDataStream) out;
       Version version = vout.getVersion();
       if (null != version) {
-        if (version.compareTo(Version.GEODE_1_9_0) < 0) {
+        if (version.isOlderThan(Version.GEODE_1_9_0)) {
           if (name.equals(POST_GEODE_190_SERVER_CQIMPL)) {
             return PRE_GEODE_190_SERVER_CQIMPL;
           }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/VersionedObjectOutput.java b/geode-core/src/main/java/org/apache/geode/internal/VersionedObjectOutput.java
index b9b4ad5..6dccb75 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/VersionedObjectOutput.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/VersionedObjectOutput.java
@@ -39,7 +39,7 @@ public class VersionedObjectOutput implements ObjectOutput, VersionedDataStream
    * @param version the product version that serialized object on the given {@link ObjectOutput}
    */
   public VersionedObjectOutput(ObjectOutput out, Version version) {
-    if (version.compareTo(Version.CURRENT) > 0) {
+    if (version.isNewerThan(Version.CURRENT)) {
       Assert.fail("unexpected version: " + version + ", CURRENT: " + Version.CURRENT);
     }
     this.out = out;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java
index dd6614c..057a4b4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractUpdateOperation.java
@@ -344,7 +344,7 @@ public abstract class AbstractUpdateOperation extends DistributedCacheOperation
 
         String msg =
             String.format("memberID cannot be null for persistent regions: %s", tag);
-        RuntimeException ex = (sender.getVersionObject().compareTo(Version.GFE_80) < 0)
+        RuntimeException ex = (sender.getVersionObject().isOlderThan(Version.GFE_80))
             ? new InternalGemFireException(msg) : new InvalidVersionException(msg);
         throw ex;
       }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/EventID.java b/geode-core/src/main/java/org/apache/geode/internal/cache/EventID.java
index d251f93..c6ccd12 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/EventID.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/EventID.java
@@ -311,7 +311,7 @@ public class EventID implements DataSerializableFixedID, Serializable, Externali
    */
   public InternalDistributedMember getDistributedMember(Version targetVersion) {
     Version disVersion = null;
-    if (targetVersion.compareTo(Version.GEODE_1_1_0) < 0) {
+    if (targetVersion.isOlderThan(Version.GEODE_1_1_0)) {
       // GEODE-3153: clients expect to receive UUID bytes, which are only
       // read if the stream's version is 1.0.0-incubating
       disVersion = Version.GFE_90;
@@ -356,7 +356,7 @@ public class EventID implements DataSerializableFixedID, Serializable, Externali
     // using the client's version to ensure it gets the proper on-wire form
     // of the identifier
     // See GEODE-3072
-    if (membershipID != null && version.compareTo(Version.GEODE_1_1_0) < 0) {
+    if (membershipID != null && version.isOlderThan(Version.GEODE_1_1_0)) {
       InternalDistributedMember member = getDistributedMember(Version.GFE_90);
       // reserialize with the client's version so that we write the UUID
       // bytes
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/ExpireDisconnectedClientTransactionsMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/ExpireDisconnectedClientTransactionsMessage.java
index 32c6dc2..20c1e97 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/ExpireDisconnectedClientTransactionsMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/ExpireDisconnectedClientTransactionsMessage.java
@@ -47,7 +47,7 @@ public class ExpireDisconnectedClientTransactionsMessage
     Set newVersionRecipients = new HashSet();
     for (InternalDistributedMember recipient : recipients) {
       // to geode 1.7.0 and later version servers
-      if (recipient.getVersionObject().compareTo(Version.GEODE_1_7_0) >= 0) {
+      if (recipient.getVersionObject().isNotOlderThan(Version.GEODE_1_7_0)) {
         newVersionRecipients.add(recipient);
       }
     }
@@ -78,7 +78,7 @@ public class ExpireDisconnectedClientTransactionsMessage
     InternalDistributedMember sender = getSender();
     if (cache != null) {
       TXManagerImpl mgr = cache.getTXMgr();
-      if (sender.getVersionObject().compareTo(Version.GEODE_1_7_0) >= 0) {
+      if (sender.getVersionObject().isNotOlderThan(Version.GEODE_1_7_0)) {
         // schedule to expire disconnected client transaction.
         mgr.expireDisconnectedClientTransactions(this.txIds, false);
       } else {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
index 89d543c..89d70e0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
@@ -338,14 +338,14 @@ public class InitialImageOperation {
       final ClusterDistributionManager dm =
           (ClusterDistributionManager) this.region.getDistributionManager();
       boolean allowDeltaGII = true;
-      if (FORCE_FULL_GII || recipient.getVersionObject().compareTo(Version.GFE_80) < 0) {
+      if (FORCE_FULL_GII || recipient.getVersionObject().isOlderThan(Version.GFE_80)) {
         allowDeltaGII = false;
       }
       Set keysOfUnfinishedOps = null;
       RegionVersionVector received_rvv = null;
       RegionVersionVector remote_rvv = null;
       if (this.region.getConcurrencyChecksEnabled()
-          && recipient.getVersionObject().compareTo(Version.GFE_80) >= 0) {
+          && recipient.getVersionObject().isNotOlderThan(Version.GFE_80)) {
         if (internalBeforeRequestRVV != null
             && internalBeforeRequestRVV.getRegionName().equals(this.region.getName())) {
           internalBeforeRequestRVV.run();
@@ -746,7 +746,7 @@ public class InitialImageOperation {
           Set recipients = this.region.getCacheDistributionAdvisor().adviseReplicates();
           for (Iterator it = recipients.iterator(); it.hasNext();) {
             InternalDistributedMember mbr = (InternalDistributedMember) it.next();
-            if (mbr.getVersionObject().compareTo(Version.GFE_80) < 0) {
+            if (mbr.getVersionObject().isOlderThan(Version.GFE_80)) {
               it.remove();
             }
           }
@@ -1190,7 +1190,7 @@ public class InitialImageOperation {
         region.recordEventState(msg.getSender(), msg.eventState);
       }
       if (msg.versionVector != null
-          && msg.getSender().getVersionObject().compareTo(Version.GFE_80) < 0
+          && msg.getSender().getVersionObject().isOlderThan(Version.GFE_80)
           && region.getConcurrencyChecksEnabled()) {
         // for older version, save received rvv from RegionStateMessage
         logger.debug("Applying version vector to {}: {}", region.getName(), msg.versionVector);
@@ -1599,7 +1599,7 @@ public class InitialImageOperation {
     }
 
     public boolean goWithFullGII(DistributedRegion rgn, RegionVersionVector requesterRVV) {
-      if (getSender().getVersionObject().compareTo(Version.GFE_80) < 0) {
+      if (getSender().getVersionObject().isOlderThan(Version.GFE_80)) {
         // pre-8.0 could not handle a delta-GII
         return true;
       }
@@ -1744,7 +1744,7 @@ public class InitialImageOperation {
             if (eventState != null && eventState.size() > 0) {
               RegionStateMessage.send(dm, getSender(), this.processorId, eventState, true);
             }
-          } else if (getSender().getVersionObject().compareTo(Version.GFE_80) < 0) {
+          } else if (getSender().getVersionObject().isOlderThan(Version.GFE_80)) {
             // older versions of the product expect a RegionStateMessage at this point
             if (rgn.getConcurrencyChecksEnabled() && this.versionVector == null
                 && !recoveringForLostMember) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index 78083cf..ff6bcb5 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -4830,7 +4830,7 @@ public class PartitionedRegion extends LocalRegion
         oneBucketKeys.clear();
         oneBucketKeys.put(e.getKey(), e.getValue());
         try {
-          if (entry.getKey().getVersionObject().compareTo(Version.GFE_80) < 0) {
+          if (entry.getKey().getVersionObject().isOlderThan(Version.GFE_80)) {
             failures.putAll(nodeToBuckets.get(entry.getKey()));
             continue;
           }
@@ -4882,7 +4882,7 @@ public class PartitionedRegion extends LocalRegion
         bucketId.clear();
         bucketId.add(bucket);
         try {
-          if (entry.getKey().getVersionObject().compareTo(Version.GFE_80) < 0) {
+          if (entry.getKey().getVersionObject().isOlderThan(Version.GFE_80)) {
             failures.addAll(nodeToBuckets.get(entry.getKey()));
             continue;
           }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluator.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluator.java
index 0e4780c..a146f9a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluator.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluator.java
@@ -186,7 +186,7 @@ public class PartitionedRegionQueryEvaluator extends StreamingPartitionOperation
     // we will have to sort it
     boolean sortNeeded = false;
     List<CompiledSortCriterion> orderByAttribs = null;
-    if (sender.getVersionObject().compareTo(Version.GFE_90) < 0) {
+    if (sender.getVersionObject().isOlderThan(Version.GFE_90)) {
       CompiledSelect cs = this.query.getSimpleSelect();
       if (cs != null && cs.isOrderBy()) {
         sortNeeded = true;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java
index 2ecb0e4..21cefb2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXCommitMessage.java
@@ -954,7 +954,7 @@ public class TXCommitMessage extends PooledDistributionMessage
   }
 
   private boolean hasFlagsField(final Version version) {
-    return version.compareTo(Version.GEODE_1_7_0) >= 0;
+    return version.isNotOlderThan(Version.GEODE_1_7_0);
   }
 
   private boolean useShadowKey() {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXRegionLockRequestImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXRegionLockRequestImpl.java
index 5a600e5..5ae0e19 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXRegionLockRequestImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXRegionLockRequestImpl.java
@@ -119,7 +119,7 @@ public class TXRegionLockRequestImpl implements TXRegionLockRequest {
       if (cache != null && size > 0) {
         this.r = (LocalRegion) cache.getRegion(this.regionPath);
       }
-      if (StaticSerialization.getVersionForDataStream(in).compareTo(Version.GEODE_1_10_0) >= 0) {
+      if (StaticSerialization.getVersionForDataStream(in).isNotOlderThan(Version.GEODE_1_10_0)) {
         this.entryKeys = readEntryKeyMap(size, in);
       } else {
         this.entryKeys = readEntryKeySet(size, in);
@@ -183,7 +183,7 @@ public class TXRegionLockRequestImpl implements TXRegionLockRequest {
   @Override
   public void toData(DataOutput out) throws IOException {
     DataSerializer.writeString(getRegionFullPath(), out);
-    if (StaticSerialization.getVersionForDataStream(out).compareTo(Version.GEODE_1_10_0) >= 0) {
+    if (StaticSerialization.getVersionForDataStream(out).isNotOlderThan(Version.GEODE_1_10_0)) {
       InternalDataSerializer.writeHashMap(this.entryKeys, out);
     } else {
       HashSet hashset = new HashSet(this.entryKeys.keySet());
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 e47d492..8eca9be 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
@@ -77,7 +77,7 @@ public class FunctionRemoteContext implements DataSerializable {
     }
     this.args = DataSerializer.readObject(in);
     this.filter = (HashSet) DataSerializer.readHashSet(in);
-    if (StaticSerialization.getVersionForDataStream(in).compareTo(Version.GEODE_1_11_0) >= 0) {
+    if (StaticSerialization.getVersionForDataStream(in).isNotOlderThan(Version.GEODE_1_11_0)) {
       this.bucketArray = DataSerializer.readIntArray(in);
     } else {
       HashSet<Integer> bucketSet = DataSerializer.readHashSet(in);
@@ -95,7 +95,7 @@ public class FunctionRemoteContext implements DataSerializable {
     }
     DataSerializer.writeObject(this.args, out);
     DataSerializer.writeHashSet((HashSet) this.filter, out);
-    if (StaticSerialization.getVersionForDataStream(out).compareTo(Version.GEODE_1_11_0) >= 0) {
+    if (StaticSerialization.getVersionForDataStream(out).isNotOlderThan(Version.GEODE_1_11_0)) {
       DataSerializer.writeIntArray(this.bucketArray, out);
     } else {
       Set<Integer> bucketSet = BucketSetHelper.toSet(this.bucketArray);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/IndexCreationMsg.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/IndexCreationMsg.java
index 88d94b3..76cd5af 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/IndexCreationMsg.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/IndexCreationMsg.java
@@ -357,7 +357,7 @@ public class IndexCreationMsg extends PartitionMessage {
     }
 
     for (InternalDistributedMember rec : recipients) {
-      if (rec.getVersionObject().compareTo(Version.GFE_81) < 0) {
+      if (rec.getVersionObject().isOlderThan(Version.GFE_81)) {
         throw new UnsupportedOperationException(
             "Indexes should not be created during rolling upgrade");
       }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
index 6b53958..af54788 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/PartitionMessage.java
@@ -541,7 +541,7 @@ public abstract class PartitionMessage extends DistributionMessage
     setBooleans(this.flags, in, context);
     this.regionId = in.readInt();
     // extra field post 9.0
-    if (StaticSerialization.getVersionForDataStream(in).compareTo(Version.GFE_90) >= 0) {
+    if (StaticSerialization.getVersionForDataStream(in).isNotOlderThan(Version.GFE_90)) {
       this.isTransactionDistributed = in.readBoolean();
     }
   }
@@ -585,7 +585,7 @@ public abstract class PartitionMessage extends DistributionMessage
       context.getSerializer().writeObject(this.txMemberId, out);
     out.writeInt(this.regionId);
     // extra field post 9.0
-    if (StaticSerialization.getVersionForDataStream(out).compareTo(Version.GFE_90) >= 0) {
+    if (StaticSerialization.getVersionForDataStream(out).isNotOlderThan(Version.GFE_90)) {
       out.writeBoolean(this.isTransactionDistributed);
     }
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/QueryMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/QueryMessage.java
index 1566ba4..3b5310d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/QueryMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/QueryMessage.java
@@ -123,7 +123,7 @@ public class QueryMessage extends StreamingPartitionOperation.StreamingPartition
       }
     }
     Object data = this.currentResultIterator.next();
-    boolean isPostGFE_8_1 = this.getSender().getVersionObject().compareTo(Version.GFE_81) > 0;
+    boolean isPostGFE_8_1 = this.getSender().getVersionObject().isNewerThan(Version.GFE_81);
 
     // There is a bug in older versions of GFE such that the query node expects the structs to have
     // type as ObjectTypes only & not specific types. So the new version needs to send the
@@ -190,7 +190,7 @@ public class QueryMessage extends StreamingPartitionOperation.StreamingPartition
         logger.debug("Started executing query from remote node: {}", query.getQueryString());
       }
       isQueryTraced =
-          query.isTraced() && this.sender.getVersionObject().compareTo(Version.GFE_81) >= 0;
+          query.isTraced() && this.sender.getVersionObject().isNotOlderThan(Version.GFE_81);
 
       // Adds a query trace info object to the results list for remote queries
       PRQueryTraceInfo queryTraceInfo = null;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java
index f2c5292..b68bc94 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommand.java
@@ -215,7 +215,7 @@ public abstract class BaseCommand implements Command {
    */
   protected boolean shouldMasqueradeForTx(Message clientMessage,
       ServerConnection serverConnection) {
-    return serverConnection.getClientVersion().compareTo(Version.GFE_66) >= 0
+    return serverConnection.getClientVersion().isNotOlderThan(Version.GFE_66)
         && clientMessage.getTransactionId() > TXManagerImpl.NOTX;
   }
 
@@ -901,7 +901,7 @@ public abstract class BaseCommand implements Command {
       sendRegisterInterestResponseChunk(region, riKey, new ArrayList(), true, servConn);
       return;
     }
-    if (policy.isKeysValues() && servConn.getClientVersion().compareTo(Version.GFE_80) >= 0) {
+    if (policy.isKeysValues() && servConn.getClientVersion().isNotOlderThan(Version.GFE_80)) {
       handleKeysValuesPolicy(region, riKey, interestType, serializeValues, servConn);
       return;
     }
@@ -1018,7 +1018,7 @@ public abstract class BaseCommand implements Command {
   private static boolean sendTombstonesInRIResults(ServerConnection servConn,
       InterestResultPolicy policy) {
     return policy == InterestResultPolicy.KEYS_VALUES
-        && servConn.getClientVersion().compareTo(Version.GFE_80) >= 0;
+        && servConn.getClientVersion().isNotOlderThan(Version.GFE_80);
   }
 
   /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommandQuery.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommandQuery.java
index cadef11..6ba9d9f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommandQuery.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/BaseCommandQuery.java
@@ -97,7 +97,7 @@ public abstract class BaseCommandQuery extends BaseCommand {
 
     // from 7.0, set flag to indicate a remote query irrespective of the
     // object type
-    if (servConn.getClientVersion().compareTo(Version.GFE_70) >= 0) {
+    if (servConn.getClientVersion().isNotOlderThan(Version.GFE_70)) {
       ((DefaultQuery) query).setRemoteQuery(true);
     }
     // Process the query request
@@ -310,7 +310,7 @@ public abstract class BaseCommandQuery extends BaseCommand {
 
   private boolean sendCqResultsWithKey(ServerConnection servConn) {
     Version clientVersion = servConn.getClientVersion();
-    if (clientVersion.compareTo(Version.GFE_65) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_65)) {
       return true;
     }
     return false;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifier.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifier.java
index cedc40f..fff2bb2 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifier.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifier.java
@@ -683,7 +683,7 @@ public class CacheClientNotifier {
       Object[] objects = filterClients.toArray();
       for (Object id : objects) {
         CacheClientProxy ccp = getClientProxy((ClientProxyMembershipID) id, true);
-        if (ccp != null && ccp.getVersion().compareTo(Version.GFE_70) < 0) {
+        if (ccp != null && ccp.getVersion().isOlderThan(Version.GFE_70)) {
           filterClients.remove(id);
         }
       }
@@ -1864,7 +1864,7 @@ public class CacheClientNotifier {
         for (CacheClientProxy proxy : getClientProxies()) {
           logger.debug("Checking whether to ping {}", proxy);
           // Ping clients whose version is GE 6.6.2.2
-          if (proxy.getVersion().compareTo(Version.GFE_6622) >= 0) {
+          if (proxy.getVersion().isNotOlderThan(Version.GFE_6622)) {
             // Send the ping message directly to the client. Do not qo through
             // the queue. If the queue were used, the secondary connection would
             // not be pinged. Instead, pings would just build up in secondary
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java
index 92ed3f4..a1250a9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ChunkedMessage.java
@@ -152,7 +152,7 @@ public class ChunkedMessage extends Message {
   public void setLastChunkAndNumParts(boolean lastChunk, int numParts) {
     setLastChunk(lastChunk);
     if (this.serverConnection != null
-        && this.serverConnection.getClientVersion().compareTo(Version.GFE_65) >= 0) {
+        && this.serverConnection.getClientVersion().isNotOlderThan(Version.GFE_65)) {
       // we us e three bits for number of parts in last chunk byte
       // we us e three bits for number of parts in last chunk byte
       byte localLastChunk = (byte) (numParts << 5);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
index 2936903..5ac329f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientDataSerializerMessage.java
@@ -65,9 +65,9 @@ public class ClientDataSerializerMessage extends ClientUpdateMessageImpl {
    */
   @Override
   protected Message getMessage(CacheClientProxy proxy, byte[] latestValue) throws IOException {
-    if (proxy.getVersion().compareTo(Version.GFE_6516) >= 0) {
+    if (proxy.getVersion().isNotOlderThan(Version.GFE_6516)) {
       return getGFE6516Message(proxy.getVersion());
-    } else if (proxy.getVersion().compareTo(Version.GFE_57) >= 0) {
+    } else if (proxy.getVersion().isNotOlderThan(Version.GFE_57)) {
       return getGFEMessage(proxy.getVersion());
     } else {
       throw new IOException("Unsupported client version for server-to-client message creation: "
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
index 4d791b1..79cc29f 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInstantiatorMessage.java
@@ -108,7 +108,7 @@ public class ClientInstantiatorMessage extends ClientUpdateMessageImpl {
   protected Message getMessage(CacheClientProxy proxy, byte[] latestValue) throws IOException {
     Version clientVersion = proxy.getVersion();
     Message message = null;
-    if (clientVersion.compareTo(Version.GFE_57) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_57)) {
       message = getGFEMessage(proxy.getProxyID(), null, clientVersion);
     } else {
       throw new IOException(
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
index a482745..02c9d08 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestMessageImpl.java
@@ -137,7 +137,7 @@ public class ClientInterestMessageImpl implements ClientMessage {
   public Message getMessage(CacheClientProxy proxy, boolean notify) throws IOException {
     Version clientVersion = proxy.getVersion();
     Message message = null;
-    if (clientVersion.compareTo(Version.GFE_57) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_57)) {
       message = getGFEMessage();
     } else {
       throw new IOException(
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientMarkerMessageImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientMarkerMessageImpl.java
index c45acc4..03f9ba4 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientMarkerMessageImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientMarkerMessageImpl.java
@@ -61,7 +61,7 @@ public class ClientMarkerMessageImpl implements ClientMessage {
   public Message getMessage(CacheClientProxy proxy, boolean notify) throws IOException {
     Version clientVersion = proxy.getVersion();
     Message message = null;
-    if (clientVersion.compareTo(Version.GFE_57) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_57)) {
       message = getGFEMessage();
     } else {
       throw new IOException(
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientPingMessageImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientPingMessageImpl.java
index 4ac21ae..9d42deb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientPingMessageImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientPingMessageImpl.java
@@ -45,7 +45,7 @@ public class ClientPingMessageImpl implements ClientMessage {
   public Message getMessage(CacheClientProxy proxy, boolean notify) throws IOException {
     Version clientVersion = proxy.getVersion();
     Message message = null;
-    if (clientVersion.compareTo(Version.GFE_6622) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_6622)) {
       message = getGFEMessage();
     } else {
       throw new IOException(
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyMembershipID.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyMembershipID.java
index a56af37..6602a9d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyMembershipID.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyMembershipID.java
@@ -370,7 +370,7 @@ public class ClientProxyMembershipID
   private String getMemberIdAsString() {
     String memberIdAsString = null;
     InternalDistributedMember idm = (InternalDistributedMember) getDistributedMember();
-    if (getClientVersion().compareTo(Version.GFE_90) < 0) {
+    if (getClientVersion().isOlderThan(Version.GFE_90)) {
       memberIdAsString = idm.toString();
     } else {
       StringBuilder sb = new StringBuilder();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientRegistrationMetadata.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientRegistrationMetadata.java
index 36728f7..7e8c7e4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientRegistrationMetadata.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientRegistrationMetadata.java
@@ -152,7 +152,7 @@ class ClientRegistrationMetadata {
   }
 
   private boolean doesClientSupportExtractOverrides() {
-    return clientVersion.compareTo(Version.GFE_603) >= 0;
+    return clientVersion.isNotOlderThan(Version.GFE_603);
   }
 
   private boolean oldClientRequiresVersionedStreams(final Version clientVersion) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java
index 1558409..5042d45 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientUpdateMessageImpl.java
@@ -374,13 +374,13 @@ public class ClientUpdateMessageImpl implements ClientUpdateMessage, Sizeable, N
         this._value = serializedValue = CacheServerHelper.serialize(latestValue);
       }
     }
-    if (clientVersion.compareTo(Version.GFE_70) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_70)) {
       message = getGFE70Message(proxy, serializedValue, conflation, clientVersion);
-    } else if (clientVersion.compareTo(Version.GFE_65) >= 0) {
+    } else if (clientVersion.isNotOlderThan(Version.GFE_65)) {
       message = getGFE65Message(proxy, serializedValue, conflation, clientVersion);
-    } else if (clientVersion.compareTo(Version.GFE_61) >= 0) {
+    } else if (clientVersion.isNotOlderThan(Version.GFE_61)) {
       message = getGFE61Message(proxy, serializedValue, conflation, clientVersion);
-    } else if (clientVersion.compareTo(Version.GFE_57) >= 0) {
+    } else if (clientVersion.isNotOlderThan(Version.GFE_57)) {
       message = getGFEMessage(proxy.getProxyID(), latestValue, clientVersion);
     } else {
       throw new IOException(
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java
index 899b182..91b1496 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java
@@ -137,7 +137,7 @@ public class MessageDispatcher extends LoggingThread {
       ((HAContainerWrapper) proxy._cacheClientNotifier.getHaContainer())
           .putProxy(HARegionQueue.createRegionName(getProxy().getHARegionName()), getProxy());
       boolean createDurableQueue = proxy.proxyID.isDurable();
-      boolean canHandleDelta = (proxy.getClientVersion().compareTo(Version.GFE_61) >= 0)
+      boolean canHandleDelta = (proxy.getClientVersion().isNotOlderThan(Version.GFE_61))
           && InternalDistributedSystem.getAnyInstance().getConfig().getDeltaPropagation()
           && !(this._proxy.clientConflation == Handshake.CONFLATION_ON);
       if ((createDurableQueue || canHandleDelta) && logger.isDebugEnabled()) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
index dbaade3..1cfdad0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java
@@ -362,7 +362,7 @@ public abstract class ServerConnection implements Runnable {
 
         setHandshake(readHandshake);
         setProxyId(readHandshake.getMembershipId());
-        if (readHandshake.getVersion().compareTo(Version.GFE_65) < 0
+        if (readHandshake.getVersion().isOlderThan(Version.GFE_65)
             || getCommunicationMode().isWAN()) {
           try {
             setAuthAttributes();
@@ -1125,7 +1125,7 @@ public abstract class ServerConnection implements Runnable {
   public Part updateAndGetSecurityPart() {
     // need to take care all message types here
     if (AcceptorImpl.isAuthenticationRequired()
-        && handshake.getVersion().compareTo(Version.GFE_65) >= 0
+        && handshake.getVersion().isNotOlderThan(Version.GFE_65)
         && !communicationMode.isWAN() && !requestMessage.getAndResetIsMetaRegion()
         && !isInternalMessage(requestMessage, allowInternalMessagesWithoutCredentials)) {
       setSecurityPart();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeFactory.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeFactory.java
index b888a40..31c22e0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeFactory.java
@@ -49,7 +49,7 @@ class ServerSideHandshakeFactory {
       logger.debug("Client version: {}", clientVersion);
     }
 
-    if (clientVersion.compareTo(Version.GFE_57) < 0) {
+    if (clientVersion.isOlderThan(Version.GFE_57)) {
       throw new UnsupportedVersionException("Unsupported version " + clientVersion
           + "Server's current version " + currentServerVersion);
     }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
index 92de171..e77d2ae 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
@@ -85,7 +85,7 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
         DataInputStream dataInputStream = new DataInputStream(inputStream);
         DataOutputStream dataOutputStream = new DataOutputStream(sock.getOutputStream());
         this.clientReadTimeout = dataInputStream.readInt();
-        if (clientVersion.compareTo(Version.CURRENT) < 0) {
+        if (clientVersion.isOlderThan(Version.CURRENT)) {
           // versioned streams allow object serialization code to deal with older clients
           dataInputStream = new VersionedDataInputStream(dataInputStream, clientVersion);
           dataOutputStream =
@@ -94,12 +94,12 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
         this.id = ClientProxyMembershipID.readCanonicalized(dataInputStream);
         // Note: credentials should always be the last piece in handshake for
         // Diffie-Hellman key exchange to work
-        if (clientVersion.compareTo(Version.GFE_603) >= 0) {
+        if (clientVersion.isNotOlderThan(Version.GFE_603)) {
           setOverrides(new byte[] {dataInputStream.readByte()});
         } else {
           setClientConflation(dataInputStream.readByte());
         }
-        if (this.clientVersion.compareTo(Version.GFE_65) < 0 || communicationMode.isWAN()) {
+        if (this.clientVersion.isOlderThan(Version.GFE_65) || communicationMode.isWAN()) {
           this.credentials =
               readCredentials(dataInputStream, dataOutputStream, sys, this.securityService);
         } else {
@@ -133,7 +133,7 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
       int queueSize, CommunicationMode communicationMode, Principal principal) throws IOException {
     DataOutputStream dos = new DataOutputStream(out);
     DataInputStream dis;
-    if (clientVersion.compareTo(Version.CURRENT) < 0) {
+    if (clientVersion.isOlderThan(Version.CURRENT)) {
       dis = new VersionedDataInputStream(in, clientVersion);
       dos = new VersionedDataOutputStream(dos, clientVersion);
     } else {
@@ -171,7 +171,7 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
     dos.writeUTF("");
 
     // Write delta-propagation property value if this is not WAN.
-    if (!communicationMode.isWAN() && this.clientVersion.compareTo(Version.GFE_61) >= 0) {
+    if (!communicationMode.isWAN() && this.clientVersion.isNotOlderThan(Version.GFE_61)) {
       dos.writeBoolean(((InternalDistributedSystem) this.system).getConfig().getDeltaPropagation());
     }
 
@@ -183,14 +183,14 @@ public class ServerSideHandshakeImpl extends Handshake implements ServerSideHand
 
     // Write the distributed system id if this is a 6.6 or greater client
     // on the remote side of the gateway
-    if (communicationMode.isWAN() && this.clientVersion.compareTo(Version.GFE_66) >= 0
-        && currentServerVersion.compareTo(Version.GFE_66) >= 0) {
+    if (communicationMode.isWAN() && this.clientVersion.isNotOlderThan(Version.GFE_66)
+        && currentServerVersion.isNotOlderThan(Version.GFE_66)) {
       dos.writeByte(((InternalDistributedSystem) this.system).getDistributionManager()
           .getDistributedSystemId());
     }
 
-    if ((communicationMode.isWAN()) && this.clientVersion.compareTo(Version.GFE_80) >= 0
-        && currentServerVersion.compareTo(Version.GFE_80) >= 0) {
+    if ((communicationMode.isWAN()) && this.clientVersion.isNotOlderThan(Version.GFE_80)
+        && currentServerVersion.isNotOlderThan(Version.GFE_80)) {
       int pdxSize = PeerTypeRegistration.getPdxRegistrySize();
       dos.writeInt(pdxSize);
     }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SocketMessageWriter.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SocketMessageWriter.java
index b876116..a18b750 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SocketMessageWriter.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/SocketMessageWriter.java
@@ -45,7 +45,7 @@ public class SocketMessageWriter {
       msg = "";
     }
     dos.writeUTF(msg);
-    if (clientVersion != null && clientVersion.compareTo(Version.GFE_61) >= 0) {
+    if (clientVersion != null && clientVersion.isNotOlderThan(Version.GFE_61)) {
       // get all the instantiators.
       Instantiator[] instantiators = InternalInstantiator.getInstantiators();
       HashMap instantiatorMap = new HashMap();
@@ -68,7 +68,7 @@ public class SocketMessageWriter {
         for (DataSerializer dataSerializer : dataSerializers) {
           dataSerializersMap.put(dataSerializer.getId(),
               dataSerializer.getClass().toString().substring(6));
-          if (clientVersion.compareTo(Version.GFE_6516) >= 0) {
+          if (clientVersion.isNotOlderThan(Version.GFE_6516)) {
             ArrayList<String> supportedClassNames = new ArrayList<String>();
             for (Class clazz : dataSerializer.getSupportedClasses()) {
               supportedClassNames.add(clazz.getName());
@@ -78,10 +78,10 @@ public class SocketMessageWriter {
         }
       }
       DataSerializer.writeHashMap(dataSerializersMap, dos);
-      if (clientVersion.compareTo(Version.GFE_6516) >= 0) {
+      if (clientVersion.isNotOlderThan(Version.GFE_6516)) {
         DataSerializer.writeHashMap(dsToSupportedClasses, dos);
       }
-      if (clientVersion.compareTo(Version.GEODE_1_5_0) >= 0) {
+      if (clientVersion.isNotOlderThan(Version.GEODE_1_5_0)) {
         dos.writeInt(CLIENT_PING_TASK_PERIOD);
       }
     }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/CloseConnection.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/CloseConnection.java
index 5439d44..27f94f6 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/CloseConnection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/CloseConnection.java
@@ -43,7 +43,7 @@ public class CloseConnection extends BaseCommand {
       final SecurityService securityService, long start) throws IOException {
     CacheServerStats stats = serverConnection.getCacheServerStats();
     long oldStart = start;
-    boolean respondToClient = serverConnection.getClientVersion().compareTo(Version.GFE_90) >= 0;
+    boolean respondToClient = serverConnection.getClientVersion().isNotOlderThan(Version.GFE_90);
     start = DistributionStats.getStatTime();
     stats.incReadCloseConnectionRequestTime(start - oldStart);
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GatewayReceiverCommand.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GatewayReceiverCommand.java
index 0497c2c..df6f5f6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GatewayReceiverCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GatewayReceiverCommand.java
@@ -802,7 +802,7 @@ public class GatewayReceiverCommand extends BaseCommand {
     // For older gateway senders, we need to send back an exception
     // they can deserialize.
     if ((servConn.getClientVersion() == null
-        || servConn.getClientVersion().compareTo(Version.GFE_80) < 0)
+        || servConn.getClientVersion().isOlderThan(Version.GFE_80))
         && exception instanceof PdxRegistryMismatchException) {
       PdxConfigurationException newException =
           new PdxConfigurationException(exception.getMessage());
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Put65.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Put65.java
index 89a6d37..a6f3f97 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Put65.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/Put65.java
@@ -310,7 +310,7 @@ public class Put65 extends BaseCommand {
           oldValue = ((CachedDeserializable) oldValue).getSerializedValue();
         } else if (oldValue instanceof byte[]) {
           oldValueIsObject = false;
-        } else if ((oldValue instanceof Token) && clientVersion.compareTo(Version.GFE_651) <= 0) {
+        } else if ((oldValue instanceof Token) && clientVersion.isNotNewerThan(Version.GFE_651)) {
           // older clients don't know that Token is now a DSFID class, so we
           // put the token in a serialized form they can consume
           HeapDataOutputStream str = new HeapDataOutputStream(Version.CURRENT);
@@ -344,7 +344,7 @@ public class Put65 extends BaseCommand {
             oldValue = ((CachedDeserializable) oldValue).getSerializedValue();
           } else if (oldValue instanceof byte[]) {
             oldValueIsObject = false;
-          } else if ((oldValue instanceof Token) && clientVersion.compareTo(Version.GFE_651) <= 0) {
+          } else if ((oldValue instanceof Token) && clientVersion.isNotNewerThan(Version.GFE_651)) {
             // older clients don't know that Token is now a DSFID class, so we
             // put the token in a serialized form they can consume
             HeapDataOutputStream str = new HeapDataOutputStream(Version.CURRENT);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterest61.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterest61.java
index 2ad455c..2b651c8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterest61.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterest61.java
@@ -105,7 +105,7 @@ public class RegisterInterest61 extends BaseCommand {
     try {
       Part regionDataPolicyPart = clientMessage.getPart(clientMessage.getNumberOfParts() - 1);
       regionDataPolicyPartBytes = (byte[]) regionDataPolicyPart.getObject();
-      if (serverConnection.getClientVersion().compareTo(Version.GFE_80) >= 0) {
+      if (serverConnection.getClientVersion().isNotOlderThan(Version.GFE_80)) {
         // The second byte here is serializeValues
         serializeValues = regionDataPolicyPartBytes[1] == (byte) 0x01;
       }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterestList66.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterestList66.java
index 49a6111..4766bfe 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterestList66.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RegisterInterestList66.java
@@ -97,7 +97,7 @@ public class RegisterInterestList66 extends BaseCommand {
     try {
       Part regionDataPolicyPart = clientMessage.getPart(clientMessage.getNumberOfParts() - 1);
       regionDataPolicyPartBytes = (byte[]) regionDataPolicyPart.getObject();
-      if (serverConnection.getClientVersion().compareTo(Version.GFE_80) >= 0) {
+      if (serverConnection.getClientVersion().isNotOlderThan(Version.GFE_80)) {
         // The second byte here is serializeValues
         serializeValues = regionDataPolicyPartBytes[1] == (byte) 0x01;
       }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java b/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
index 4f1abb3..045ab2c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/versions/VersionTag.java
@@ -417,7 +417,7 @@ public abstract class VersionTag<T extends VersionSource>
         try {
           this.previousMemberID = readMember(in);
         } catch (BufferUnderflowException e) {
-          if (context.getSerializationVersion().compareTo(Version.GEODE_1_11_0) < 0) {
+          if (context.getSerializationVersion().isOlderThan(Version.GEODE_1_11_0)) {
             // GEODE-7219: older versions may report HAS_PREVIOUS_MEMBER_ID but not transmit it
             logger.info("Buffer underflow encountered while reading a version tag - ignoring");
           } else {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java
index 118ec78..0a9e3c7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderAdvisor.java
@@ -557,7 +557,7 @@ public class GatewaySenderAdvisor extends DistributionAdvisor {
       this.senderEventListenerClassNames = DataSerializer.readArrayList(in);
       this.isDiskSynchronous = in.readBoolean();
       this.dispatcherThreads = in.readInt();
-      if (StaticSerialization.getVersionForDataStream(in).compareTo(Version.GFE_90) < 0) {
+      if (StaticSerialization.getVersionForDataStream(in).isOlderThan(Version.GFE_90)) {
         Gateway.OrderPolicy oldOrderPolicy = DataSerializer.readObject(in);
         if (oldOrderPolicy != null) {
           if (oldOrderPolicy.name().equals(OrderPolicy.KEY.name())) {
@@ -599,7 +599,7 @@ public class GatewaySenderAdvisor extends DistributionAdvisor {
       DataSerializer.writeArrayList(senderEventListenerClassNames, out);
       out.writeBoolean(isDiskSynchronous);
       out.writeInt(dispatcherThreads);
-      if (StaticSerialization.getVersionForDataStream(out).compareTo(Version.GFE_90) < 0
+      if (StaticSerialization.getVersionForDataStream(out).isOlderThan(Version.GFE_90)
           && this.orderPolicy != null) {
         String orderPolicyName = this.orderPolicy.name();
         if (orderPolicyName.equals(Gateway.OrderPolicy.KEY.name())) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java b/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
index 48bd1b5..e3e6673 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
@@ -2813,7 +2813,7 @@ public class Connection implements Runnable {
       remoteVersion = Version.readVersion(dis, true);
       int dominoNumber = 0;
       if (remoteVersion == null
-          || remoteVersion.compareTo(Version.GFE_80) >= 0) {
+          || remoteVersion.isNotOlderThan(Version.GFE_80)) {
         dominoNumber = dis.readInt();
         if (sharedResource) {
           dominoNumber = 0;
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java
index c9af54d..616915b 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/domain/Configuration.java
@@ -186,7 +186,7 @@ public class Configuration implements DataSerializable {
     } else {
       // version of the data we are reading (1.12 or later)
       Version version = Version.fromOrdinalNoThrow(Version.readOrdinal(in), true);
-      if (version.compareTo(Version.GEODE_1_12_0) >= 0) {
+      if (version.isNotOlderThan(Version.GEODE_1_12_0)) {
         deployments.putAll(DataSerializer.readHashMap(in));
       }
     }
diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxField.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxField.java
index 77b1618..5ea3700 100644
--- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxField.java
+++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxField.java
@@ -173,7 +173,7 @@ public class PdxField implements DataSerializable, Comparable<PdxField> {
       // For this reason the pdx delete-field command should only be used after
       // all member have been upgraded to 8.1 or later.
       Version sourceVersion = StaticSerialization.getVersionForDataStream(out);
-      if (sourceVersion.compareTo(Version.GFE_81) >= 0) {
+      if (sourceVersion.isNotOlderThan(Version.GFE_81)) {
         if (this.deleted) {
           bits |= DELETED_BIT;
         }
diff --git a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxType.java b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxType.java
index 474ce7e..0fc2daa 100644
--- a/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxType.java
+++ b/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxType.java
@@ -135,7 +135,7 @@ public class PdxType implements DataSerializable {
       // For this reason the pdx delete-field command should only be used after
       // all member have been upgraded to 8.1 or later.
       Version sourceVersion = StaticSerialization.getVersionForDataStream(out);
-      if (sourceVersion.compareTo(Version.GFE_81) >= 0) {
+      if (sourceVersion.isNotOlderThan(Version.GFE_81)) {
         if (this.hasDeletedField) {
           bits |= HAS_DELETED_FIELD_BIT;
         }
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberIdentifierImpl.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberIdentifierImpl.java
index 2b6e1dc..e521751 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberIdentifierImpl.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberIdentifierImpl.java
@@ -895,7 +895,7 @@ public class MemberIdentifierImpl implements MemberIdentifier, DataSerializableF
         .setUniqueTag(uniqueTag)
         .build();
 
-    if (StaticSerialization.getVersionForDataStream(in).compareTo(Version.GFE_90) == 0) {
+    if (StaticSerialization.getVersionForDataStream(in) == Version.GFE_90) {
       memberData.readAdditionalData(in);
     }
   }
@@ -926,8 +926,8 @@ public class MemberIdentifierImpl implements MemberIdentifier, DataSerializableF
     StaticSerialization.writeString(memberData.getName(), out);
 
     Version outputVersion = StaticSerialization.getVersionForDataStream(out);
-    if (0 <= outputVersion.compareTo(Version.GFE_90)
-        && outputVersion.compareTo(Version.GEODE_1_1_0) < 0) {
+    if (outputVersion.isOlderThan(Version.GEODE_1_1_0)
+        && outputVersion.isNotOlderThan(Version.GFE_90)) {
       memberData.writeAdditionalData(out);
     }
   }
diff --git a/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java b/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java
index 359a08f..f8dc5b4 100644
--- a/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java
+++ b/geode-old-client-support/src/main/java/com/gemstone/gemfire/OldClientSupportProvider.java
@@ -108,7 +108,7 @@ public class OldClientSupportProvider implements OldClientSupportService {
     if (out instanceof VersionedDataOutputStream) {
       VersionedDataOutputStream vout = (VersionedDataOutputStream) out;
       Version version = vout.getVersion();
-      if (version != null && version.compareTo(Version.GFE_90) < 0) {
+      if (version != null && version.isOlderThan(Version.GFE_90)) {
         return processClassName(name, GEODE, GEMFIRE, newClassNamesToOld);
       }
     }
@@ -121,7 +121,7 @@ public class OldClientSupportProvider implements OldClientSupportService {
     if (theThrowable == null) {
       return theThrowable;
     }
-    if (clientVersion.compareTo(Version.GFE_90) >= 0) {
+    if (clientVersion.isNotOlderThan(Version.GFE_90)) {
       return theThrowable;
     }
 
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 f49c923..09cd401 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
@@ -638,4 +638,45 @@ public class Version implements Comparable<Version> {
   public boolean isCurrentVersion() {
     return this.ordinal == CURRENT.ordinal;
   }
+
+  /**
+   * Test if this version is older than given version.
+   *
+   * @param version to compare to this version
+   * @return true if this is older than version, otherwise false.
+   */
+  public final boolean isOlderThan(final Version version) {
+    return compareTo(version) < 0;
+  }
+
+  /**
+   * Test if this version is not older than given version.
+   *
+   * @param version to compare to this version
+   * @return true if this is the same version or newer, otherwise false.
+   */
+  public final boolean isNotOlderThan(final Version version) {
+    return compareTo(version) >= 0;
+  }
+
+  /**
+   * Test if this version is newer than given version.
+   *
+   * @param version to compare to this version
+   * @return true if this is newer than version, otherwise false.
+   */
+  public final boolean isNewerThan(final Version version) {
+    return compareTo(version) > 0;
+  }
+
+  /**
+   * Test if this version is not newer than given version.
+   *
+   * @param version to compare to this version
+   * @return true if this is the same version or older, otherwise false.
+   */
+  public final boolean isNotNewerThan(final Version version) {
+    return compareTo(version) <= 0;
+  }
+
 }
diff --git a/geode-serialization/src/test/java/org/apache/geode/internal/serialization/VersionJUnitTest.java b/geode-serialization/src/test/java/org/apache/geode/internal/serialization/VersionJUnitTest.java
index 5b610c1..c64db78 100644
--- a/geode-serialization/src/test/java/org/apache/geode/internal/serialization/VersionJUnitTest.java
+++ b/geode-serialization/src/test/java/org/apache/geode/internal/serialization/VersionJUnitTest.java
@@ -42,6 +42,9 @@ public class VersionJUnitTest {
     compare(Version.GEODE_1_9_0, Version.GEODE_1_8_0);
     compare(Version.GEODE_1_10_0, Version.GEODE_1_9_0);
     compare(Version.GEODE_1_11_0, Version.GEODE_1_10_0);
+    compare(Version.GEODE_1_12_0, Version.GEODE_1_11_0);
+    compare(Version.GEODE_1_13_0, Version.GEODE_1_12_0);
+    compare(Version.GEODE_1_14_0, Version.GEODE_1_13_0);
   }
 
   private void compare(Version later, Version earlier) {
@@ -53,6 +56,30 @@ public class VersionJUnitTest {
     assertTrue(later.compareTo(earlier.ordinal()) > 0);
     assertTrue(later.compareTo(later.ordinal()) == 0);
     assertTrue(earlier.compareTo(later.ordinal()) < 0);
+
+    compareNewerVsOlder(later, earlier);
+  }
+
+  private void compareNewerVsOlder(Version newer, Version older) {
+    assertTrue(older.isOlderThan(newer));
+    assertFalse(newer.isOlderThan(older));
+    assertFalse(newer.isOlderThan(newer));
+    assertFalse(older.isOlderThan(older));
+
+    assertTrue(older.isNotOlderThan(older));
+    assertFalse(older.isNotOlderThan(newer));
+    assertTrue(newer.isNotOlderThan(newer));
+    assertTrue(newer.isNotOlderThan(older));
+
+    assertTrue(newer.isNewerThan(older));
+    assertFalse(older.isNewerThan(newer));
+    assertFalse(newer.isNewerThan(newer));
+    assertFalse(older.isNewerThan(older));
+
+    assertTrue(older.isNotNewerThan(older));
+    assertTrue(older.isNotNewerThan(newer));
+    assertTrue(newer.isNotNewerThan(newer));
+    assertFalse(newer.isNotNewerThan(older));
   }
 
   @Test
@@ -68,4 +95,5 @@ public class VersionJUnitTest {
       throws UnsupportedSerializationVersionException {
     Version.fromOrdinal(Version.CURRENT_ORDINAL);
   }
+
 }