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 2022/04/29 19:56:27 UTC

[geode-native] branch develop updated: GEODE-10259: Update protocol ordinal to 1.14.0 (125) (#962)

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-native.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2c931caf0 GEODE-10259: Update protocol ordinal to 1.14.0 (125) (#962)
2c931caf0 is described below

commit 2c931caf082ddd0854027df1e980d3c3f12ed6db
Author: Jacob Barrett <jb...@pivotal.io>
AuthorDate: Fri Apr 29 12:56:22 2022 -0700

    GEODE-10259: Update protocol ordinal to 1.14.0 (125) (#962)
    
    * Fixes ClientProxyMembershipID for 1.1.0+
    * Fixes TcrConnection for 1.5.0+
    * Fixes TXCommitMessage for 1.7.0+
    * Updated ClientHealthStats for 1.9.0+
    * Updated QueueConnectionRequestTest for 1.14.0+
---
 .../geode/internal/DataSerializableFixedId.hpp     |   2 +-
 cppcache/integration/test/PdxJsonTypeTest.cpp      |   3 +-
 cppcache/src/CacheImpl.cpp                         |   1 -
 cppcache/src/ClientHealthStats.cpp                 |  70 ++++++------
 cppcache/src/ClientHealthStats.hpp                 |  51 +++++----
 cppcache/src/ClientProxyMembershipID.cpp           | 118 ++++++++++-----------
 cppcache/src/ClientProxyMembershipID.hpp           |  63 +++++------
 cppcache/src/ClientProxyMembershipIDFactory.cpp    |   1 +
 cppcache/src/ClientProxyMembershipIDFactory.hpp    |   6 +-
 cppcache/src/EventId.cpp                           |   1 -
 cppcache/src/QueueConnectionRequest.cpp            |   9 +-
 cppcache/src/QueueConnectionRequest.hpp            |   6 +-
 cppcache/src/TXCommitMessage.cpp                   |  28 ++---
 cppcache/src/TXCommitMessage.hpp                   |  24 +++--
 cppcache/src/TcrConnection.cpp                     |   4 +-
 cppcache/src/TcrMessage.cpp                        |   4 +-
 cppcache/src/ThinClientLocatorHelper.hpp           |   2 +-
 cppcache/src/ThinClientPoolDM.cpp                  |   3 +-
 cppcache/src/Version.hpp                           |   2 +-
 cppcache/src/VersionStamp.hpp                      |   1 -
 cppcache/src/statistics/HostStatSampler.cpp        |   3 +-
 cppcache/src/statistics/PoolStatsSampler.cpp       |   3 +-
 cppcache/test/ClientProxyMembershipIDTest.cpp      |   2 +-
 cppcache/test/QueueConnectionRequestTest.cpp       |   3 +-
 tests/javaobject/QueryFunction.java                |  18 +---
 25 files changed, 204 insertions(+), 224 deletions(-)

diff --git a/cppcache/include/geode/internal/DataSerializableFixedId.hpp b/cppcache/include/geode/internal/DataSerializableFixedId.hpp
index 9482e640c..60fb5a1f5 100644
--- a/cppcache/include/geode/internal/DataSerializableFixedId.hpp
+++ b/cppcache/include/geode/internal/DataSerializableFixedId.hpp
@@ -48,7 +48,7 @@ template <DSFid _DSFID>
 class APACHE_GEODE_EXPORT DataSerializableFixedId_t
     : public DataSerializableFixedId {
  public:
-  ~DataSerializableFixedId_t() override = default;
+  ~DataSerializableFixedId_t() noexcept override = default;
 
   DSFid getDSFID() const final { return _DSFID; }
 };
diff --git a/cppcache/integration/test/PdxJsonTypeTest.cpp b/cppcache/integration/test/PdxJsonTypeTest.cpp
index d7e2601f8..9c7917849 100644
--- a/cppcache/integration/test/PdxJsonTypeTest.cpp
+++ b/cppcache/integration/test/PdxJsonTypeTest.cpp
@@ -101,8 +101,7 @@ TEST(PdxJsonTypeTest, testGfshQueryJsonInstances) {
               cache.createPdxInstanceFactory(gemfireJsonClassName)
                   .writeString("entryName", "java-domain-class-entry")
                   .create());
-  ASSERT_THROW(execution.withArgs(query).execute("QueryFunction"),
-               CacheServerException);
+  ASSERT_NO_THROW(execution.withArgs(query).execute("QueryFunction"));
 }
 
 TEST(PdxJsonTypeTest, testCreateTwoJsonInstances) {
diff --git a/cppcache/src/CacheImpl.cpp b/cppcache/src/CacheImpl.cpp
index b9e579343..3e8d3546b 100644
--- a/cppcache/src/CacheImpl.cpp
+++ b/cppcache/src/CacheImpl.cpp
@@ -27,7 +27,6 @@
 #include "AdminRegion.hpp"
 #include "AutoDelete.hpp"
 #include "CacheXmlParser.hpp"
-#include "ClientProxyMembershipID.hpp"
 #include "EvictionController.hpp"
 #include "ExpiryTaskManager.hpp"
 #include "InternalCacheTransactionManager2PCImpl.hpp"
diff --git a/cppcache/src/ClientHealthStats.cpp b/cppcache/src/ClientHealthStats.cpp
index e2c026ceb..4ff541208 100644
--- a/cppcache/src/ClientHealthStats.cpp
+++ b/cppcache/src/ClientHealthStats.cpp
@@ -14,34 +14,37 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 #include "ClientHealthStats.hpp"
 
-#include "CacheImpl.hpp"
+#include <geode/CacheableDate.hpp>
+#include <geode/DataInput.hpp>
+#include <geode/DataOutput.hpp>
 
 namespace apache {
 namespace geode {
 namespace client {
 
 void ClientHealthStats::toData(DataOutput& output) const {
-  output.writeInt(static_cast<int32_t>(m_numGets));
-  output.writeInt(static_cast<int32_t>(m_numPuts));
-  output.writeInt(static_cast<int32_t>(m_numMisses));
-  output.writeInt(static_cast<int32_t>(m_numCacheListenerCalls));
-  output.writeInt(static_cast<int32_t>(m_numThread));
-  output.writeInt(static_cast<int32_t>(m_cpus));
-  output.writeInt(static_cast<int64_t>(m_processCpuTime));
-  m_updateTime->toData(output);
+  output.writeInt(static_cast<int64_t>(gets_));
+  output.writeInt(static_cast<int64_t>(puts_));
+  output.writeInt(static_cast<int64_t>(misses_));
+  output.writeInt(static_cast<int32_t>(cacheListenerCallsCompleted_));
+  output.writeInt(static_cast<int32_t>(threads_));
+  output.writeInt(static_cast<int32_t>(cpus_));
+  output.writeInt(static_cast<int64_t>(processCpuTime_));
+  updateTime_->toData(output);
 }
 
 void ClientHealthStats::fromData(DataInput& input) {
-  m_numGets = input.readInt32();
-  m_numPuts = input.readInt32();
-  m_numMisses = input.readInt32();
-  m_numCacheListenerCalls = input.readInt32();
-  m_numThread = input.readInt32();
-  m_processCpuTime = input.readInt64();
-  m_cpus = input.readInt32();
-  m_updateTime->fromData(input);
+  gets_ = input.readInt64();
+  puts_ = input.readInt64();
+  misses_ = input.readInt64();
+  cacheListenerCallsCompleted_ = input.readInt32();
+  threads_ = input.readInt32();
+  processCpuTime_ = input.readInt64();
+  cpus_ = input.readInt32();
+  updateTime_->fromData(input);
 }
 
 std::shared_ptr<Serializable> ClientHealthStats::createDeserializable() {
@@ -49,27 +52,20 @@ std::shared_ptr<Serializable> ClientHealthStats::createDeserializable() {
 }
 
 ClientHealthStats::ClientHealthStats()
-    : m_numGets(0),
-      m_numPuts(0),
-      m_numMisses(0),
-      m_numCacheListenerCalls(0),
-      m_numThread(0),
-      m_processCpuTime(0),
-      m_cpus(0) {
-  m_updateTime = CacheableDate::create();
-}
+    : ClientHealthStats(0, 0, 0, 0, 0, 0, 0) {}
 
-ClientHealthStats::ClientHealthStats(int gets, int puts, int misses,
-                                     int listCalls, int numThreads,
-                                     int64_t cpuTime, int cpus)
-    : m_numGets(gets),
-      m_numPuts(puts),
-      m_numMisses(misses),
-      m_numCacheListenerCalls(listCalls),
-      m_numThread(numThreads),
-      m_processCpuTime(cpuTime),
-      m_cpus(cpus) {
-  m_updateTime = CacheableDate::create();
+ClientHealthStats::ClientHealthStats(int64_t gets, int64_t puts, int64_t misses,
+                                     int32_t cacheListenerCallsCompleted,
+                                     int32_t threads, int64_t processCpuTime,
+                                     int32_t cpus)
+    : gets_(gets),
+      puts_(puts),
+      misses_(misses),
+      cacheListenerCallsCompleted_(cacheListenerCallsCompleted),
+      threads_(threads),
+      processCpuTime_(processCpuTime),
+      cpus_(cpus) {
+  updateTime_ = CacheableDate::create();
 }
 
 }  // namespace client
diff --git a/cppcache/src/ClientHealthStats.hpp b/cppcache/src/ClientHealthStats.hpp
index ddd07c90e..9fd61db01 100644
--- a/cppcache/src/ClientHealthStats.hpp
+++ b/cppcache/src/ClientHealthStats.hpp
@@ -20,16 +20,14 @@
 #ifndef GEODE_CLIENTHEALTHSTATS_H_
 #define GEODE_CLIENTHEALTHSTATS_H_
 
-#include <geode/CacheableDate.hpp>
-#include <geode/Serializable.hpp>
 #include <geode/internal/DataSerializableFixedId.hpp>
 
-#include "util/Log.hpp"
-
 namespace apache {
 namespace geode {
 namespace client {
 
+class CacheableDate;
+
 class ClientHealthStats : public internal::DataSerializableFixedId_t<
                               internal::DSFid::ClientHealthStats> {
  public:
@@ -37,40 +35,39 @@ class ClientHealthStats : public internal::DataSerializableFixedId_t<
 
   void fromData(DataInput& input) override;
 
-  /**
-   * @brief creation function for dates.
-   */
   static std::shared_ptr<Serializable> createDeserializable();
 
-  /** @return the size of the object in bytes */
   size_t objectSize() const override { return sizeof(ClientHealthStats); }
+
   /**
    * Factory method for creating an instance of ClientHealthStats
    */
-  static std::shared_ptr<ClientHealthStats> create(int gets, int puts,
-                                                   int misses, int listCalls,
-                                                   int numThreads,
-                                                   int64_t cpuTime = 0,
-                                                   int cpus = 0) {
-    return std::shared_ptr<ClientHealthStats>(new ClientHealthStats(
-        gets, puts, misses, listCalls, numThreads, cpuTime, cpus));
+  static std::shared_ptr<ClientHealthStats> create(
+      int64_t gets, int64_t puts, int64_t misses,
+      int32_t cacheListenerCallsCompleted, int32_t threads,
+      int64_t processCpuTime = 0, int32_t cpus = 0) {
+    return std::make_shared<ClientHealthStats>(gets, puts, misses,
+                                               cacheListenerCallsCompleted,
+                                               threads, processCpuTime, cpus);
   }
-  ~ClientHealthStats() override = default;
+
+  ~ClientHealthStats() noexcept override = default;
 
   ClientHealthStats();
 
+  ClientHealthStats(int64_t gets, int64_t puts, int64_t misses,
+                    int32_t cacheListenerCallsCompleted, int32_t threads,
+                    int64_t processCpuTime, int32_t cpus);
+
  private:
-  ClientHealthStats(int gets, int puts, int misses, int listCalls,
-                    int numThreads, int64_t cpuTime, int cpus);
-
-  int m_numGets;                // CachePerfStats.gets
-  int m_numPuts;                // CachePerfStats.puts
-  int m_numMisses;              // CachePerfStats.misses
-  int m_numCacheListenerCalls;  // CachePerfStats.cacheListenerCallsCompleted
-  int m_numThread;              // ProcessStats.threads;
-  int64_t m_processCpuTime;     //
-  int m_cpus;
-  std::shared_ptr<CacheableDate> m_updateTime;  // Last updateTime
+  int64_t gets_;
+  int64_t puts_;
+  int64_t misses_;
+  int32_t cacheListenerCallsCompleted_;
+  int32_t threads_;
+  int64_t processCpuTime_;
+  int32_t cpus_;
+  std::shared_ptr<CacheableDate> updateTime_;
 };
 
 }  // namespace client
diff --git a/cppcache/src/ClientProxyMembershipID.cpp b/cppcache/src/ClientProxyMembershipID.cpp
index a088657c5..741565f4a 100644
--- a/cppcache/src/ClientProxyMembershipID.cpp
+++ b/cppcache/src/ClientProxyMembershipID.cpp
@@ -17,11 +17,6 @@
 
 #include "ClientProxyMembershipID.hpp"
 
-#include <ctime>
-#include <iostream>
-#include <memory>
-#include <string>
-
 #include <boost/process/environment.hpp>
 
 #include <geode/CacheableBuiltins.hpp>
@@ -31,19 +26,20 @@
 #include "Version.hpp"
 #include "util/Log.hpp"
 
-#define DCPORT 12334
-#define VMKIND 13
-#define ROLEARRLENGTH 0
+namespace {
+constexpr int32_t kVersionMask = 0x8;
+constexpr int8_t kVmKindLoner = 13;
+constexpr int32_t kDcPort = 12334;
+constexpr int8_t kVmKind = kVmKindLoner;
+constexpr int32_t kRoleArrayLength = 0;
+
+static int32_t syncCounter = 2;
+}  // namespace
 
 namespace apache {
 namespace geode {
 namespace client {
 
-static int synch_counter = 2;
-
-const int ClientProxyMembershipID::VERSION_MASK = 0x8;
-const int8_t ClientProxyMembershipID::TOKEN_ORDINAL = -1;
-
 ClientProxyMembershipID::ClientProxyMembershipID()
     : hostPort_(0), vmViewId_(0) {}
 
@@ -59,7 +55,7 @@ ClientProxyMembershipID::ClientProxyMembershipID(
   initHostAddressVector(address);
 
   initObjectVars(hostname, hostPort, durableClientId, durableClientTimeOut,
-                 DCPORT, vmPID, VMKIND, 0, dsName.c_str(), randString.c_str(),
+                 kDcPort, vmPID, kVmKind, 0, dsName.c_str(), randString.c_str(),
                  0);
 }
 
@@ -73,7 +69,7 @@ ClientProxyMembershipID::ClientProxyMembershipID(
   initHostAddressVector(hostAddr, hostAddrLen);
 
   initObjectVars("localhost", hostPort, "", std::chrono::seconds::zero(),
-                 DCPORT, vmPID, VMKIND, 0, dsname, uniqueTag, vmViewId);
+                 kDcPort, vmPID, kVmKind, 0, dsname, uniqueTag, vmViewId);
 }
 
 void ClientProxyMembershipID::initHostAddressVector(
@@ -113,9 +109,10 @@ void ClientProxyMembershipID::initObjectVars(
 
   vmViewId_ = vmViewId;
   m_memID.write(static_cast<int8_t>(DSCode::FixedIDByte));
-  m_memID.write(static_cast<int8_t>(DSFid::InternalDistributedMember));
+  m_memID.write(
+      static_cast<int8_t>(internal::DSFid::InternalDistributedMember));
   m_memID.writeBytes(hostAddr_.data(), static_cast<int32_t>(hostAddr_.size()));
-  m_memID.writeInt(static_cast<int32_t>(synch_counter));
+  m_memID.writeInt(static_cast<int32_t>(syncCounter));
   m_memID.writeString(hostname);
   m_memID.write(splitBrainFlag);
 
@@ -123,7 +120,7 @@ void ClientProxyMembershipID::initObjectVars(
 
   m_memID.writeInt(vPID);
   m_memID.write(vmkind);
-  m_memID.writeArrayLen(ROLEARRLENGTH);
+  m_memID.writeArrayLen(kRoleArrayLength);
   m_memID.writeString(dsname);
   m_memID.writeString(uniqueTag);
 
@@ -144,7 +141,7 @@ void ClientProxyMembershipID::initObjectVars(
   clientId_.append("(");
   clientId_.append(std::to_string(vPID));
   clientId_.append(":loner):");
-  clientId_.append(std::to_string(synch_counter));
+  clientId_.append(std::to_string(syncCounter));
   clientId_.append(":");
   clientId_.append(getUniqueTag());
   clientId_.append(":");
@@ -172,9 +169,7 @@ const std::string& ClientProxyMembershipID::getDSMemberId() const {
   return memIdStr_;
 }
 
-const std::string& ClientProxyMembershipID::getDSMemberIdForThinClientUse() {
-  return clientId_;
-}
+const std::string& ClientProxyMembershipID::getClientId() { return clientId_; }
 
 std::string ClientProxyMembershipID::getHashKey() { return hashKey_; }
 
@@ -185,31 +180,31 @@ void ClientProxyMembershipID::toData(DataOutput&) const {
 void ClientProxyMembershipID::fromData(DataInput& input) {
   // deserialization for PR FX HA
 
-  auto length = input.readArrayLength();
-  auto hostAddress = new uint8_t[length];
-  input.readBytesOnly(hostAddress, length);
-  auto hostPort = input.readInt32();
-  auto hostname =
+  const auto length = input.readArrayLength();
+  auto hostAddress = std::vector<uint8_t>(length);
+  input.readBytesOnly(hostAddress.data(), length);
+  const auto hostPort = input.readInt32();
+  const auto hostname =
       std::dynamic_pointer_cast<CacheableString>(input.readObject());
-  auto splitbrain = input.read();
-  auto dcport = input.readInt32();
-  auto vPID = input.readInt32();
-  auto vmKind = input.read();
-  auto aStringArray = CacheableStringArray::create();
+  const auto splitbrain = input.read();
+  const auto dcport = input.readInt32();
+  const auto vPID = input.readInt32();
+  const auto vmKind = input.read();
+  const auto aStringArray = CacheableStringArray::create();
   aStringArray->fromData(input);
-  auto dsName = std::dynamic_pointer_cast<CacheableString>(input.readObject());
-  auto uniqueTag =
+  const auto dsName =
       std::dynamic_pointer_cast<CacheableString>(input.readObject());
-  auto durableClientId =
+  const auto uniqueTag =
       std::dynamic_pointer_cast<CacheableString>(input.readObject());
-  auto durableClientTimeOut = std::chrono::seconds(input.readInt32());
-  int32_t vmViewId = 0;
+  const auto durableClientId =
+      std::dynamic_pointer_cast<CacheableString>(input.readObject());
+  const auto durableClientTimeOut = std::chrono::seconds(input.readInt32());
   readVersion(splitbrain, input);
 
-  initHostAddressVector(hostAddress, length);
+  initHostAddressVector(hostAddress.data(), length);
 
-  if (vmKind != ClientProxyMembershipID::LONER_DM_TYPE) {
-    vmViewId = std::stoi(uniqueTag->value());
+  if (vmKind != kVmKindLoner) {
+    auto vmViewId = std::stoi(uniqueTag->value());
     initObjectVars(hostname->value().c_str(), hostPort,
                    durableClientId->value().c_str(), durableClientTimeOut,
                    dcport, vPID, vmKind, splitbrain, dsName->value().c_str(),
@@ -221,15 +216,14 @@ void ClientProxyMembershipID::fromData(DataInput& input) {
                    dcport, vPID, vmKind, splitbrain, dsName->value().c_str(),
                    uniqueTag->value().c_str(), 0);
   }
-  delete[] hostAddress;
   readAdditionalData(input);
 }
 
-Serializable* ClientProxyMembershipID::readEssentialData(DataInput& input) {
-  auto length = input.readArrayLength();
-  auto hostAddress = new uint8_t[length];
-  input.readBytesOnly(hostAddress, length);
-  auto hostPort = input.readInt32();
+void ClientProxyMembershipID::readEssentialData(DataInput& input) {
+  const auto length = input.readArrayLength();
+  auto hostAddress = std::vector<uint8_t>(length);
+  input.readBytesOnly(hostAddress.data(), length);
+  const auto hostPort = input.readInt32();
 
   // read and ignore flag
   input.read();
@@ -237,7 +231,7 @@ Serializable* ClientProxyMembershipID::readEssentialData(DataInput& input) {
   const auto vmKind = input.read();
   int32_t vmViewId = 0;
   std::shared_ptr<CacheableString> uniqueTag, vmViewIdstr;
-  if (vmKind == ClientProxyMembershipID::LONER_DM_TYPE) {
+  if (vmKind == kVmKindLoner) {
     uniqueTag = std::dynamic_pointer_cast<CacheableString>(input.readObject());
   } else {
     vmViewIdstr =
@@ -247,23 +241,18 @@ Serializable* ClientProxyMembershipID::readEssentialData(DataInput& input) {
 
   auto dsName = std::dynamic_pointer_cast<CacheableString>(input.readObject());
 
-  initHostAddressVector(hostAddress, length);
+  initHostAddressVector(hostAddress.data(), length);
 
-  if (vmKind != ClientProxyMembershipID::LONER_DM_TYPE) {
+  if (vmKind != kVmKindLoner) {
     // initialize the object with the values read and some dummy values
-    initObjectVars("", hostPort, "", std::chrono::seconds::zero(), DCPORT, 0,
+    initObjectVars("", hostPort, "", std::chrono::seconds::zero(), kDcPort, 0,
                    vmKind, 0, dsName->value().c_str(), nullptr, vmViewId);
   } else {
     // initialize the object with the values read and some dummy values
-    initObjectVars("", hostPort, "", std::chrono::seconds::zero(), DCPORT, 0,
+    initObjectVars("", hostPort, "", std::chrono::seconds::zero(), kDcPort, 0,
                    vmKind, 0, dsName->value().c_str(),
                    uniqueTag->value().c_str(), vmViewId);
   }
-
-  delete[] hostAddress;
-  readAdditionalData(input);
-
-  return this;
 }
 
 void ClientProxyMembershipID::readAdditionalData(DataInput& input) {
@@ -271,7 +260,7 @@ void ClientProxyMembershipID::readAdditionalData(DataInput& input) {
   input.advanceCursor(17);
 }
 
-void ClientProxyMembershipID::increaseSynchCounter() { ++synch_counter; }
+void ClientProxyMembershipID::increaseSyncCounter() { ++syncCounter; }
 
 // Compares two membershipIds. This is based on the compareTo function
 // of InternalDistributedMember class of Java.
@@ -331,14 +320,25 @@ int16_t ClientProxyMembershipID::compareTo(
   return 0;
 }
 
-void ClientProxyMembershipID::readVersion(int flags, DataInput& input) {
-  if (flags & ClientProxyMembershipID::VERSION_MASK) {
+void ClientProxyMembershipID::readVersion(int32_t flags, DataInput& input) {
+  if (flags & kVersionMask) {
     const auto version = Version::read(input);
     LOGDEBUG("ClientProxyMembershipID::readVersion ordinal = %d ",
              version.getOrdinal());
   }
 }
 
+int32_t ClientProxyMembershipID::hashcode() const {
+  std::stringstream hostAddressString;
+  hostAddressString << std::hex;
+  for (uint32_t i = 0; i < getHostAddrLen(); i++) {
+    hostAddressString << ":" << static_cast<int>(hostAddr_[i]);
+  }
+  auto result = internal::geode_hash<std::string>{}(hostAddressString.str());
+  result += hostPort_;
+  return result;
+}
+
 }  // namespace client
 }  // namespace geode
 }  // namespace apache
diff --git a/cppcache/src/ClientProxyMembershipID.hpp b/cppcache/src/ClientProxyMembershipID.hpp
index c09a95af5..bcf792d05 100644
--- a/cppcache/src/ClientProxyMembershipID.hpp
+++ b/cppcache/src/ClientProxyMembershipID.hpp
@@ -20,13 +20,12 @@
 #ifndef GEODE_CLIENTPROXYMEMBERSHIPID_H_
 #define GEODE_CLIENTPROXYMEMBERSHIPID_H_
 
-#include <sstream>
+#include <memory>
 #include <string>
 #include <vector>
 
 #include <boost/asio.hpp>
 
-#include <geode/DataOutput.hpp>
 #include <geode/internal/functional.hpp>
 #include <geode/internal/geode_globals.hpp>
 
@@ -36,10 +35,6 @@ namespace apache {
 namespace geode {
 namespace client {
 
-using internal::DSFid;
-
-class ClientProxyMembershipID;
-
 class ClientProxyMembershipID : public DSMemberForVersionStamp {
  public:
   const std::string& getDSMemberId() const;
@@ -51,26 +46,34 @@ class ClientProxyMembershipID : public DSMemberForVersionStamp {
                           const std::chrono::seconds durableClientTimeOut =
                               std::chrono::seconds::zero());
 
-  // This constructor is only for testing and should not be used for any
-  // other purpose. See testEntriesMapForVersioning.cpp for more details
+  /**
+   * This constructor is only for testing and should not be used for any
+   * other purpose. See testEntriesMapForVersioning.cpp for more details
+   */
   ClientProxyMembershipID(const uint8_t* hostAddr, uint32_t hostAddrLen,
                           uint32_t hostPort, const char* dsname,
                           const char* uniqueTag, uint32_t vmViewId);
-  // ClientProxyMembershipID(const char *durableClientId = nullptr, const
-  // uint32_t durableClntTimeOut = 0);
+
   ClientProxyMembershipID();
+
   ~ClientProxyMembershipID() noexcept override;
-  static void increaseSynchCounter();
+
+  static void increaseSyncCounter();
+
   static std::shared_ptr<Serializable> createDeserializable() {
     return std::make_shared<ClientProxyMembershipID>();
   }
-  // Do an empty check on the returned value. Only use after handshake is done.
-  const std::string& getDSMemberIdForThinClientUse();
 
-  // Serializable interface:
+  const std::string& getClientId();
+
   void toData(DataOutput& output) const override;
+
   void fromData(DataInput& input) override;
-  DSFid getDSFID() const override { return DSFid::InternalDistributedMember; }
+
+  internal::DSFid getDSFID() const override {
+    return internal::DSFid::InternalDistributedMember;
+  }
+
   size_t objectSize() const override { return 0; }
 
   void initHostAddressVector(const boost::asio::ip::address& address);
@@ -85,36 +88,29 @@ class ClientProxyMembershipID : public DSMemberForVersionStamp {
                       const char* uniqueTag, uint32_t vmViewId);
 
   std::string getDSName() const { return dsName_; }
+
   std::string getUniqueTag() const { return uniqueTag_; }
+
   const std::vector<uint8_t>& getHostAddr() const { return hostAddr_; }
+
   uint32_t getHostAddrLen() const {
     return static_cast<uint32_t>(hostAddr_.size());
   }
+
   uint32_t getHostPort() const { return hostPort_; }
+
   std::string getHashKey() override;
+
   int16_t compareTo(const DSMemberForVersionStamp&) const override;
-  int32_t hashcode() const override {
-    uint32_t result = 0;
-    std::stringstream hostAddressString;
-    hostAddressString << std::hex;
-    for (uint32_t i = 0; i < getHostAddrLen(); i++) {
-      hostAddressString << ":" << static_cast<int>(hostAddr_[i]);
-    }
-    result += internal::geode_hash<std::string>{}(hostAddressString.str());
-    result += hostPort_;
-    return result;
-  }
+
+  int32_t hashcode() const override;
 
   bool operator==(const CacheableKey& other) const override {
     return (this->compareTo(
                 dynamic_cast<const DSMemberForVersionStamp&>(other)) == 0);
   }
 
-  Serializable* readEssentialData(DataInput& input);
-
- private:
-  void readVersion(int flags, DataInput& input);
-  void readAdditionalData(DataInput& input);
+  void readEssentialData(DataInput& input);
 
  private:
   std::string memIdStr_;
@@ -128,9 +124,8 @@ class ClientProxyMembershipID : public DSMemberForVersionStamp {
   std::string hashKey_;
   uint32_t vmViewId_;
 
-  static const uint8_t LONER_DM_TYPE = 13;
-  static const int VERSION_MASK;
-  static const int8_t TOKEN_ORDINAL;
+  void readVersion(int32_t flags, DataInput& input);
+  void readAdditionalData(DataInput& input);
 };
 
 }  // namespace client
diff --git a/cppcache/src/ClientProxyMembershipIDFactory.cpp b/cppcache/src/ClientProxyMembershipIDFactory.cpp
index 3f565c786..2840355d3 100644
--- a/cppcache/src/ClientProxyMembershipIDFactory.cpp
+++ b/cppcache/src/ClientProxyMembershipIDFactory.cpp
@@ -23,6 +23,7 @@
 #include <boost/asio.hpp>
 #include <boost/process/environment.hpp>
 
+#include "ClientProxyMembershipID.hpp"
 #include "util/Log.hpp"
 
 namespace bip = boost::asio::ip;
diff --git a/cppcache/src/ClientProxyMembershipIDFactory.hpp b/cppcache/src/ClientProxyMembershipIDFactory.hpp
index e97251de1..26adbb969 100644
--- a/cppcache/src/ClientProxyMembershipIDFactory.hpp
+++ b/cppcache/src/ClientProxyMembershipIDFactory.hpp
@@ -20,14 +20,16 @@
 #ifndef GEODE_CLIENTPROXYMEMBERSHIPIDFACTORY_H_
 #define GEODE_CLIENTPROXYMEMBERSHIPIDFACTORY_H_
 
+#include <chrono>
+#include <memory>
 #include <string>
 
-#include "ClientProxyMembershipID.hpp"
-
 namespace apache {
 namespace geode {
 namespace client {
 
+class ClientProxyMembershipID;
+
 class ClientProxyMembershipIDFactory {
  public:
   explicit ClientProxyMembershipIDFactory(std::string dsName);
diff --git a/cppcache/src/EventId.cpp b/cppcache/src/EventId.cpp
index d53090a31..b0a084416 100644
--- a/cppcache/src/EventId.cpp
+++ b/cppcache/src/EventId.cpp
@@ -22,7 +22,6 @@
 
 #include <geode/DataInput.hpp>
 
-#include "ClientProxyMembershipID.hpp"
 #include "Utils.hpp"
 #include "util/Log.hpp"
 
diff --git a/cppcache/src/QueueConnectionRequest.cpp b/cppcache/src/QueueConnectionRequest.cpp
index 032290776..d25bd8bc3 100644
--- a/cppcache/src/QueueConnectionRequest.cpp
+++ b/cppcache/src/QueueConnectionRequest.cpp
@@ -19,6 +19,9 @@
 
 #include <geode/DataInput.hpp>
 #include <geode/DataOutput.hpp>
+#include <geode/internal/DSFixedId.hpp>
+
+#include "ClientProxyMembershipID.hpp"
 
 namespace apache {
 namespace geode {
@@ -27,7 +30,7 @@ namespace client {
 void QueueConnectionRequest::toData(DataOutput& output) const {
   output.writeString(m_serverGp);
   output.write(static_cast<int8_t>(DSCode::FixedIDByte));
-  output.write(static_cast<int8_t>(DSFid::ClientProxyMembershipId));
+  output.write(static_cast<int8_t>(internal::DSFid::ClientProxyMembershipId));
   const auto& dsMemberId = m_membershipID.getDSMemberId();
   output.writeBytes(reinterpret_cast<const uint8_t*>(dsMemberId.c_str()),
                     static_cast<int32_t>(dsMemberId.size()));
@@ -37,8 +40,8 @@ void QueueConnectionRequest::toData(DataOutput& output) const {
   output.writeBoolean(m_findDurable);
 }
 
-DSFid QueueConnectionRequest::getDSFID() const {
-  return DSFid::QueueConnectionRequest;
+internal::DSFid QueueConnectionRequest::getDSFID() const {
+  return internal::DSFid::QueueConnectionRequest;
 }
 
 std::set<ServerLocation> QueueConnectionRequest::getExcludedServer() const {
diff --git a/cppcache/src/QueueConnectionRequest.hpp b/cppcache/src/QueueConnectionRequest.hpp
index 635f7bca3..42028d21d 100644
--- a/cppcache/src/QueueConnectionRequest.hpp
+++ b/cppcache/src/QueueConnectionRequest.hpp
@@ -23,14 +23,16 @@
 #include <set>
 #include <string>
 
-#include "ClientProxyMembershipID.hpp"
 #include "ServerLocation.hpp"
 #include "ServerLocationRequest.hpp"
+#include "geode/internal/DSFixedId.hpp"
 
 namespace apache {
 namespace geode {
 namespace client {
 
+class ClientProxyMembershipID;
+
 class QueueConnectionRequest : public ServerLocationRequest {
  public:
   QueueConnectionRequest(const ClientProxyMembershipID& memId,
@@ -45,7 +47,7 @@ class QueueConnectionRequest : public ServerLocationRequest {
         m_serverGp(serverGp) {}  // No need for default constructor as creating
                                  // request with it does not make sense.
   void toData(DataOutput& output) const override;
-  DSFid getDSFID() const override;
+  internal::DSFid getDSFID() const override;
 
   virtual std::set<ServerLocation> getExcludedServer() const;
   virtual const ClientProxyMembershipID& getProxyMemberShipId() const;
diff --git a/cppcache/src/TXCommitMessage.cpp b/cppcache/src/TXCommitMessage.cpp
index 99968b59d..2d35bde49 100644
--- a/cppcache/src/TXCommitMessage.cpp
+++ b/cppcache/src/TXCommitMessage.cpp
@@ -18,8 +18,8 @@
 #include "TXCommitMessage.hpp"
 
 #include <algorithm>
-#include <vector>
 
+#include <geode/DataInput.hpp>
 #include <geode/DataOutput.hpp>
 
 #include "ClientProxyMembershipID.hpp"
@@ -32,11 +32,7 @@ namespace client {
 
 TXCommitMessage::TXCommitMessage(
     MemberListForVersionStamp& memberListForVersionStamp)
-    : m_memberListForVersionStamp(memberListForVersionStamp)
-// UNUSED : m_processorId(0)
-{}
-
-bool TXCommitMessage::isAckRequired() { return false; }
+    : memberListForVersionStamp_(memberListForVersionStamp) {}
 
 void TXCommitMessage::fromData(DataInput& input) {
   // read and ignore pId
@@ -56,7 +52,7 @@ void TXCommitMessage::fromData(DataInput& input) {
   input.readInt32();
 
   // ignore farsideBaseMembershipId
-  auto ignoreLength = input.readArrayLength();
+  const auto ignoreLength = input.readArrayLength();
   if (ignoreLength > 0) {
     input.advanceCursor(ignoreLength);
   }
@@ -65,12 +61,13 @@ void TXCommitMessage::fromData(DataInput& input) {
   input.readInt64();  // ignore seqId
 
   input.readBoolean();  // ignore needsLargeModCount
+  input.readBoolean();  // ignore shadow keys flag
 
-  auto regionSize = input.readInt32();
+  const auto regionSize = input.readInt32();
   for (int32_t i = 0; i < regionSize; i++) {
-    auto rc = std::make_shared<RegionCommit>(m_memberListForVersionStamp);
+    auto rc = std::make_shared<RegionCommit>(memberListForVersionStamp_);
     rc->fromData(input);
-    m_regions.push_back(rc);
+    regions_.push_back(rc);
   }
 
   const auto dsCode = static_cast<const DSCode>(input.read());
@@ -99,8 +96,8 @@ void TXCommitMessage::fromData(DataInput& input) {
         GF_CACHE_ILLEGAL_STATE_EXCEPTION);
   }
 
-  int32_t len = input.readArrayLength();
-  for (int j = 0; j < len; j++) {
+  const auto len = input.readArrayLength();
+  for (int32_t j = 0; j < len; j++) {
     std::shared_ptr<Cacheable> tmp;
     input.readObject(tmp);
   }
@@ -114,11 +111,8 @@ std::shared_ptr<Serializable> TXCommitMessage::create(
 }
 
 void TXCommitMessage::apply(Cache* cache) {
-  for (std::vector<std::shared_ptr<RegionCommit>>::iterator iter =
-           m_regions.begin();
-       m_regions.end() != iter; iter++) {
-    auto regionCommit = std::static_pointer_cast<RegionCommit>(*iter);
-    regionCommit->apply(cache);
+  for (const auto& region : regions_) {
+    region->apply(cache);
   }
 }
 
diff --git a/cppcache/src/TXCommitMessage.hpp b/cppcache/src/TXCommitMessage.hpp
index a78892fbb..b527192af 100644
--- a/cppcache/src/TXCommitMessage.hpp
+++ b/cppcache/src/TXCommitMessage.hpp
@@ -20,8 +20,10 @@
 #ifndef GEODE_TXCOMMITMESSAGE_H_
 #define GEODE_TXCOMMITMESSAGE_H_
 
-#include <geode/DataInput.hpp>
-#include <geode/internal/geode_globals.hpp>
+#include <memory>
+#include <vector>
+
+#include <geode/internal/DataSerializableFixedId.hpp>
 
 #include "RegionCommit.hpp"
 
@@ -29,27 +31,29 @@ namespace apache {
 namespace geode {
 namespace client {
 
-class TXCommitMessage
-    : public internal::DataSerializableFixedId_t<DSFid::TXCommitMessage> {
+class MemberListForVersionStamp;
+class DataInput;
+class DataOutput;
+class Cache;
+
+class TXCommitMessage : public internal::DataSerializableFixedId_t<
+                            internal::DSFid::TXCommitMessage> {
  public:
   explicit TXCommitMessage(
       MemberListForVersionStamp& memberListForVersionStamp);
-  ~TXCommitMessage() override = default;
+  ~TXCommitMessage() noexcept override = default;
 
   void fromData(DataInput& input) override;
   void toData(DataOutput& output) const override;
 
   static std::shared_ptr<Serializable> create(
       MemberListForVersionStamp& memberListForVersionStamp);
-  //	VectorOfEntryEvent getEvents(Cache* cache);
 
   void apply(Cache* cache);
 
  private:
-  // UNUSED int32_t m_processorId;
-  bool isAckRequired();
-  MemberListForVersionStamp& m_memberListForVersionStamp;
-  std::vector<std::shared_ptr<RegionCommit>> m_regions;
+  MemberListForVersionStamp& memberListForVersionStamp_;
+  std::vector<std::shared_ptr<RegionCommit>> regions_;
 };
 
 }  // namespace client
diff --git a/cppcache/src/TcrConnection.cpp b/cppcache/src/TcrConnection.cpp
index d35c94dc6..dc09e22ad 100644
--- a/cppcache/src/TcrConnection.cpp
+++ b/cppcache/src/TcrConnection.cpp
@@ -412,7 +412,6 @@ bool TcrConnection::initTcrConnection(
         if (isClientNotification) {
           readHandshakeInstantiatorMsg(connectTimeout);
         }
-
         break;
       case REPLY_AUTHENTICATION_FAILED: {
         AuthenticationFailedException ex(
@@ -1041,6 +1040,9 @@ void TcrConnection::readHandshakeInstantiatorMsg(
       readHandshakeString(connectTimeout);
     }
   }
+
+  // Geode 1.5+ - Ignore client ping task interval
+  readHandShakeBytes(4, connectTimeout);
 }
 void TcrConnection::readHandShakeBytes(
     int numberOfBytes, std::chrono::microseconds connectTimeout) {
diff --git a/cppcache/src/TcrMessage.cpp b/cppcache/src/TcrMessage.cpp
index 605d0ef63..0b2308238 100644
--- a/cppcache/src/TcrMessage.cpp
+++ b/cppcache/src/TcrMessage.cpp
@@ -25,6 +25,7 @@
 #include "BucketServerLocation.hpp"
 #include "CacheImpl.hpp"
 #include "CacheRegionHelper.hpp"
+#include "ClientProxyMembershipID.hpp"
 #include "DataInputInternal.hpp"
 #include "DataOutputInternal.hpp"
 #include "DiskStoreId.hpp"
@@ -3110,8 +3111,7 @@ std::shared_ptr<DSMemberForVersionStamp> TcrMessage::readDSMember(
           "InternalDistributedMember. ");
     }
 
-    auto memId =
-        std::shared_ptr<ClientProxyMembershipID>(new ClientProxyMembershipID());
+    auto memId = std::make_shared<ClientProxyMembershipID>();
     memId->fromData(input);
     return std::shared_ptr<DSMemberForVersionStamp>(memId);
   } else if (typeidLen == 2) {
diff --git a/cppcache/src/ThinClientLocatorHelper.hpp b/cppcache/src/ThinClientLocatorHelper.hpp
index 71ba7d1de..74e4986b9 100644
--- a/cppcache/src/ThinClientLocatorHelper.hpp
+++ b/cppcache/src/ThinClientLocatorHelper.hpp
@@ -28,7 +28,6 @@
 
 #include <geode/internal/geode_globals.hpp>
 
-#include "ClientProxyMembershipID.hpp"
 #include "ErrType.hpp"
 #include "GetAllServersRequest.hpp"
 #include "GetAllServersResponse.hpp"
@@ -41,6 +40,7 @@ namespace client {
 class ThinClientPoolDM;
 class Connector;
 class TcrConnection;
+class ClientProxyMembershipID;
 
 class ThinClientLocatorHelper {
  public:
diff --git a/cppcache/src/ThinClientPoolDM.cpp b/cppcache/src/ThinClientPoolDM.cpp
index 4e78d33d2..15e359e2b 100644
--- a/cppcache/src/ThinClientPoolDM.cpp
+++ b/cppcache/src/ThinClientPoolDM.cpp
@@ -26,6 +26,7 @@
 #include <geode/SystemProperties.hpp>
 
 #include "CacheImpl.hpp"
+#include "ClientProxyMembershipID.hpp"
 #include "DistributedSystemImpl.hpp"
 #include "ExecutionImpl.hpp"
 #include "FunctionExpiryTask.hpp"
@@ -159,7 +160,7 @@ ThinClientPoolDM::ThinClientPoolDM(const char* name,
       m_primaryServerQueueSize(PRIMARY_QUEUE_NOT_AVAILABLE) {
   static bool firstGuard = false;
   if (firstGuard) {
-    ClientProxyMembershipID::increaseSynchCounter();
+    ClientProxyMembershipID::increaseSyncCounter();
   }
   firstGuard = true;
 
diff --git a/cppcache/src/Version.hpp b/cppcache/src/Version.hpp
index 4b78468b7..255dab76a 100644
--- a/cppcache/src/Version.hpp
+++ b/cppcache/src/Version.hpp
@@ -34,7 +34,7 @@ class Version {
   inline int16_t getOrdinal() const noexcept { return ordinal_; }
 
   static const Version& current() noexcept {
-    static const auto version = Version{45};  // Geode 1.0.0
+    static const auto version = Version{125};  // Geode 1.14.0
     return version;
   }
 
diff --git a/cppcache/src/VersionStamp.hpp b/cppcache/src/VersionStamp.hpp
index 47ee64709..a5d2eba0b 100644
--- a/cppcache/src/VersionStamp.hpp
+++ b/cppcache/src/VersionStamp.hpp
@@ -24,7 +24,6 @@
 
 #include <geode/internal/geode_globals.hpp>
 
-#include "ClientProxyMembershipID.hpp"
 #include "ErrType.hpp"
 #include "VersionTag.hpp"
 
diff --git a/cppcache/src/statistics/HostStatSampler.cpp b/cppcache/src/statistics/HostStatSampler.cpp
index e9d8b53aa..fb4c3ffa7 100644
--- a/cppcache/src/statistics/HostStatSampler.cpp
+++ b/cppcache/src/statistics/HostStatSampler.cpp
@@ -35,6 +35,7 @@
 #include "../AdminRegion.hpp"
 #include "../CacheImpl.hpp"
 #include "../ClientHealthStats.hpp"
+#include "../ClientProxyMembershipID.hpp"
 #include "../CppCacheLibrary.hpp"
 #include "../TcrConnectionManager.hpp"
 #include "GeodeStatisticsFactory.hpp"
@@ -306,7 +307,7 @@ void HostStatSampler::putStatsInAdminRegion() {
           auto memId = conn_man->getCacheImpl()
                            ->getClientProxyMembershipIDFactory()
                            .create(durableClientId_, durableTimeout_);
-          clientId = memId->getDSMemberIdForThinClientUse();
+          clientId = memId->getClientId();
         }
 
         auto keyPtr = client::CacheableString::create(clientId.c_str());
diff --git a/cppcache/src/statistics/PoolStatsSampler.cpp b/cppcache/src/statistics/PoolStatsSampler.cpp
index 9da17caaa..535342667 100644
--- a/cppcache/src/statistics/PoolStatsSampler.cpp
+++ b/cppcache/src/statistics/PoolStatsSampler.cpp
@@ -22,6 +22,7 @@
 #include "../AdminRegion.hpp"
 #include "../CacheImpl.hpp"
 #include "../ClientHealthStats.hpp"
+#include "../ClientProxyMembershipID.hpp"
 #include "../ThinClientPoolDM.hpp"
 #include "GeodeStatisticsFactory.hpp"
 
@@ -102,7 +103,7 @@ void PoolStatsSampler::putStatsInAdminRegion() {
       auto obj = client::ClientHealthStats::create(
           gets, puts, misses, numListeners, numThreads, cpuTime, numCPU);
       const auto memId = m_distMan->getMembershipId();
-      clientId = memId->getDSMemberIdForThinClientUse();
+      clientId = memId->getClientId();
       auto keyPtr = client::CacheableString::create(clientId.c_str());
       m_adminRegion->put(keyPtr, obj);
     }
diff --git a/cppcache/test/ClientProxyMembershipIDTest.cpp b/cppcache/test/ClientProxyMembershipIDTest.cpp
index bcc60dfea..fc8955ed8 100644
--- a/cppcache/test/ClientProxyMembershipIDTest.cpp
+++ b/cppcache/test/ClientProxyMembershipIDTest.cpp
@@ -50,7 +50,7 @@ TEST(ClientProxyMembershipIDTest, testCreate) {
       apache::geode::client::internal::geode_hash<std::string>{}(":0:0:0:1") +
           static_cast<int32_t>(cpmID.getHostPort()));
   EXPECT_TRUE(boost::regex_search(
-      cpmID.getDSMemberIdForThinClientUse(),
+      cpmID.getClientId(),
       boost::regex(
           std::string("localhost(.*):2:").append(uniqueTag).append(":myDs"))));
 }
diff --git a/cppcache/test/QueueConnectionRequestTest.cpp b/cppcache/test/QueueConnectionRequestTest.cpp
index 7a480874f..89daef103 100644
--- a/cppcache/test/QueueConnectionRequestTest.cpp
+++ b/cppcache/test/QueueConnectionRequestTest.cpp
@@ -25,6 +25,7 @@
 #include <geode/DataOutput.hpp>
 
 #include "ByteArrayFixture.hpp"
+#include "ClientProxyMembershipID.hpp"
 #include "DataOutputInternal.hpp"
 
 namespace apache {
@@ -55,7 +56,7 @@ TEST_F(QueueConnectionRequestTest, testToData) {
 
   EXPECT_BYTEARRAY_EQ(
       "2A0000012631015C047F000001000000022A00046E616D65000000302E\\h{8}"
-      "0D002A000664734E616D652A000772616E644E756D2D00000001FFFFFFFF000000012A00"
+      "0D002A000664734E616D652A000772616E644E756D7D00000001FFFFFFFF000000012A00"
       "067365727665720000000A00",
       ByteArray(dataOutput.getBuffer(), dataOutput.getBufferLength()));
 }
diff --git a/tests/javaobject/QueryFunction.java b/tests/javaobject/QueryFunction.java
index e4c137d45..5b7158e04 100644
--- a/tests/javaobject/QueryFunction.java
+++ b/tests/javaobject/QueryFunction.java
@@ -14,24 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javaobject;
 
+package javaobject;
 
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.Declarable;