protected static void setVersion(String field, Object value) throws Exception {
    Field targetField = value.getClass().getDeclaredField(field);
    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);
    modifiersField.set(targetField,
        targetField.getModifiers() & ~Modifier.PRIVATE & ~Modifier.FINAL);
    targetField.set(null, value);
  }
This test class tests the communication pattern of a transaction for replicate and partition
region. There are five VMs that two CacheServers, CacheServer with Pool and two clients. The
communicate of a transaction is the following three patterns. In addition, this test class also
tests transactions from older version clients to check backwards compatibility.<br>
<ol>
<li>CacheServer (transaction)-> CacheServer</li>
<li>Client (transaction)-> CacheServer</li>
<li>Old version client (transaction)-> CacheServer</li>
<li>CacheServer via Pool (transaction)-> CacheServer</li>
</ol>
geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/TxCommitMessageBCTestBase.java