You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2018/03/20 22:28:43 UTC

[geode] branch micrometer updated (a6db167 -> e2cc32a)

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

udo pushed a change to branch micrometer
in repository https://gitbox.apache.org/repos/asf/geode.git.


    from a6db167  Updated code to make it work with multi-region and timed metrics
     add 6578ecc  GEODE-4008: Added serialVersionUID to FunctionAdapter (#1119)
     add eee9b2d  GEODE-3976: improve exception message
     add 36b4f5b  Merge pull request #1146 from dschneider-pivotal/feature/GEODE-3976
     add 36eeafe  Revert "GEODE-4008: Added serialVersionUID to FunctionAdapter (#1119)"
     add 57b9dbf  GEODE-4073: Add ability for SuiteRunner to interleave a candidate test class (#1150)
     add 1569dbf  GEODE-4042: Passing down java.io.tmpdir to tests running in geode-assembly (#1145)
     add d67359f  GEODE-4074: Cleanup of PdxSerializers in TypeRegistry (#1151)
     add 107eae6  GEODE-4072: Fixed race condition in AckThreadReader shutdown.
     add 437b3cc  Revert "GEODE-4042: Passing down java.io.tmpdir to tests running in geode-assembly (#1145)"
     add 767682c  GEODE-3964: More logging for suspect processing. (#1088)
     add 08944b0  GEODE-3063 partition resolver doc revisions (#1105)
     add a237203  GEODE-3929: GFSH create lucene index command allowed on existing regions.
     add eb4e948  GEODE-4076: throw AuthenticationRequiredException instead of GemfireSecurityException (#1147)
     add 33129b1  GEODE-4078: Display full path when locator view log cannot be opened (#1154)
     add 4e1c63c  GEODE-3869: Fix early eviction. (#1152)
     add db30e3f  GEODE-4081: update cluster config after destroy gateway sender (#1140)
     add d06524d  GEODE-4085 The cache server thinks that all protobuf clients have a 10 second read timeout
     add 790bee0  GEODE-3956: Consistent naming for async event queue related variables (#1157)
     add 82f4ebc  GEODE-4070: Re-enable SnapshotPerformanceDUnitTest
     add 7788c0d  User Guide, Statistics reference: introduce product_name variable.
     add b1486ae  GEODE-4083: fix infinite loop caused by thread race changing version (#1161)
     add fa48599  GEODE-4091: add ThreadFactory for evictor
     add 2d73891  Merge pull request #1165 from dschneider-pivotal/feature/GEODE-4091
     add faa0e54  GEODE-4099: change warning to debug
     add ea7c6ef  Merge pull request #1168 from dschneider-pivotal/feature/GEODE-4099
     add 6c49506  GEODE-3799: Move backups towards a pluggable architecture (#1109)
     add 2b6e375  GEODE-2296: Internal message SIZE should not have authorization checks (#1169)
     add f76eeae  GEODE-3539: add tests for ExportStackTraceCommand (#1162)
     add 73e7f48  GEODE-4103: Set forkEvery=1 for distributedTest (#1170)
     add eff77bb  GEODE-3923 Document the 2 new properties serializable-object-filter (#1166)
     add 9ca4314  GEODE-4084 rename handshake.proto (#1155)
     add 43b8cd5  GEODE-4047 User Guide: Update Lucene docs to include nested objects (#1164)
     add 6190edc  GEODE-4047 User Guide: Update Lucene docs to include nested objects, reviewer’s correction
     add 59b949e  GEODE-4079: Deprecated Hash Index
     add 19b8199  GEODE-4090: Add ErrorCode mirroring ProtocolErrorCode enum into protobuf
     add 2ab745e  GEODE-4109: add log message
     add 8baedce  Merge pull request #1174 from dschneider-pivotal/feature/GEODE-4109
     add 1b29986  GEODE-4111: Add log message for cache service initialization
     add 15402eb  GEODE-4106: Fix relative path destinations for backups (#1173)
     add fdcdbc0  Feature/GEODE-4061 : Adding coordinator in list member command output (#1138)
     add 8d86830  GEODE-4088: add a dunit test to show the client region keySet() in TX (#1159)
     add 2f59663  GEODE-4054: Create module for Protobuf message-based client
     add b16f984  GEODE-4093: new protocol needs to work on an embedded locator
     add afd72b0  GEODE-4079 Identify hash indexes as deprecated in docs (#1180)
     add 56bd06d  Feature/geode 3781: JDBC Connector (#1176)
     add f0c038c  GEODE-4054: Fixing integration test failure with experimental client
     add c25e43d  GEODE-4061: Updated DUnit test for changes in list member command (#1184)
     add e363d20  [GEODE-4123] - Improve output email of concourse.apachegeodeci.info
     add 9f747ef  Merge pull request #1190 from onichols-pivotal/feature/GEODE-4123
     add 9ad4649  GEODE-4127: Removed HAInterestDistributedTestCase
     add b75bbf9  GEODE-4117: use loopback instead of non-existent server host (#1181)
     add ca62b21  GEODE-4110: extend LocatorServerStartupRule to start a client VM. (#1175)
     add 635ab6a  GEODE-3788 alter async event queue attributes (document this feature) (#1191)
     add e24e038  GEODE-4080: Protobuf JSON objects are in a proto string (#1171)
     add 3e6b9a9  GEODE-4124: Correct help message in gfsh 'create region' command
     add ed6bac5  GEODE-551: make sure accessor gets critical by putting into its local region (#1183)
     add 0833068  [GEODE-4123] - Improve output email of concourse.apachegeodeci.info
     add bdbea62  Merge pull request #1198 from onichols-pivotal/feature/GEODE-4123
     add eec297f  GEODE-4112: Replaced FunctionAdapter with Function
     add a7a883e  GEODE-4137 CacheServerSSLConnectionDUnitTest fails with NoAvailableServersException
     add 42974bf  GEODE-4114: Removed usage of GemFireCacheImpl.getInstance in geode-lucene
     add 20f0d99  GEODE-4077: Replaced WaitCriterion and Thread.sleep() with Awaitility.await().
     add d4183f6  GEODE-2665: Add Gfsh command to delete async event queues (#1116)
     add 0ca3c8c  GEODE-4134: use ExecutorService for CompletableFuture (#1195)
     add 26b00fc  GEODE-4133: synchronize `ClientHealthMonitor.getClientHeartbeats` (#1194)
     add 09026a6  GEODE-2665: Document Gfsh command to delete async event queues (#1200)
     add 61ba3b6  GEODE-4030, GEODE-3495: Bump dependencies to new versions
     add 7baa22e  User Guide: typo corrections in Event Handlers list
     add 778d240  GEODE-4159: Increase default timeout for GfshScript rule to 2 minutes
     add 507c419  GEODE-4154: Removed GemFireCacheImpl.getInstance
     add cbbf639  GEODE-4145: Clean up protobuf error codes.
     add 04f1419  GEODE-4087 modify SocketCreator to not set the default SSLContext for the JVM
     add 8a1ec2d  GEODE-4132: Sending handshake response from locator for new protocol
     add 3be095a  GEODE-4163 clean up DistributionManager code
     add cf81ebc  GEODE-4110: rename LocatorServerStartupRule to ClusterStartupRule (#1205)
     add b22a088  GEODE-3764 Documented fix for "idle expiration will happen even if the entry has been accessed on a replicate" (#1207)
     add e2cdaa7  GEODE-4163 clean up DistributionManager code
     add 589edae  GEODE-4175 User Guide: gfsh doc example for creating a hash index does not include --type=hash option
     add c4e1975  GEODE-4097 allow to take geode-core jar from classpath (#1167)
     add b100f08  GEODE-4097: Adding a test for this change (#1211)
     add 78f503f  GEODE-4170: Index docs are easier to locate (#1208)
     add d0a6394  GEODE-4168 Can't get json object stored as PDX using the new protocol GEODE-4116 Can't get PDX objects using the new protocol
     add cadecc246 GEODE-4092 New protocol does not have an API to get the best server to connect to
     add 0f8cd8e  GEODE-4122: Add runner annotation to avoid skipping tests with Parameterized
     add 2e3c6b9  GEODE-4008: Added serialVersionUID to FunctionAdapter (#1119)
     add c537f55  GEODE-4146: fix XmlEntity matching for JdbcConnectorService (#1215)
     add cdd98b2  GEODE-4176 locator creates "locator0view.dat" file when started with port 0
     add cdde35a  GEODE-4178 ClientServerMiscDUnitTest.testOnSeverMethodsWithCachingProxyClientHA failure
     add 4c298b2  GEODE-4185: Add job to update file in GCS with SHA that passed all tests
     add cf4959f  GEODE-3861 ClientHealthMonitorSelectorJUnitTest.testDeadClientRemovalByServer failed
     add 7a4c347  GEODE-4113 Enhance experimental Java driver to support putting and getting objects
     add 07713e5  GEODE-4009: add jdbc connection pooling (#1213)
     add 19d47fc  GEODE-4191: Replace imports of io.codearte..Mockito with org.mockito.Mockito
     add 57baff1  GEODE-4193: fix password file security in JMX (#1227)
     add 86ddafa  GEODE-4131: Do not reference deployed jars as byte arrays anymore (#1212)
     add 6c37ff4  GEODE-4096: Fixed race condition for connection global variable
     add 75062b6  GEODE-4144: EventId in client does not match that of server (with putAll)
     add d6055a7  GEODE-4165: Listener EventId in server does not match that of the client for clearRegion
     add 03af545  GEODE-4161: fix gfsh describe jdbc-mapping
     add bc976fd  Merge pull request #1225 from dschneider-pivotal/feature/GEODE-4161
     add db99985  rev the version number since a release branch has been created for 1.4.0
     add 2249d60  GEODE-4184: Handled concurrent access of HashSet
     add 12307b8  GEODE-4177: client does not receive all put all creates when servers close cache
     add bb9ae49  GEODE-4229 CI failure due to suspect string: "Locator socket was closed unexpectedly"
     add 2d4cd26  GEODE-4135: Awaitility condition added
     add 636cb7d  Fix script so passing.txt is branch-dependent.
     add 78438f8  GEODE-4131: add the deprecated API in MemberMXBean (#1231)
     add 92ced79  GEODE-4160: fix gfsh describe jdbc-connection (#1223)
     add 7e42f33  GEODE-4221: Restore the ability to access the debugging VM. (#1234)
     add 193bb07  GEODE-4158: Correct the detection of Geode-internal classes for serialization. - Remove consideration of any class under org.apache as a Geode-internal   class that resulted from a search-and-replace.
     add 75c0413  GEODE-3965: rename DistributionManager classes
     add 1788b5f  GEODE-3965: define exceptionInThreads methods in DistributionManager
     add 1f4c907  GEODE-3965: rename and cleanup DistributionManager tests
     add a675572  GEODE-4192 GetServer request should return error if no servers found
     add 5c6c297  GEODE-4231: Renamed FunctionAdapter test resource file to have .ser extension
     add 1954a35  GEODE-4247: Pre-populate email subject and body files
     add ad74d98  GEODE-4148 Locator threshold before rebalancing clients
     add 977e16b  GEODE-4131: reduce flakiness of the added acceptance test (#1247)
     add 83edc8d  GEODE-4230: fixed the heap example
     add 61077fb  GEODE-4051: change StateMarkerMessage to always reply
     add f905ea2  Merge pull request #1239 from dschneider-pivotal/feature/GEODE-4051
     add 55adfec  changed DistributionManager to ClusterDistributionManager in unit test
     add 22a443b  GEODE-4172: CI Failure:CqPerfUsingPoolDUnitTest.testMatchingCQsWithMultipleServers (#1222)
     add 2505155  GEODE-4016: Create benchmarks for eviction (#1240)
     add ff008e3  GEODE-3539: fix test category (#1253)
     add 3cf7caa  Squashed commit of the following:
     add 6eece22  GEODE-4237: The JdbcLoader creates PdxInstance using region mapping (column to field).
     add 8998a8f  [GEODE-4265] Add dunit progress tool to docker image.
     add 15ae789  [GEODE-4265] Use updated version that has been appropriately licensed.
     add 90f8f62  GEODE-3974: Improve permissions for geode-modules functions (#1258)
     add 7d7e1da  GEODE-4225: Extend ClusterStartupRule to specify member / client version.
     add 48d93ed  GEODE-3539: rule cleanup (#1242)
     add 3bc3b51  GEODE-4241: Write region mapping to cluster configuration
     add fbad978  [GEODE-4274] Add TestExamples job. (#1267)
     add 39d9c2c  GEODE-4225: getVM(n) call does not accidentally bounce the VM with current version. (#1266)
     add c1c7e51  GEODE-3946: add version check when connect to cluster using gfsh (#1259)
     add b54189b  GEODE-4236: Increase default timeout for await methods (#1268)
     add 66007d6  Add tag to DistributedTest so it runs on a different worker class.
     add da3384d  GEODE-4232: Switch to minuscule initial letter for Javadoc deprecated tag.
     add a4329ad  GEODE-4255: Remove mandatory failure on macOS.
     add 8c5aceb  GEODE-4180 always use absolute paths
     add 740289c  GEODE-3974: Improve permissions for geode-lucene functions
     add 49d28f9  GEODE-3974: Improve permissions for geode-connectors functions (#1265)
     add 2ba05e0  GEODE-4246: Skip setting the mcast-port property.
     add 4e065c4  GEODE-4239: refactor tests to use new ExecutorServiceRule (#1244)
     add 5c1d8ef  GEODE-4101: Add --redirect-output flag to GFSH (#1203)
     add ec33108  GEODE-4268: Delete geode-benchmarks and move benchmarks to geode-core (#1263)
     add 4a0f565  GEODE-4286: Use canonical path for docker mounted volumes (#1275)
     add bed35d3  GEODE-4101: Remove test assertions that mask failure information (#1276)
     add 8afb56e  GEODE-4252: User function execution produces correct errors (#1269)
     add e7b29fa  GEODE-4281: Move three security test classes out of production code.
     add 522e70e  GEODE-4101: Only check for specific command line arguments (#1278)
     add 9eb82df  GEODE-4293: Pulse works correctly when jmx-manager-password-file is set (#1279)
     add 511e131  GEODE-2556 RollingUpgradeDUnitTest.testRollServersOnPersistentRegion_dataserializable[0] fails intermittently
     add d0f5068  GEODE-4280 add the ability to close a Driver and to see if the driver is usable
     add 6ceeb12  GEODE-4144: Do not client side event id if port has not been set(#1277)
     add fb166cc  GEODE-4257: change default of value-contains-primary-key (#1261)
     add 7339fbc  Feature/geode 3583 storage (#1285)
     add cf31261  GEODE-4227 : Cluster config updated during Lucene Reindex (#1257)
     add e662639  GEODE-4227: applying spotless
     add 13364a3  GEODE-4290 add operation time statistics to the protobuf server
     add c31a0f8  GEODE-4296 Protobuf driver should turn off TCP delay, or make it configurable
     add 2a52890  GEODE-4292: Update scm refs in maven pom to github (#1280)
     add e36e42b  GEODE-4294 User Guide: Region level expiration is not supported for p… (#1282)
     add e1434bd  GEODE-4298: Restore public access to StartServer method.
     add 6d1f2b6  GEODE-4291: Avoid asking user input in SocketCreator. (#1283)
     add 2affe0f  GEODE-3745 User Guide: Incomplete diagram, durable client
     add 1ed9e94  GEODE-527: Fix race condition that caused sporadic test failure (#1296)
     add 541f0d9  GEODE-4140: Avoid race condition in rolling upgrade tests.
     add 6267bb5  GEODE-4303: Add assertions to nil test.
     add da42607  GEODE-4285: Get a distributed lock if we can't find a PDX type
     add fccdd15  GEODE-4310: allow ResourcePermission to take Strings as arguments for Resource and Operation. (#1300)
     add f565ac1  GEODE-2275: Remove async creation of shared static resource (#1298)
     add c9feba3  GEODE-4299: refactor eviction (#1290)
     add ffee51a  GEODE-4305: encapsulate the concurrencyChecksEnabled field (#1297)
     add 501cfda  GEODE-4147: Add variability to client rebalance logic.
     add 893f5a6  GEODE-4316: Additional function deploy tests (#1303)
     add 3504d51  GEODE-4304: use the gettor method for dataPolicy (#1295)
     add f0d3f23  GEODE-4238: rewrite flaky region expiration tests (#1292)
     add cb3baf3  GEODE-3322: Fix javadoc warnings
     add 081aa75  Commit-then-review:  updated Gemfile.lock file for building documentation
     add 00be4f9  GEODE-3974: function security improvement (#1287)
     add 75f2401  GEODE-4129: do not list coordinator as a different entry in list memb… (#1308)
     add 90617d0  GEODE-427: Prevent out of order message processing (#1307)
     add 33d7f4f  GEODE-4275: Improved StartMemberUtils.addMaxHeap (#1270)
     add 2d5ff11  GEODE-4061 Update docs output for gfsh list members; (#1309)
     add e63aaf8  GEODE-4251: Removed the 2 second client timeout from the test
     add 2d04130  GEODE-4312: Wait for rebalancing to complete as part of teardown (#1302)
     add b1cb0e3  GEODE-4307: Removing some static calls to GemFireCacheImpl.getForPDX
     add c1cf5d1  GEODE-4031: Update javadocs to include .gfd snapshot extension requirement (#1311)
     add b690cfa  GEODE-4015: Rewrite queue conflation tests (#1312)
     add 8d02247  GEODE-4332: Gfsh start locator should not retrieve cluster status when --connect=false (#1315)
     add 4f0c0b1  GEODE-4333: add unit tests for AbstractRegionMap.destroy (#1314)
     add 7fc5d6e  GEODE-3554: Add javadoc warning about getAnyInstance in CacheCallback
     add ec53f62  GEODE-3554: Add additional javadoc about how to get Cache.
     add 051349b  GEODE-4138: Move http related test to geode-web (#1320)
     add 4d82995  GEODE-4136: Move http related test to geode-web (#1319)
     add ea77216  GEODE-4306: Added concurrent checks enabled test to event time
     add aabad5f  GEODE-4315 Convert JSONWrapper to an interface
     add 63a96d9  GEODE-4317 add error handling to the experimental ProtobufDriver's Region implementation
     add 6501fb5  GEODE-4330: Move logic for handling temporary files during backup (#1323)
     add 6df14c8  GEODE-3974: Core function security improvement (#1310)
     add c9a832b  GEODE-4360: User Guide: Remove --eviction-enabled option from gfsh create region doc
     add 4f28412  Update Gemfile.lock (nokogiri fix; Bookbinder bump)
     add 4d46ba5  GEODE-4079 Identify hash indexes as deprecated in docs for gfsh create index command
     add 1f06a68  GEODE-4365: do not call GemFireCacheImpl.getExisting (#1331)
     add 1c95035  GEODE-4355: use Awaitility to fix ControlFileWatchdogIntegrationTest flakiness (#1329)
     add ee9b51b  GEODE-4358: Added check for null updater
     add f4b7f6d  GEODE-4374: Mark ShutdownCommandOverHttpDUnitTest as Flaky
     add 7752308  GEODE-4370: Ensure that rmi-io uses the JMX/RMI port (#1339)
     add a8f99b5  GEODE-4223: Test now waits until internal lucene regions are ready (#1301)
     add e7b96eb  GEODE-4369: remove generics from InternalRegion and InternalDistributedRegion (#1336)
     add c0bbe03  GEODE-4329: Move logic for copying files outside of BackupManager (#1334)
     add b484b66  GEODE-4334: Merge protobuf modules (#1332)
     add 61d1d4d  GEODE-4309: Refactor ArgumentRedactor for improved robustness. (#1313)
     add e664ce6  GEODE-3738: Use DUnit Rules to remove flakiness from legacy Authorization tests
     add f1d1144  GEODE-4389 Overriding a cache listener from a template region works correctly (#1345)
     add af25a80  GEODE-4379: Move RemoteOutputStreamServer from gfsh to the manager (#1341)
     add 16f2d53  GEODE-4387: Removing GemFireCacheImpl.setInstanceForTests
     add 47df59a  GEODE-4142: save commit message for failover after jta commit (#1324)
     add e63152a  GEODE-4354: Add --if-not-exists option to create region (#1328)
     add 2f81f40  GEODE-4094: ClientHealthMonitor may cause an NPE in a ServerConnection (#1326)
     add d707e2c  GEODE-4300 Server logs warning message when protobuf client closes socket
     add d49ca71  GEODE-4354: Update sanctioned-geode-core-serializables.txt
     add dd24cb9  GEODE-4374: Allow client calls to complete before shutting down (#1354)
     add 819599b  GEODE-4139: Add javac processor to ensure correct RunWith options are enabled for parameterized tests (#1318)
     add ebc1d5e  GEODE-3205: GEODE-2790: fix flakiness in DiskSpaceLimitIntegrationTest (#1350)
     add d0fef0f  GEODE-3915: use ClassName type for cache-loader, writer and listeners (#1327)
     add 4e7a98f  GEODE-4418: add FlakyTest category to testMemLRUEvictionNDestroyNNumOverflowOnDiskCount
     add aab2332  GEODE-4390: add FlakyTest category to testCloseDiskStoreWhenPut
     add c3ead73  GEODE-4418: add FlakyTest category to testCleanupAfterConflict
     add fe3e41f  GEODE-4149: Replace CacheFactory.getInstance(getSystem()) with JUnit4CacheTestCase.getCache(). (#1348)
     add 5302d88  GEODE-4368: Rename server connection classes. (#1343)
     add 52ff5ef  GEODE-4328: Make backup into a task run by a single thread (#1351)
     add 5149f3e  GEODE-4438: Removing unused .ser files
     add 215177f  GEODE-4308: Allow two caches in the same JVM if a feature flag is on
     add 8dab486  GEODE-4417: Remove support for DES. (#1355)
     add a0fc41b  GEODE-4380: Trigger build of geode-examples off geode success. (#1342)
     add 0d4940d  GEODE-4219: Test will properly shutdown listeners (#1325)
     add c6ce067  GEODE-4375: Fix problem that an exception occurs when transaction from CacheServer via Pool (#1363)
     add 21e2e0a  GEODE-4364: extract RegionMapDestroy and add RegionMapDestroyTest (#1347)
     add de9d814  GEODE-4429: Remove unnecessary modifiers from interfaces in geode-core:cache
     add a6ac186  GEODE-4431: Remove unnecessary modifiers from interfaces in geode-core:internal
     add adfd511  [GEODE-4371] Add lurker process that captures callstacks. (#1337)
     add 9cf05c1  GEODE-4433: Remove unnecessary modifiers from interfaces outside geode-core
     add 751735d  GEODE-4432: Remove unnecessary modifiers from interfaces in geode-core
     add 9438685  GEODE-4430: Remove unnecessary modifiers from interfaces in geode-core:internal.cache
     add 2615332  GEODE-4373: gfsh 'describe region' not showing accessor region description (#1365)
     add 4a75148  GEODE-4390: Replace flaky test with new tests (#1371)
     add a5068ff  GEODE-3834: Use TemporaryFolder rule in backup tests that did not yet use it (#1373)
     add 503d622  GEODE-4013: Ensure that non-daemon thread is used during shutdown of … (#1368)
     add 329e0c5  GEODE-3653: Remove testHook from AbstractGatewaySenderEventProcessor (#1217)
     add 0f6e09c  GEODE-3800: Replace BackupManager with BackupService (#1372)
     add 94049aa  GEODE-4405: Move backup target and base line dirs to prepare backup message (#1377)
     add b22db64  Update NOTICE with 2018 copyright
     add 6011e09  GEODE-3127: add function execution to new client protocol. (#1357)
     add 80ad2d7  GEODE-4270: remove race condition where CacheClientProxy could be asked to (#1378)
     add c1b21c0  GEODE-4439 Refactor HandShake.java
     add 198b9e0  GEODE-4076: throw AuthenticationRequiredException when failed to find… (#1369)
     add 232d16c  Update Dockerfile to: - use geode binary rather than building one on the fly - update to version 1.4.0 Updated Readme
     add 40a2ca0  GEODE-3966: Avoid singletons by passing distributed system and cache. (#1366)
     add 1c89fe1  GEODE-4397: refactor RegionMapDestroy destroy operation (#1370)
     add 158992b  GEODE-4509: change uses of LocalRegion to InternalRegion (#1379)
     add c36a113  GEODE-4487: Remove singleton calls from offheap package (#1382)
     add e9b4bd5  GEODE-4442: Move abort of backups to separate message (#1381)
     add b578408  GEODE-3876: refactor expiry options for create region and alter regio… (#1356)
     add 674e729  GEODE-4375: Fix problem that an exception occurs when transaction from CacheServer via Pool (#1363)
     add 4caba98  oops - spotlessApply
     add 906ed2a  GEODE-3948 Improve CQ performance under flaky network conditions
     add 6c331d1  GEODE-4499: Test adding a compressor to an existing persistent region. (#1384)
     add 69443da  GEODE-4598: Make LRUListWithAsyncSorting the default eviction list (#1387)
     add ff1b8c7  GEODE-4389: Ensure that region template creation does not require callback classes on the locator (#1390)
     add e3b0666  Fix capture_call_stacks.sh (#1393)
     add 2ebd5b0  GEODE-4392: Remove catch blocks that immediately rethrow the caught exception. (#1385)
     add f0d40e3  GEODE-4604: rest api function execution needs to check the required p… (#1388)
     add 5bec6b8  GEODE-4590: pass executor in to clear (#1392)
     add 8670ade  GEODE-4618: Mark test as flaky while root cause is investigated (#1398)
     add 82f41a4  GEODE-4616: Missed capturing the callstacks into the artifacts. (#1399)
     add aa46923  GEODE-3974: improve permission for Internal functions (#1395)
     add 8e9d4ce  GEODE-4596: remove an unused TestFunction class. (#1386)
     add 952db5f  GEODE-1758: Refactor, test and clean up TypeUtils (#1367)
     add c248b1e  Use openjdk:8 for base docker image.
     add f69130e  GEODE-4609: Create region gfsh command option --skip-if-exists defaults to false
     add e1781fb  GEODE-4354: On create region command change option --skip-if-exists to --if-not-exists
     add 31b7f15  GEODE-4353: Deprecating security-client-dhalgo
     add ad5a311  [GEODE-4630] Add timestamps directories to subdivide test artifacts. (#1412)
     add 45312b9  GEODE-4621: Schedule scans only if list is above max eviction attempt… (#1408)
     add cd92f9a  GEODE-4631: need a public class to mock (#1413)
     add 05e2c8c  GEODE-4573 set JTAPaused flag even if JTA is not yet bootstrapped when pauseTransaction is executed. (#1403)
     add fe31227  GEODE-4607: Remove protobuf Request and Response objects, renumber message types (#1389)
     add ff215d4  GEODE-4435 Move queueSize stat increment to after writing to disk. (#1397)
     add a39394e  GEODE-4320: Reconcile disparity between Banner and AbstractConfig
     add 24601a6  GEODE-4629: Ignore tests that assume non-approximate LRU (#1417)
     add f848621  GEODE-4588: remove call of getAnyInstance (#1394)
     add b1ba8fd  GEODE-4583: remove getAnyInstance calls (#1407)
     add 17654b9  GEODE-2569: Avoid unhelpful log message via a null check. (#1404)
     add bbea69a  GEODE-3540: unable to gfsh destroy gateway-sender (#1414)
     add b7c4bd8  merge from feature/GEODE-3643
     add f6a982e  GEODE-4639: Removing Java PathFinder concurrency test runner
     add 783005a  GEODE-4566: remove getInstance calls from PartitionMessage (#1411)
     add 735b44e  GEODE-4575: remove getAnyInstance call in CacheCreation (#1406)
     add fc3e144  GEODE-4586: remove getAnyInstance calls from RegionVersionVector (#1402)
     add 75d0f9d  GEODE-4629: Fix tests dependant on LRU eviction order (#1423)
     add 2685566  GEODE-4372: clean up RemoteOperationMessage classes (#1338)
     add 3114c21  GEODE-4636: Update Style XML to allow human-readable spacing in comments (#1415)
     add 03b7c14  GEODE-4642: Remove PowerMock any() method calls from non-mock invocations.
     add 5749ec9  Adding 1.4.0 as an old version to test against
     add cb82c21  GEODE-4615 Deadlock shutting down client cache
     add 024110c  GEODE-4613: always redirect jdk loggers to file no matter what mode Gfsh is in. (#1424)
     add 66dbc8e  GEODE-3813: Deprecating RegisterInterest ALL_KEYS and List behavior (#1376)
     add 4a9e651  GEODE-2667:  Add API to destroy GatewayReceiver (#1410)
     add e7867c5  User Guide: Fixed format issues in <cache> element reference
     add a36f6ad  GEODE-3876: gfsh command for custom expiry (#1401)
     add ffd89d4  GEODE-4622 Add gradle-versions-plugin for dependency scanning
     add c076bef  GEODE-4622 Update library dependencies
     add 81c5777  GEODE-4511: Switch to lazy initialization of the default pool. (#1420)
     add 3cdce4b  GEODE-3616: Clean up ClientHealthMonitorJUnitTest (#1375)
     add c490493  User Guide: Update expiration overview, modify figure
     add 273d510  Revert "GEODE-3813: Deprecating RegisterInterest ALL_KEYS and List behavior (#1376)"
     add 30767df  remove getInstance calls in ShutdownAllRequest (#1429)
     add 303b693  GEODE-3921 Adjust Dockerfile to be Alpine-based for size
     add 49cb2eb  GEODE-3813: Deprecating RegisterInterest ALL_KEYS and List behavior (#1438)
     add 32f058c  GEODE-4652 Add docs for LuceneServiceMXBean
     add 9f17736  GEODE-3643 Add function execution on specific member
     add c03072d  GEODE-4645: Update help string for create region --if-not-exists (#1431)
     add 954ccb5  GEODE-3974: revert a change to log the exception in the server logs (#1444)
     add 68deb0d  GEODE-800: Update fast-classpath-scanner to 2.18.1 (#1430)
     add da5da79  GEODE-4651: fix transactional destroy entry leak (#1433)
     add 0290f94  GEODE-4649 Specify minimum java update version (#1451)
     add 10a9124  GEODE-4403: Remove ProtobufErrorCode (#1432)
     add 53178f8  GEODE-800: Reduce test iterations to avoid timeouts
     add 5252419  GEODE-4511: Ensure a pool is available for durable client subscription. (#1448)
     add 3a2a539  GEODE-4655: Use smaller eviction limit to avoid async scanning. (#1446)
     add f3e37e1  GEODE-4640: Remove potential race condition from RemoveCommandDUnitTest. (#1421)
     add ffd2dc7  Bump version in README
     add de7c6d8  GEODE-3967: There're following 9 problems fixed here: 1) When ConcurrentCacheModificationException happened, GatewaySenderEventImpl  should save the status and notify gatewaysender if it hold primary queue, because other member might have put the event into the secondary queue. 2) In AbstractUpdateOperation's doPutOrCreate's 3 tries of basicUpdate, the 3rd try should allow both create and update. 3) Let event with CME not to dispatch. The old logic does not allow CME eve [...]
     add d14627f  GEODE-4585: remove getAnyInstance call (#1428)
     add dec2cfe  GEODE-4377: Don't catch encoding exceptions in OperationHandlers
     add 604f2ad  GEODE-4476: Remove getInstance() calls from org.apache.geode.cache.query (#1427)
     add c69046c  User Guide: Simplify source files and directories in “data management” section
     add e44bf9e  GEODE-4377: Don't catch encoding exceptions in OperationHandlers
     add 39afc33  GEODE-4628: Gfsh connect should infer more about the conenction type (#1445)
     add dae7332  [GEODE-4676] Add callstack processing to non-dunit tests.
     add 6181a93  Merge pull request #1457 from smgoller/GEODE-4676
     add adaa01a  GEODE-4615 Deadlock shutting down client cache
     add 7c5cd35  GEODE-4633: un-deprecate peer-auth-init and more javadoc (#1442)
     add 5be709c  GEODE-4295: convert loaded PdxInstance (#1453)
     add 0e6e228  GEODE-4394: gfsh put command: change option --skip-if-exists to --if-… (#1425)
     add 4595d69  GEODE-4473: Removed GemFireCacheImpl.getInstance() calls
     add eb8e1d2  GEODE-4467: Removed instances of singleton usage
     add a8e3b4b  GEODE-4694: add missing subnav entry to docs for gfsh destroy (#1464)
     add 8dc364f  GEODE-4653: Add JSONFormatterFailuresTest with simple examples. (#1441)
     add efab926  GEODE-4671: Removing flags that aren't recognized by JDK 9
     add 41d63a5  GEODE-4670: Removing unused reflection of JDK methods
     add baa847c  GEODE-3: Enabling property to run tests with a different JVM
     add 9a97c80  GEODE-4180: get rid of withTempWorkingDir in ClusterStartupRule (#1443)
     add 3d0cb00  GEODE-4628: Prompt for SSL props in interactive mode
     add 2dde1f1  GEODE-4626: Indicate the region creation from a template is deprecated (#1449)
     add 54e80bf  GEODE-4394: gfsh put command: change option --skip-if-exists to --if-not-exists (#1466)
     add 16cf40f  GEODE-4325 User Guide: Clarify eviction actions
     add ba9aa36  GEODE-4579: Removed singleton instance
     add ea79fcc  GEODE-4686: Remove ParallelQueueBatchRemovalMessage
     add 60d475f  GEODE-4528: Removed CacheFactory.getAnyInstance from InternalClientMembership
     add f367adf  Merge branch 'develop' of https://github.com/apache/geode into feature/GEODE-4528
     add fb784ac  Merge pull request #1465 from davinash/feature/GEODE-4528
     add 983fa53  [GEODE-4688] Add metrics pipeline.
     add f4ebcd2  [GEODE-4688] Pipeline testing references made it into the commit.
     add 6f11ce7  GEODE-3813: Improved and fixed formatting in javaDoc for deprecated behavior (#1473)
     add e887933  GEODE-4373 gfsh 'describe region' - added example showing accessor region description
     add cbb9802  GEODE-4325 User Guide: Clarify eviction actions (correction to an example)
     add 6d417c4  GEODE-4678: Remove ServerHandshakeProcessor and refactor handshake creation (#1456)
     add f453ace  GEODE-4705: Refactor Failure.of to handle protobuf builder code. (#1472)
     add b081019  GEODE-4698: Increasing the client timeout in Gemcached tests
     add 2daf8d7  GEODE-4327: Added mod and arithmetic functionality to oql engine (#1316)
     add fa11e2a  GEODE-3928: createIndex on existing region creates lucene indexes for existing data
     add 7255db4  GEODE-4989: Temporary fix for Lucene Stats
     add 2a72fb2  GEODE-4717: Refactor computeRepository
     add 073180c  GEODE-4718: PdxReadSerialized is reset
     add 33b6e1c  GEODE-4719: Added comments to explain getRepository
     add d7102e8  GEODE-4989: Reverted a fix for Lucene stats
     add 25978ef  GEODE-3928: Unused imports were removed.
     add 37ff715  GEODE-4414: Support explicit nulls in geode's protobuf protocol (#1437)
     add dc2b33d  GEODE-4656: Decribe region shows entry-idle-time-custom-expiry and entry-time-to-live-custom-expiry (#1455)
     add 059acf2  GEODE-4713: remove getInstance calls from from MultiVMRegionTestCase (#1481)
     add 0b15a3b  GEODE-4464: remove singleton calls from all tests in org.apache.geode.cache30 (#1484)
     add 00fa527  GEODE-4493: remove InternalDistributedSystem.getAnyInstance call (#1485)
     add e9ada48  GEODE-3523: Update locatorDiscoveryCallback after updating state
     add 9a26976  GEODE-4570: Remove getInstance() singleton call from SecurityServiceF… (#1482)
     add ce0d6a0  GEODE-4690: ClusterStartupRule causes System properties to 'disappear' (#1470)
     add 804ecfa  GEODE-4625: name collision check when create region through gfsh (#1483)
     add ccfe15e  GEODE-3876: Document gfsh command for custom expiry
     add bf5b802  Merge branch 'feature/GEODE-3876' into develop
     add a454e97  GEODE-4625: Add missing @Category to test. (#1494)
     add 3b596ff  GEODE-2667: Improved javaDoc for GatewayReceiver.destroy() (#1490)
     add bbbc78f  GEODE-4656: Decribe region shows entry-idle-time-custom-expiry and entry-time-to-live-custom-expiry
     add 7d7361c  GEODE-4691: Gfsh command Start Locator shows inconsistent behavior wi… (#1478)
     add 8354b61  GEODE-3875: gfsh command to create jndi binding (#1475)
     add 1f2193b  GEODE-4402: Add logging where exceptions would be thrown or caught. (#1452)
     add 1d1bc3b  GEODE-4703: Prevent sending RemoveCacheServerProfileMessage to older members (#1468)
     add df093b5  GEODE-4722: Refactor CliUtil (#1487)
     add c16d1a3  GEODE-4327 Document new OQL operators (#1491)
     add 94db6a7  GEODE-3813: Improved and fixed formatting in javaDoc for deprecated behavior (#1500)
     add 3b6a9aa  GEODE-4559: pass the Cache to a Declarable (#1422)
     add 2dfc8ae  GEODE-4407 (#1499): Refactoring incremental backup logic
     add d752dce  GEODE-4541: remove singleton calls (#1463)
     add 147e6bc  GEODE-4704: Modified ConflationKey to use shadowKey when comparing events
     add de2cb20  GEODE-4638: Standardize hanlding of region-not-found errors. (#1492)
     add 101fd19  GEODE-2673: overhaul PartitionedRegion dunit tests (#1486)
     add 889da89  GEODE-4675: remove checkConnected calls while notifying listeners (#1495)
     add 3dad0a3  GEODE-4738: move eventSeqNum and versionVector setting in constructors. (#1504)
     add 3eaa095  GEODE-4737 Document JSON spec for gfsh command options (#1509)
     add cd5edfd  GEODE-3915 Document use of JSON spec for gfsh create and alter region (#1502)
     add c00ce53  GEODE-2667: Reword javaDoc for destroy gateway receiver (#1501)
     add be8140d  GEODE-4736: Updating statistics in ProtobufOpsProcessor
     add 40fb4bd  GEODE-3875: gfsh command to create jndi binding (#1507)
     add fa1f2ac  GEODE-4406: Improve authorization granularity for protobuf (#1514)
     add 42485b6  GEODE-4625: rework name collision check logic and add more tests (#1505)
     add f4433fc  GEODE-4404: Move BackupWriter creation (#1521)
     add 7980b1c  GEODE-4743: Removed five dead classes.
     add 967b9db  GEODE-4744: Allow java.util.Map#get in OQL when security is enabled
     add 92278d4  GEODE-4753: fix permission for GetServer operation (#1524)
     add 84d31b8  GEODE-4725: PdxReadSerialized reset
     add 0e36a99  GEODE-4745: Stat check asserts modified
     add 4ad6337  GEODE-4733: Remove unused and inline trivial ObjectUtils methods.
     add 0afb75b  GEODE-4362: view preparation throws uncaught RuntimeException
     add b730a43  GEODE-3126: Adding a query message to the protobuf protocol
     add 0a6eebd  GEODE-3948 Improve CQ performance under flaky network conditions
     add 4fd969e  GEODE-4695 PluckStacks utility is confused by Attach Listener thread dump
     add 8ce5ebf  Refactoring request/response into a common class in protobuf driver
     add c373f37  GEODE-3126: Adding a query command to the experimental driver
     add efc413a  GEODE-4746: Handle exceptions and return failures to protobuf clients
     add 1c901de  GEODE-4740: Removed the stat checks
     add 291c4e5  GEODE-4101: User Guide - document the --redirect-output flag in GFSH commands
     add 25a0d6e  GEODE-4101: User Guide - incorporate review comments
     add ce0251d  GEODE-4734: cleanup tests for use as examples in Geode wiki (#1518)
     add 7b5fe8f  GEODE-4757: Prevent NPE when non-incremental backup conducted (#1530)
     add c7096b9  GEODE-4756: Restore the correct help string for the --group option (#1531)
     add e29f817  GEODE-4182: Add JdbcConnectorException (#1529)
     add 851a29c  [GEODE-4760] CI maintenance fixes.
     add 0de52f3  Merge pull request #1534 from smgoller/GEODE-4760
     add e9874b7  GEODE-4761 test is serializing the test class and putting it into the cache
     add 8ce536e  GEODE-3948 Document subscription timeout multiplier
     add 7ec3956  GEODE-4517: Remove getAnyInstancce call from CliUtil.
     add db63cf3  GEODE-4762: Remove dead code.
     add 808d273  GEODE-4661: Implement KeySet protobuf message and handler (#1538)
     add c35aba2  GEODE-4394 gfsh put command: change option --skip-if-exists to --if-not-exists (update user guide)
     add 94ded7f  GEODE-4672 Geode fails to start with JDK 9 if validate-serializable-objects is set
     add b9d9b38  GEODE-4401: Add disconnect client message to server and driver. (#1525)
     add 5380ed5  GEODE-3465: Enhance error message and add tests for when group is specified. (#1527)
     add 81ae44d  GEODE-4721: Fix a case that client proxy region returns empty set if … (#1532)
     add 07564e8  rev the build number to 1.6.
     add a636cb0  GEODE-4672 Geode fails to start with JDK 9 if validate-serializable-objects is set
     add e5025d3  GEODE-4765: Add retries when retrieving cluster config (#1539)
     add a281d54  GEODE-4385: Add list jndi-binding option (#1547)
     add c64b34829 GEODE-4759: Fix typo of getFunctionExcecutor (#1533)
     add 285cd9b  GEODE-4767: Lucene stat assert modification
     add f2997f7  GEODE-4696: Refactored validateCommandParameters (#1535)
     add 9108bac  GEODE-2667: Added logging and additional tests for GatewayReceiver destroy (#1528)
     add 4699b58  Stop generating md5 checksums for distribution archives
     add 18743f5  GEODE-182: Use of neutral words (#1560)
     add 5d53952  GEODE-4780: Categorized cq tests under ClientSubscriptionTest (#1558)
     add 3453736  GEODE-4662: Add method for retrieving size to the region interface. (#1557)
     add c16f280  GEODE-4770: Prevent NPE when destroying unstarted GatewayReceiver (#1556)
     add 7041507  GEODE-4764: Address NPEs during Lucene index creation on existing region
     add ef1ebdf  GEODE-4781: Categorize Lucene Tests (#1562)
     add 4f0c5c9  GEODE-4775: Apply ArgumentRedactor to JVM arguments.
     add 00e2a45  GEODE-4777: Add UITest job to concourse develop pipeline (#1561)
     add ef8fa1a  GEODE-4776: Migrate to chrome driver for Pulse UI Tests (#1549)
     add 1a69ddc  GEODE-4781: Converted LuceneTest to an interface
     add eb8f840  GEODE-4787: Re-instate Management REST API endpoints for 'create index' and 'create region'. (#1563)
     add cf5f83a  GEODE-4788: change back the behavior of test code of getSomeKeys to ignore exceptions. (#1564)
     add 336c6e4  GEODE-4779: Categorize OQLQuery and OQLIndex Tests (#1555)
     add 18560c0  GEODE-4217: Add validation to CreateConnectionCommand (#1566)
     add 7ab0c6b  GEODE-4777: Add UITest job to concourse develop pipeline (#1571)
     add 7becb7c  GEODE-4793: Ensure that Files.list() closes resources (#1572)
     add 922ab83  GEODE-4766: move PRCustomPartitioningDUnitTest to internal.cache (#1542)
     add 7630dba  GEODE-4385: Update help message for list jndi-binding (#1575)
     add 9ac5839  GEODE-4800: Fix handling orf relative paths when providing backpu baseline dir (#1581)
     add d62173a  GEODE-4755: Use a more portable File permission API (#1573)
     add 06e7029  GEODE-4384: gfsh command to destroy jndi binding (#1568)
     add 78df32f  GEODE-4791: Upgrading gradle from 3.5.1 to 4.5.1
     add 13b7364  GEODE-4791: turning off gradle parallel builds
     add eaeb8d0  GEODE-4778: Code clean up and refactor (#1553)
     add 457f1c5  GEODE-4792: Expand ArgumentRedactor regular expression logic for better self-documentation.
     add 3dfad34  GEODE-4795: User Guide: Inequality queries return UNDEFINED entries
     add c138865  GEODE-4797: Added WANTest category (#1580)
     add e09c409  GEODE-4791: backing out upgrade to 4.5.1 due to an incompatibility with dockerized-test library, which only supports gradle 4.2
     add 8672678  GEODE-4751: Modify experimental driver to support function execution. (#1579)
     add ccc8db8  Revert "GEODE-4791: backing out upgrade to 4.5.1 back to 3.5.1"
     add 17602ce  GEODE-4750: Allow region level authorization for OQL queries (#1570)
     add b53714c  GEODE-4735: get rid of Cache.getInstance call from CliUtils and GfshC… (#1551)
     add 4143a73  GEODE-4685: Moving of static DefaultQuery.setPdxReadSerialized to the TypeRegistry. Cleaned up the overriding of readSerialized to reset to previous value. Added cache to AbstractJdbcCallback.java so that children classes can access it. Replaced AtomicLong with LongAdder.
     add 386b92b  GEODE-4801 Readme links to "how to contribute"
     add 0908acb  Bug/geode 4798: Add JDBC Connector classes to sanctioned serializables (#1592)
     add 3939595  GEODE-4772: Enhance new protocol with ability to clear region of all entries. (#1590)
     add 3079826  GEODE-4716: Added overflow attributes to gateway mbeans
     add 94586e1  GEODE-4807: Pulse UI tests using locator/cluster rule. (#1584)
     add 6214a43  GEODE-2999: Add PutIfAbsent to the Protobuf protocol. (#1578)
     add 8a12c6d  GEODE-4818: Remove beSick() from DirectChannel,TcpConduit. (#1591)
     add a2099c4  GEODE-4825: Lucene Index should reset pdx read serialized (#1598)
     add 5c85b4d  GEODE-4814: Categorized FunctionServiceTest (#1597)
     add 25aebbe  GEODE-4813: Categorize remaining register interest tests (#1586)
     add a07b67a  GEODE-4266: Make JdbcConnectionException safely serializable to clients (#1601)
     add 2f1fe57  GEODE-4768: Close the socket to the locator in the experimental driver
     new 7863c79  initial commit for micrometer implementation
     new 6859a23  Changing counter to gauge
     new d0a1f78  Adding Micrometer to PartitionedRegionStats
     new df27f26  Adding Micrometer to PartitionedRegionStats
     new e2cc32a  A commit that I can demo.

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 NOTICE                                             |    4 +-
 README.md                                          |   25 +-
 build.gradle                                       |   64 +-
 buildSrc/build.gradle                              |    4 +-
 .../geode/gradle/TestPropertiesWriter.groovy       |    3 -
 .../javac/EnsureCorrectRunsWithProcessor.java      |  135 +
 .../services/javax.annotation.processing.Processor |    1 +
 .../org/apache/geode/javac/SimpleClassFile.java    |   42 +
 .../org/apache/geode/javac/SimpleFileManager.java  |   46 +
 .../org/apache/geode/javac/SimpleSourceFile.java   |   35 +
 .../geode/javac/TestAnnotationProcessor.java       |   51 +
 .../java/org/apache/geode/javac/TestCompiler.java  |   51 +
 ci/bin/concourse_job_performance.py                |  120 +
 ci/docker/Dockerfile                               |   29 +-
 ci/docker/initdocker                               |    2 +-
 ci/pipelines/develop.yml                           |  132 +-
 ci/pipelines/docker-images.yml                     |    9 +-
 ci/pipelines/meta.yml                              |   19 +
 ci/pipelines/metrics.yml                           |  159 +
 ci/scripts/build-examples.sh                       |   26 +
 ci/scripts/capture-call-stacks.sh                  |   75 +
 ci/scripts/concourse_job_performance.sh            |   37 +
 ci/scripts/test-archive.sh                         |   11 +-
 ci/scripts/test-run.sh                             |   11 +-
 ci/scripts/update-passing-ref.sh                   |   28 +
 docker/Dockerfile                                  |   84 +-
 docker/README.md                                   |    6 +-
 etc/eclipse-java-google-style.xml                  |  598 +--
 .../session/internal/common/SessionCache.java      |   12 +-
 .../session/internal/filter/SessionManager.java    |   16 +-
 .../filter/attributes/SessionAttributes.java       |   24 +-
 .../internal/jmx/SessionStatisticsMXBean.java      |    6 +-
 .../SessionReplicationIntegrationJUnitTest.java    |  688 +--
 .../session/junit/PerTestClassLoaderRunner.java    |   25 +-
 extensions/geode-modules/build.gradle              |    2 +-
 .../geode/modules/gatewaydelta/GatewayDelta.java   |    6 +-
 .../gatewaydelta/GatewayDeltaCreateEvent.java      |    4 +-
 .../modules/gatewaydelta/GatewayDeltaEvent.java    |    2 +-
 .../modules/session/catalina/SessionCache.java     |   36 +-
 .../modules/session/catalina/SessionManager.java   |   26 +-
 .../internal/DeltaSessionAttributeEvent.java       |    3 +-
 .../geode/modules/util/BootstrappingFunction.java  |   26 +-
 .../geode/modules/util/CreateRegionFunction.java   |   25 +-
 .../geode/modules/util/RegionSizeFunction.java     |    9 +
 .../TouchPartitionedRegionEntriesFunction.java     |   25 +-
 .../util/TouchReplicatedRegionEntriesFunction.java |   29 +-
 .../modules/util/ModuleFunctionsSecurityTest.java  |   75 +
 geode-assembly/build.gradle                        |   33 +-
 geode-assembly/src/main/dist/LICENSE               |   22 +-
 geode-assembly/src/main/dist/NOTICE                |   10 +-
 .../cli/commands/DeployWithLargeJarTest.java       |   47 +
 .../cli/commands/GfshStartLocatorLogTest.java      |    3 +-
 ...scribeConfigAreFullyRedactedAcceptanceTest.java |  152 +
 .../cli/commands/StartLocatorAcceptanceTest.java   |   60 +
 .../cli/commands/StartLocatorCommandTest.java      |   97 +
 .../cli/commands/StartServerCommandTest.java       |   84 +
 .../internal/web/RestFunctionExecuteDUnitTest.java |  124 +
 .../internal/web/RestSecurityIntegrationTest.java  |  150 +-
 .../controllers/RestAPIsAndInterOpsDUnitTest.java  |    2 +-
 .../web/controllers/RestAPIsWithSSLDUnitTest.java  |   47 +-
 .../session/tests/GenericAppServerInstall.java     |    6 +-
 .../session/tests/TomcatClientServerTest.java      |    4 +-
 .../geode/test/junit/rules/HttpClientRule.java     |   52 +-
 .../geode/tools/pulse/PulseConnectivityTest.java   |    4 +-
 .../tools/pulse/PulseJmxPasswordFileTest.java      |   62 +
 .../tools/pulse/PulseSecurityWithSSLTest.java      |    4 +-
 .../tools/pulse/ui/PulseAcceptanceAuthTest.java    |  102 +
 .../tools/pulse/ui/PulseAcceptanceNoAuthTest.java  |   94 +
 .../tools/pulse/ui/PulseAcceptanceTestBase.java    |  354 ++
 .../src/test/resources/expected_jars.txt           |   27 +-
 geode-assembly/src/test/resources/security.json    |   45 +
 geode-benchmarks/build.gradle                      |   28 -
 .../benchmark/RangeQueryWithIndexBenchmark.java    |  105 -
 .../cache/benchmark/RegionOperationBenchmark.java  |   63 -
 geode-book/Gemfile                                 |    2 +-
 geode-book/Gemfile.lock                            |   70 +-
 geode-book/config.yml                              |    1 +
 .../source/subnavs/geode-subnav.erb                |  109 +-
 geode-client-protocol/build.gradle                 |   30 -
 .../protocol/ClientProtocolMessageHandler.java     |   40 -
 .../apache/geode/internal/protocol/Failure.java    |   48 -
 .../internal/protocol/MessageExecutionContext.java |   93 -
 .../geode/internal/protocol/OperationContext.java  |   64 -
 .../geode/internal/protocol/ProtocolErrorCode.java |   44 -
 .../org/apache/geode/internal/protocol/Result.java |   28 -
 .../apache/geode/internal/protocol/Success.java    |   48 -
 .../exception/InvalidProtocolMessageException.java |   31 -
 .../protocol/operations/OperationHandler.java      |   41 -
 .../protobuf/v1/serializer/ProtocolSerializer.java |   34 -
 .../serialization/SerializationService.java        |   34 -
 .../protocol/serialization/SerializationType.java  |   32 -
 .../internal/protocol/serialization/TypeCodec.java |   36 -
 .../protocol/serialization/codec/JSONCodec.java    |   39 -
 .../UnsupportedEncodingTypeException.java          |   31 -
 .../registry/SerializationCodecRegistry.java       |   67 -
 .../CodecAlreadyRegisteredForTypeException.java    |   28 -
 .../CodecNotRegisteredForTypeException.java        |   27 -
 .../ConnectionAuthenticatingStateProcessor.java    |   31 -
 .../ConnectionShiroAuthorizingStateProcessor.java  |   59 -
 .../protocol/state/ConnectionStateProcessor.java   |   73 -
 .../state/ConnectionTerminatingStateProcessor.java |   34 -
 .../LegacySecurityConnectionStateProcessor.java    |   36 -
 .../state/NoSecurityConnectionStateProcessor.java  |   32 -
 .../state/exception/ConnectionStateException.java  |   30 -
 .../exception/OperationNotAuthorizedException.java |   23 -
 .../protocol/statistics/NoOpStatistics.java        |   47 -
 .../statistics/ProtocolClientStatistics.java       |   33 -
 ...geode.internal.protocol.serialization.TypeCodec |    1 -
 geode-concurrency-test/build.gradle                |    8 -
 .../src/main/java/java/net/InetAddress.java        |  155 -
 .../test/concurrency/ConcurrentTestRunner.java     |   11 +-
 .../annotation/ConcurrentTestConfig.java           |    4 +-
 .../geode/test/concurrency/jpf/JpfRunner.java      |   98 -
 .../test/concurrency/jpf/JpfRunnerConfig.java      |   34 -
 .../test/concurrency/jpf/ParallelExecutorImpl.java |   87 -
 .../test/concurrency/jpf/logging/EmptyLogger.java  | 1975 --------
 ...il_concurrent_locks_ReentrantReadWriteLock.java |   42 -
 ...ributed_internal_InternalDistributedSystem.java |   28 -
 ...g_apache_geode_internal_logging_LogService.java |   42 -
 ...che_geode_internal_logging_log4j_LogMarker.java |   27 -
 .../JPF_org_apache_logging_log4j_LogManager.java   |   29 -
 geode-connectors/build.gradle                      |   33 +
 .../geode/connectors/jdbc/JdbcAsyncWriter.java     |  118 +
 .../connectors/jdbc/JdbcConnectorException.java    |   84 +
 .../apache/geode/connectors/jdbc/JdbcLoader.java   |   60 +
 .../apache/geode/connectors/jdbc/JdbcWriter.java   |  108 +
 .../jdbc/internal/AbstractJdbcCallback.java        |   68 +
 .../connectors/jdbc/internal/ColumnValue.java      |   44 +
 .../jdbc/internal/ConnectionConfigBuilder.java     |   82 +
 .../internal/ConnectionConfigExistsException.java  |   33 +
 .../ConnectionConfigNotFoundException.java         |   34 +
 .../jdbc/internal/ConnectionConfiguration.java     |  110 +
 .../jdbc/internal/DataSourceManager.java           |   46 +
 .../jdbc/internal/HikariJdbcDataSource.java        |   45 +
 .../jdbc/internal/HikariJdbcDataSourceFactory.java |   21 +
 .../jdbc/internal/JdbcConnectorService.java        |   49 +
 .../jdbc/internal/JdbcConnectorServiceImpl.java    |  159 +
 .../connectors/jdbc/internal/JdbcDataSource.java   |   22 +
 .../jdbc/internal/JdbcDataSourceFactory.java       |   25 +
 .../connectors/jdbc/internal/RegionMapping.java    |  169 +
 .../jdbc/internal/RegionMappingBuilder.java        |   99 +
 .../internal/RegionMappingExistsException.java     |   33 +
 .../internal/RegionMappingNotFoundException.java   |   33 +
 .../geode/connectors/jdbc/internal/SqlHandler.java |  260 ++
 .../jdbc/internal/SqlStatementFactory.java         |   78 +
 .../jdbc/internal/TableKeyColumnManager.java       |   88 +
 .../jdbc/internal/cli/AlterConnectionCommand.java  |  142 +
 .../jdbc/internal/cli/AlterConnectionFunction.java |   89 +
 .../jdbc/internal/cli/AlterMappingCommand.java     |  151 +
 .../jdbc/internal/cli/AlterMappingFunction.java    |   87 +
 .../jdbc/internal/cli/CreateConnectionCommand.java |  163 +
 .../internal/cli/CreateConnectionFunction.java     |   56 +
 .../jdbc/internal/cli/CreateMappingCommand.java    |  152 +
 .../jdbc/internal/cli/CreateMappingFunction.java   |   60 +
 .../internal/cli/DescribeConnectionCommand.java    |  113 +
 .../internal/cli/DescribeConnectionFunction.java   |   34 +
 .../jdbc/internal/cli/DescribeMappingCommand.java  |  112 +
 .../jdbc/internal/cli/DescribeMappingFunction.java |   33 +
 .../internal/cli/DestroyConnectionCommand.java     |  113 +
 .../internal/cli/DestroyConnectionFunction.java    |   79 +
 .../jdbc/internal/cli/DestroyMappingCommand.java   |  110 +
 .../jdbc/internal/cli/DestroyMappingFunction.java  |   79 +
 .../jdbc/internal/cli/ExceptionHandler.java        |   59 +
 .../cli/FunctionContextArgumentProvider.java       |   70 +
 .../jdbc/internal/cli/JdbcCliFunction.java         |   64 +
 .../jdbc/internal/cli/ListConnectionCommand.java   |  107 +
 .../jdbc/internal/cli/ListConnectionFunction.java  |   45 +
 .../jdbc/internal/cli/ListMappingCommand.java      |  106 +
 .../jdbc/internal/cli/ListMappingFunction.java     |   44 +
 .../connectors/jdbc/internal/xml/ElementType.java  |  143 +
 .../xml/JdbcConnectorServiceXmlGenerator.java      |  165 +
 .../xml/JdbcConnectorServiceXmlParser.java         |   59 +
 .../internal/xml/JdbcServiceConfiguration.java     |   79 +
 .../ConnectorsDistributedSystemService.java        |   43 +
 .../geode.apache.org/schema/jdbc/jdbc-1.0.xsd      |   86 +
 ...e.distributed.internal.DistributedSystemService |   16 +
 .../org.apache.geode.internal.cache.CacheService   |    1 +
 ....apache.geode.internal.cache.xmlcache.XmlParser |    1 +
 .../org.springframework.shell.core.CommandMarker   |   27 +
 .../sanctioned-geode-connectors-serializables.txt  |   18 +
 .../AnalyzeConnectorsSerializablesJUnitTest.java   |   30 +
 .../org/apache/geode/connectors/jdbc/Employee.java |   54 +
 .../jdbc/JdbcAsyncWriterIntegrationTest.java       |  261 ++
 .../geode/connectors/jdbc/JdbcAsyncWriterTest.java |  103 +
 .../jdbc/JdbcConnectorExceptionTest.java           |   47 +
 .../geode/connectors/jdbc/JdbcDUnitTest.java       |  306 ++
 .../connectors/jdbc/JdbcLoaderIntegrationTest.java |  110 +
 .../geode/connectors/jdbc/JdbcLoaderTest.java      |   61 +
 .../connectors/jdbc/JdbcWriterIntegrationTest.java |  239 +
 .../geode/connectors/jdbc/JdbcWriterTest.java      |  111 +
 .../jdbc/internal/AbstractJdbcCallbackTest.java    |   76 +
 .../connectors/jdbc/internal/ColumnValueTest.java  |   58 +
 .../jdbc/internal/ConnectionConfigBuilderTest.java |   92 +
 .../jdbc/internal/ConnectionConfigurationTest.java |   96 +
 .../jdbc/internal/DataSourceManagerUnitTest.java   |   98 +
 .../jdbc/internal/JdbcConnectorServiceTest.java    |  115 +
 .../jdbc/internal/RegionMappingBuilderTest.java    |  115 +
 .../jdbc/internal/RegionMappingTest.java           |  243 +
 .../connectors/jdbc/internal/SqlHandlerTest.java   |  473 ++
 .../jdbc/internal/SqlStatementFactoryTest.java     |   90 +
 .../jdbc/internal/TableKeyColumnManagerTest.java   |  141 +
 .../jdbc/internal/TestConfigService.java           |   55 +
 .../jdbc/internal/TestableConnectionManager.java   |   22 +
 .../cli/AlterConnectionCommandDUnitTest.java       |  135 +
 .../cli/AlterConnectionCommandIntegrationTest.java |   83 +
 .../internal/cli/AlterConnectionFunctionTest.java  |  222 +
 .../internal/cli/AlterMappingCommandDUnitTest.java |  139 +
 .../cli/AlterMappingCommandIntegrationTest.java    |   85 +
 .../internal/cli/AlterMappingFunctionTest.java     |  241 +
 .../cli/CreateConnectionCommandDUnitTest.java      |  109 +
 .../CreateConnectionCommandIntegrationTest.java    |  112 +
 .../internal/cli/CreateConnectionFunctionTest.java |  136 +
 .../cli/CreateMappingCommandDUnitTest.java         |  147 +
 .../cli/CreateMappingCommandIntegrationTest.java   |  121 +
 .../internal/cli/CreateMappingFunctionTest.java    |  137 +
 .../cli/DescribeConnectionCommandDUnitTest.java    |  109 +
 .../DescribeConnectionCommandIntegrationTest.java  |  150 +
 .../cli/DescribeConnectionFunctionTest.java        |  138 +
 .../cli/DescribeMappingCommandDUnitTest.java       |  117 +
 .../cli/DescribeMappingCommandIntegrationTest.java |  145 +
 .../internal/cli/DescribeMappingFunctionTest.java  |  138 +
 .../cli/DestroyConnectionCommandDUnitTest.java     |   99 +
 .../DestroyConnectionCommandIntegrationTest.java   |   84 +
 .../cli/DestroyConnectionFunctionTest.java         |  124 +
 .../cli/DestroyMappingCommandDunitTest.java        |  101 +
 .../cli/DestroyMappingCommandFunctionTest.java     |  124 +
 .../cli/DestroyMappingCommandIntegrationTest.java  |   83 +
 .../cli/FunctionContextArgumentProviderTest.java   |   81 +
 .../cli/JDBCConnectorFunctionsSecurityTest.java    |   93 +
 .../jdbc/internal/cli/JdbcCliFunctionTest.java     |   52 +
 .../cli/JdbcClusterConfigDistributedTest.java      |  146 +
 .../cli/ListConnectionCommandDUnitTest.java        |  121 +
 .../cli/ListConnectionCommandIntegrationTest.java  |  110 +
 .../internal/cli/ListConnectionFunctionTest.java   |  167 +
 .../internal/cli/ListMappingCommandDUnitTest.java  |  123 +
 .../cli/ListMappingCommandIntegrationTest.java     |  110 +
 .../jdbc/internal/cli/ListMappingFunctionTest.java |  166 +
 .../jdbc/internal/xml/ElementTypeTest.java         |  252 +
 ...onnectorServiceXmlGeneratorIntegrationTest.java |  334 ++
 .../xml/JdbcConnectorServiceXmlGeneratorTest.java  |   34 +
 .../JdbcConnectorServiceXmlIntegrationTest.java    |  127 +
 .../xml/JdbcConnectorServiceXmlParserTest.java     |  109 +
 .../internal/xml/JdbcServiceConfigurationTest.java |  137 +
 .../apache/geode/codeAnalysis/excludedClasses.txt  |    5 +
 .../codeAnalysis/sanctionedDataSerializables.txt   |    0
 geode-core/build.gradle                            |   33 +-
 .../geode/cache/CreateOnRegionBenchmark.java       |   74 +
 .../CreateWithEvictionUnderLimitBenchmark.java     |   86 +
 .../cache/EvictionBasePerformanceBenchmark.java    |   98 +
 .../EvictionMultiThreadedPerformanceBenchmark.java |  129 +
 .../EvictionWithPartiallyMarkedListsBenchmark.java |  101 +
 .../apache/geode/cache/FirstEvictionBenchmark.java |   80 +
 .../apache/geode/cache/GetOnRegionBenchmark.java   |   80 +
 .../GetsWithEvictionPerformanceBenchmark.java      |   92 +
 .../geode/cache/RangeQueryWithIndexBenchmark.java  |   97 +
 .../geode/cache/RegionOperationBenchmark.java      |   52 +
 .../geode/cache/UpdateOnRegionBenchmark.java       |   79 +
 .../cache/FilterProfileConcurrencyTest.java        |   86 -
 .../apache/geode/cache/query/internal/parse/oql.g  |   12 +-
 .../java/org/apache/geode/DataSerializable.java    |   13 +-
 .../org/apache/geode/GemFireCheckedException.java  |    4 -
 .../src/main/java/org/apache/geode/LogWriter.java  |   74 +-
 .../java/org/apache/geode/StatisticDescriptor.java |   14 +-
 .../src/main/java/org/apache/geode/Statistics.java |   98 +-
 .../java/org/apache/geode/StatisticsFactory.java   |   18 +-
 .../main/java/org/apache/geode/StatisticsType.java |   10 +-
 .../org/apache/geode/StatisticsTypeFactory.java    |   32 +-
 .../apache/geode/admin/AdminDistributedSystem.java |   94 +-
 .../main/java/org/apache/geode/admin/Alert.java    |   12 +-
 .../java/org/apache/geode/admin/AlertListener.java |    2 +-
 .../java/org/apache/geode/admin/BackupStatus.java  |   20 +-
 .../org/apache/geode/admin/CacheHealthConfig.java  |   24 +-
 .../java/org/apache/geode/admin/CacheServer.java   |    4 +-
 .../org/apache/geode/admin/CacheServerConfig.java  |    8 +-
 .../main/java/org/apache/geode/admin/CacheVm.java  |    2 +-
 .../java/org/apache/geode/admin/CacheVmConfig.java |    8 +-
 .../apache/geode/admin/ConfigurationParameter.java |   24 +-
 .../geode/admin/DistributedSystemConfig.java       |  154 +-
 .../geode/admin/DistributedSystemHealthConfig.java |    6 +-
 .../apache/geode/admin/DistributionLocator.java    |    4 +-
 .../geode/admin/DistributionLocatorConfig.java     |   12 +-
 .../java/org/apache/geode/admin/GemFireHealth.java |   30 +-
 .../apache/geode/admin/GemFireHealthConfig.java    |    8 +-
 .../apache/geode/admin/GemFireMemberStatus.java    |   27 +-
 .../java/org/apache/geode/admin/ManagedEntity.java |   12 +-
 .../apache/geode/admin/ManagedEntityConfig.java    |   20 +-
 .../org/apache/geode/admin/MemberHealthConfig.java |   24 +-
 .../java/org/apache/geode/admin/Statistic.java     |   10 +-
 .../org/apache/geode/admin/StatisticResource.java  |   14 +-
 .../java/org/apache/geode/admin/SystemMember.java  |   36 +-
 .../geode/admin/SystemMemberBridgeServer.java      |   60 +-
 .../org/apache/geode/admin/SystemMemberCache.java  |   39 +-
 .../apache/geode/admin/SystemMemberCacheEvent.java |    2 +-
 .../geode/admin/SystemMemberCacheListener.java     |   12 +-
 .../geode/admin/SystemMemberCacheServer.java       |   60 +-
 .../org/apache/geode/admin/SystemMemberRegion.java |  104 +-
 .../geode/admin/SystemMemberRegionEvent.java       |    2 +-
 .../apache/geode/admin/SystemMembershipEvent.java  |    4 +-
 .../geode/admin/SystemMembershipListener.java      |   16 +-
 .../admin/internal/AbstractHealthEvaluator.java    |    4 +-
 .../admin/internal/AdminDistributedSystemImpl.java |  141 +-
 .../geode/admin/internal/CacheHealthEvaluator.java |    8 +-
 .../geode/admin/internal/CacheServerImpl.java      |   19 +-
 .../internal/ConfigurationParameterListener.java   |    2 +-
 .../internal/DistributedSystemConfigImpl.java      |    7 -
 .../internal/DistributedSystemHealthEvaluator.java |   28 +-
 .../internal/DistributedSystemHealthMonitor.java   |    1 -
 .../admin/internal/DistributionLocatorImpl.java    |    5 +-
 .../internal/EnabledManagedEntityController.java   |   21 +-
 .../admin/internal/GemFireHealthEvaluator.java     |    4 +-
 .../geode/admin/internal/GemFireHealthImpl.java    |   21 +-
 .../geode/admin/internal/InetAddressUtil.java      |    1 -
 .../admin/internal/InternalManagedEntity.java      |   26 +-
 .../admin/internal/ManagedEntityConfigXml.java     |   13 +-
 .../internal/ManagedEntityConfigXmlParser.java     |   21 +-
 .../admin/internal/ManagedEntityController.java    |   12 +-
 .../admin/internal/MemberHealthEvaluator.java      |    5 +-
 .../admin/internal/StatisticResourceImpl.java      |    2 +-
 .../internal/SystemMemberCacheEventProcessor.java  |    4 +-
 .../admin/internal/SystemMemberCacheImpl.java      |   31 +-
 .../geode/admin/internal/SystemMemberImpl.java     |   27 +-
 .../admin/internal/SystemMembershipEventImpl.java  |   15 +-
 .../java/org/apache/geode/admin/jmx/Agent.java     |   26 +-
 .../org/apache/geode/admin/jmx/AgentConfig.java    |  216 +-
 .../internal/AdminDistributedSystemJmxImpl.java    |  129 +-
 .../geode/admin/jmx/internal/AgentConfigImpl.java  |   53 +-
 .../apache/geode/admin/jmx/internal/AgentImpl.java |   36 +-
 .../geode/admin/jmx/internal/AgentLauncher.java    |    4 +-
 .../admin/jmx/internal/CacheServerJmxImpl.java     |   35 -
 .../admin/jmx/internal/GemFireHealthJmxImpl.java   |    3 +-
 .../admin/jmx/internal/GenerateMBeanHTML.java      |   18 -
 .../apache/geode/admin/jmx/internal/MBeanUtil.java |    8 -
 .../geode/admin/jmx/internal/ManagedResource.java  |   14 +-
 .../jmx/internal/MemberInfoWithStatsMBean.java     |   59 +-
 .../jmx/internal/RMIRegistryServiceMBean.java      |   14 +-
 .../admin/jmx/internal/StatAlertsAggregator.java   |   20 +-
 .../admin/jmx/internal/StatisticAttributeInfo.java |    1 -
 .../geode/admin/jmx/internal/SystemMemberJmx.java  |   60 +-
 .../admin/jmx/internal/SystemMemberJmxImpl.java    |   36 -
 .../org/apache/geode/cache/AttributesFactory.java  |   35 +-
 .../org/apache/geode/cache/AttributesMutator.java  |   38 +-
 .../java/org/apache/geode/cache/CacheCallback.java |    2 +-
 .../apache/geode/cache/CacheClosedException.java   |    5 -
 .../java/org/apache/geode/cache/CacheEvent.java    |   13 +-
 .../apache/geode/cache/CacheExistsException.java   |    4 +
 .../java/org/apache/geode/cache/CacheFactory.java  |   14 +-
 .../java/org/apache/geode/cache/CacheListener.java |   25 +-
 .../java/org/apache/geode/cache/CacheLoader.java   |    7 +-
 .../org/apache/geode/cache/CacheStatistics.java    |   12 +-
 .../geode/cache/CacheTransactionManager.java       |   42 +-
 .../java/org/apache/geode/cache/CacheWriter.java   |   14 +-
 .../java/org/apache/geode/cache/ClientSession.java |   18 +-
 .../java/org/apache/geode/cache/CustomExpiry.java  |    2 +-
 .../java/org/apache/geode/cache/Declarable.java    |   21 +-
 .../java/org/apache/geode/cache/DiskStore.java     |   38 +-
 .../org/apache/geode/cache/DiskStoreFactory.java   |   63 +-
 .../apache/geode/cache/DiskWriteAttributes.java    |   12 +-
 .../apache/geode/cache/DynamicRegionFactory.java   |   13 +-
 .../apache/geode/cache/DynamicRegionListener.java  |    8 +-
 .../java/org/apache/geode/cache/EntryEvent.java    |   16 +-
 .../org/apache/geode/cache/EntryOperation.java     |   12 +-
 .../org/apache/geode/cache/EvictionAttributes.java |   42 +-
 .../geode/cache/EvictionAttributesMutator.java     |    2 +-
 .../org/apache/geode/cache/ExpirationAction.java   |    3 +-
 .../apache/geode/cache/FixedPartitionResolver.java |    3 +-
 .../java/org/apache/geode/cache/GemFireCache.java  |   46 +-
 .../geode/cache/InterestRegistrationEvent.java     |   16 +-
 .../geode/cache/InterestRegistrationListener.java  |    4 +-
 .../java/org/apache/geode/cache/LoaderHelper.java  |    8 +-
 .../apache/geode/cache/PartitionAttributes.java    |   41 +-
 .../geode/cache/PartitionAttributesFactory.java    |   68 +-
 .../org/apache/geode/cache/PartitionResolver.java  |    4 +-
 .../main/java/org/apache/geode/cache/Region.java   |  653 ++-
 .../org/apache/geode/cache/RegionAttributes.java   |   92 +-
 .../java/org/apache/geode/cache/RegionEvent.java   |    2 +-
 .../java/org/apache/geode/cache/RegionFactory.java |    8 +-
 .../geode/cache/RegionMembershipListener.java      |    8 +-
 .../geode/cache/RegionReinitializedException.java  |    1 -
 .../org/apache/geode/cache/RegionRoleListener.java |    4 +-
 .../java/org/apache/geode/cache/RegionService.java |   35 +-
 .../org/apache/geode/cache/RegionShortcut.java     |   26 +-
 .../java/org/apache/geode/cache/RequiredRoles.java |    9 +-
 .../java/org/apache/geode/cache/RoleEvent.java     |    2 +-
 .../apache/geode/cache/SerializedCacheValue.java   |    4 +-
 .../org/apache/geode/cache/TransactionEvent.java   |    8 +-
 .../apache/geode/cache/TransactionListener.java    |   10 +-
 .../org/apache/geode/cache/TransactionWriter.java  |    7 +-
 .../apache/geode/cache/asyncqueue/AsyncEvent.java  |    4 +-
 .../geode/cache/asyncqueue/AsyncEventListener.java |    2 +-
 .../geode/cache/asyncqueue/AsyncEventQueue.java    |   34 +-
 .../cache/asyncqueue/AsyncEventQueueFactory.java   |   34 +-
 .../internal/AsyncEventQueueFactoryImpl.java       |    9 +-
 .../org/apache/geode/cache/client/ClientCache.java |   25 +-
 .../geode/cache/client/ClientCacheFactory.java     |   10 +-
 .../geode/cache/client/ClientRegionFactory.java    |   47 +-
 .../java/org/apache/geode/cache/client/Pool.java   |   70 +-
 .../org/apache/geode/cache/client/PoolFactory.java |  110 +-
 .../geode/cache/client/internal/AbstractOp.java    |   12 +-
 .../cache/client/internal/AuthenticateUserOp.java  |   20 +-
 .../client/internal/AutoConnectionSourceImpl.java  |   28 +-
 .../client/internal/CacheServerLoadMessage.java    |    4 +-
 .../client/internal/ClientMetadataService.java     |   30 +-
 .../client/internal/ClientRegionFactoryImpl.java   |   11 +-
 .../client/internal/ClientSideHandshakeImpl.java   |  463 ++
 .../geode/cache/client/internal/ClientUpdater.java |    6 +-
 .../cache/client/internal/CloseConnectionOp.java   |    2 +-
 .../geode/cache/client/internal/Connection.java    |   38 +-
 .../client/internal/ConnectionFactoryImpl.java     |   54 +-
 .../cache/client/internal/ConnectionImpl.java      |   28 +-
 .../cache/client/internal/ConnectionStats.java     |   57 -
 .../geode/cache/client/internal/DestroyOp.java     |    3 -
 .../cache/client/internal/EndpointManager.java     |   10 +-
 .../cache/client/internal/EndpointManagerImpl.java |    9 -
 .../cache/client/internal/ExecutablePool.java      |   29 +-
 .../cache/client/internal/ExecuteFunctionOp.java   |    2 -
 .../internal/ExecuteRegionFunctionNoAckOp.java     |    6 -
 .../client/internal/ExecuteRegionFunctionOp.java   |    6 -
 .../internal/ExecuteRegionFunctionSingleHopOp.java |   10 -
 .../geode/cache/client/internal/GetEntryOp.java    |    2 +-
 .../cache/client/internal/GetEventValueOp.java     |    1 -
 .../cache/client/internal/GetPDXIdForEnumOp.java   |    1 -
 .../cache/client/internal/GetPDXIdForTypeOp.java   |    1 -
 .../cache/client/internal/InternalClientCache.java |    2 +-
 .../geode/cache/client/internal/KeySetOp.java      |    2 -
 .../cache/client/internal/LiveServerPinger.java    |    4 -
 .../cache/client/internal/OpExecutorImpl.java      |   35 +-
 .../geode/cache/client/internal/PoolImpl.java      |   99 +-
 .../geode/cache/client/internal/ProxyCache.java    |   13 +-
 .../cache/client/internal/ProxyCacheCloseOp.java   |    3 +-
 .../geode/cache/client/internal/ProxyRegion.java   |    2 +-
 .../geode/cache/client/internal/PutAllOp.java      |    1 -
 .../apache/geode/cache/client/internal/PutOp.java  |    6 +-
 .../cache/client/internal/QueueConnectionImpl.java |    4 +-
 .../geode/cache/client/internal/QueueManager.java  |   18 +-
 .../cache/client/internal/QueueManagerImpl.java    |   17 +-
 .../geode/cache/client/internal/QueueState.java    |   14 +-
 .../cache/client/internal/QueueStateImpl.java      |   35 +-
 .../cache/client/internal/RegisterInterestOp.java  |    7 -
 .../client/internal/RegisterInterestTracker.java   |    9 -
 .../geode/cache/client/internal/RemoveAllOp.java   |    1 -
 .../cache/client/internal/ServerBlackList.java     |   12 +-
 .../client/internal/ServerRegionDataAccess.java    |   42 +-
 .../cache/client/internal/ServerRegionProxy.java   |    3 +-
 .../client/internal/SingleHopClientExecutor.java   |   10 -
 .../internal/locator/LocatorStatusResponse.java    |   35 +-
 .../locator/wan/LocatorMembershipListener.java     |   16 +-
 .../client/internal/pooling/ConnectionManager.java |    8 +-
 .../internal/pooling/ConnectionManagerImpl.java    |  330 +-
 .../client/internal/pooling/PooledConnection.java  |    9 +-
 .../geode/cache/control/RebalanceFactory.java      |    4 +-
 .../geode/cache/control/RebalanceOperation.java    |   10 +-
 .../geode/cache/control/RebalanceResults.java      |   20 +-
 .../geode/cache/control/ResourceManager.java       |   24 +-
 .../org/apache/geode/cache/execute/Execution.java  |   12 +-
 .../geode/cache/execute/FunctionAdapter.java       |    3 +
 .../geode/cache/execute/FunctionContext.java       |   12 +-
 .../geode/cache/execute/RegionFunctionContext.java |    4 +-
 .../geode/cache/execute/ResultCollector.java       |   10 +-
 .../apache/geode/cache/execute/ResultSender.java   |    6 +-
 .../execute/internal/FunctionServiceManager.java   |    5 +-
 .../geode/cache/operations/InterestType.java       |   30 -
 .../cache/operations/KeyValueOperationContext.java |    4 -
 .../geode/cache/partition/PartitionListener.java   |   10 +-
 .../geode/cache/partition/PartitionMemberInfo.java |   10 +-
 .../cache/partition/PartitionRebalanceInfo.java    |   30 +-
 .../geode/cache/partition/PartitionRegionInfo.java |   18 +-
 .../geode/cache/persistence/PersistentID.java      |    6 +-
 .../org/apache/geode/cache/query/Aggregator.java   |    6 +-
 .../org/apache/geode/cache/query/CqAttributes.java |    4 +-
 .../geode/cache/query/CqAttributesMutator.java     |    6 +-
 .../java/org/apache/geode/cache/query/CqEvent.java |   14 +-
 .../org/apache/geode/cache/query/CqListener.java   |    4 +-
 .../java/org/apache/geode/cache/query/CqQuery.java |   30 +-
 .../geode/cache/query/CqServiceStatistics.java     |   12 +-
 .../java/org/apache/geode/cache/query/CqState.java |   10 +-
 .../org/apache/geode/cache/query/CqStatistics.java |    8 +-
 .../apache/geode/cache/query/CqStatusListener.java |    4 +-
 .../java/org/apache/geode/cache/query/Index.java   |   24 +-
 .../apache/geode/cache/query/IndexStatistics.java  |   18 +-
 .../org/apache/geode/cache/query/IndexType.java    |    4 +
 .../java/org/apache/geode/cache/query/Query.java   |   21 +-
 .../org/apache/geode/cache/query/QueryService.java |  118 +-
 .../apache/geode/cache/query/QueryStatistics.java  |    4 +-
 .../apache/geode/cache/query/SelectResults.java    |   19 +-
 .../java/org/apache/geode/cache/query/Struct.java  |    6 +-
 .../cache/query/internal/CompiledAddition.java     |   54 +
 .../cache/query/internal/CompiledArithmetic.java   |  176 +
 .../cache/query/internal/CompiledDivision.java     |   54 +
 .../geode/cache/query/internal/CompiledMod.java    |   57 +
 .../query/internal/CompiledMultiplication.java     |   54 +
 .../cache/query/internal/CompiledSubtraction.java  |   54 +
 .../geode/cache/query/internal/CompiledValue.java  |    5 +
 .../geode/cache/query/internal/DefaultQuery.java   |  152 +-
 .../cache/query/internal/DefaultQueryService.java  |   16 +-
 .../cache/query/internal/ExecutionContext.java     |    5 +-
 .../apache/geode/cache/query/internal/Filter.java  |   37 +-
 .../cache/query/internal/HashingStrategy.java      |    4 +-
 .../geode/cache/query/internal/Negatable.java      |    2 +-
 .../cache/query/internal/ProxyQueryService.java    |    2 +-
 .../geode/cache/query/internal/QCompiler.java      |   56 +-
 .../geode/cache/query/internal/QueryExecutor.java  |    4 +-
 .../geode/cache/query/internal/QueryMonitor.java   |   37 +-
 .../RestrictedMethodInvocationAuthorizer.java      |   11 +-
 .../geode/cache/query/internal/StructFields.java   |   10 +-
 .../geode/cache/query/internal/cq/ClientCQ.java    |    7 +-
 .../geode/cache/query/internal/cq/CqService.java   |   77 +-
 .../cache/query/internal/cq/InternalCqQuery.java   |   29 +-
 .../geode/cache/query/internal/cq/ServerCQ.java    |   24 +-
 .../cache/query/internal/index/AbstractIndex.java  |   15 +-
 .../query/internal/index/AbstractMapIndex.java     |   13 +-
 .../query/internal/index/CompactMapRangeIndex.java |   27 +-
 .../query/internal/index/CompactRangeIndex.java    |    9 +-
 .../cache/query/internal/index/HashIndex.java      |   22 +-
 .../cache/query/internal/index/IndexManager.java   |   79 +-
 .../cache/query/internal/index/IndexProtocol.java  |   19 +-
 .../cache/query/internal/index/IndexStore.java     |   42 +-
 .../cache/query/internal/index/IndexUtils.java     |    5 +-
 .../internal/index/IndexedExpressionEvaluator.java |   17 +-
 .../cache/query/internal/index/MapRangeIndex.java  |   18 +-
 .../query/internal/index/MemoryIndexStore.java     |    7 +-
 .../query/internal/index/PartitionedIndex.java     |   14 +-
 .../query/internal/index/PrimaryKeyIndex.java      |    7 +-
 .../cache/query/internal/index/RangeIndex.java     |   11 +-
 .../query/internal/parse/ASTArithmeticOp.java      |   38 +
 .../cache/query/internal/parse/ASTParameter.java   |    3 +-
 .../cache/query/internal/types/TypeUtils.java      |  662 +--
 .../geode/cache/query/types/CollectionType.java    |    6 +-
 .../apache/geode/cache/query/types/MapType.java    |    4 +-
 .../apache/geode/cache/query/types/ObjectType.java |   10 +-
 .../apache/geode/cache/query/types/StructType.java |    2 +-
 .../org/apache/geode/cache/server/CacheServer.java |  104 +-
 .../cache/server/ClientSubscriptionConfig.java     |   22 +-
 .../geode/cache/snapshot/CacheSnapshotService.java |   25 +-
 .../cache/snapshot/RegionSnapshotService.java      |    2 +-
 .../geode/cache/snapshot/SnapshotReader.java       |   16 +-
 .../geode/cache/util/GatewayConflictHelper.java    |    4 +-
 .../geode/cache/util/GatewayConflictResolver.java  |    2 +-
 .../org/apache/geode/cache/util/GatewayEvent.java  |   18 +-
 .../org/apache/geode/cache/util/ObjectSizer.java   |    8 +-
 .../geode/cache/util/TimestampedEntryEvent.java    |    8 +-
 .../apache/geode/cache/wan/GatewayEventFilter.java |    6 +-
 .../cache/wan/GatewayEventSubstitutionFilter.java  |    2 +-
 .../apache/geode/cache/wan/GatewayQueueEvent.java  |   12 +-
 .../apache/geode/cache/wan/GatewayReceiver.java    |   93 +-
 .../geode/cache/wan/GatewayReceiverFactory.java    |   20 +-
 .../org/apache/geode/cache/wan/GatewaySender.java  |  113 +-
 .../geode/cache/wan/GatewaySenderFactory.java      |   43 +-
 .../geode/cache/wan/GatewayTransportFilter.java    |    4 +-
 .../org/apache/geode/compression/Compressor.java   |    4 +-
 .../apache/geode/distributed/AbstractLauncher.java |    9 +-
 .../geode/distributed/ClientSocketFactory.java     |    2 +-
 .../geode/distributed/ConfigurationProperties.java |    4 +-
 .../geode/distributed/DistributedMember.java       |   14 +-
 .../geode/distributed/DistributedSystem.java       |   12 +-
 .../java/org/apache/geode/distributed/Locator.java |    9 +-
 .../apache/geode/distributed/LocatorLauncher.java  |   12 +-
 .../java/org/apache/geode/distributed/Role.java    |    6 +-
 .../apache/geode/distributed/ServerLauncher.java   |   44 +-
 .../geode/distributed/internal/CacheTime.java      |    2 +-
 .../internal/ClusterConfigurationService.java      |  156 +-
 .../internal/ClusterDistributionManager.java       | 4592 ++++++++++++++++++
 .../internal/CollectingReplyProcessor.java         |    2 +-
 .../org/apache/geode/distributed/internal/DM.java  |  490 --
 .../apache/geode/distributed/internal/DMStats.java |  352 +-
 .../apache/geode/distributed/internal/DSClock.java |    8 +-
 .../distributed/internal/DirectReplyProcessor.java |   23 +-
 .../distributed/internal/DistributionAdvisee.java  |   22 +-
 .../distributed/internal/DistributionAdvisor.java  |   47 +-
 .../distributed/internal/DistributionChannel.java  |  162 -
 .../distributed/internal/DistributionConfig.java   |   11 +-
 .../internal/DistributionConfigImpl.java           |   24 +-
 .../distributed/internal/DistributionManager.java  | 4862 ++------------------
 .../distributed/internal/DistributionMessage.java  |   28 +-
 .../internal/DistributionMessageObserver.java      |    6 +-
 .../distributed/internal/FlowControlParams.java    |    4 -
 .../geode/distributed/internal/HealthMonitor.java  |    8 +-
 .../distributed/internal/HealthMonitorImpl.java    |    4 +-
 .../internal/HighPriorityAckedMessage.java         |    6 +-
 .../internal/HighPriorityDistributionMessage.java  |    2 +-
 .../internal/InternalDistributedSystem.java        |   86 +-
 .../distributed/internal/InternalLocator.java      |  137 +-
 .../distributed/internal/LocatorLoadSnapshot.java  |  128 +-
 .../internal/LonerDistributionManager.java         |   54 +-
 .../apache/geode/distributed/internal/MQueue.java  |    2 +-
 .../distributed/internal/MembershipListener.java   |   19 +-
 .../distributed/internal/MessageWithReply.java     |    6 +-
 .../geode/distributed/internal/PoolStatHelper.java |    4 +-
 .../internal/PooledDistributionMessage.java        |    2 +-
 .../geode/distributed/internal/ProductUseLog.java  |   20 +-
 .../distributed/internal/QueueStatHelper.java      |    6 +-
 .../internal/ReliableReplyProcessor21.java         |    7 +-
 .../geode/distributed/internal/ReplyException.java |   10 +-
 .../geode/distributed/internal/ReplyMessage.java   |    6 +-
 .../distributed/internal/ReplyProcessor21.java     |  196 +-
 .../geode/distributed/internal/ReplySender.java    |    6 +-
 .../geode/distributed/internal/ResourceEvent.java  |    1 +
 .../distributed/internal/SerialAckedMessage.java   |    6 +-
 .../internal/SerialDistributionMessage.java        |    2 +-
 .../geode/distributed/internal/ServerLocator.java  |    2 +-
 .../distributed/internal/ShutdownMessage.java      |    2 +-
 .../geode/distributed/internal/Sizeable.java       |    2 +-
 .../geode/distributed/internal/StartupMessage.java |    9 +-
 .../internal/StartupMessageReplyProcessor.java     |    6 +-
 .../distributed/internal/StartupOperation.java     |    6 +-
 .../internal/StartupResponseMessage.java           |    5 +-
 .../StartupResponseWithVersionMessage.java         |    5 +-
 .../internal/ThrottledMemQueueStatHelper.java      |    8 +-
 .../internal/ThrottledQueueStatHelper.java         |    4 +-
 .../internal/WaitForViewInstallation.java          |    6 +-
 .../distributed/internal/WanLocatorDiscoverer.java |    2 +-
 .../internal/deadlock/DLockDependencyMonitor.java  |    1 -
 .../internal/deadlock/DependencyMonitor.java       |    4 +-
 .../internal/deadlock/GemFireDeadlockDetector.java |    6 +-
 .../distributed/internal/direct/DirectChannel.java |   69 +-
 .../internal/direct/DirectChannelListener.java     |    6 +-
 .../distributed/internal/locks/DLockBatch.java     |   12 +-
 .../distributed/internal/locks/DLockBatchId.java   |    3 +-
 .../distributed/internal/locks/DLockGrantor.java   |   21 +-
 .../locks/DLockLessorDepartureHandler.java         |    4 +-
 .../internal/locks/DLockQueryProcessor.java        |   18 +-
 .../locks/DLockRecoverGrantorProcessor.java        |   27 +-
 .../internal/locks/DLockReleaseProcessor.java      |   18 +-
 .../internal/locks/DLockRequestProcessor.java      |   33 +-
 .../distributed/internal/locks/DLockService.java   |   51 +-
 .../distributed/internal/locks/DLockToken.java     |    8 +-
 .../internal/locks/DeposeGrantorProcessor.java     |   16 +-
 .../internal/locks/DistributedLockStats.java       |  207 +-
 .../internal/locks/DistributedMemberLock.java      |    6 +-
 .../internal/locks/ElderInitProcessor.java         |   17 +-
 .../distributed/internal/locks/ElderState.java     |    8 +-
 .../internal/locks/GrantorRequestProcessor.java    |   22 +-
 .../distributed/internal/locks/LockGrantorId.java  |    8 +-
 .../locks/NonGrantorDestroyedProcessor.java        |   22 +-
 .../membership/DistributedMembershipListener.java  |   21 +-
 .../membership/InternalDistributedMember.java      |   81 +-
 .../internal/membership/InternalRole.java          |    6 +-
 .../internal/membership/MemberAttributes.java      |    4 +-
 .../internal/membership/MemberFactory.java         |   11 +-
 .../internal/membership/MemberServices.java        |   15 +-
 .../internal/membership/MembershipManager.java     |   90 +-
 .../internal/membership/MembershipTestHook.java    |    4 +-
 .../distributed/internal/membership/NetMember.java |   63 +-
 .../distributed/internal/membership/NetView.java   |   24 +-
 .../internal/membership/QuorumChecker.java         |   12 +-
 .../internal/membership/gms/GMSMember.java         |    2 +-
 .../internal/membership/gms/GMSMemberFactory.java  |    5 +-
 .../internal/membership/gms/NetLocator.java        |    2 +-
 .../membership/gms/auth/GMSAuthenticator.java      |    4 +-
 .../membership/gms/interfaces/HealthMonitor.java   |   15 +-
 .../membership/gms/interfaces/JoinLeave.java       |    2 +-
 .../membership/gms/interfaces/Manager.java         |    8 -
 .../membership/gms/interfaces/MessageHandler.java  |    2 +-
 .../gms/locator/FindCoordinatorRequest.java        |    5 +-
 .../gms/locator/FindCoordinatorResponse.java       |    4 +-
 .../membership/gms/locator/GMSLocator.java         |   28 +-
 .../membership/gms/membership/GMSJoinLeave.java    |  179 +-
 .../gms/messages/FinalCheckPassedMessage.java      |    4 +-
 .../membership/gms/messages/HasMemberID.java       |    2 +-
 .../membership/gms/messages/HeartbeatMessage.java  |    4 +-
 .../gms/messages/HeartbeatRequestMessage.java      |    4 +-
 .../gms/messages/InstallViewMessage.java           |    8 +-
 .../gms/messages/JoinRequestMessage.java           |    4 +-
 .../gms/messages/JoinResponseMessage.java          |    8 +-
 .../gms/messages/LeaveRequestMessage.java          |    4 +-
 .../gms/messages/NetworkPartitionMessage.java      |    4 +-
 .../gms/messages/RemoveMemberMessage.java          |    5 +-
 .../gms/messages/SuspectMembersMessage.java        |    4 +-
 .../membership/gms/messages/ViewAckMessage.java    |    4 +-
 .../membership/gms/messenger/GMSEncrypt.java       |  103 +-
 .../membership/gms/messenger/GMSQuorumChecker.java |    4 -
 .../membership/gms/messenger/JGroupsMessenger.java |   36 +-
 .../membership/gms/messenger/StatRecorder.java     |    8 -
 .../membership/gms/messenger/Transport.java        |    8 -
 .../membership/gms/mgr/GMSMembershipManager.java   |   84 +-
 .../membership/gms/mgr/LocalViewMessage.java       |    6 +-
 .../apache/geode/distributed/internal/package.html |   20 +-
 .../internal/streaming/StreamingOperation.java     |   79 +-
 .../distributed/internal/tcpserver/TcpServer.java  |  127 +-
 .../java/org/apache/geode/i18n/LogWriterI18n.java  |  114 +-
 .../org/apache/geode/internal/AbstractConfig.java  |  380 +-
 .../java/org/apache/geode/internal/Banner.java     |  142 +-
 .../apache/geode/internal/ByteBufferWriter.java    |    2 +-
 .../apache/geode/internal/ConnectionWatcher.java   |    4 +-
 .../java/org/apache/geode/internal/DSCODE.java     |  150 +-
 .../org/apache/geode/internal/DSFIDFactory.java    |   38 +-
 .../geode/internal/DataSerializableFixedID.java    | 1095 ++---
 .../org/apache/geode/internal/DeployedJar.java     |  112 +-
 .../apache/geode/internal/DistributionLocator.java |    2 +-
 .../geode/internal/GfeConsoleReaderFactory.java    |    7 +-
 .../apache/geode/internal/InputStreamFilter.java   |    3 +
 .../geode/internal/InternalDataSerializer.java     |   74 +-
 .../geode/internal/InternalInstantiator.java       |    6 +-
 .../org/apache/geode/internal/JarDeployer.java     |  148 +-
 .../org/apache/geode/internal/ManagerInfo.java     |   20 +-
 .../java/org/apache/geode/internal/NanoTimer.java  |    2 +-
 .../java/org/apache/geode/internal/OSProcess.java  |   45 +-
 .../geode/internal/ObjToByteArraySerializer.java   |    5 +-
 .../internal/ObjectInputStreamFilterWrapper.java   |  195 +-
 .../apache/geode/internal/OneTaskOnlyExecutor.java |    2 +-
 .../geode/internal/SerializationVersions.java      |    2 +-
 .../org/apache/geode/internal/SystemAdmin.java     |    5 +-
 .../java/org/apache/geode/internal/Version.java    |    8 +-
 .../apache/geode/internal/VersionedDataStream.java |    2 +-
 .../geode/internal/admin/AdminBridgeServer.java    |    2 +-
 .../org/apache/geode/internal/admin/Alert.java     |   34 +-
 .../apache/geode/internal/admin/AlertListener.java |    2 +-
 .../apache/geode/internal/admin/ApplicationVM.java |    2 +-
 .../org/apache/geode/internal/admin/CacheInfo.java |   24 +-
 .../apache/geode/internal/admin/CacheSnapshot.java |   14 +-
 .../internal/admin/ClientMembershipMessage.java    |    6 +-
 .../geode/internal/admin/ClientStatsManager.java   |    5 +-
 .../org/apache/geode/internal/admin/DLockInfo.java |   16 +-
 .../apache/geode/internal/admin/EntrySnapshot.java |    2 +-
 .../geode/internal/admin/EntryValueNode.java       |   10 +-
 .../org/apache/geode/internal/admin/GemFireVM.java |   98 +-
 .../geode/internal/admin/GfManagerAgent.java       |   26 +-
 .../org/apache/geode/internal/admin/GfObject.java  |    8 +-
 .../geode/internal/admin/HealthListener.java       |    2 +-
 .../geode/internal/admin/JoinLeaveListener.java    |    6 +-
 .../geode/internal/admin/RegionSnapshot.java       |    2 +-
 .../geode/internal/admin/SnapshotClient.java       |    2 +-
 .../java/org/apache/geode/internal/admin/Stat.java |    6 +-
 .../geode/internal/admin/StatAlertDefinition.java  |   30 +-
 .../geode/internal/admin/StatAlertsManager.java    |   10 +-
 .../apache/geode/internal/admin/StatListener.java  |    4 +-
 .../apache/geode/internal/admin/StatResource.java  |   16 +-
 .../admin/remote/AddHealthListenerRequest.java     |    2 +-
 .../admin/remote/AddHealthListenerResponse.java    |    4 +-
 .../admin/remote/AddStatListenerRequest.java       |    2 +-
 .../admin/remote/AddStatListenerResponse.java      |    4 +-
 .../remote/AdminConsoleDisconnectMessage.java      |    4 +-
 .../internal/admin/remote/AdminConsoleMessage.java |    9 +-
 .../admin/remote/AdminMultipleReplyProcessor.java  |    4 +-
 .../geode/internal/admin/remote/AdminRequest.java  |    8 +-
 .../geode/internal/admin/remote/AdminResponse.java |    2 +-
 .../geode/internal/admin/remote/AdminWaiters.java  |    6 +-
 .../admin/remote/AlertLevelChangeMessage.java      |    4 +-
 .../admin/remote/AlertListenerMessage.java         |    2 +-
 .../admin/remote/AlertsNotificationMessage.java    |    4 +-
 .../admin/remote/AppCacheSnapshotMessage.java      |    2 +-
 .../internal/admin/remote/BridgeServerRequest.java |    4 +-
 .../admin/remote/BridgeServerResponse.java         |    4 +-
 .../internal/admin/remote/CacheConfigRequest.java  |    2 +-
 .../internal/admin/remote/CacheConfigResponse.java |    6 +-
 .../internal/admin/remote/CacheInfoRequest.java    |    2 +-
 .../internal/admin/remote/CacheInfoResponse.java   |    5 +-
 .../admin/remote/CancelStatListenerRequest.java    |    2 +-
 .../admin/remote/CancelStatListenerResponse.java   |    4 +-
 .../geode/internal/admin/remote/Cancellable.java   |    2 +-
 .../internal/admin/remote/CancellationMessage.java |    2 +-
 .../admin/remote/ChangeRefreshIntervalMessage.java |    4 +-
 .../internal/admin/remote/CliLegacyMessage.java    |    4 +-
 .../internal/admin/remote/CompactRequest.java      |   12 +-
 .../internal/admin/remote/DestroyEntryMessage.java |    4 +-
 .../admin/remote/DestroyRegionMessage.java         |    4 +-
 .../admin/remote/DurableClientInfoRequest.java     |    2 +-
 .../admin/remote/DurableClientInfoResponse.java    |    6 +-
 .../admin/remote/FetchDistLockInfoRequest.java     |    2 +-
 .../admin/remote/FetchDistLockInfoResponse.java    |    3 +-
 .../admin/remote/FetchHealthDiagnosisRequest.java  |    2 +-
 .../admin/remote/FetchHealthDiagnosisResponse.java |    4 +-
 .../internal/admin/remote/FetchHostRequest.java    |    2 +-
 .../internal/admin/remote/FetchHostResponse.java   |    5 +-
 .../remote/FetchResourceAttributesRequest.java     |    2 +-
 .../remote/FetchResourceAttributesResponse.java    |    6 +-
 .../internal/admin/remote/FetchStatsRequest.java   |    2 +-
 .../internal/admin/remote/FetchStatsResponse.java  |    6 +-
 .../internal/admin/remote/FetchSysCfgRequest.java  |    2 +-
 .../internal/admin/remote/FetchSysCfgResponse.java |    3 +-
 .../admin/remote/FlushAppCacheSnapshotMessage.java |    2 +-
 .../admin/remote/HealthListenerMessage.java        |    2 +-
 .../internal/admin/remote/LicenseInfoRequest.java  |    2 +-
 .../internal/admin/remote/LicenseInfoResponse.java |    4 +-
 .../admin/remote/MissingPersistentIDsRequest.java  |   10 +-
 .../admin/remote/MissingPersistentIDsResponse.java |    5 +-
 .../admin/remote/ObjectDetailsRequest.java         |    2 +-
 .../admin/remote/ObjectDetailsResponse.java        |    3 +-
 .../internal/admin/remote/ObjectNamesRequest.java  |    2 +-
 .../internal/admin/remote/ObjectNamesResponse.java |    3 +-
 .../remote/PrepareRevokePersistentIDRequest.java   |   13 +-
 .../admin/remote/RefreshMemberSnapshotRequest.java |    2 +-
 .../remote/RefreshMemberSnapshotResponse.java      |    5 +-
 .../admin/remote/RegionAttributesRequest.java      |    2 +-
 .../admin/remote/RegionAttributesResponse.java     |    4 +-
 .../geode/internal/admin/remote/RegionRequest.java |    2 +-
 .../internal/admin/remote/RegionResponse.java      |    2 +-
 .../internal/admin/remote/RegionSizeRequest.java   |    2 +-
 .../internal/admin/remote/RegionSizeResponse.java  |    3 +-
 .../admin/remote/RegionStatisticsRequest.java      |    2 +-
 .../admin/remote/RegionStatisticsResponse.java     |    4 +-
 .../admin/remote/RegionSubRegionSizeRequest.java   |    4 +-
 .../admin/remote/RegionSubRegionsSizeResponse.java |    7 +-
 .../admin/remote/RemoteGfManagerAgent.java         |   54 +-
 .../admin/remote/RemoveHealthListenerRequest.java  |    2 +-
 .../admin/remote/RemoveHealthListenerResponse.java |    4 +-
 .../admin/remote/ResetHealthStatusRequest.java     |    2 +-
 .../admin/remote/ResetHealthStatusResponse.java    |    4 +-
 .../admin/remote/RevokePersistentIDRequest.java    |    8 +-
 .../internal/admin/remote/RootRegionRequest.java   |    2 +-
 .../internal/admin/remote/RootRegionResponse.java  |    5 +-
 .../remote/ShutdownAllGatewayHubsRequest.java      |    6 +-
 .../internal/admin/remote/ShutdownAllRequest.java  |   26 +-
 .../admin/remote/SnapshotResultMessage.java        |    2 +-
 .../remote/StatAlertsManagerAssignMessage.java     |    6 +-
 .../internal/admin/remote/StatListenerMessage.java |    2 +-
 .../internal/admin/remote/StoreSysCfgRequest.java  |    2 +-
 .../internal/admin/remote/StoreSysCfgResponse.java |    3 +-
 .../internal/admin/remote/SubRegionRequest.java    |    2 +-
 .../internal/admin/remote/SubRegionResponse.java   |    3 +-
 .../internal/admin/remote/TailLogRequest.java      |    2 +-
 .../internal/admin/remote/TailLogResponse.java     |    5 +-
 .../admin/remote/UpdateAlertDefinitionMessage.java |    4 +-
 .../internal/admin/remote/VersionInfoRequest.java  |    2 +-
 .../internal/admin/remote/VersionInfoResponse.java |    3 +-
 .../internal/admin/statalerts/StatisticInfo.java   |   18 +-
 .../internal/cache/AbstractBucketRegionQueue.java  |   20 +-
 .../geode/internal/cache/AbstractCacheServer.java  |    4 +-
 .../geode/internal/cache/AbstractDiskRegion.java   |  121 +-
 .../geode/internal/cache/AbstractLRURegionMap.java |  829 ----
 .../geode/internal/cache/AbstractRegion.java       |  110 +-
 .../geode/internal/cache/AbstractRegionMap.java    |  851 +---
 .../internal/cache/AbstractUpdateOperation.java    |   29 +-
 .../cache/AddCacheServerProfileMessage.java        |   10 +-
 .../apache/geode/internal/cache/BucketAdvisor.java |    6 +-
 .../internal/cache/BucketPersistenceAdvisor.java   |    2 +-
 .../apache/geode/internal/cache/BucketRegion.java  |  106 +-
 .../geode/internal/cache/BucketRegionQueue.java    |    2 +-
 .../internal/cache/CacheDistributionAdvisee.java   |   10 +-
 .../internal/cache/CacheDistributionAdvisor.java   |   11 +-
 .../apache/geode/internal/cache/CacheObserver.java |   36 +-
 .../geode/internal/cache/CacheServerAdvisor.java   |    8 +-
 .../geode/internal/cache/CacheServerImpl.java      |   12 +-
 .../geode/internal/cache/CacheServerLauncher.java  |    2 +-
 .../apache/geode/internal/cache/CacheService.java  |    6 +-
 .../geode/internal/cache/CacheStatisticsImpl.java  |    4 +-
 .../geode/internal/cache/CachedDeserializable.java |   22 +-
 .../cache/CachedDeserializableFactory.java         |   13 +-
 .../geode/internal/cache/ClientServerObserver.java |   24 +-
 .../geode/internal/cache/CloseCacheMessage.java    |    6 +-
 .../internal/cache/ClusterConfigurationLoader.java |  139 +-
 .../geode/internal/cache/CompactableOplog.java     |    9 +-
 .../apache/geode/internal/cache/Conflatable.java   |   12 +-
 .../geode/internal/cache/ControllerAdvisor.java    |    9 +-
 .../internal/cache/CreateRegionProcessor.java      |   10 +-
 .../geode/internal/cache/DestroyOperation.java     |    8 +-
 .../cache/DestroyPartitionedRegionMessage.java     |    5 +-
 .../internal/cache/DestroyRegionOperation.java     |   12 +-
 .../geode/internal/cache/DirectReplyMessage.java   |    7 +-
 .../apache/geode/internal/cache/DiskInitFile.java  |    3 -
 .../apache/geode/internal/cache/DiskRegion.java    |   20 +-
 .../geode/internal/cache/DiskStoreBackup.java      |   92 -
 .../geode/internal/cache/DiskStoreFactoryImpl.java |    4 +-
 .../apache/geode/internal/cache/DiskStoreImpl.java |  315 +-
 .../geode/internal/cache/DiskStoreMonitor.java     |   76 +-
 .../apache/geode/internal/cache/DiskStoreTask.java |    2 +-
 .../geode/internal/cache/DistPeerTXStateStub.java  |   10 +-
 .../internal/cache/DistTXAdjunctCommitMessage.java |    4 +-
 .../geode/internal/cache/DistTXCommitMessage.java  |   22 +-
 .../internal/cache/DistTXCoordinatorInterface.java |   26 +-
 .../internal/cache/DistTXPrecommitMessage.java     |   12 +-
 .../internal/cache/DistTXRollbackMessage.java      |   25 +-
 .../apache/geode/internal/cache/DistTXState.java   |   21 +-
 .../internal/cache/DistTXStateOnCoordinator.java   |   19 +-
 .../geode/internal/cache/DistTXStateProxyImpl.java |   15 +-
 .../cache/DistTXStateProxyImplOnCoordinator.java   |   49 +-
 .../cache/DistTXStateProxyImplOnDatanode.java      |   11 +-
 .../internal/cache/DistributedCacheOperation.java  |   26 +-
 .../internal/cache/DistributedClearOperation.java  |    8 +-
 .../internal/cache/DistributedPutAllOperation.java |   31 +-
 .../geode/internal/cache/DistributedRegion.java    |  144 +-
 .../DistributedRegionFunctionStreamingMessage.java |   37 +-
 .../cache/DistributedRemoveAllOperation.java       |    6 +-
 .../cache/DistributedTombstoneOperation.java       |    8 +-
 .../apache/geode/internal/cache/EntriesMap.java    |   13 +-
 .../geode/internal/cache/EntryEventImpl.java       |  216 +-
 .../apache/geode/internal/cache/EntrySnapshot.java |    9 +-
 .../org/apache/geode/internal/cache/EventID.java   |    4 +-
 .../geode/internal/cache/EventStateHelper.java     |    9 +-
 .../geode/internal/cache/EvictableRegion.java      |   37 +
 .../internal/cache/EvictionAttributesImpl.java     |  115 +-
 .../cache/EvictionAttributesMutatorImpl.java       |   35 +
 .../apache/geode/internal/cache/ExpiryTask.java    |   10 +-
 .../geode/internal/cache/ExportDiskRegion.java     |    4 +-
 .../apache/geode/internal/cache/FilterProfile.java |   12 +-
 .../internal/cache/FindDurableQueueProcessor.java  |   12 +-
 .../geode/internal/cache/FindRemoteTXMessage.java  |    9 +-
 .../internal/cache/FindVersionTagOperation.java    |   12 +-
 .../FunctionStreamingOrderedReplyMessage.java      |    7 +-
 .../cache/FunctionStreamingReplyMessage.java       |    5 +-
 .../internal/cache/FutureCachedDeserializable.java |   35 +
 .../geode/internal/cache/GemFireCacheImpl.java     |  566 ++-
 .../apache/geode/internal/cache/GridAdvisor.java   |   11 +-
 .../org/apache/geode/internal/cache/HARegion.java  |   14 +-
 .../apache/geode/internal/cache/ImageState.java    |   64 +-
 .../internal/cache/InitialImageFlowControl.java    |   30 +-
 .../internal/cache/InitialImageOperation.java      |  172 +-
 .../geode/internal/cache/InterestFilter.java       |   10 +-
 .../apache/geode/internal/cache/InternalCache.java |   71 +-
 .../geode/internal/cache/InternalCacheEvent.java   |   20 +-
 .../geode/internal/cache/InternalDataView.java     |   10 +-
 .../internal/cache/InternalDistributedRegion.java  |    3 +-
 .../geode/internal/cache/InternalEntryEvent.java   |   25 +
 .../geode/internal/cache/InternalRegion.java       |  115 +-
 .../geode/internal/cache/InvalidateOperation.java  |   10 +-
 .../cache/InvalidatePartitionedRegionMessage.java  |    5 +-
 .../internal/cache/InvalidateRegionOperation.java  |    4 +-
 .../internal/cache/JtaAfterCompletionMessage.java  |   21 +-
 .../internal/cache/JtaBeforeCompletionMessage.java |   10 +-
 .../cache/LatestLastAccessTimeMessage.java         |   10 +-
 .../cache/LatestLastAccessTimeOperation.java       |    8 +-
 .../cache/LatestLastAccessTimeReplyProcessor.java  |    5 +-
 .../geode/internal/cache/LoaderHelperFactory.java  |    4 +-
 .../apache/geode/internal/cache/LocalRegion.java   |  374 +-
 .../geode/internal/cache/LocalRegionDataView.java  |   12 +-
 .../cache/MemberFunctionStreamingMessage.java      |   35 +-
 .../cache/MicrometerPartitionRegionStats.kt        |   46 +-
 .../geode/internal/cache/NonLocalRegionEntry.java  |    4 +-
 .../cache/OfflineCompactionDiskRegion.java         |   16 +-
 .../org/apache/geode/internal/cache/Oplog.java     |  103 +-
 .../org/apache/geode/internal/cache/OplogSet.java  |    8 +-
 .../internal/cache/PRContainsValueFunction.java    |    5 +-
 .../internal/cache/PRHARedundancyProvider.java     |   80 +-
 .../geode/internal/cache/PRQueryProcessor.java     |   21 +-
 .../internal/cache/PartitionAttributesImpl.java    |    3 +-
 .../cache/PartitionRegionConfigValidator.java      |    2 +-
 .../geode/internal/cache/PartitionedRegion.java    |  178 +-
 .../internal/cache/PartitionedRegionDataStore.java |   48 +-
 .../internal/cache/PartitionedRegionDataView.java  |   12 +-
 .../internal/cache/PartitionedRegionHelper.java    |   41 +-
 .../cache/PartitionedRegionQueryEvaluator.java     |   55 +-
 .../internal/cache/PartitionedRegionStats.java     |  103 +-
 .../internal/cache/PartitionedRegionStatsImpl.java |  315 +-
 .../internal/cache/PausedTXStateProxyImpl.java     |    3 +-
 .../geode/internal/cache/PeerTXStateStub.java      |    3 +
 .../internal/cache/PlaceHolderDiskRegion.java      |   45 +-
 .../geode/internal/cache/PoolFactoryImpl.java      |   89 +-
 .../geode/internal/cache/ProxyBucketRegion.java    |    4 +-
 .../geode/internal/cache/ProxyRegionMap.java       |   54 +-
 .../geode/internal/cache/QueuedOperation.java      |    2 +-
 .../apache/geode/internal/cache/RegionEntry.java   |    4 +-
 .../geode/internal/cache/RegionEntryContext.java   |    2 +
 .../geode/internal/cache/RegionEntryFactory.java   |    8 +-
 .../cache/RegionEntrySynchronizationListener.java  |    2 +-
 .../org/apache/geode/internal/cache/RegionMap.java |   30 +-
 .../geode/internal/cache/RegionMapFactory.java     |    2 +-
 .../geode/internal/cache/RegionMapOwner.java       |   19 +
 .../apache/geode/internal/cache/RegionQueue.java   |   32 +-
 .../apache/geode/internal/cache/RegionStatus.java  |    6 +-
 .../internal/cache/ReleaseClearLockMessage.java    |    8 +-
 .../cache/RemoteContainsKeyValueMessage.java       |  310 --
 .../geode/internal/cache/RemoteDestroyMessage.java |  705 ---
 .../internal/cache/RemoteFetchEntryMessage.java    |  335 --
 .../internal/cache/RemoteFetchVersionMessage.java  |  251 -
 .../geode/internal/cache/RemoteGetMessage.java     |  430 --
 .../internal/cache/RemoteInvalidateMessage.java    |  415 --
 .../internal/cache/RemoteOperationException.java   |   91 +-
 .../internal/cache/RemoteOperationMessage.java     |  667 ---
 .../RemoteOperationMessageWithDirectReply.java     |   81 -
 .../geode/internal/cache/RemotePutAllMessage.java  |  546 ---
 .../geode/internal/cache/RemotePutMessage.java     | 1133 -----
 .../internal/cache/RemoteRegionOperation.java      |  204 -
 .../internal/cache/RemoteRemoveAllMessage.java     |  535 ---
 .../cache/RemoveCacheServerProfileMessage.java     |  162 +
 .../cache/SearchLoadAndWriteProcessor.java         |   76 +-
 .../geode/internal/cache/SerializationHelper.java  |    4 +-
 .../geode/internal/cache/ServerPingMessage.java    |    6 +-
 .../geode/internal/cache/StateFlushOperation.java  |   95 +-
 .../geode/internal/cache/TXCommitMessage.java      |   99 +-
 .../apache/geode/internal/cache/TXEntryState.java  |    9 +-
 .../geode/internal/cache/TXEntryStateFactory.java  |    6 +-
 .../geode/internal/cache/TXFarSideCMTracker.java   |   25 +-
 .../apache/geode/internal/cache/TXLockRequest.java |   13 +-
 .../apache/geode/internal/cache/TXManagerImpl.java |   65 +-
 .../org/apache/geode/internal/cache/TXMessage.java |   18 +-
 .../internal/cache/TXRegionLockRequestImpl.java    |   33 +-
 .../apache/geode/internal/cache/TXRegionState.java |    4 +-
 .../internal/cache/TXRemoteCommitMessage.java      |   45 +-
 .../internal/cache/TXRemoteRollbackMessage.java    |    4 +-
 .../org/apache/geode/internal/cache/TXState.java   |   36 +-
 .../geode/internal/cache/TXStateInterface.java     |   81 +-
 .../apache/geode/internal/cache/TXStateProxy.java  |   40 +-
 .../geode/internal/cache/TXStateProxyImpl.java     |  151 +-
 .../apache/geode/internal/cache/TXStateStub.java   |   79 +-
 .../internal/cache/TXSynchronizationRunnable.java  |   36 +-
 .../cache/TimedMicrometerPartitionedRegionStats.kt |    3 +-
 .../geode/internal/cache/TombstoneService.java     |    2 +-
 .../geode/internal/cache/TransactionMessage.java   |   14 +-
 .../geode/internal/cache/TxEntryFactory.java       |    4 +-
 .../internal/cache/UpdateAttributesProcessor.java  |   15 +-
 .../cache/UpdateEntryVersionOperation.java         |    8 +-
 .../geode/internal/cache/UpdateOperation.java      |   12 +-
 .../internal/cache/VMCachedDeserializable.java     |   12 +-
 .../geode/internal/cache/VMLRURegionMap.java       |  788 +++-
 .../apache/geode/internal/cache/VMRegionMap.java   |    5 +-
 .../geode/internal/cache/ValidatingDiskRegion.java |    9 +-
 .../geode/internal/cache/backup/AbortBackup.java   |   32 +
 .../internal/cache/backup/AbortBackupFactory.java  |   45 +
 .../cache/backup/AbortBackupOperation.java         |   66 +
 .../internal/cache/backup/AbortBackupRequest.java  |   54 +
 .../cache/backup/AbstractBackupWriterConfig.java   |   51 +
 .../cache/backup/BackupDataStoreHelper.java        |   28 +-
 .../internal/cache/backup/BackupDefinition.java    |   83 +
 .../internal/cache/backup/BackupFileCopier.java    |  185 +
 .../geode/internal/cache/backup/BackupFilter.java  |   24 +
 .../geode/internal/cache/backup/BackupLock.java    |  114 -
 .../geode/internal/cache/backup/BackupManager.java |  629 ---
 .../internal/cache/backup/BackupOperation.java     |    8 +-
 .../cache/backup/BackupReplyProcessor.java         |    4 +-
 .../internal/cache/backup/BackupResponse.java      |    3 +-
 .../geode/internal/cache/backup/BackupService.java |  179 +
 .../geode/internal/cache/backup/BackupTask.java    |  287 ++
 .../geode/internal/cache/backup/BackupUtil.java    |   38 +-
 .../geode/internal/cache/backup/BackupWriter.java  |   33 +
 .../internal/cache/backup/BackupWriterFactory.java |   60 +
 .../internal/cache/backup/DiskStoreBackup.java     |   87 +
 .../cache/backup/FileSystemBackupWriter.java       |  242 +
 .../cache/backup/FileSystemBackupWriterConfig.java |   40 +
 .../FileSystemIncrementalBackupLocation.java       |  132 +
 .../geode/internal/cache/backup/FinishBackup.java  |   13 +-
 .../internal/cache/backup/FinishBackupFactory.java |   18 +-
 .../cache/backup/FinishBackupOperation.java        |   19 +-
 .../internal/cache/backup/FinishBackupRequest.java |   38 +-
 .../internal/cache/backup/FlushToDiskFactory.java  |    7 +-
 .../cache/backup/FlushToDiskOperation.java         |   12 +-
 .../cache/backup/FlushToDiskProcessor.java         |    4 +-
 .../internal/cache/backup/FlushToDiskRequest.java  |    4 +-
 .../cache/backup/IncrementalBackupFilter.java      |   37 +
 .../cache/backup/IncrementalBackupLocation.java    |   25 +
 .../geode/internal/cache/backup/PrepareBackup.java |    8 +-
 .../cache/backup/PrepareBackupFactory.java         |   25 +-
 .../cache/backup/PrepareBackupOperation.java       |   18 +-
 .../cache/backup/PrepareBackupRequest.java         |   27 +-
 .../geode/internal/cache/backup/RestoreScript.java |    7 +-
 .../cache/backup/TemporaryBackupFiles.java         |  139 +
 .../internal/cache/backup/UnixScriptGenerator.java |    3 -
 .../client/protocol/ClientProtocolService.java     |    8 +-
 .../internal/cache/control/HeapMemoryMonitor.java  |    5 +-
 .../cache/control/InternalResourceManager.java     |   16 +-
 .../internal/cache/control/MemoryMonitor.java      |   12 +-
 .../cache/control/OffHeapMemoryMonitor.java        |   16 +-
 .../internal/cache/control/ResourceAdvisor.java    |   12 +-
 .../internal/cache/control/ResourceEvent.java      |    6 +-
 .../internal/cache/control/ResourceListener.java   |    2 +-
 .../internal/cache/control/ResourceMonitor.java    |    6 +-
 .../entries/AbstractOplogDiskRegionEntry.java      |    6 +-
 .../cache/entries/AbstractRegionEntry.java         |  109 +-
 .../geode/internal/cache/entries/DiskEntry.java    |   83 +-
 .../internal/cache/entries/HashRegionEntry.java    |   21 +
 .../internal/cache/entries/OffHeapRegionEntry.java |    4 +-
 .../cache/eviction/AbstractEvictionController.java |  237 +-
 .../cache/eviction/AbstractEvictionList.java       |   35 +-
 .../internal/cache/eviction/CountLRUEviction.java  |  243 +-
 .../cache/eviction/CountLRUStatistics.java         |  112 +
 .../cache/eviction/DisabledEvictionCounters.java   |   90 +
 .../cache/eviction/DisabledEvictionStatistics.java |  105 -
 .../internal/cache/eviction/EvictableMap.java      |    2 +
 .../cache/eviction/EvictionController.java         |   74 +-
 .../internal/cache/eviction/EvictionCounters.java  |   48 +
 .../cache/eviction/EvictionCountersImpl.java       |  124 +
 .../internal/cache/eviction/EvictionList.java      |   11 +-
 .../cache/eviction/EvictionListBuilder.java        |   82 +-
 .../cache/eviction/EvictionStatistics.java         |   34 -
 .../cache/eviction/EvictionStatisticsImpl.java     |  180 -
 .../internal/cache/eviction/EvictionStats.java     |   39 +
 .../internal/cache/eviction/HeapLRUController.java |  128 +-
 .../internal/cache/eviction/HeapLRUStatistics.java |  108 +
 .../cache/eviction/InternalEvictionStatistics.java |   39 -
 .../geode/internal/cache/eviction/LIFOList.java    |    6 +-
 .../cache/eviction/LRUListWithAsyncSorting.java    |   44 +-
 .../cache/eviction/LRUListWithSyncSorting.java     |   11 +-
 .../cache/eviction/MemoryLRUController.java        |  330 +-
 .../cache/eviction/MemoryLRUStatistics.java        |  111 +
 .../internal/cache/eviction/RegionEvictorTask.java |    4 +-
 .../internal/cache/eviction/SizeLRUController.java |   61 +-
 .../internal/cache/execute/AbstractExecution.java  |   28 +-
 .../DistributedRegionFunctionResultSender.java     |   12 +-
 .../execute/FunctionStreamingResultCollector.java  |    6 +-
 .../internal/cache/execute/InternalExecution.java  |   10 +-
 .../internal/cache/execute/InternalFunction.java   |   40 +
 .../execute/InternalRegionFunctionContext.java     |    7 +-
 .../cache/execute/InternalResultSender.java        |    8 +-
 .../cache/execute/MemberFunctionExecutor.java      |    4 +-
 .../cache/execute/MemberFunctionResultSender.java  |   11 +-
 .../cache/execute/MultiRegionFunctionContext.java  |    4 +-
 .../cache/execute/MultiRegionFunctionExecutor.java |    4 +-
 .../PartitionedRegionFunctionResultSender.java     |   16 +-
 .../PartitionedRegionFunctionResultWaiter.java     |    6 +-
 .../cache/execute/ServerFunctionExecutor.java      |    4 +-
 .../execute/ServerRegionFunctionExecutor.java      |    4 +-
 .../util/FindRestEnabledServersFunction.java       |   10 +-
 .../geode/internal/cache/extension/Extensible.java |    2 +-
 .../internal/cache/ha/HAContainerWrapper.java      |   18 +-
 .../geode/internal/cache/ha/HARegionQueue.java     |  113 +-
 .../internal/cache/ha/QueueRemovalMessage.java     |    5 +-
 .../cache/locks/TXLessorDepartureHandler.java      |    4 +-
 .../geode/internal/cache/locks/TXLockId.java       |   10 +-
 .../geode/internal/cache/locks/TXLockService.java  |    5 +-
 .../internal/cache/locks/TXLockServiceImpl.java    |    6 +-
 .../locks/TXLockUpdateParticipantsMessage.java     |    4 +-
 .../cache/locks/TXOriginatorRecoveryProcessor.java |   14 +-
 .../locks/TXRecoverGrantorMessageProcessor.java    |    8 +-
 .../internal/cache/locks/TXRegionLockRequest.java  |    8 +-
 .../internal/cache/map/CacheModificationLock.java  |   28 +
 .../geode/internal/cache/map/FocusedRegionMap.java |   45 +
 .../geode/internal/cache/map/RegionMapDestroy.java |  741 +++
 .../AllBucketProfilesUpdateMessage.java            |    8 +-
 .../partitioned/BecomePrimaryBucketMessage.java    |   15 +-
 .../geode/internal/cache/partitioned/Bucket.java   |   16 +-
 .../cache/partitioned/BucketBackupMessage.java     |    7 +-
 .../partitioned/BucketProfileUpdateMessage.java    |   10 +-
 .../cache/partitioned/BucketSizeMessage.java       |   15 +-
 .../cache/partitioned/ContainsKeyValueMessage.java |   10 +-
 .../cache/partitioned/CreateBucketMessage.java     |   17 +-
 .../partitioned/DeposePrimaryBucketMessage.java    |   13 +-
 .../internal/cache/partitioned/DestroyMessage.java |   13 +-
 .../DestroyRegionOnDataStoreMessage.java           |   15 +-
 .../cache/partitioned/DumpAllPRConfigMessage.java  |    5 +-
 .../internal/cache/partitioned/DumpB2NRegion.java  |   13 +-
 .../cache/partitioned/DumpBucketsMessage.java      |    5 +-
 .../partitioned/EndBucketCreationMessage.java      |    9 +-
 .../cache/partitioned/FetchBulkEntriesMessage.java |   15 +-
 .../cache/partitioned/FetchEntriesMessage.java     |   16 +-
 .../cache/partitioned/FetchEntryMessage.java       |    9 +-
 .../cache/partitioned/FetchKeysMessage.java        |   18 +-
 .../partitioned/FetchPartitionDetailsMessage.java  |   13 +-
 .../internal/cache/partitioned/FlushMessage.java   |    4 +-
 .../internal/cache/partitioned/GetMessage.java     |   46 +-
 .../cache/partitioned/IdentityRequestMessage.java  |   11 +-
 .../cache/partitioned/IdentityUpdateMessage.java   |    6 +-
 .../cache/partitioned/IndexCreationMsg.java        |   21 +-
 .../cache/partitioned/InterestEventMessage.java    |   15 +-
 .../internal/cache/partitioned/InternalPRInfo.java |    5 +-
 .../partitioned/InternalPartitionDetails.java      |    4 +-
 .../cache/partitioned/InvalidateMessage.java       |   12 +-
 .../partitioned/ManageBackupBucketMessage.java     |   19 +-
 .../cache/partitioned/ManageBucketMessage.java     |   19 +-
 .../cache/partitioned/MoveBucketMessage.java       |   15 +-
 .../cache/partitioned/OfflineMemberDetails.java    |    4 +-
 .../cache/partitioned/PREntriesIterator.java       |    4 +-
 .../PRFunctionStreamingResultCollector.java        |    4 +-
 .../cache/partitioned/PRSanityCheckMessage.java    |   12 +-
 .../cache/partitioned/PRTombstoneMessage.java      |    7 +-
 .../partitioned/PRUpdateEntryVersionMessage.java   |    5 +-
 .../cache/partitioned/PartitionMessage.java        |   64 +-
 .../PartitionMessageWithDirectReply.java           |    3 +-
 .../PartitionedRegionFunctionStreamingMessage.java |   16 +-
 .../partitioned/PartitionedRegionObserver.java     |    6 +-
 .../partitioned/PartitionedRegionRebalanceOp.java  |   18 +-
 .../cache/partitioned/PrimaryRequestMessage.java   |   11 +-
 .../cache/partitioned/PutAllPRMessage.java         |   34 +-
 .../internal/cache/partitioned/PutMessage.java     |   17 +-
 .../internal/cache/partitioned/QueryMessage.java   |   13 +-
 .../internal/cache/partitioned/RegionAdvisor.java  |   29 +-
 .../cache/partitioned/RemoteFetchKeysMessage.java  |  490 --
 .../cache/partitioned/RemoteSizeMessage.java       |  325 --
 .../cache/partitioned/RemoveAllPRMessage.java      |   18 +-
 .../cache/partitioned/RemoveBucketMessage.java     |   15 +-
 .../cache/partitioned/RemoveIndexesMessage.java    |   19 +-
 .../internal/cache/partitioned/SizeMessage.java    |   21 +-
 .../partitioned/StreamingPartitionOperation.java   |   17 +-
 .../partitioned/rebalance/BucketOperator.java      |    8 +-
 .../rebalance/PartitionedRegionLoadModel.java      |    7 +-
 .../partitioned/rebalance/RebalanceDirector.java   |    8 +-
 .../cache/persistence/DiskInitFileInterpreter.java |   10 +-
 .../cache/persistence/DiskRecoveryStore.java       |   44 +-
 .../internal/cache/persistence/DiskRegionView.java |  128 +-
 .../cache/persistence/MembershipFlushRequest.java  |    9 +-
 .../cache/persistence/MembershipViewRequest.java   |   27 +-
 .../cache/persistence/PersistenceAdvisor.java      |   32 +-
 .../cache/persistence/PersistenceAdvisorImpl.java  |   36 +-
 .../persistence/PersistenceObserverHolder.java     |   16 +-
 .../cache/persistence/PersistentMemberManager.java |   34 +-
 .../cache/persistence/PersistentMemberView.java    |   42 +-
 .../cache/persistence/PersistentStateListener.java |    8 +-
 .../persistence/PersistentStateQueryMessage.java   |   14 +-
 .../PrepareNewPersistentMemberMessage.java         |   10 +-
 .../persistence/RemovePersistentMemberMessage.java |   11 +-
 .../UninterruptibleRandomAccessFile.java           |    4 +-
 .../internal/cache/persistence/query/IndexMap.java |    2 +-
 .../cache/persistence/query/ResultBag.java         |    2 +-
 .../cache/persistence/query/ResultList.java        |    2 +-
 .../cache/persistence/query/ResultMap.java         |    2 +-
 .../cache/persistence/query/ResultSet.java         |    2 +-
 .../apache/geode/internal/cache/properties.html    |  690 +--
 .../region/entry/RegionEntryFactoryBuilder.java    |    6 +-
 .../cache/snapshot/CacheSnapshotServiceImpl.java   |    2 +-
 .../internal/cache/snapshot/ClientExporter.java    |   13 +-
 .../internal/cache/snapshot/FlowController.java    |   27 +-
 .../geode/internal/cache/snapshot/GFSnapshot.java  |   39 +-
 .../cache/snapshot/RegionSnapshotServiceImpl.java  |   29 +-
 .../internal/cache/snapshot/WindowedExporter.java  |   10 +-
 .../geode/internal/cache/tier/ClientHandShake.java |   44 -
 .../internal/cache/tier/ClientSideHandshake.java   |   40 +
 .../geode/internal/cache/tier/ConnectionProxy.java |    2 +-
 .../geode/internal/cache/tier/Encryptor.java       |   26 +
 .../cache/tier/InternalClientMembership.java       |   16 +-
 .../internal/cache/tier/ServerSideHandshake.java   |   49 +
 .../internal/cache/tier/sockets/AcceptorImpl.java  |   74 +-
 .../internal/cache/tier/sockets/BaseCommand.java   |    2 +-
 .../cache/tier/sockets/CacheClientNotifier.java    |  116 +-
 .../cache/tier/sockets/CacheClientProxy.java       |   15 +-
 .../cache/tier/sockets/CacheClientUpdater.java     |   47 +-
 .../tier/sockets/ClientBlacklistProcessor.java     |   14 +-
 .../cache/tier/sockets/ClientHealthMonitor.java    |  314 +-
 .../internal/cache/tier/sockets/ClientMessage.java |    2 +-
 .../tier/sockets/ClientProxyMembershipID.java      |    6 +-
 .../cache/tier/sockets/ClientUpdateMessage.java    |   44 +-
 .../tier/sockets/ClientUpdateMessageImpl.java      |   20 +-
 .../cache/tier/sockets/ClientUserAuths.java        |    3 +
 .../cache/tier/sockets/CommBufferPool.java         |    4 +-
 .../cache/tier/sockets/CommandInitializer.java     |    5 +
 .../internal/cache/tier/sockets/EncryptorImpl.java |  749 +++
 .../sockets/GenericProtocolServerConnection.java   |  126 -
 .../internal/cache/tier/sockets/HandShake.java     | 1802 --------
 .../internal/cache/tier/sockets/Handshake.java     |  525 +++
 .../cache/tier/sockets/LegacyServerConnection.java |   88 -
 .../geode/internal/cache/tier/sockets/Message.java |  130 +-
 .../cache/tier/sockets/MessageIdExtractor.java     |    6 +-
 .../internal/cache/tier/sockets/MessageStats.java  |    8 +-
 .../cache/tier/sockets/ObjectPartList.java         |    2 +-
 .../tier/sockets/OldClientSupportService.java      |    8 +-
 .../tier/sockets/OriginalServerConnection.java     |   88 +
 .../tier/sockets/ProtobufServerConnection.java     |  128 +
 .../sockets/RemoveClientFromBlacklistMessage.java  |    5 +-
 .../cache/tier/sockets/ServerConnection.java       |  391 +-
 .../tier/sockets/ServerConnectionCollection.java   |   44 +
 .../tier/sockets/ServerConnectionFactory.java      |   11 +-
 .../tier/sockets/ServerHandShakeProcessor.java     |  404 --
 .../sockets/ServerInterestRegistrationMessage.java |    6 +-
 .../cache/tier/sockets/ServerQueueStatus.java      |   58 +-
 .../tier/sockets/ServerSideHandshakeFactory.java   |  102 +
 .../tier/sockets/ServerSideHandshakeImpl.java      |  224 +
 .../cache/tier/sockets/VersionedObjectList.java    |    5 +-
 .../cache/tier/sockets/command/CommitCommand.java  |    5 +-
 .../tier/sockets/command/ExecuteFunction.java      |   11 +-
 .../tier/sockets/command/ExecuteFunction65.java    |   11 +-
 .../tier/sockets/command/ExecuteFunction66.java    |   23 +-
 .../sockets/command/ExecuteRegionFunction.java     |   11 +-
 .../sockets/command/ExecuteRegionFunction61.java   |   11 +-
 .../sockets/command/ExecuteRegionFunction65.java   |   11 +-
 .../sockets/command/ExecuteRegionFunction66.java   |   11 +-
 .../command/ExecuteRegionFunctionSingleHop.java    |   11 +-
 .../sockets/command/GatewayReceiverCommand.java    |    2 +-
 .../cache/tier/sockets/command/PutAll.java         |    3 +-
 .../cache/tier/sockets/command/PutAll70.java       |    3 +-
 .../cache/tier/sockets/command/PutAll80.java       |    3 +-
 .../internal/cache/tier/sockets/command/Size.java  |    6 +-
 .../tier/sockets/command/TXFailoverCommand.java    |   19 +-
 .../sockets/command/TXSynchronizationCommand.java  |   30 +-
 .../cache/tx/AbstractPeerTXRegionStub.java         |   25 +-
 .../internal/cache/tx/BucketTXRegionStub.java      |   31 +
 .../internal/cache/tx/ClientTXRegionStub.java      |    2 +-
 .../geode/internal/cache/tx/ClientTXStateStub.java |   66 +-
 .../internal/cache/tx/DistClientTXStateStub.java   |   25 +-
 .../geode/internal/cache/tx/DistTxEntryEvent.java  |   38 +-
 .../internal/cache/tx/DistributedTXRegionStub.java |   85 +-
 .../internal/cache/tx/PartitionedTXRegionStub.java |   29 +-
 .../internal/cache/tx/RemoteClearMessage.java      |  182 +
 .../cache/tx/RemoteContainsKeyValueMessage.java    |  294 ++
 .../internal/cache/tx/RemoteDestroyMessage.java    |  685 +++
 .../internal/cache/tx/RemoteFetchEntryMessage.java |  304 ++
 .../internal/cache/tx/RemoteFetchKeysMessage.java  |  441 ++
 .../cache/tx/RemoteFetchVersionMessage.java        |  241 +
 .../geode/internal/cache/tx/RemoteGetMessage.java  |  402 ++
 .../internal/cache/tx/RemoteInvalidateMessage.java |  392 ++
 .../internal/cache/tx/RemoteOperationMessage.java  |  586 +++
 .../tx/RemoteOperationMessageWithDirectReply.java  |   59 +
 .../internal/cache/tx/RemotePutAllMessage.java     |  517 +++
 .../geode/internal/cache/tx/RemotePutMessage.java  | 1066 +++++
 .../internal/cache/tx/RemoteRemoveAllMessage.java  |  510 ++
 .../geode/internal/cache/tx/RemoteSizeMessage.java |  254 +
 .../geode/internal/cache/tx/TXRegionStub.java      |    2 +-
 .../cache/versions/RegionVersionVector.java        |  129 +-
 .../cache/versions/VMRegionVersionVector.java      |   13 +-
 .../internal/cache/versions/VMVersionTag.java      |    4 +-
 .../internal/cache/versions/VersionHolder.java     |    4 +-
 .../geode/internal/cache/versions/VersionTag.java  |    4 +-
 .../internal/cache/vmotion/VMotionObserver.java    |    6 +-
 .../internal/cache/wan/AbstractGatewaySender.java  |   11 +-
 .../wan/AbstractGatewaySenderEventProcessor.java   |   30 +-
 .../cache/wan/DistributedSystemListener.java       |    4 +-
 .../internal/cache/wan/GatewaySenderAdvisor.java   |    7 +-
 .../cache/wan/GatewaySenderEventDispatcher.java    |   10 +-
 .../internal/cache/wan/GatewaySenderEventImpl.java |   69 +-
 ...waySenderQueueEntrySynchronizationListener.java |    4 +-
 ...aySenderQueueEntrySynchronizationOperation.java |   17 +-
 .../cache/wan/InternalGatewaySenderFactory.java    |   13 +-
 ...currentParallelGatewaySenderEventProcessor.java |    8 +-
 .../ParallelGatewaySenderEventProcessor.java       |    3 +-
 .../wan/parallel/ParallelGatewaySenderQueue.java   |   39 +-
 .../parallel/ParallelQueueBatchRemovalMessage.java |  259 --
 .../wan/parallel/ParallelQueueRemovalMessage.java  |    5 +-
 ...tilParallelGatewaySenderFlushedCoordinator.java |    3 +-
 .../cache/wan/serial/BatchDestroyOperation.java    |    6 +-
 ...oncurrentSerialGatewaySenderEventProcessor.java |    3 -
 .../serial/SerialGatewaySenderEventProcessor.java  |   44 +-
 .../cache/wan/serial/SerialGatewaySenderQueue.java |   37 +-
 .../internal/cache/xmlcache/CacheCreation.java     |  205 +-
 .../geode/internal/cache/xmlcache/CacheXml.java    |    6 +
 .../internal/cache/xmlcache/CacheXmlGenerator.java |   22 +-
 .../internal/cache/xmlcache/CacheXmlParser.java    |   22 +-
 .../cache/xmlcache/ClientCacheCreation.java        |   14 +-
 .../geode/internal/cache/xmlcache/Declarable2.java |    2 +-
 .../cache/xmlcache/FunctionServiceCreation.java    |   23 +-
 .../cache/xmlcache/GatewayReceiverCreation.java    |    4 +
 .../xmlcache/ParallelAsyncEventQueueCreation.java  |    4 +-
 .../xmlcache/ParallelGatewaySenderCreation.java    |    4 +-
 .../internal/cache/xmlcache/PropertyResolver.java  |   16 +-
 .../xmlcache/SerialAsyncEventQueueCreation.java    |    4 +-
 .../xmlcache/SerialGatewaySenderCreation.java      |    4 +-
 .../org/apache/geode/internal/concurrent/AL.java   |   24 +-
 .../geode/internal/concurrent/MapCallback.java     |   31 +-
 .../geode/internal/concurrent/MapResult.java       |    4 +-
 .../internal/datasource/AbstractPoolCache.java     |   11 +-
 .../datasource/ConfiguredDataSourceProperties.java |   11 +-
 .../internal/datasource/ConnectionPoolCache.java   |    8 +-
 .../internal/datasource/ConnectionProvider.java    |    8 +-
 .../internal/datasource/DataSourceResources.java   |   14 +-
 .../internal/datasource/ManagedPoolCacheImpl.java  |    2 +-
 .../internal/datasource/TranxPoolCacheImpl.java    |    2 +-
 .../geode/internal/i18n/LocalizedStrings.java      |    8 +-
 .../org/apache/geode/internal/i18n/StringId.java   |   10 +-
 .../apache/geode/internal/jndi/JNDIInvoker.java    |   44 +-
 .../geode/internal/jta/GlobalTransaction.java      |    4 +-
 .../org/apache/geode/internal/lang/Filter.java     |    2 +-
 .../org/apache/geode/internal/lang/Initable.java   |    2 +-
 .../geode/internal/lang/MutableIdentifiable.java   |    2 +-
 .../apache/geode/internal/lang/ObjectUtils.java    |  124 -
 .../org/apache/geode/internal/lang/Orderable.java  |    2 +-
 .../org/apache/geode/internal/lang/Ordered.java    |    4 +-
 .../apache/geode/internal/lang/StringUtils.java    |   13 +
 .../geode/internal/lang/SystemPropertyHelper.java  |   41 +-
 .../geode/internal/logging/InternalLogWriter.java  |   40 +-
 .../geode/internal/logging/MergeLogFiles.java      |   12 +-
 .../internal/logging/log4j/AlertAppender.java      |    4 +-
 .../internal/logging/log4j/GemFireLogger.java      |  171 +-
 .../geode/internal/logging/log4j/LogMarker.java    |  123 +-
 .../geode/internal/memcached/CommandProcessor.java |    2 +-
 .../apache/geode/internal/net/SocketCreator.java   |   55 +-
 .../apache/geode/internal/offheap/DataType.java    |   31 +-
 .../geode/internal/offheap/FreeListManager.java    |   10 +-
 .../geode/internal/offheap/LifecycleListener.java  |   13 +-
 .../geode/internal/offheap/MemoryAllocator.java    |   23 +-
 .../internal/offheap/MemoryAllocatorImpl.java      |   26 +-
 .../apache/geode/internal/offheap/MemoryBlock.java |   24 +-
 .../geode/internal/offheap/MemoryInspector.java    |   14 +-
 .../internal/offheap/MemoryUsageListener.java      |    2 +-
 .../geode/internal/offheap/OffHeapHelper.java      |   12 +-
 .../geode/internal/offheap/OffHeapMemoryStats.java |   48 +-
 .../internal/offheap/OffHeapRegionEntryHelper.java |    4 +-
 .../offheap/OutOfOffHeapMemoryListener.java        |    4 +-
 .../apache/geode/internal/offheap/Releasable.java  |    2 +-
 .../org/apache/geode/internal/offheap/Slab.java    |    6 +-
 .../apache/geode/internal/offheap/SlabFactory.java |    2 +-
 .../geode/internal/offheap/StoredObject.java       |   46 +-
 .../internal/security/FilterPostAuthorization.java |  218 -
 .../internal/security/FilterPreAuthorization.java  |  149 -
 .../security/IntegratedSecurityService.java        |   10 +-
 .../geode/internal/security/ObjectWithAuthz.java   |   67 -
 .../internal/security/SecurityServiceFactory.java  |   10 -
 .../security/shiro/GeodeAuthenticationToken.java   |   11 +-
 .../geode/internal/sequencelog/SequenceLogger.java |    8 +-
 .../geode/internal/sequencelog/io/Filter.java      |    5 +-
 .../sequencelog/model/GraphReaderCallback.java     |    6 +-
 .../apache/geode/internal/shared/NativeCalls.java  |   57 +-
 .../geode/internal/shared/NativeCallsJNAImpl.java  |  125 +-
 .../geode/internal/size/ObjectGraphSizer.java      |    2 +-
 .../geode/internal/statistics/HostStatSampler.java |    2 +-
 .../internal/statistics/LocalStatListener.java     |    2 +-
 .../geode/internal/statistics/SampleHandler.java   |    8 +-
 .../internal/statistics/StatArchiveFormat.java     |   74 +-
 .../statistics/StatArchiveHandlerConfig.java       |   14 +-
 .../geode/internal/statistics/StatisticId.java     |    4 +-
 .../internal/statistics/StatisticsListener.java    |    2 +-
 .../internal/statistics/StatisticsManager.java     |   20 +-
 .../statistics/StatisticsNotification.java         |   16 +-
 .../internal/statistics/StatisticsSampler.java     |    8 +-
 .../geode/internal/statistics/VMStatsContract.java |    4 +-
 .../statistics/platform/OsStatisticsFactory.java   |    5 +-
 .../apache/geode/internal/tcp/BaseMsgStreamer.java |   12 +-
 .../geode/internal/tcp/ByteBufferInputStream.java  |    3 +-
 .../org/apache/geode/internal/tcp/Connection.java  |   26 +-
 .../apache/geode/internal/tcp/ConnectionTable.java |   14 +-
 .../geode/internal/tcp/DirectReplySender.java      |    4 -
 .../apache/geode/internal/tcp/ServerDelegate.java  |    8 +-
 .../org/apache/geode/internal/tcp/TCPConduit.java  |   80 +-
 .../org/apache/geode/internal/tcp/package.html     |   21 +-
 .../geode/internal/util/ArgumentRedactor.java      |  246 +-
 .../geode/internal/util/DebuggerSupport.java       |   62 -
 .../org/apache/geode/internal/util/IOUtils.java    |    4 +-
 .../geode/internal/util/ObjectIntProcedure.java    |    2 +-
 .../apache/geode/internal/util/PluckStacks.java    |   99 +-
 .../geode/internal/util/SingletonCallable.java     |   82 -
 .../apache/geode/internal/util/SingletonValue.java |  318 --
 .../geode/internal/util/StackTraceCollector.java   |  170 -
 .../apache/geode/internal/util/Transformer.java    |    2 +-
 .../apache/geode/internal/util/Versionable.java    |    8 +-
 .../ConcurrentMapWithReusableEntries.java          |   50 +
 .../concurrent/CustomEntryConcurrentHashMap.java   |   59 +-
 .../java/org/apache/geode/lang/Identifiable.java   |    2 +-
 .../geode/management/AsyncEventQueueMXBean.java    |   42 +-
 .../org/apache/geode/management/BackupStatus.java  |   21 +-
 .../management/DistributedLockServiceMXBean.java   |   12 +-
 .../geode/management/DistributedRegionMXBean.java  |   99 +-
 .../geode/management/GatewaySenderMXBean.java      |   17 +-
 .../geode/management/JMXNotificationType.java      |   71 +-
 .../geode/management/JMXNotificationUserData.java  |    6 +-
 .../org/apache/geode/management/LocatorMXBean.java |   16 +-
 .../org/apache/geode/management/ManagerMXBean.java |   14 +-
 .../org/apache/geode/management/MemberMXBean.java  |   28 +-
 .../geode/management/RegionAttributesData.java     |   33 +-
 .../org/apache/geode/management/RegionMXBean.java  |  104 +-
 .../apache/geode/management/cli/CliMetaData.java   |    6 +-
 .../geode/management/cli/CommandService.java       |    8 +-
 .../geode/management/cli/CommandStatement.java     |    8 +-
 .../org/apache/geode/management/cli/Result.java    |   18 +-
 .../internal/GeodeRemoteStreamExporter.java        |   52 +
 .../geode/management/internal/JettyHelper.java     |   30 +-
 .../management/internal/JmxManagerAdvisee.java     |    4 +-
 .../management/internal/JmxManagerAdvisor.java     |   11 +-
 .../management/internal/JmxManagerLocator.java     |    5 +-
 .../geode/management/internal/MBeanJMXAdapter.java |    1 -
 .../geode/management/internal/ManagementAgent.java |   77 +-
 .../management/internal/ManagementConstants.java   |  137 +-
 .../management/internal/ManagementFunction.java    |    5 +-
 .../internal/ManagementMembershipListener.java     |   14 +-
 .../management/internal/ManagementStrings.java     |    3 +
 .../management/internal/ManagerStartupMessage.java |    7 +-
 .../geode/management/internal/MemberMessenger.java |    8 +-
 .../internal/NotificationBroadCasterProxy.java     |    2 +-
 .../geode/management/internal/ProxyInterface.java  |    4 +-
 .../geode/management/internal/ProxyListener.java   |    6 +-
 .../geode/management/internal/RestAgent.java       |   11 +-
 .../internal/SystemManagementService.java          |    8 +-
 .../internal/beans/AggregateHandler.java           |   10 +-
 .../internal/beans/AsyncEventQueueMBean.java       |   15 +
 .../internal/beans/AsyncEventQueueMBeanBridge.java |   44 +-
 .../internal/beans/CacheServerBridge.java          |   16 +-
 .../internal/beans/CacheServiceMBeanBase.java      |    4 +-
 .../internal/beans/DistributedRegionBridge.java    |    2 +-
 .../internal/beans/DistributedSystemBridge.java    |   93 +-
 .../internal/beans/DistributedSystemMBean.java     |    3 +-
 .../management/internal/beans/FileUploader.java    |  125 +
 .../internal/beans/FileUploaderMBean.java          |   31 +
 .../internal/beans/GatewayReceiverMBeanBridge.java |    4 +
 .../internal/beans/GatewaySenderMBean.java         |   15 +
 .../internal/beans/GatewaySenderMBeanBridge.java   |   41 +-
 .../management/internal/beans/MBeanAggregator.java |   14 +-
 .../internal/beans/ManagementAdapter.java          |   53 +-
 .../internal/beans/ManagementListener.java         |    8 +
 .../management/internal/beans/MemberMBean.java     |   40 +-
 .../internal/beans/MemberMBeanBridge.java          |  123 +-
 .../internal/beans/QueryDataFunction.java          |    6 +-
 .../internal/beans/RegionMBeanBridge.java          |   39 +-
 .../beans/stats/GatewaySenderOverflowMonitor.java  |  157 +
 .../beans/stats/RegionClusterStatsMonitor.java     |    2 +
 .../management/internal/beans/stats/StatsKey.java  |    3 +
 .../internal/cli/AbstractCliAroundInterceptor.java |   35 +-
 .../geode/management/internal/cli/CliUtil.java     |  670 ++-
 .../management/internal/cli/CommandManager.java    |   37 +-
 .../management/internal/cli/CommandRequest.java    |   22 +-
 .../internal/cli/CommandResponseBuilder.java       |    4 +-
 .../geode/management/internal/cli/GfshParser.java  |   59 +-
 .../geode/management/internal/cli/Launcher.java    |   10 +-
 .../geode/management/internal/cli/LogWrapper.java  |    7 +-
 .../cli/commands/AlterAsyncEventQueueCommand.java  |    2 +-
 .../cli/commands/AlterOfflineDiskStoreCommand.java |    2 +-
 .../internal/cli/commands/AlterRegionCommand.java  |   54 +-
 .../cli/commands/AlterRuntimeConfigCommand.java    |    4 +-
 .../cli/commands/BackupDiskStoreCommand.java       |   11 +-
 .../cli/commands/ChangeLogLevelCommand.java        |    9 +-
 .../cli/commands/ClearDefinedIndexesCommand.java   |    2 +-
 .../cli/commands/CloseDurableCQsCommand.java       |    4 +-
 .../cli/commands/CloseDurableClientCommand.java    |    4 +-
 .../cli/commands/CommandAvailabilityIndicator.java |    3 +-
 .../cli/commands/CompactDiskStoreCommand.java      |   10 +-
 .../commands/CompactOfflineDiskStoreCommand.java   |    8 +-
 .../internal/cli/commands/ConfigurePDXCommand.java |    5 +-
 .../internal/cli/commands/ConnectCommand.java      |   49 +-
 .../cli/commands/CountDurableCQEventsCommand.java  |    4 +-
 .../cli/commands/CreateAsyncEventQueueCommand.java |    2 +-
 .../cli/commands/CreateDefinedIndexesCommand.java  |    2 +-
 .../cli/commands/CreateDiskStoreCommand.java       |    2 +-
 .../cli/commands/CreateGatewayReceiverCommand.java |   18 +-
 .../cli/commands/CreateGatewaySenderCommand.java   |   24 +-
 .../internal/cli/commands/CreateIndexCommand.java  |    2 +-
 .../cli/commands/CreateJndiBindingCommand.java     |  243 +
 .../internal/cli/commands/CreateRegionCommand.java |  254 +-
 .../internal/cli/commands/DebugCommand.java        |    2 +-
 .../internal/cli/commands/DefineIndexCommand.java  |    2 +-
 .../internal/cli/commands/DeployCommand.java       |  150 +-
 .../cli/commands/DescribeClientCommand.java        |   17 +-
 .../cli/commands/DescribeConfigCommand.java        |    7 +-
 .../cli/commands/DescribeConnectionCommand.java    |    2 +-
 .../cli/commands/DescribeDiskStoreCommand.java     |    2 +-
 .../cli/commands/DescribeMemberCommand.java        |    7 +-
 .../commands/DescribeOfflineDiskStoreCommand.java  |    2 +-
 .../cli/commands/DescribeRegionCommand.java        |  216 +-
 .../commands/DestroyAsyncEventQueueCommand.java    |   79 +
 .../cli/commands/DestroyDiskStoreCommand.java      |    2 +-
 .../cli/commands/DestroyFunctionCommand.java       |    2 +-
 .../cli/commands/DestroyGatewaySenderCommand.java  |   17 +-
 .../internal/cli/commands/DestroyIndexCommand.java |    5 +-
 .../cli/commands/DestroyJndiBindingCommand.java    |  119 +
 .../cli/commands/DestroyRegionCommand.java         |    4 +-
 .../internal/cli/commands/DisconnectCommand.java   |    6 +-
 .../internal/cli/commands/EchoCommand.java         |    2 +-
 .../cli/commands/ExecuteFunctionCommand.java       |  101 +-
 .../cli/commands/ExecuteScriptCommand.java         |    2 +-
 .../internal/cli/commands/ExitCommand.java         |    2 +-
 .../internal/cli/commands/ExportConfigCommand.java |    4 +-
 .../internal/cli/commands/ExportDataCommand.java   |    2 +-
 .../ExportImportClusterConfigurationCommands.java  |   73 +-
 .../internal/cli/commands/ExportLogsCommand.java   |    2 +-
 .../commands/ExportOfflineDiskStoreCommand.java    |    4 +-
 .../cli/commands/ExportStackTraceCommand.java      |   73 +-
 .../internal/cli/commands/GCCommand.java           |   14 +-
 .../internal/cli/commands/GetCommand.java          |    4 +-
 .../internal/cli/commands/GfshCommand.java         |   81 +-
 .../internal/cli/commands/GfshHelpCommand.java     |    2 +-
 .../internal/cli/commands/GfshHintCommand.java     |    2 +-
 .../internal/cli/commands/HistoryCommand.java      |    2 +-
 .../internal/cli/commands/ImportDataCommand.java   |    2 +-
 .../cli/commands/ListAsyncEventQueuesCommand.java  |    4 +-
 .../internal/cli/commands/ListClientCommand.java   |    6 +-
 .../internal/cli/commands/ListDeployedCommand.java |    4 +-
 .../cli/commands/ListDiskStoresCommand.java        |    2 +-
 .../cli/commands/ListDurableClientCQsCommand.java  |    4 +-
 .../internal/cli/commands/ListFunctionCommand.java |    4 +-
 .../internal/cli/commands/ListGatewayCommand.java  |    2 +-
 .../internal/cli/commands/ListIndexCommand.java    |    4 +-
 .../cli/commands/ListJndiBindingCommand.java       |   70 +
 .../internal/cli/commands/ListMembersCommand.java  |   63 +-
 .../internal/cli/commands/ListRegionCommand.java   |    6 +-
 .../commands/LoadBalanceGatewaySenderCommand.java  |    5 +-
 .../internal/cli/commands/LocateEntryCommand.java  |    4 +-
 .../internal/cli/commands/NetstatCommand.java      |    6 +-
 .../internal/cli/commands/PDXRenameCommand.java    |    2 +-
 .../cli/commands/PauseGatewaySenderCommand.java    |    2 +-
 .../internal/cli/commands/PutCommand.java          |   14 +-
 .../internal/cli/commands/QueryCommand.java        |    2 +-
 .../internal/cli/commands/RebalanceCommand.java    |   49 +-
 .../internal/cli/commands/RegionCommandsUtils.java |    9 -
 .../internal/cli/commands/RemoveCommand.java       |    4 +-
 .../cli/commands/ResumeGatewaySenderCommand.java   |    5 +-
 .../commands/RevokeMissingDiskStoreCommand.java    |    2 +-
 .../internal/cli/commands/SetVariableCommand.java  |    2 +-
 .../internal/cli/commands/ShCommand.java           |    4 +-
 .../internal/cli/commands/ShowDeadlockCommand.java |    5 +-
 .../internal/cli/commands/ShowLogCommand.java      |    2 +-
 .../internal/cli/commands/ShowMetricsCommand.java  |    2 +-
 .../cli/commands/ShowMissingDiskStoreCommand.java  |    2 +-
 .../internal/cli/commands/ShutdownCommand.java     |   11 +-
 .../internal/cli/commands/SleepCommand.java        |    4 +-
 .../cli/commands/StartGatewayReceiverCommand.java  |    5 +-
 .../cli/commands/StartGatewaySenderCommand.java    |    2 +-
 .../internal/cli/commands/StartLocatorCommand.java |   41 +-
 .../internal/cli/commands/StartMemberUtils.java    |   14 +-
 .../internal/cli/commands/StartServerCommand.java  |   23 +-
 .../StatusClusterConfigServiceCommand.java         |    2 +-
 .../cli/commands/StatusGatewayReceiverCommand.java |    5 +-
 .../cli/commands/StatusGatewaySenderCommand.java   |    5 +-
 .../cli/commands/StopGatewayReceiverCommand.java   |    5 +-
 .../cli/commands/StopGatewaySenderCommand.java     |    5 +-
 .../internal/cli/commands/UndeployCommand.java     |    4 +-
 .../commands/UpgradeOfflineDiskStoreCommand.java   |   11 +-
 .../cli/commands/ValidateDiskStoreCommand.java     |    2 +-
 .../internal/cli/commands/VersionCommand.java      |    2 +-
 .../commands/lifecycle/StartJConsoleCommand.java   |    2 +-
 .../commands/lifecycle/StartJVisualVMCommand.java  |    2 +-
 .../cli/commands/lifecycle/StartPulseCommand.java  |    2 +-
 .../cli/commands/lifecycle/StartVsdCommand.java    |    2 +-
 .../commands/lifecycle/StatusLocatorCommand.java   |    2 +-
 .../commands/lifecycle/StatusServerCommand.java    |    2 +-
 .../cli/commands/lifecycle/StopLocatorCommand.java |    2 +-
 .../cli/commands/lifecycle/StopServerCommand.java  |    2 +-
 .../cli/converters/ClassNameConverter.java         |   62 +
 .../cli/converters/ConfigPropertyConverter.java    |   58 +
 .../converters/ConnectionEndpointConverter.java    |   43 -
 .../internal/cli/converters/EnumConverter.java     |   15 +-
 .../cli/converters/ExpirationActionConverter.java  |   50 +
 .../management/internal/cli/domain/ClassName.java  |  127 +
 .../cli/domain/EvictionAttributesInfo.java         |    4 +-
 .../cli/domain/MemberConfigurationInfo.java        |   17 +-
 .../internal/cli/domain/RegionAttributesInfo.java  |   34 +-
 .../cli/domain/RegionDescriptionPerMember.java     |   19 -
 .../cli/exceptions/EntityExistsException.java      |   25 +
 .../cli/functions/AlterRuntimeConfigFunction.java  |    9 +-
 .../cli/functions/ChangeLogLevelFunction.java      |    7 +-
 .../internal/cli/functions/CliFunctionResult.java  |    7 -
 .../cli/functions/CloseDurableClientFunction.java  |    8 +-
 .../cli/functions/CloseDurableCqFunction.java      |    8 +-
 .../cli/functions/ContinuousQueryFunction.java     |    5 +-
 .../functions/CreateAsyncEventQueueFunction.java   |   10 +-
 .../functions/CreateDefinedIndexesFunction.java    |    5 +-
 .../cli/functions/CreateDiskStoreFunction.java     |    5 +-
 .../cli/functions/CreateIndexFunction.java         |    5 +-
 .../cli/functions/CreateJndiBindingFunction.java   |   38 +
 .../cli/functions/DataCommandFunction.java         |    6 +-
 .../internal/cli/functions/DeployFunction.java     |   90 +-
 .../cli/functions/DescribeDiskStoreFunction.java   |    5 +-
 .../functions/DestroyAsyncEventQueueFunction.java  |   79 +
 .../DestroyAsyncEventQueueFunctionArgs.java        |   38 +
 .../cli/functions/DestroyDiskStoreFunction.java    |    6 +-
 .../cli/functions/DestroyIndexFunction.java        |    5 +-
 .../cli/functions/DestroyJndiBindingFunction.java  |   44 +
 .../cli/functions/ExportConfigFunction.java        |    5 +-
 .../internal/cli/functions/ExportDataFunction.java |    9 +-
 .../internal/cli/functions/ExportLogsFunction.java |    6 +-
 .../functions/FetchRegionAttributesFunction.java   |   66 +-
 .../FetchSharedConfigurationStatusFunction.java    |    9 +-
 .../cli/functions/GarbageCollectionFunction.java   |   10 +-
 .../functions/GatewayReceiverCreateFunction.java   |    5 +-
 .../cli/functions/GatewaySenderCreateFunction.java |    5 +-
 .../functions/GatewaySenderDestroyFunction.java    |   10 +-
 .../GetMemberConfigInformationFunction.java        |   27 +-
 .../functions/GetMemberInformationFunction.java    |   15 +-
 .../functions/GetRegionDescriptionFunction.java    |   12 +-
 .../internal/cli/functions/GetRegionsFunction.java |   12 +-
 .../cli/functions/GetStackTracesFunction.java      |    5 +-
 .../GetSubscriptionQueueSizeFunction.java          |    7 +-
 .../internal/cli/functions/ImportDataFunction.java |    5 +-
 .../cli/functions/JndiBindingConfiguration.java    |  217 +
 .../functions/ListAsyncEventQueuesFunction.java    |    5 +-
 .../cli/functions/ListDeployedFunction.java        |    5 +-
 .../cli/functions/ListDiskStoresFunction.java      |    6 +-
 .../cli/functions/ListDurableCqNamesFunction.java  |    5 +-
 .../cli/functions/ListFunctionFunction.java        |    4 +-
 .../internal/cli/functions/ListIndexFunction.java  |    6 +-
 .../cli/functions/ListJndiBindingFunction.java     |   58 +
 .../cli/functions/MemberRegionFunction.java        |   82 -
 .../cli/functions/MembersForRegionFunction.java    |   91 -
 .../internal/cli/functions/NetstatFunction.java    |   12 +-
 .../internal/cli/functions/RebalanceFunction.java  |    6 +-
 .../cli/functions/RegionAlterFunction.java         |  125 +-
 .../cli/functions/RegionAttributesWrapper.java     |  108 +
 .../cli/functions/RegionCreateFunction.java        |   65 +-
 .../cli/functions/RegionDestroyFunction.java       |    5 +-
 .../internal/cli/functions/RegionFunctionArgs.java |  208 +-
 .../functions/ShowMissingDiskStoresFunction.java   |    5 +-
 .../internal/cli/functions/ShutDownFunction.java   |   11 +-
 .../cli/functions/SizeExportLogsFunction.java      |    6 +-
 .../internal/cli/functions/UndeployFunction.java   |    5 +-
 .../internal/cli/functions/UnregisterFunction.java |   15 +-
 .../cli/functions/UserFunctionExecution.java       |  230 +-
 .../management/internal/cli/i18n/CliStrings.java   |   65 +-
 .../management/internal/cli/json/GfJsonArray.java  |   25 +-
 .../cli/remote/CommandExecutionContext.java        |   13 +-
 .../internal/cli/remote/MemberCommandService.java  |    2 +-
 .../cli/remote/OnlineCommandProcessor.java         |   26 +-
 .../internal/cli/result/CommandResult.java         |   37 +-
 .../management/internal/cli/result/FileResult.java |   48 +-
 .../geode/management/internal/cli/shell/Gfsh.java  |   37 +-
 .../internal/cli/shell/GfshExecutionStrategy.java  |   10 +-
 .../internal/cli/shell/JmxOperationInvoker.java    |   90 +-
 .../internal/cli/shell/OperationInvoker.java       |   23 +-
 .../internal/cli/util/DiskStoreCompacter.java      |   13 +-
 .../internal/cli/util/DiskStoreUpgrader.java       |   13 +-
 .../management/internal/cli/util/MergeLogs.java    |   46 +-
 .../internal/cli/util/RegionAttributesNames.java   |    5 +-
 .../internal/cli/util/ThreePhraseGenerator.java    |    6 +-
 .../callbacks/ConfigurationChangeListener.java     |    4 -
 .../configuration/domain/Configuration.java        |   13 +-
 .../internal/configuration/domain/XmlEntity.java   |  171 +-
 .../functions/DownloadJarFunction.java             |   91 +
 .../functions/GetClusterConfigurationFunction.java |   23 +-
 .../functions/GetRegionNamesFunction.java          |    9 +-
 .../functions/RecreateCacheFunction.java           |    7 +-
 .../configuration/functions/UploadJarFunction.java |   62 -
 .../messages/ConfigurationResponse.java            |   33 +-
 .../internal/deployment/FunctionScanner.java       |    2 +-
 .../internal/messages/CompactRequest.java          |   12 +-
 .../internal/security/AccessControlMXBean.java     |    2 +-
 .../internal/security/ResourcePermissions.java     |   20 +
 .../controllers/AbstractCommandsController.java    |   45 +-
 .../web/controllers/ShellCommandsController.java   |   60 +-
 .../support/LoginHandlerInterceptor.java           |   28 +-
 .../SerializableObjectHttpMessageConverter.java    |    4 +-
 .../internal/web/shell/HttpOperationInvoker.java   |   18 +-
 .../management/internal/web/util/ConvertUtils.java |  136 -
 .../membership/ClientMembershipEvent.java          |    6 +-
 .../membership/ClientMembershipListener.java       |    6 +-
 .../management/membership/MembershipEvent.java     |    4 +-
 .../management/membership/MembershipListener.java  |    6 +-
 .../java/org/apache/geode/pdx/JSONFormatter.java   |  136 +-
 .../java/org/apache/geode/pdx/PdxInstance.java     |   22 +-
 .../org/apache/geode/pdx/PdxInstanceFactory.java   |   57 +-
 .../main/java/org/apache/geode/pdx/PdxReader.java  |   52 +-
 .../java/org/apache/geode/pdx/PdxSerializable.java |    4 +-
 .../java/org/apache/geode/pdx/PdxSerializer.java   |    4 +-
 .../main/java/org/apache/geode/pdx/PdxWriter.java  |   61 +-
 .../geode/pdx/ReflectionBasedAutoSerializer.java   |   25 +-
 .../org/apache/geode/pdx/WritablePdxInstance.java  |    2 +-
 .../pdx/internal/AutoSerializableManager.java      |   26 +-
 .../geode/pdx/internal/CheckTypeRegistryState.java |    7 +-
 .../geode/pdx/internal/ClientTypeRegistration.java |    4 +-
 .../apache/geode/pdx/internal/ComparableEnum.java  |    6 +-
 .../geode/pdx/internal/ConvertableToBytes.java     |    2 +-
 .../geode/pdx/internal/InternalPdxReader.java      |   96 +-
 .../geode/pdx/internal/PdxInstanceFactoryImpl.java |   10 +-
 .../geode/pdx/internal/PeerTypeRegistration.java   |   26 +-
 .../geode/pdx/internal/TypeRegistration.java       |   36 +-
 .../apache/geode/pdx/internal/TypeRegistry.java    |   12 +-
 .../java/org/apache/geode/ra/GFConnection.java     |    2 +-
 .../org/apache/geode/ra/GFConnectionFactory.java   |    2 +-
 .../org/apache/geode/redis/internal/Executor.java  |    2 +-
 .../apache/geode/redis/internal/Extendable.java    |    2 +-
 .../geode/redis/internal/RegionProvider.java       |    5 +-
 .../org/apache/geode/security/AuthInitialize.java  |   33 +-
 .../apache/geode/security/ResourcePermission.java  |  143 +-
 .../org/apache/geode/security/SecurityManager.java |   11 +-
 .../geode.apache.org/schema/cache/cache-1.0.xsd    |    1 +
 .../org/apache/geode/internal/privatekey.ser       |  Bin 756 -> 0 bytes
 .../org/apache/geode/internal/publickey.ser        |  Bin 1029 -> 0 bytes
 .../sanctioned-geode-core-serializables.txt        |   26 +-
 .../test/java/org/apache/geode/DeltaTestImpl.java  |   16 +-
 .../org/apache/geode/admin/AdminTestHelper.java    |   12 +-
 .../geode/cache/ConnectionPoolDUnitTest.java       |   24 +-
 .../CreateAndLocalDestroyInTXRegressionTest.java   |  154 +
 .../cache/PRCacheListenerDistributedTest.java      |   84 +
 ...stenerWithInterestPolicyAllDistributedTest.java |   66 +
 .../PRCreationTotalNumBucketsDistributedTest.java  |  137 +
 .../geode/cache/RegionExpirationDUnitTest.java     |  193 +
 .../cache/RegionExpirationIntegrationTest.java     |  126 +
 .../org/apache/geode/cache/RegionShortcutTest.java |   41 +
 .../ReplicateCacheListenerDistributedTest.java     |  308 ++
 .../cache/client/ClientCacheFactoryJUnitTest.java  |    1 +
 .../AutoConnectionSourceImplJUnitTest.java         |    5 +
 .../CacheServerSSLConnectionDUnitTest.java         |   74 +-
 .../internal/ConnectionPoolImplJUnitTest.java      |    5 +-
 .../internal/QueueConnectionImplJUnitTest.java     |   47 +
 .../client/internal/QueueManagerJUnitTest.java     |   50 +-
 .../pooling/ConnectionManagerJUnitTest.java        |   97 +-
 .../cache/execute/CoreFunctionSecurityTest.java    |  180 +
 .../cache/execute/FunctionAdapterJUnitTest.java    |   52 +-
 .../management/MemoryThresholdsDUnitTest.java      |   34 +-
 .../MemoryThresholdsOffHeapDUnitTest.java          |  118 +-
 .../BaseLineAndCompareQueryPerfJUnitTest.java      |    7 +-
 .../query/Bug32947ValueConstraintJUnitTest.java    |    3 +-
 .../org/apache/geode/cache/query/BugJUnitTest.java |   10 +-
 .../apache/geode/cache/query/IndexTypeTest.java    |    3 +-
 .../cache/query/JoinQueriesIntegrationTest.java    |    3 +-
 .../cache/query/LocalQueryServiceJUnitTest.java    |    3 +-
 .../geode/cache/query/PdxStringQueryJUnitTest.java |  183 +-
 .../apache/geode/cache/query/QueryJUnitTest.java   |    4 +-
 .../geode/cache/query/QueryServiceJUnitTest.java   |   31 +-
 .../geode/cache/query/QueryTestUtilsJUnitTest.java |    3 +-
 .../QueryWithBucketParameterIntegrationTest.java   |    3 +-
 .../apache/geode/cache/query/RegionJUnitTest.java  |    3 +-
 .../geode/cache/query/TypedIteratorJUnitTest.java  |    6 +-
 .../cache/query/TypedJsonQueryIntegrationTest.java |    3 +-
 .../cache/query/cq/dunit/CqQueryTestListener.java  |    2 +-
 .../query/dunit/CompactRangeIndexDUnitTest.java    |    3 +-
 .../cache/query/dunit/CompiledInDUnitTest.java     |    6 +-
 .../query/dunit/CorruptedIndexIntegrationTest.java |    6 +-
 .../dunit/GroupByPartitionedQueryDUnitTest.java    |   14 +-
 .../cache/query/dunit/GroupByQueryDUnitTest.java   |    5 +-
 .../cache/query/dunit/HashIndexDUnitTest.java      |    3 +-
 .../geode/cache/query/dunit/HelperTestCase.java    |    3 +-
 .../NonDistinctOrderByPartitionedDUnitTest.java    |    9 +-
 .../query/dunit/OrderByPartitionedDUnitTest.java   |    3 +-
 ...artitionedRegionCompactRangeIndexDUnitTest.java |    3 +-
 .../dunit/PdxGroupByPartitionedQueryDUnitTest.java |    3 +-
 .../cache/query/dunit/PdxLocalQueryDUnitTest.java  |   13 +-
 .../PdxLocalQueryVersionedClassDUnitTest.java      |    8 +-
 .../geode/cache/query/dunit/PdxQueryDUnitTest.java |   55 +-
 .../cache/query/dunit/PdxStringQueryDUnitTest.java |   75 +-
 .../dunit/QueryDataInconsistencyDUnitTest.java     |    3 +-
 .../cache/query/dunit/QueryIndexDUnitTest.java     |    3 +-
 .../query/dunit/QueryIndexUsingXMLDUnitTest.java   |    4 +-
 .../dunit/QueryParamsAuthorizationDUnitTest.java   |    3 +-
 .../dunit/QueryUsingFunctionContextDUnitTest.java  |    6 +-
 .../cache/query/dunit/QueryUsingPoolDUnitTest.java |    3 +-
 .../cache/query/dunit/RemoteQueryDUnitTest.java    |    3 +-
 .../ResourceManagerWithQueryMonitorDUnitTest.java  |   25 +-
 .../query/dunit/SelectStarQueryDUnitTest.java      |    9 +-
 .../functional/ComparisonOperatorsJUnitTest.java   |    3 +-
 .../cache/query/functional/ConstantsJUnitTest.java |    3 +-
 .../cache/query/functional/CountStarJUnitTest.java |    3 +-
 .../functional/CustomerOptimizationsJUnitTest.java |    3 +-
 .../DistinctAndNonDistinctQueryJUnitTest.java      |    3 +-
 ...tinctResultsWithDupValuesInRegionJUnitTest.java |    3 +-
 .../cache/query/functional/FunctionJUnitTest.java  |    3 +-
 .../functional/GroupByPartitionedJUnitTest.java    |    3 +-
 .../functional/GroupByReplicatedJUnitTest.java     |    3 +-
 .../query/functional/INOperatorJUnitTest.java      |    4 +-
 .../query/functional/IUM6Bug32345ReJUnitTest.java  |    5 +-
 .../geode/cache/query/functional/IUMJUnitTest.java |    4 +-
 .../functional/IUMRCompositeIteratorJUnitTest.java |    4 +-
 .../IUMRMultiIndexesMultiRegionJUnitTest.java      |    3 +-
 .../functional/IUMRShuffleIteratorsJUnitTest.java  |    3 +-
 .../functional/IUMRSingleRegionJUnitTest.java      |    3 +-
 ...IndependentOperandsInWhereClause2JUnitTest.java |    4 +-
 .../functional/IndexCreationDeadLockJUnitTest.java |    3 +-
 .../query/functional/IndexCreationJUnitTest.java   |    3 +-
 .../IndexMaintenanceAsynchJUnitTest.java           |    6 +-
 .../query/functional/IndexOnEntrySetJUnitTest.java |    4 +-
 .../query/functional/IndexOperatorJUnitTest.java   |    4 +-
 .../functional/IndexPrimaryKeyUsageJUnitTest.java  |    5 +-
 .../IndexUsageInNestedQueryJUnitTest.java          |    5 +-
 .../IndexUsageWithAliasAsProjAtrbtJUnitTest.java   |    3 +-
 .../IndexUseMultFrmSnglCondJUnitTest.java          |    4 +-
 .../IndexWithSngleFrmAndMultCondQryJUnitTest.java  |    5 +-
 .../functional/IteratorTypeDefEmpJUnitTest.java    |    4 +-
 .../query/functional/IteratorTypeDefJUnitTest.java |    4 +-
 .../IteratorTypeDefaultTypesJUnitTest.java         |    4 +-
 .../functional/IumMultConditionJUnitTest.java      |    4 +-
 .../query/functional/LikePredicateJUnitTest.java   |    3 +-
 .../query/functional/LimitClauseJUnitTest.java     |    3 +-
 .../functional/LogicalOperatorsJUnitTest.java      |    3 +-
 .../cache/query/functional/MiscJUnitTest.java      |   17 +-
 .../functional/MultiIndexCreationJUnitTest.java    |    3 +-
 .../functional/MultiRegionIndexUsageJUnitTest.java |    3 +-
 .../query/functional/MultipleRegionsJUnitTest.java |    3 +-
 .../functional/NegativeNumberQueriesJUnitTest.java |    3 +-
 .../query/functional/NestedQueryJUnitTest.java     |    6 +-
 .../NonDistinctOrderByPartitionedJUnitTest.java    |    3 +-
 .../NonDistinctOrderByReplicatedJUnitTest.java     |    3 +-
 .../query/functional/NumericQueryJUnitTest.java    |    3 +-
 .../functional/OrderByPartitionedJUnitTest.java    |    3 +-
 .../functional/OrderByReplicatedJUnitTest.java     |    3 +-
 .../functional/ParameterBindingJUnitTest.java      |    3 +-
 .../functional/PdxGroupByPartitionedJUnitTest.java |    3 +-
 .../functional/PdxGroupByReplicatedJUnitTest.java  |    3 +-
 .../query/functional/PdxOrderByJUnitTest.java      |    3 +-
 .../functional/QRegionInterfaceJUnitTest.java      |    3 +-
 .../QueryREUpdateInProgressJUnitTest.java          |    7 +-
 .../query/functional/QueryUndefinedJUnitTest.java  |    3 +-
 .../functional/ReservedKeywordsJUnitTest.java      |    3 +-
 .../ResultsDataSerializabilityJUnitTest.java       |    3 +-
 .../query/functional/SelectToDateJUnitTest.java    |    3 +-
 .../functional/StructMemberAccessJUnitTest.java    |    4 +-
 .../TestNewFunctionSSorRSIntegrationTest.java      |    4 +-
 .../ArithmeticOperationsIntegrationTest.java       |  288 ++
 .../internal/CompiledGroupBySelectJUnitTest.java   |    3 +-
 .../CompiledJunctionInternalsJUnitTest.java        |    3 +-
 .../query/internal/CopyOnReadQueryJUnitTest.java   |    3 +-
 .../query/internal/ExecutionContextJUnitTest.java  |    3 +-
 .../query/internal/IndexManagerJUnitTest.java      |    3 +-
 .../query/internal/OrderByComparatorJUnitTest.java |    3 +-
 .../internal/ProjectionAttributeJUnitTest.java     |    3 +-
 .../cache/query/internal/QCompilerJUnitTest.java   |    3 +-
 .../QueryFromClauseCanonicalizationJUnitTest.java  |    3 +-
 .../internal/QueryObserverCallbackJUnitTest.java   |    3 +-
 .../cache/query/internal/QueryTraceJUnitTest.java  |    3 +-
 .../cache/query/internal/QueryUtilsJUnitTest.java  |    3 +-
 .../RestrictedMethodInvocationAuthorizerTest.java  |   10 +-
 .../AbstractIndexMaintenanceIntegrationTest.java   |    3 +-
 .../AsyncIndexUpdaterThreadShutdownJUnitTest.java  |    3 +-
 .../index/AsynchIndexMaintenanceJUnitTest.java     |    3 +-
 .../index/CompactRangeIndexIndexMapJUnitTest.java  |    3 +-
 .../internal/index/CompactRangeIndexJUnitTest.java |    3 +-
 ...ompactRangeIndexMaintenanceIntegrationTest.java |   28 +-
 .../CompactRangeIndexQueryIntegrationTest.java     |    5 +-
 ...ncurrentIndexInitOnOverflowRegionDUnitTest.java |    5 +-
 ...ntIndexOperationsOnOverflowRegionDUnitTest.java |    7 +-
 ...exUpdateWithInplaceObjectModFalseDUnitTest.java |    3 +-
 .../ConcurrentIndexUpdateWithoutWLDUnitTest.java   |    3 +-
 .../internal/index/CopyOnReadIndexDUnitTest.java   |    3 +-
 .../internal/index/CopyOnReadIndexJUnitTest.java   |    3 +-
 .../index/DeclarativeIndexCreationJUnitTest.java   |   12 +-
 .../internal/index/EquiJoinIntegrationTest.java    |    3 +-
 .../index/HashIndexMaintenanceIntegrationTest.java |    4 +-
 .../index/HashIndexQueryIntegrationTest.java       |    5 +-
 .../index/IndexCreationInternalsJUnitTest.java     |    7 +-
 .../query/internal/index/IndexHintJUnitTest.java   |   56 +-
 .../cache/query/internal/index/IndexJUnitTest.java |    3 +-
 .../internal/index/IndexMaintainceJUnitTest.java   |   37 +-
 .../internal/index/IndexMaintenanceJUnitTest.java  |    3 +-
 .../internal/index/IndexStatisticsJUnitTest.java   |    3 +-
 .../index/IndexTrackingQueryObserverDUnitTest.java |    5 +-
 .../index/IndexTrackingQueryObserverJUnitTest.java |    3 +-
 .../query/internal/index/IndexUseJUnitTest.java    |    3 +-
 .../IndexedMergeEquiJoinScenariosJUnitTest.java    |    3 +-
 .../InitializeIndexEntryDestroyQueryDUnitTest.java |    4 +-
 .../internal/index/MapIndexStoreJUnitTest.java     |    3 +-
 .../index/MapRangeIndexMaintenanceJUnitTest.java   |    3 +-
 .../internal/index/MemoryIndexStoreJUnitTest.java  |    9 +-
 .../index/MultiIndexCreationDUnitTest.java         |    5 +-
 .../NewDeclarativeIndexCreationJUnitTest.java      |   18 +-
 .../internal/index/PartitionedIndexJUnitTest.java  |   70 +
 .../PartitionedRegionEquiJoinIntegrationTest.java  |    3 +-
 .../index/PdxCopyOnReadQueryJUnitTest.java         |    3 +-
 ...ProgRegionCreationIndexUpdateTypeJUnitTest.java |   19 +-
 .../index/PutAllWithIndexPerfDUnitTest.java        |    3 +-
 .../internal/index/RangeIndexAPIJUnitTest.java     |    3 +-
 .../RangeIndexMaintenanceIntegrationTest.java      |    3 +-
 .../query/internal/types/ObjectTypeAssert.java     |   67 +
 .../cache/query/internal/types/TypeUtilTest.java   |   44 -
 .../query/internal/types/TypeUtilsJUnitTest.java   | 1163 +++++
 .../partitioned/PRBasicIndexCreationDUnitTest.java |  956 ++--
 .../PRBasicIndexCreationDeadlockDUnitTest.java     |  245 -
 .../PRBasicMultiIndexCreationDUnitTest.java        |  373 +-
 .../query/partitioned/PRBasicQueryDUnitTest.java   |  469 +-
 .../partitioned/PRBasicRemoveIndexDUnitTest.java   |  135 +-
 .../partitioned/PRColocatedEquiJoinDUnitTest.java  | 1654 +++----
 .../partitioned/PRIndexStatisticsJUnitTest.java    |    3 +-
 .../query/partitioned/PRInvalidQueryDUnitTest.java |  140 +-
 .../query/partitioned/PRInvalidQueryJUnitTest.java |    6 +-
 .../partitioned/PRQueryCacheCloseDUnitTest.java    |  319 --
 .../partitioned/PRQueryCacheClosedJUnitTest.java   |    3 +-
 .../query/partitioned/PRQueryDUnitHelper.java      |    9 +-
 .../cache/query/partitioned/PRQueryDUnitTest.java  | 1269 ++---
 .../cache/query/partitioned/PRQueryJUnitTest.java  |    3 +-
 .../partitioned/PRQueryNumThreadsJUnitTest.java    |    3 +-
 .../partitioned/PRQueryPortfolioDUnitTest.java     |  468 ++
 .../partitioned/PRQueryRegionCloseDUnitTest.java   |  216 +-
 .../partitioned/PRQueryRegionClosedJUnitTest.java  |    3 +-
 .../PRQueryRegionDestroyedDUnitTest.java           |  213 +-
 .../PRQueryRegionDestroyedJUnitTest.java           |    3 +-
 .../PRQueryRemoteNodeExceptionDUnitTest.java       |  795 +---
 .../query/transaction/QueryAndJtaJUnitTest.java    |    3 +-
 .../snapshot/SnapshotPerformanceDUnitTest.java     |    8 +-
 .../geode/cache30/CacheListenerTestCase.java       |    3 -
 .../geode/cache30/CacheSerializableRunnable.java   |    3 -
 .../apache/geode/cache30/CacheXml66DUnitTest.java  |    6 +-
 .../apache/geode/cache30/CacheXml70DUnitTest.java  |    4 +-
 .../org/apache/geode/cache30/CacheXmlTestCase.java |   20 +
 .../geode/cache30/CachedAllEventsDUnitTest.java    |   17 -
 .../apache/geode/cache30/CallbackArgDUnitTest.java |   20 -
 .../geode/cache30/ClientMembershipDUnitTest.java   |   57 +-
 .../geode/cache30/ClientServerCCEDUnitTest.java    |    8 +-
 .../apache/geode/cache30/ClientServerTestCase.java |   22 -
 .../CreateAndLocalDestroyInTXRegressionTest.java   |  167 -
 .../apache/geode/cache30/DiskRegionDUnitTest.java  | 1632 -------
 .../geode/cache30/DiskRegionDistributedTest.java   |  415 ++
 .../geode/cache30/DiskRegionIntegrationTest.java   |  580 +++
 .../apache/geode/cache30/DiskRegionTestImpl.java   |   14 -
 ...ibutedAckOverflowRegionCCEOffHeapDUnitTest.java |    2 +-
 ...utedAckPersistentRegionCCEOffHeapDUnitTest.java |    2 +-
 .../cache30/DistributedAckRegionCCEDUnitTest.java  |   13 +-
 .../DistributedAckRegionCCEOffHeapDUnitTest.java   |    2 +-
 .../DistributedAckRegionOffHeapDUnitTest.java      |    2 +-
 .../DistributedNoAckRegionCCEDUnitTest.java        |   14 -
 .../DistributedNoAckRegionCCEOffHeapDUnitTest.java |    2 +-
 .../DistributedNoAckRegionOffHeapDUnitTest.java    |    2 +-
 .../EntriesDoNotExpireDuringGIIRegressionTest.java |  210 -
 .../cache30/GlobalRegionCCEOffHeapDUnitTest.java   |    2 +-
 .../cache30/GlobalRegionOffHeapDUnitTest.java      |    2 +-
 .../cache30/LRUEvictionControllerDUnitTest.java    |   61 +-
 .../cache30/MemLRUEvictionControllerDUnitTest.java |   12 +-
 .../geode/cache30/MultiVMRegionTestCase.java       |  418 +-
 .../OffHeapLRUEvictionControllerDUnitTest.java     |    2 +-
 .../cache30/PartitionedRegionOffHeapDUnitTest.java |    2 +-
 .../org/apache/geode/cache30/ProxyDUnitTest.java   |   11 +-
 .../apache/geode/cache30/ReconnectDUnitTest.java   |   31 +-
 .../geode/cache30/RegionExpirationDUnitTest.java   |  259 --
 .../cache30/RegionMembershipListenerDUnitTest.java |   14 +-
 .../geode/cache30/RegionReliabilityTestCase.java   |    7 -
 .../org/apache/geode/cache30/RegionTestCase.java   |  206 -
 .../org/apache/geode/cache30/SlowRecDUnitTest.java |   14 +-
 .../org/apache/geode/cache30/TXOrderDUnitTest.java |   18 -
 .../org/apache/geode/cache30/TestDiskRegion.java   |   12 +-
 .../AnalyzeSerializablesJUnitTest.java             |   67 +-
 .../DistributedLockServiceDUnitTest.java           |    7 +-
 .../distributed/DistributedMemberDUnitTest.java    |   15 +-
 .../distributed/DistributedSystemDUnitTest.java    |   17 +-
 .../geode/distributed/HostedLocatorsDUnitTest.java |   28 +-
 .../apache/geode/distributed/LocatorDUnitTest.java |   78 +-
 .../apache/geode/distributed/LocatorJUnitTest.java |   25 +-
 .../distributed/LocatorLauncherBuilderTest.java    |   15 +-
 .../apache/geode/distributed/RoleDUnitTest.java    |    8 +-
 .../distributed/ServerLauncherBuilderTest.java     |   15 +-
 .../geode/distributed/ServerLauncherDUnitTest.java |  112 +
 .../distributed/ServerLauncherDUnitTestHelper.java |   37 +
 .../geode/distributed/SystemAdminDUnitTest.java    |    5 +-
 .../ClusterDistributionManagerDUnitTest.java       |  399 ++
 ...lusterDistributionManagerForAdminDUnitTest.java |  317 ++
 .../internal/ClusterDistributionManagerTest.java   |   46 +
 .../ConsoleDistributionManagerDUnitTest.java       |  446 --
 .../geode/distributed/internal/DateMessage.java    |    2 +-
 .../internal/DistributionAdvisorDUnitTest.java     |    2 +-
 .../internal/DistributionManagerDUnitTest.java     |  545 ---
 .../internal/DistributionManagerTest.java          |   44 -
 .../InternalDistributedSystemJUnitTest.java        |   38 +-
 .../internal/InternalLocatorIntegrationTest.java   |    3 +-
 .../org/apache/geode/distributed/internal/LDM.java |    4 +-
 .../internal/LocatorLoadSnapshotJUnitTest.java     |   66 +
 .../distributed/internal/ProduceDateMessages.java  |    2 +-
 .../internal/locks/DLockServiceLeakTest.java       |   23 +-
 .../internal/membership/MembershipJUnitTest.java   |   31 +-
 .../internal/membership/NetViewJUnitTest.java      |   24 +-
 .../membership/gms/MembershipManagerHelper.java    |    5 +-
 .../gms/fd/GMSHealthMonitorJUnitTest.java          |    5 +-
 .../gms/locator/GMSLocatorRecoveryJUnitTest.java   |   38 +-
 .../gms/membership/GMSJoinLeaveJUnitTest.java      |   78 +-
 .../gms/membership/GMSJoinLeaveTestHelper.java     |   19 +-
 .../gms/membership/StatRecorderJUnitTest.java      |    6 +-
 .../gms/messenger/GMSEncryptJUnitTest.java         |  495 +-
 .../gms/messenger/GMSQuorumCheckerJUnitTest.java   |   27 +-
 .../gms/messenger/JGroupsMessengerJUnitTest.java   |   12 +-
 .../gms/mgr/GMSMembershipManagerJUnitTest.java     |    6 +-
 .../geode/internal/AbstractConfigJUnitTest.java    |   91 -
 .../internal/ClassPathLoaderIntegrationTest.java   |   76 +-
 .../apache/geode/internal/ClassPathLoaderTest.java |   34 +-
 .../geode/internal/DeployedJarJUnitTest.java       |   20 +-
 .../internal/InternalDataSerializerJUnitTest.java  |   63 +
 ...alDataSerializerSerializationWhitelistTest.java |    9 +-
 .../geode/internal/JarDeployerDeadlockTest.java    |   11 +-
 .../geode/internal/JarDeployerIntegrationTest.java |   22 +-
 .../geode/internal/PdxDeleteFieldJUnitTest.java    |   12 +-
 .../internal/PutAllOperationContextJUnitTest.java  |    2 +-
 .../internal/cache/ARMLockTestHookAdapter.java     |   18 +-
 .../internal/cache/AbstractLRURegionMapTest.java   |   43 -
 .../internal/cache/AbstractRegionJUnitTest.java    |  640 +--
 .../internal/cache/AbstractRegionMapTest.java      |  768 +++-
 .../internal/cache/BucketRegionJUnitTest.java      |    1 +
 .../geode/internal/cache/Bug41091DUnitTest.java    |    5 +-
 .../geode/internal/cache/Bug41733DUnitTest.java    |    8 +-
 .../internal/cache/CacheOperationMessageTest.java  |    4 +-
 .../geode/internal/cache/CacheProfileTest.java     |   57 +
 .../CacheWriterGetOldValueIntegrationTest.java     |    4 +-
 .../internal/cache/ClearRvvLockingDUnitTest.java   |    8 +-
 .../internal/cache/ClearTXLockingDUnitTest.java    |  181 +-
 .../cache/ClientServerGetAllDUnitTest.java         |    2 +-
 ...entServerInvalidAndDestroyedEntryDUnitTest.java |   14 +-
 .../cache/ClientServerTransactionDUnitTest.java    |   80 +-
 .../geode/internal/cache/ColocationHelperTest.java |    9 -
 .../internal/cache/DeltaFaultInDUnitTest.java      |    3 +-
 .../internal/cache/DeltaPropagationDUnitTest.java  |   22 +-
 ...stroyEntryWithConcurrentOperationJUnitTest.java |  229 -
 .../DiskRegOplogSwtchingAndRollerJUnitTest.java    |    6 +-
 .../geode/internal/cache/DiskRegionJUnitTest.java  |    7 +-
 .../cache/DiskStoreImplIntegrationTest.java        |  142 +
 .../geode/internal/cache/DiskStoreMonitorTest.java |   57 +
 .../apache/geode/internal/cache/DiskUsageTest.java |  255 +
 .../DistrbutedRegionProfileOffHeapDUnitTest.java   |    2 +-
 .../internal/cache/DistributedCacheTestCase.java   |   17 +-
 ...tributedRegionFunctionStreamingMessageTest.java |    4 +-
 .../EnforceUniqueHostForLonerIntegrationTest.java  |   62 +
 .../EntriesDoNotExpireDuringGiiRegressionTest.java |  182 +
 .../geode/internal/cache/EntryEventImplTest.java   |   67 +-
 .../cache/FilterProfileConcurrencyTest.java        |   89 +
 .../geode/internal/cache/FlusherThreadTest.java    |   77 +
 .../geode/internal/cache/GIIDeltaDUnitTest.java    |   10 +-
 .../internal/cache/GIIFlowControlDUnitTest.java    |    6 +-
 .../geode/internal/cache/GemFireCacheImplTest.java |  114 +
 .../geode/internal/cache/GridProfileTest.java      |    6 +-
 .../cache/HAOverflowMemObjectSizerDUnitTest.java   |    9 +-
 .../internal/cache/InitialImageOperationTest.java  |   56 +
 .../cache/InterruptClientServerDUnitTest.java      |    8 +-
 .../internal/cache/InterruptDiskJUnitTest.java     |   21 +-
 .../geode/internal/cache/InterruptsDUnitTest.java  |    8 +-
 .../cache/JtaAfterCompletionMessageTest.java       |   52 +
 .../cache/JtaBeforeCompletionMessageTest.java      |   52 +
 .../LIFOEvictionAlgoEnabledRegionJUnitTest.java    |    4 +-
 ...FOEvictionAlgoMemoryEnabledRegionJUnitTest.java |    9 +-
 .../LRUClearWithDiskRegionOpRegressionTest.java    |   12 +-
 .../cache/MonthBasedPartitionResolver.java         |   73 +
 .../cache/NetSearchMessagingDUnitTest.java         |   12 +-
 .../geode/internal/cache/OffHeapTestUtil.java      |   17 +-
 .../geode/internal/cache/OplogFlushTest.java       |   10 +-
 .../geode/internal/cache/OplogJUnitTest.java       |  181 +-
 .../cache/PRCacheListenerInvocationTest.java       |   86 -
 ...istenerWithInterestPolicyAllInvocationTest.java |   70 -
 .../cache/PRCustomPartitioningDUnitTest.java       |  193 +
 .../PREntryIdleExpirationDistributedTest.java      |   51 +
 .../internal/cache/PREntryIdleExpirationTest.java  |   50 -
 .../cache/PartitionAttributesImplJUnitTest.java    |   47 +
 ...onedRegionAPIConserveSocketsFalseDUnitTest.java |    9 +-
 .../cache/PartitionedRegionAPIDUnitTest.java       | 1811 +++-----
 .../PartitionedRegionAsSubRegionDUnitTest.java     |  314 --
 .../PartitionedRegionAsSubregionDUnitTest.java     |  234 +
 ...dRegionBucketCreationDistributionDUnitTest.java | 1851 +++-----
 .../PartitionedRegionCacheCloseDUnitTest.java      |  276 +-
 .../PartitionedRegionCacheXMLExampleDUnitTest.java |  176 +-
 .../cache/PartitionedRegionCloseDUnitTest.java     |  196 -
 .../PartitionedRegionCloseDistributedTest.java     |  197 +
 .../cache/PartitionedRegionCreationDUnitTest.java  | 1025 ++---
 .../cache/PartitionedRegionDUnitTestCase.java      |  507 --
 .../cache/PartitionedRegionDestroyDUnitTest.java   |  361 +-
 .../cache/PartitionedRegionEvictionDUnitTest.java  |   18 +-
 .../cache/PartitionedRegionGetSomeKeys.java        |   95 +
 .../cache/PartitionedRegionHADUnitTest.java        |  654 ++-
 ...itionedRegionHAFailureAndRecoveryDUnitTest.java |  689 ++-
 .../PartitionedRegionLocalMaxMemoryDUnitTest.java  |  274 +-
 ...tionedRegionLocalMaxMemoryOffHeapDUnitTest.java |   45 +-
 .../cache/PartitionedRegionMultipleDUnitTest.java  |  576 +--
 .../PartitionedRegionOffHeapEvictionDUnitTest.java |    2 +-
 .../cache/PartitionedRegionPRIDDUnitTest.java      |  287 +-
 .../cache/PartitionedRegionQueryDUnitTest.java     |    5 +-
 ...itionedRegionSingleNodeOperationsJUnitTest.java |    2 +-
 .../cache/PartitionedRegionSizeDUnitTest.java      |  625 +--
 .../cache/PartitionedRegionStatsDUnitTest.java     |  823 ++--
 .../cache/PartitionedRegionTestUtilsDUnitTest.java |  817 ++--
 .../PartitionedRegionWithSameNameDUnitTest.java    |  920 +---
 .../geode/internal/cache/RegionCommitTest.java     |   58 +
 .../cache/RemoteFetchEntryMessageTest.java         |   44 -
 .../internal/cache/RemoteOperationMessageTest.java |  109 -
 .../internal/cache/RemotePutAllMessageTest.java    |   40 -
 .../cache/RemotePutReplyMessageJUnitTest.java      |   52 -
 .../internal/cache/RemoteRemoveAllMessageTest.java |   40 -
 .../internal/cache/RemoteTransactionDUnitTest.java |   23 +-
 .../ReplicateCacheListenerInvocationTest.java      |  327 --
 ...eplicateEntryIdleExpirationDistributedTest.java |  128 +
 .../cache/ReplicateEntryIdleExpirationTest.java    |  128 -
 .../cache/RequestFilterInfoMessageTest.java        |   30 +
 .../cache/SearchLoadAndWriteProcessorTest.java     |    6 +-
 .../geode/internal/cache/SerializableMonth.java    |   55 +
 .../internal/cache/SimpleDiskRegionJUnitTest.java  |    2 +-
 .../geode/internal/cache/SizingFlagDUnitTest.java  |    4 +-
 .../internal/cache/StateMarkerMessageTest.java     |   31 +
 .../internal/cache/SystemFailureDUnitTest.java     |    4 +-
 .../geode/internal/cache/TXManagerImplTest.java    |    7 +-
 .../cache/TXRegionLockRequestImplTest.java         |   55 +
 .../internal/cache/TXReservationMgrJUnitTest.java  |    2 +-
 .../internal/cache/TXStateProxyImplJUnitTest.java  |   61 -
 .../geode/internal/cache/TXStateProxyImplTest.java |   82 +
 .../cache/TXSynchronizationRunnableTest.java       |   64 +
 .../internal/cache/TestObjectWithIdentifier.java   |   85 +
 ...ommitMessageBackwardCompatibilityDUnitTest.java |  640 +++
 .../geode/internal/cache/VMLRURegionMapTest.java   |   43 +
 .../cache/backup/AbortBackupFactoryTest.java       |   85 +
 .../cache/backup/AbortBackupOperationTest.java     |  183 +
 .../cache/backup/AbortBackupRequestTest.java       |   79 +
 .../backup/AbstractBackupWriterConfigTest.java     |   86 +
 .../cache/backup/BackupDefinitionTest.java         |  124 +
 .../cache/backup/BackupDistributedTest.java        |  575 +--
 .../backup/BackupFileCopierIntegrationTest.java    |  283 ++
 .../cache/backup/BackupIntegrationTest.java        |   55 +-
 .../internal/cache/backup/BackupLockTest.java      |  105 -
 .../backup/BackupPrepareAndFinishMsgDUnitTest.java |   60 +-
 .../cache/backup/BackupReplyProcessorTest.java     |   14 +-
 .../internal/cache/backup/BackupServiceTest.java   |   90 +
 .../cache/backup/BackupWriterFactoryTest.java      |   78 +
 .../backup/FileSystemBackupWriterConfigTest.java   |   74 +
 .../cache/backup/FileSystemBackupWriterTest.java   |  250 +
 .../FileSystemIncrementalBackupLocationTest.java   |  189 +
 .../cache/backup/FinishBackupFactoryTest.java      |   20 +-
 .../cache/backup/FinishBackupOperationTest.java    |   31 +-
 .../cache/backup/FinishBackupRequestTest.java      |   27 +-
 .../cache/backup/FlushToDiskFactoryTest.java       |   13 +-
 .../cache/backup/FlushToDiskOperationTest.java     |   14 +-
 .../cache/backup/FlushToDiskRequestTest.java       |   14 +-
 .../backup/IncrementalBackupDistributedTest.java   |  223 +-
 ...titionedBackupPrepareAndFinishMsgDUnitTest.java |    4 +-
 .../cache/backup/PrepareBackupFactoryTest.java     |   18 +-
 .../cache/backup/PrepareBackupOperationTest.java   |   38 +-
 .../cache/backup/PrepareBackupRequestTest.java     |   34 +-
 ...eplicateBackupPrepareAndFinishMsgDUnitTest.java |    4 +-
 .../cache/backup/TemporaryBackupFilesTest.java     |  110 +
 .../cache/control/RebalanceOperationDUnitTest.java |    6 +-
 .../cache/control/TestMemoryThresholdListener.java |    7 +-
 .../DiskRegOverflowAsyncJUnitPerformanceTest.java  |    8 +-
 .../DiskRegOverflowSyncJUnitPerformanceTest.java   |    8 +-
 ...skRegionOverflowAsyncRollingOpLogJUnitTest.java |    6 +-
 ...iskRegionOverflowSyncRollingOpLogJUnitTest.java |    6 +-
 .../cache/eviction/AbstractEvictionListTest.java   |   82 +-
 .../internal/cache/eviction/EvictionDUnitTest.java |   22 +-
 .../cache/eviction/EvictionListBuilderTest.java    |   80 +
 .../eviction/EvictionObjectSizerDUnitTest.java     |   14 +-
 .../cache/eviction/EvictionStatsDUnitTest.java     |  157 +-
 .../internal/cache/eviction/EvictionTestBase.java  |   13 +-
 .../internal/cache/eviction/LIFOListTest.java      |   15 +-
 .../LRUListWithAsyncSortingIntegrationTest.java    |   11 +-
 .../eviction/LRUListWithAsyncSortingTest.java      |   62 +-
 .../LRUListWithSyncSortingIntegrationTest.java     |    9 +-
 .../cache/eviction/LRUListWithSyncSortingTest.java |   19 +-
 .../internal/cache/eviction/LRUTestEntry.java      |    5 +-
 .../cache/eviction/OffHeapEvictionDUnitTest.java   |    9 +-
 .../eviction/OffHeapEvictionStatsDUnitTest.java    |    7 +-
 .../RegionEntryEvictionIntegrationTest.java        |   63 +
 .../cache/eviction/TestEvictionController.java     |  114 +-
 .../eviction/TestLRUListWithAsyncSorting.java      |   17 +-
 .../eviction/TransactionsWithOverflowTest.java     |   48 +
 .../internal/cache/execute/BooleanFunction.java    |   46 +
 .../ClientFunctionTimeoutRegressionTest.java       |  208 +-
 .../ClientServerFunctionExecutionDUnitTest.java    |    3 +-
 ...istributedRegionFunctionExecutionDUnitTest.java |    7 +-
 .../ExecuteFunctionInstanceRegressionTest.java     |  189 +
 ...ExceptionsIncludeLocalMemberRegressionTest.java |  137 +
 .../FunctionExecutionOnLonerRegressionTest.java    |  143 +
 .../FunctionExecution_ExceptionDUnitTest.java      |  802 ++--
 .../cache/execute/FunctionServiceBase.java         |    9 +-
 .../FunctionServiceClientAccessorPRDUnitTest.java  |    3 +-
 ...ceClientAccessorPRMultipleMembersDUnitTest.java |    3 +-
 ...AccessorPRMultipleMembersMultihopDUnitTest.java |    3 +-
 ...tionServiceClientMultipleOnServerDUnitTest.java |    3 +-
 .../FunctionServiceClientOnServerDUnitTest.java    |    3 +-
 .../execute/FunctionServiceLocalPRDUnitTest.java   |    3 +-
 .../execute/FunctionServiceLocalRRDUnitTest.java   |    3 +-
 .../FunctionServiceMultipleOnMemberDUnitTest.java  |    3 +-
 .../FunctionServicePeerAccessorPRDUnitTest.java    |    3 +-
 ...vicePeerAccessorPRMultipleMembersDUnitTest.java |    3 +-
 .../FunctionServicePeerAccessorRRDUnitTest.java    |    3 +-
 .../FunctionServiceSingleOnMemberDUnitTest.java    |    3 +-
 .../execute/FunctionServiceStatsDUnitTest.java     |    3 +-
 .../cache/execute/LocalDataSetDUnitTest.java       |    3 +-
 .../execute/LocalDataSetIndexingDUnitTest.java     |    3 +-
 .../execute/LocalFunctionExecutionDUnitTest.java   |    3 +-
 .../execute/MemberFunctionExecutionDUnitTest.java  |    7 +-
 .../MultiRegionFunctionExecutionDUnitTest.java     |    3 +-
 .../OnGroupsFunctionExecutionDUnitTest.java        |    3 +-
 ...lientServerFunctionExecutionNoAckDUnitTest.java |    3 +-
 ...ientServerRegionFunctionExecutionDUnitTest.java |    3 +-
 ...erRegionFunctionExecutionFailoverDUnitTest.java |    3 +-
 ...egionFunctionExecutionNoSingleHopDUnitTest.java |    3 +-
 ...ctionExecutionSelectorNoSingleHopDUnitTest.java |    3 +-
 ...rRegionFunctionExecutionSingleHopDUnitTest.java |    3 +-
 .../execute/PRCustomPartitioningDUnitTest.java     |  537 ---
 .../execute/PRFunctionExecutionDUnitTest.java      | 4184 +++++++----------
 ...FunctionExecutionWithResultSenderDUnitTest.java |  907 ++--
 .../cache/execute/PRPerformanceTestDUnitTest.java  |  417 --
 .../cache/execute/PRSetOperationJTADUnitTest.java  |  180 +
 .../cache/execute/PRTransaction2DUnitTest.java     |  146 -
 .../PRTransactionWithSizeOperationDUnitTest.java   |  196 +
 .../geode/internal/cache/execute/TestFunction.java |  163 -
 .../geode/internal/cache/execute/TimeKeeper.java   |   41 +
 .../ExtensionClusterConfigurationDUnitTest.java    |   18 +-
 .../extension/mock/MockExtensionCommands.java      |   16 +-
 .../internal/cache/functions/TestFunction.java     |   24 +-
 .../internal/cache/ha/HARegionQueueDUnitTest.java  |   88 +-
 .../geode/internal/cache/ha/HARegionQueueTest.java |  128 +
 .../internal/cache/ha/HASlowReceiverDUnitTest.java |   57 +-
 .../geode/internal/cache/ha/PutAllDUnitTest.java   |    5 +-
 .../cache/locks/TXLockServiceDUnitTest.java        |   34 +-
 .../DestroyEntryDuringCloseIntegrationTest.java    |   97 +
 .../internal/cache/map/RegionMapDestroyTest.java   |  658 +++
 .../BucketRebalanceStatRegressionTest.java         |  178 +-
 .../cache/partitioned/Bug39356DUnitTest.java       |    6 +-
 .../DeposePrimaryBucketMessageTest.java            |    4 +-
 .../cache/partitioned/FetchEntryMessageTest.java   |    4 +-
 .../FetchPartitionDetailsMessageTest.java          |    4 +-
 .../cache/partitioned/MoveBucketMessageTest.java   |    4 +-
 .../cache/partitioned/PartitionMessageTest.java    |    9 +-
 .../cache/partitioned/PersistPRKRFDUnitTest.java   |  255 -
 .../partitioned/PersistPRKRFIntegrationTest.java   |  176 +
 ...sistentColocatedPartitionedRegionDUnitTest.java |  146 +-
 .../PersistentPartitionedRegionDUnitTest.java      |   35 +-
 .../PersistentPartitionedRegionTestBase.java       |    4 +-
 .../cache/partitioned/RemoveBucketMessageTest.java |    4 +-
 .../PersistentRVVRecoveryDUnitTest.java            |    6 +-
 .../PersistentRecoveryOrderDUnitTest.java          |   41 +-
 .../entry/RegionEntryFactoryBuilderJUnitTest.java  |    6 +-
 .../rollingupgrade/RollingUpgrade2DUnitTest.java   |  392 +-
 .../rollingupgrade/RollingUpgradeDUnitTest.java    |  177 +-
 .../cache/snapshot/ClientExporterTest.java         |   52 +
 .../snapshot/GFSnapshotJUnitPerformanceTest.java   |   15 +-
 ...dCompatibilityHigherVersionClientDUnitTest.java |    5 +-
 .../ClientHealthMonitorIntegrationTest.java        |  221 +
 .../tier/sockets/ClientHealthMonitorJUnitTest.java |  254 +-
 ...ClientHealthMonitorSelectorIntegrationTest.java |   33 +
 .../ClientHealthMonitorSelectorJUnitTest.java      |   33 -
 .../ClientProxyWithDeltaDistributedTest.java       |  323 ++
 .../tier/sockets/ClientProxyWithDeltaTest.java     |  321 --
 .../tier/sockets/ClientServerMiscDUnitTest.java    |  165 +-
 .../ClientWithInterestFailoverDistributedTest.java |  281 ++
 .../sockets/ClientWithInterestFailoverTest.java    |  280 --
 .../cache/tier/sockets/ConflationDUnitTest.java    |   60 -
 .../tier/sockets/EventIDVerificationDUnitTest.java |    4 +
 .../ForceInvalidateOffHeapEvictionDUnitTest.java   |    2 +-
 .../sockets/HAInterestDistributedTestCase.java     |   26 -
 .../cache/tier/sockets/HAInterestTestCase.java     |    3 +-
 .../internal/cache/tier/sockets/HandShakeTest.java |   53 -
 .../internal/cache/tier/sockets/HandshakeTest.java |   53 +
 .../cache/tier/sockets/MessageIdExtractorTest.java |    9 +-
 .../cache/tier/sockets/MessageJUnitTest.java       |   58 +
 .../sockets/RegisterInterestIntegrationTest.java   |  343 ++
 .../sockets/RegisterInterestKeysDUnitTest.java     |    4 +-
 ...isterInterestServerMetaDataDistributedTest.java |  273 ++
 .../RegisterInterestServerMetaDataTest.java        |  272 --
 .../tier/sockets/ServerConnectionFactoryTest.java  |    4 +-
 .../sockets/ServerConnectionIntegrationTest.java   |  194 +
 .../cache/tier/sockets/ServerConnectionTest.java   |   42 +-
 .../sockets/command/ExecuteFunction65Test.java     |    5 +-
 .../sockets/command/ExecuteFunction66Test.java     |    4 +-
 .../tier/sockets/command/ExecuteFunctionTest.java  |    7 +-
 .../sockets/command/TXFailoverCommandTest.java     |   72 +-
 .../cache/tx/AbstractPeerTXRegionStubTest.java     |   13 +-
 .../internal/cache/tx/ClientTXStateStubTest.java   |   82 +
 .../cache/tx/RemoteFetchEntryMessageTest.java      |   46 +
 .../cache/tx/RemoteOperationMessageTest.java       |  300 ++
 .../cache/tx/RemoteOperationResponseTest.java      |  162 +
 .../internal/cache/tx/RemotePutAllMessageTest.java |   41 +
 .../cache/tx/RemotePutReplyMessageJUnitTest.java   |   53 +
 .../cache/tx/RemoteRemoveAllMessageTest.java       |   41 +
 .../cache/tx/SetOperationJTADistributedTest.java   |  290 ++
 .../RegionVersionVectorIntegrationTest.java        |  172 +
 .../versions/RegionVersionVectorJUnitTest.java     |  618 ---
 .../cache/versions/RegionVersionVectorTest.java    |  716 +++
 .../cache/wan/AsyncEventQueueTestBase.java         |  102 +-
 ...ewayReceiverXmlParsingValidationsJUnitTest.java |    5 +-
 .../cache/wan/MyGatewaySenderEventListener.java    |    1 -
 .../asyncqueue/AsyncEventListenerDUnitTest.java    |    4 +-
 ...rallelGatewaySenderEventProcessorJUnitTest.java |  141 +
 .../wan/parallel/ParallelGatewaySenderHelper.java  |   79 +
 .../ParallelQueueRemovalMessageJUnitTest.java      |   41 +-
 .../cache/xmlcache/CacheCreationJUnitTest.java     |   98 +
 .../cache/xmlcache/CacheXmlParserJUnitTest.java    |    7 +-
 .../CompressionCacheListenerOffHeapDUnitTest.java  |    2 +-
 .../CompressionRegionOperationsDUnitTest.java      |   15 +-
 ...ompressionRegionOperationsOffHeapDUnitTest.java |    2 +-
 ...ainWithChildrenRollingFileHandlerDUnitTest.java |    6 +-
 .../internal/jta/ClientServerJTADUnitTest.java     |  357 +-
 .../internal/jta/SetOperationJTAJUnitTest.java     |  154 +
 .../geode/internal/lang/ObjectUtilsJUnitTest.java  |   88 -
 .../geode/internal/lang/StringUtilsJUnitTest.java  |   13 +-
 .../lang/SystemPropertyHelperJUnitTest.java        |   85 -
 .../internal/lang/SystemPropertyHelperTest.java    |  110 +
 .../internal/net/SSLSocketIntegrationTest.java     |   18 +
 .../geode/internal/offheap/DataTypeJUnitTest.java  |  106 +-
 ...nectingOutOfOffHeapMemoryListenerJUnitTest.java |    4 +-
 .../internal/offheap/MemoryAllocatorJUnitTest.java |    2 +-
 .../internal/offheap/OffHeapHelperJUnitTest.java   |   26 +-
 .../geode/internal/offheap/OffHeapRegionBase.java  |    2 +-
 .../offheap/OutOfOffHeapMemoryDUnitTest.java       |   14 +-
 .../BlockingProcessStreamReaderWindowsTest.java    |   20 +-
 .../ControlFileWatchdogIntegrationTest.java        |   15 +-
 .../FileProcessControllerIntegrationTest.java      |   23 +-
 .../internal/process/PidFileIntegrationTest.java   |   10 -
 .../security/IntegratedSecurityServiceTest.java    |    4 +-
 .../statistics/DiskSpaceLimitIntegrationTest.java  |   16 +-
 ...chiveWithMissingResourceTypeRegressionTest.java |   22 +-
 .../geode/internal/tcp/ConnectionJUnitTest.java    |    4 +-
 .../geode/internal/tcp/ConnectionTableTest.java    |    4 +-
 .../util/AbortableTaskServiceJUnitTest.java        |   18 +-
 .../internal/util/ArgumentRedactorJUnitTest.java   |  235 +-
 .../geode/internal/util/PluckStacksDUnitTest.java  |  131 +
 .../geode/internal/util/PluckStacksUnitTest.java   |   65 +
 .../apache/geode/management/JMXMBeanDUnitTest.java |    6 +-
 .../geode/management/ManagementTestRule.java       |    4 +-
 .../management/OffHeapManagementDUnitTest.java     |    4 +-
 .../geode/management/QueryDataDUnitTest.java       |   13 +-
 .../QueryDataFunctionIntegrationTest.java          |    5 +-
 .../management/RegionManagementDUnitTest.java      |   10 +-
 .../bean/stats/GatewayMBeanBridgeJUnitTest.java    |    2 +-
 .../bean/stats/MemberLevelStatsJUnitTest.java      |    5 +-
 .../bean/stats/RegionStatsJUnitTest.java           |    1 +
 ...ServerBridgeClientMembershipRegressionTest.java |   24 +-
 .../beans/DistributedSystemBridgeJUnitTest.java    |   39 +-
 .../internal/beans/FileUploaderTest.java           |   84 +
 .../internal/beans/RegionMBeanAttributesTest.java  |   12 +-
 .../cli/AbstractCliAroundInterceptorJUnitTest.java |   59 -
 .../management/internal/cli/CliUtilDUnitTest.java  |   62 +-
 .../geode/management/internal/cli/CliUtilTest.java |   35 +-
 .../internal/cli/CommandManagerJUnitTest.java      |    1 -
 .../internal/cli/GfshParserAutoCompletionTest.java |   18 +-
 .../internal/cli/GfshParserConverterTest.java      |   23 +
 .../internal/cli/GfshParserJUnitTest.java          |   17 +
 .../internal/cli/GfshParserParsingTest.java        |   10 -
 .../management/internal/cli/NetstatDUnitTest.java  |   60 +-
 .../AlterAsyncEventQueueCommandDUnitTest.java      |   10 +-
 .../cli/commands/AlterCompressorDUnitTest.java     |  250 +
 .../cli/commands/AlterDiskStoreDUnitTest.java      |   10 +-
 .../cli/commands/AlterRegionCommandDUnitTest.java  |  738 +--
 .../AlterRegionCommandIntegrationTest.java         |    9 +-
 .../cli/commands/AlterRegionCommandTest.java       |   74 +
 .../commands/ChangeLogLevelCommandDUnitTest.java   |   12 +-
 .../cli/commands/ConcurrentDeployDUnitTest.java    |    6 +-
 .../cli/commands/ConnectCommandDUnitTest.java      |   49 +
 .../internal/cli/commands/ConnectCommandTest.java  |   39 +-
 .../CreateAsyncEventQueueCommandDUnitTest.java     |   17 +-
 .../commands/CreateAsyncEventQueueCommandTest.java |   11 +-
 .../CreateDefinedIndexesCommandDUnitTest.java      |   54 +-
 .../commands/CreateGatewayReceiverCommandTest.java |   62 +
 .../commands/CreateGatewaySenderCommandTest.java   |   61 +
 .../CreateJndiBindingCommandDUnitTest.java         |  106 +
 .../cli/commands/CreateJndiBindingCommandTest.java |  354 ++
 .../cli/commands/CreateRegionCommandDUnitTest.java |  381 +-
 .../CreateRegionCommandIntegrationTest.java        |   32 +-
 .../cli/commands/CreateRegionCommandTest.java      |  196 +-
 .../commands/CreateRegionSecurityDUnitTest.java    |   86 +
 ...DeployCommandFunctionRegistrationDUnitTest.java |   15 +-
 .../commands/DeployCommandRedeployDUnitTest.java   |    8 +-
 .../internal/cli/commands/DeployCommandTest.java   |   63 +
 .../cli/commands/DeployWithGroupsDUnitTest.java    |   71 +-
 .../commands/DescribeMembersCommandDUnitTest.java  |    4 +-
 .../cli/commands/DescribeRegionDUnitTest.java      |  143 +-
 .../DestroyAsyncEventQueueCommandDUnitTest.java    |  216 +
 .../DestroyAsyncEventQueueCommandTest.java         |  198 +
 .../commands/DestroyGatewaySenderCommandTest.java  |   58 +-
 .../commands/DestroyIndexCommandsDUnitTest.java    |   36 +-
 .../DestroyJndiBindingCommandDUnitTest.java        |  107 +
 .../commands/DestroyJndiBindingCommandTest.java    |  244 +
 .../commands/DestroyRegionCommandDUnitTest.java    |   40 +-
 .../cli/commands/DestroyRegionCommandTest.java     |    8 +-
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |   46 +-
 .../cli/commands/DiskStoreCommandsJUnitTest.java   |    4 +-
 .../ExecuteFunctionCommandSecurityTest.java        |   16 +-
 .../internal/cli/commands/ExportLogsDUnitTest.java |    8 +-
 .../commands/ExportLogsOnServerManagerDUnit.java   |   14 +-
 .../cli/commands/ExportLogsStatsDUnitTest.java     |   38 +-
 .../ExportLogsWithMemberGroupDUnitTest.java        |    8 +-
 .../commands/ExportStackTraceCommandDUnitTest.java |  102 +
 .../cli/commands/ExportStackTraceCommandTest.java  |   72 +
 .../cli/commands/FunctionCommandsDUnitTest.java    |  132 +-
 .../internal/cli/commands/GcCommandDUnitTest.java  |   17 +-
 .../IndexCommandsShareConfigurationDUnitTest.java  |   18 +-
 .../ListAsyncEventQueuesCommandDUnitTest.java      |    8 +-
 .../cli/commands/ListIndexCommandDUnitTest.java    |    6 +-
 .../cli/commands/ListIndexCommandJUnitTest.java    |    2 +-
 .../commands/ListJndiBindingCommandDUnitTest.java  |   69 +
 .../cli/commands/ListMembersCommandDUnitTest.java  |   18 +-
 .../cli/commands/ListMembersCommandTest.java       |  101 +
 .../internal/cli/commands/ListRegionDUnitTest.java |    8 +-
 .../cli/commands/LocateEntryDUnitTest.java         |   16 +-
 .../cli/commands/PutCommandIntegrationTest.java    |   44 +-
 .../internal/cli/commands/QueryCommandTest.java    |   23 +-
 .../cli/commands/RemoveCommandDUnitTest.java       |   75 +-
 .../cli/commands/RemoveCommandJsonDUnitTest.java   |   16 +-
 .../cli/commands/ShowDeadlockDUnitTest.java        |   18 +-
 .../cli/commands/ShowLogCommandDUnitTest.java      |   18 +-
 .../cli/commands/ShowMetricsDUnitTest.java         |   12 +-
 .../cli/commands/ShowMetricsJUnitTest.java         |    6 +-
 .../commands/ShowMissingDiskStoresDUnitTest.java   |    4 +-
 .../cli/commands/ShowStackTraceDUnitTest.java      |  269 --
 .../cli/commands/ShutdownCommandDUnitTest.java     |   74 +-
 .../cli/commands/StartMemberUtilsTest.java         |   50 +
 .../internal/cli/commands/TestCompressor1.java     |   39 +
 .../cli/commands/TestCustomIdleExpiry.java         |   30 +
 .../internal/cli/commands/TestCustomTTLExpiry.java |   30 +
 .../converters/BaseStringConverterJUnitTest.java   |    7 +-
 .../cli/converters/ClassNameConverterTest.java     |   87 +
 .../converters/ConfigPropertyConverterTest.java    |   75 +
 .../internal/cli/domain/ClassNameTest.java         |  115 +
 .../internal/cli/domain/MyCacheWriter.java         |   33 +
 .../functions/CreateJndiBindingFunctionTest.java   |   87 +
 .../DestroyAsyncEventQueueFunctionTest.java        |  107 +
 .../functions/DestroyJndiBindingFunctionTest.java  |   96 +
 .../cli/functions/ExpirationAttrsTest.java         |   67 +-
 .../cli/functions/ListJndiBindingFunctionTest.java |   83 +
 .../cli/functions/RegionFunctionArgsTest.java      |    3 +-
 .../ShowMissingDiskStoresFunctionJUnitTest.java    |    1 -
 .../cli/json/TypedJsonPdxIntegrationTest.java      |    7 +-
 .../cli/remote/OnlineCommandProcessorTest.java     |    8 +-
 .../internal/cli/result/FileResultTest.java        |   56 +
 .../cli/shell/GfshExecutionStrategyTest.java       |   14 +-
 .../internal/cli/shell/GfshInitFileJUnitTest.java  |    7 +-
 .../internal/cli/shell/GfshJunitTest.java          |   55 +-
 .../internal/cli/util/MergeLogsDUnitTest.java      |   34 +-
 .../internal/configuration/ClusterConfig.java      |    8 +-
 .../ClusterConfigDistributionDUnitTest.java        |    6 +-
 .../ClusterConfigImportDUnitTest.java              |    4 +-
 .../ClusterConfigLocatorRestartDUnitTest.java      |  106 +
 .../ClusterConfigStartMemberDUnitTest.java         |    5 +-
 .../configuration/ClusterConfigTestBase.java       |    4 +-
 .../ClusterConfigWithSecurityDUnitTest.java        |   16 +-
 .../ImportClusterConfigDistributedTest.java        |    8 +-
 .../ImportOldClusterConfigDUnitTest.java           |    6 +-
 .../GetClusterConfigurationFunctionTest.java       |   48 -
 .../CacheServerMBeanAuthenticationJUnitTest.java   |    2 +-
 .../CacheServerMBeanAuthorizationJUnitTest.java    |    2 +-
 ...acheServerMBeanWithShiroIniIntegrationTest.java |    2 +-
 .../internal/security/CliCommandsSecurityTest.java |    2 +-
 .../security/DataCommandsSecurityTest.java         |    2 +-
 .../security/DeployCommandsSecurityTest.java       |    2 +-
 .../security/DiskStoreMXBeanSecurityJUnitTest.java |    2 +-
 .../DistributedSystemMXBeanSecurityTest.java       |    2 +-
 .../security/FileUploaderMBeanSecurityTest.java    |   67 +
 .../security/GatewayReceiverMBeanSecurityTest.java |    2 +-
 .../security/GatewaySenderMBeanSecurityTest.java   |    2 +-
 .../internal/security/JmxPasswordFileTest.java     |   55 +
 .../LockServiceMBeanAuthorizationJUnitTest.java    |    2 +-
 .../ManagerMBeanAuthorizationJUnitTest.java        |    2 +-
 .../security/MemberMBeanSecurityJUnitTest.java     |    2 +-
 .../internal/security/MultiClientDUnitTest.java    |  132 +
 .../internal/security/MultiGfshDUnitTest.java      |  151 +
 .../security/MultiUserAuthenticationDUnitTest.java |  116 +
 .../internal/security/MultiUserDUnitTest.java      |  153 -
 .../internal/security/ResourcePermissionTest.java  |  242 +-
 .../management/internal/security/TestCommand.java  |    6 +
 .../ShellCommandsControllerProcessCommandTest.java |    3 +-
 .../ConnectionWithOneMinuteTimeoutFactory.java     |   25 +
 .../memcached/DomainObjectsAsValuesJUnitTest.java  |    5 +-
 .../memcached/GemcachedDevelopmentJUnitTest.java   |    6 +-
 .../geode/memcached/IntegrationJUnitTest.java      |    8 +-
 .../geode/pdx/AutoSerializableJUnitTest.java       |   58 +-
 .../pdx/ClientsWithVersioningRetryDUnitTest.java   |    7 +-
 .../geode/pdx/DistributedSystemIdDUnitTest.java    |    6 +-
 .../geode/pdx/JSONFormatterBasicJUnitTest.java     |  105 +
 .../apache/geode/pdx/JSONFormatterJUnitTest.java   |  297 +-
 .../geode/pdx/JSONPdxClientServerDUnitTest.java    |  126 +-
 .../apache/geode/pdx/PdxClientServerDUnitTest.java |    6 +-
 .../geode/pdx/PdxInstanceFactoryJUnitTest.java     |  173 +-
 .../org/apache/geode/pdx/PdxInstanceJUnitTest.java |   40 +-
 .../pdx/PdxInstanceLoaderIntegrationTest.java      |   77 +
 .../apache/geode/pdx/PdxSerializableDUnitTest.java |    4 +-
 .../apache/geode/pdx/PdxSerializableJUnitTest.java |  135 +-
 .../org/apache/geode/pdx/PdxStringJUnitTest.java   |   14 +-
 .../geode/pdx/internal/MultipleCacheJUnitTest.java |  123 +
 .../apache/geode/security/ClientAuthDUnitTest.java |   55 +-
 .../security/ClientAuthorizationDUnitTest.java     |  756 ---
 ...tAuthorizationLegacyConfigurationDUnitTest.java |  216 +
 ...aAuthorizationUsingLegacySecurityDUnitTest.java |  274 ++
 ...onUsingLegacySecurityWithFailoverDUnitTest.java |  450 ++
 .../ClientDestroyInvalidateAuthDUnitTest.java      |   44 +-
 .../ClientExecuteFunctionAuthDUnitTest.java        |  104 +-
 .../ClientRegisterInterestAuthDUnitTest.java       |   39 +-
 .../security/ClusterConfigNotEnabledDUnitTest.java |    8 +-
 .../ClusterConfigWithoutSecurityDUnitTest.java     |    4 +-
 .../ClusterConfigurationSecurityDUnitTest.java     |    4 +-
 .../DeltaClientAuthorizationDUnitTest.java         |   11 +-
 .../DeltaClientPostAuthorizationDUnitTest.java     |   10 +-
 .../IntegratedSecurityPeerAuthDUnitTest.java       |  123 +
 .../PDXGfshPostProcessorOnRemoteServerTest.java    |   10 +-
 .../geode/security/PeerAuthenticatorDUnitTest.java |    6 +-
 .../PeerSecurityWithEmbeddedLocatorDUnitTest.java  |    8 +-
 .../security/SecurityClusterConfigDUnitTest.java   |    4 +-
 .../apache/geode/security/SecurityTestUtil.java    |    8 +
 .../SecurityWithoutClusterConfigDUnitTest.java     |    4 +-
 .../security/StartServerAuthorizationTest.java     |    4 +-
 .../generator/LdapUserCredentialGenerator.java     |   20 +-
 .../security/query/IndexSecurityDUnitTest.java     |    7 +-
 .../query/PartitionedIndexSecurityDUnitTest.java   |    3 +-
 ...tionedQuerySecurityAllowedQueriesDUnitTest.java |    2 +
 .../PdxQuerySecurityAllowedQueriesDUnitTest.java   |   10 +-
 ...PdxQuerySecurityRestrictedQueriesDUnitTest.java |   11 +-
 .../QuerySecurityAllowedQueriesDUnitTest.java      |   32 +
 ...rityUnauthorizedUserBindParameterDUnitTest.java |    3 -
 .../geode/security/query/data/QueryTestObject.java |    3 +
 .../security/templates/SimpleAccessController.java |   89 +
 .../security/templates/SimpleAuthenticator.java    |   58 +
 .../org/apache/geode/test/dunit/DebuggerUtils.java |   52 -
 .../apache/geode/test/dunit/IgnoredException.java  |   11 +-
 .../java/org/apache/geode/test/dunit/LocalVM.java  |   90 +
 .../test/java/org/apache/geode/test/dunit/VM.java  |  114 +-
 .../dunit/cache/internal/JUnit4CacheTestCase.java  |    2 +-
 .../dunit/internal/JUnit4DistributedTestCase.java  |    3 +
 .../apache/geode/test/dunit/rules/CacheRule.java   |   50 +-
 .../apache/geode/test/dunit/rules/ClientVM.java    |   32 +
 .../geode/test/dunit/rules/ClusterStartupRule.java |  323 ++
 .../test/dunit/rules/LocatorServerStartupRule.java |  368 --
 .../apache/geode/test/dunit/rules/MemberVM.java    |   66 +-
 ...tartupRuleCanSpecifyOlderVersionsDUnitTest.java |  102 +
 .../geode/test/dunit/standalone/DUnitLauncher.java |   24 +-
 .../test/dunit/standalone/ProcessManager.java      |    3 -
 .../test/dunit/standalone/VersionManager.java      |    3 +
 .../java/org/apache/geode/test/fake/Fakes.java     |   16 +-
 .../test/junit/assertions/CommandResultAssert.java |   27 +-
 .../geode/test/junit/rules/ClientCacheRule.java    |   70 +
 .../geode/test/junit/rules/GfshCommandRule.java    |   11 +-
 .../geode/test/junit/rules/LocatorStarterRule.java |    1 -
 .../junit/rules/MBeanServerConnectionRule.java     |   40 +-
 .../geode/test/junit/rules/MemberStarterRule.java  |   13 +-
 .../geode/test/junit/rules/ServerStarterRule.java  |   10 +
 .../apache/geode/test/junit/rules/VMProvider.java  |   55 +
 .../geode/test/process/MainLauncherJUnitTest.java  |   32 +-
 .../java/parReg/query/unittest/NewPortfolio.java   |    2 +-
 .../test/java/parReg/query/unittest/Position.java  |    4 +-
 ...unctionAdapterWithDifferentSerialVersionUID.ser |  Bin 0 -> 151 bytes
 .../apache/geode/codeAnalysis/excludedClasses.txt  |   18 +-
 .../codeAnalysis/sanctionedDataSerializables.txt   |  239 +-
 ...serJUnitTest.testSimpleClientCacheXml.cache.xml |    2 +-
 .../util/PluckStacksJstackGeneratedDump.txt        | 2520 ++++++++++
 .../internal/deployment/ImplementsFunction.java    |   17 +
 geode-core/src/test/resources/ssl/trusted.keystore |  Bin 2241 -> 536 bytes
 .../cache/query/internal/cq/ClientCQImpl.java      |    6 +-
 .../cache/query/internal/cq/CqServiceImpl.java     |    5 +-
 .../geode/cache/query/cq/CQDistributedTest.java    |  192 +
 .../apache/geode/cache/query/cq/CQJUnitTest.java   |    3 +-
 .../cache/query/cq/dunit/CqDataDUnitTest.java      |    3 +-
 .../cq/dunit/CqDataOptimizedExecuteDUnitTest.java  |    3 +-
 .../query/cq/dunit/CqDataUsingPoolDUnitTest.java   |   28 +-
 .../CqDataUsingPoolOptimizedExecuteDUnitTest.java  |    3 +-
 .../cache/query/cq/dunit/CqPerfDUnitTest.java      |   89 +-
 .../query/cq/dunit/CqPerfUsingPoolDUnitTest.java   |  103 +-
 .../cache/query/cq/dunit/CqQueryDUnitTest.java     |    3 +-
 .../cq/dunit/CqQueryOptimizedExecuteDUnitTest.java |    3 +-
 .../query/cq/dunit/CqQueryUsingPoolDUnitTest.java  |    3 +-
 .../CqQueryUsingPoolOptimizedExecuteDUnitTest.java |    3 +-
 .../cq/dunit/CqResultSetUsingPoolDUnitTest.java    |    3 +-
 ...esultSetUsingPoolOptimizedExecuteDUnitTest.java |    3 +-
 .../cache/query/cq/dunit/CqStateDUnitTest.java     |    3 +-
 .../cache/query/cq/dunit/CqStatsDUnitTest.java     |   11 +-
 .../cq/dunit/CqStatsOptimizedExecuteDUnitTest.java |    3 +-
 .../query/cq/dunit/CqStatsUsingPoolDUnitTest.java  |   11 +-
 .../CqStatsUsingPoolOptimizedExecuteDUnitTest.java |    3 +-
 .../dunit/PartitionedRegionCqQueryDUnitTest.java   |    3 +-
 ...onedRegionCqQueryOptimizedExecuteDUnitTest.java |    3 +-
 .../query/cq/dunit/PrCqUsingPoolDUnitTest.java     |    3 +-
 .../PrCqUsingPoolOptimizedExecuteDUnitTest.java    |    3 +-
 .../query/dunit/QueryIndexUpdateRIDUnitTest.java   |   11 +-
 .../cache/query/dunit/QueryMonitorDUnitTest.java   |   29 +-
 .../geode/internal/cache/PutAllCSDUnitTest.java    |    8 +-
 .../tier/sockets/ClientServerMiscBCDUnitTest.java  |   14 +-
 .../tier/sockets/ClientToServerDeltaDUnitTest.java |   32 +-
 .../cli/commands/ClientCommandsTestUtils.java      |    5 +-
 .../commands/DescribeClientCommandDUnitTest.java   |   23 +-
 .../cli/commands/ListClientCommandDUnitTest.java   |   12 +-
 .../security/ClientAuthzObjectModDUnitTest.java    |    3 -
 .../geode/security/ClientCQAuthDUnitTest.java      |    4 +-
 .../geode/security/FilterPostAuthorization.java    |  218 +
 .../geode/security/FilterPreAuthorization.java     |  144 +
 .../org/apache/geode/security/ObjectWithAuthz.java |   67 +
 .../persisting_configurations.html.md.erb          |   14 +-
 .../running/running_the_locator.html.md.erb        |    2 +-
 geode-docs/developing/book_intro.html.md.erb       |    2 +-
 ...ing_durable_client_server_messaging.html.md.erb |    2 +-
 .../list_of_event_handlers_and_events.html.md.erb  |    7 +-
 .../eviction/chapter_overview.html.md.erb          |    6 +-
 .../eviction/configuring_data_eviction.html.md.erb |   14 +-
 .../eviction/how_eviction_works.html.md.erb        |   34 +-
 .../expiration/chapter_overview.html.md.erb        |    4 +-
 .../configuring_data_expiration.html.md.erb        |   41 +-
 .../expiration/how_expiration_works.html.md.erb    |   47 +-
 .../general_region_data_management.html.md.erb     |   40 +
 .../chapter_overview.html.md.erb                   |   40 -
 .../colocating_partitioned_region_data.html.md.erb |   41 +-
 ...om_partitioning_and_data_colocation.html.md.erb |   36 +-
 .../fixed_custom_partitioning.html.md.erb          |  204 +
 ...om_partitioning_and_data_colocation.html.md.erb |   14 +-
 .../standard_custom_partitioning.html.md.erb       |  178 +
 .../using_custom_partition_resolvers.html.md.erb   |  358 +-
 .../query_additional/literals.html.md.erb          |   24 +-
 .../query_additional/operators.html.md.erb         |   48 +-
 .../supported_keywords.html.md.erb                 |    8 +-
 .../create_multiple_indexes.html.md.erb            |    3 -
 .../query_index/creating_an_index.html.md.erb      |    5 +-
 .../query_index/creating_hash_indexes.html.md.erb  |    5 +
 .../developing/query_index/query_index.html.md.erb |    2 +-
 .../query_select/the_select_statement.html.md.erb  |    4 +-
 .../query_select/the_where_clause.html.md.erb      |   13 +-
 .../querying_basics/chapter_overview.html.md.erb   |    5 +-
 .../querying_basics/query_basics.html.md.erb       |   13 +-
 .../query_grammar_and_reserved_words.html.md.erb   |   58 +-
 .../querying_basics/reserved_words.html.md.erb     |    2 +-
 .../15_minute_quickstart_gfsh.html.md.erb          |   24 +-
 .../system_requirements/host_machine.html.md.erb   |    4 +-
 geode-docs/images/ClientServerAdvancedTopics-6.gif |  Bin 12056 -> 0 bytes
 geode-docs/images/ClientServerAdvancedTopics-6.png |  Bin 0 -> 22878 bytes
 geode-docs/images/expiration.png                   |  Bin 0 -> 79419 bytes
 geode-docs/images_svg/custom_partitioned.svg       |    3 -
 geode-docs/images_svg/expiration.svg               |    3 -
 .../managing/heap_use/heap_management.html.md.erb  |    2 +-
 .../management/jmx_manager_operations.html.md.erb  |    2 +-
 .../management/list_of_mbeans_full.html.md.erb     |   16 +
 .../security/authentication_overview.html.md.erb   |    4 -
 .../encrypting_with_diffie_hellman.html.md.erb     |   66 -
 geode-docs/reference/statistics_list.html.md.erb   |   44 +-
 geode-docs/reference/topics/cache_xml.html.md.erb  |  355 +-
 .../topics/chapter_overview_cache_xml.html.md.erb  |    2 +-
 .../reference/topics/client-cache.html.md.erb      |   15 +-
 .../topics/gemfire_properties.html.md.erb          |   18 +-
 .../gfsh/chapter_overview.html.md.erb              |    4 +
 .../gfsh/command-pages/alter.html.md.erb           |   89 +-
 .../gfsh/command-pages/create.html.md.erb          |   48 +-
 .../gfsh/command-pages/describe.html.md.erb        |   32 +-
 .../gfsh/command-pages/destroy.html.md.erb         |   49 +-
 .../gfsh/command-pages/list.html.md.erb            |   17 +-
 .../gfsh/command-pages/put.html.md.erb             |    4 +-
 .../gfsh/command-pages/start.html.md.erb           |   57 +-
 .../gfsh/configuring_gfsh.html.md.erb              |   13 +
 .../tools_modules/gfsh/json_in_gfsh.html.md.erb    |   80 +
 .../tools_modules/gfsh/tour_of_gfsh.html.md.erb    |   15 +-
 .../tc_additional_info.html.md.erb                 |    2 +-
 .../tc_setting_up_the_module.html.md.erb           |    2 +-
 .../weblogic_setting_up_the_module.html.md.erb     |    2 +-
 .../tools_modules/lucene_integration.html.md.erb   |  192 +-
 .../how_the_pool_manages_connections.html.md.erb   |   21 +-
 geode-experimental-driver/build.gradle             |   27 +
 .../apache/geode/experimental/driver/Driver.java   |   74 +
 .../geode/experimental/driver/DriverFactory.java   |   60 +
 .../apache/geode/experimental/driver/Function.java |   59 +
 .../geode/experimental/driver/FunctionService.java |   31 +
 .../geode/experimental/driver/JSONWrapper.java     |   83 +
 .../geode/experimental/driver/ProtobufChannel.java |  159 +
 .../geode/experimental/driver/ProtobufDriver.java  |  114 +
 .../experimental/driver/ProtobufFunction.java      |   83 +
 .../driver/ProtobufFunctionService.java            |   28 +
 .../experimental/driver/ProtobufQueryService.java  |  104 +
 .../geode/experimental/driver/ProtobufRegion.java  |  187 +
 .../apache/geode/experimental/driver/Query.java    |   35 +
 .../geode/experimental/driver/QueryService.java    |   30 +
 .../apache/geode/experimental/driver/Region.java   |  114 +
 .../geode/experimental/driver/ValueEncoder.java    |  116 +
 .../experimental/driver/DriverConnectionTest.java  |   98 +
 .../driver/FunctionServiceIntegrationTest.java     |   60 +
 .../experimental/driver/IntegrationTestBase.java   |  106 +
 .../driver/QueryServiceIntegrationTest.java        |   44 +
 .../experimental/driver/RegionIntegrationTest.java |  191 +
 .../experimental/driver/ValueEncoderTest.java      |   45 +
 geode-json/src/main/java/org/json/JSONString.java  |    2 +-
 .../org/apache/geode/test/compiler/JarBuilder.java |    9 -
 .../java/org/apache/geode/test/junit/Repeat.java   |    2 +-
 .../java/org/apache/geode/test/junit/Retry.java    |    2 +-
 .../test/junit/categories/FunctionServiceTest.java |   21 +
 .../geode/test/junit/categories/LuceneTest.java    |   22 +
 .../geode/test/junit/categories/OQLIndexTest.java  |   21 +
 .../geode/test/junit/categories/OQLQueryTest.java  |   21 +
 .../test/junit/rules/ExecutorServiceRule.java      |  355 ++
 .../geode/test/junit/rules/gfsh/GfshRule.java      |    4 +
 .../geode/test/junit/rules/gfsh/GfshScript.java    |    2 +-
 .../serializable/FieldsOfTemporaryFolder.java      |    6 +-
 .../junit/rules/serializable/FieldsOfTestName.java |    2 +-
 .../junit/rules/serializable/FieldsOfTimeout.java  |    6 +-
 .../geode/test/junit/runners/SuiteBlockRunner.java |    3 +-
 .../geode/test/junit/runners/SuiteRunner.java      |   26 +
 .../rules/ExecutorServiceRuleIntegrationTest.java  |  131 +
 .../test/junit/rules/ExecutorServiceRuleTest.java  |  380 ++
 .../org/apache/geode/cache/lucene/LuceneIndex.java |   10 +-
 .../geode/cache/lucene/LuceneIndexFactory.java     |    2 +-
 .../org/apache/geode/cache/lucene/LuceneQuery.java |   12 +-
 .../geode/cache/lucene/LuceneQueryFactory.java     |    8 +-
 .../geode/cache/lucene/LuceneQueryProvider.java    |    2 +-
 .../geode/cache/lucene/LuceneResultStruct.java     |    6 +-
 .../apache/geode/cache/lucene/LuceneService.java   |   18 +-
 .../cache/lucene/PageableLuceneQueryResults.java   |    8 +-
 .../AbstractPartitionedRepositoryManager.java      |  156 -
 .../CreateLuceneCommandParametersValidator.java    |   53 +
 .../lucene/internal/DestroyLuceneIndexMessage.java |    5 +-
 .../geode/cache/lucene/internal/IndexListener.java |    8 +-
 .../lucene/internal/IndexRepositoryFactory.java    |   76 +-
 .../cache/lucene/internal/InternalLuceneIndex.java |   13 +-
 .../lucene/internal/LuceneBucketListener.java      |   10 +-
 .../cache/lucene/internal/LuceneEventListener.java |   17 +-
 .../internal/LuceneIndexForPartitionedRegion.java  |   21 +-
 .../cache/lucene/internal/LuceneIndexImpl.java     |   61 +-
 .../cache/lucene/internal/LuceneRawIndex.java      |    5 +-
 .../lucene/internal/LuceneRegionListener.java      |    2 +-
 .../cache/lucene/internal/LuceneServiceImpl.java   |  121 +-
 .../internal/PartitionedRepositoryManager.java     |  142 +-
 .../lucene/internal/RawIndexRepositoryFactory.java |    2 +-
 .../internal/RawLuceneRepositoryManager.java       |    4 +-
 .../cache/lucene/internal/StringQueryProvider.java |    1 -
 .../lucene/internal/cli/LuceneIndexCommands.java   |   27 +-
 .../cli/functions/LuceneCreateIndexFunction.java   |   47 +-
 .../cli/functions/LuceneDescribeIndexFunction.java |   10 +-
 .../cli/functions/LuceneDestroyIndexFunction.java  |    8 +-
 .../cli/functions/LuceneListIndexFunction.java     |   10 +-
 .../cli/functions/LuceneSearchIndexFunction.java   |   17 +-
 .../internal/directory/DumpDirectoryFiles.java     |    5 +-
 .../internal/distributed/LuceneQueryFunction.java  |   34 +-
 .../distributed/WaitUntilFlushedFunction.java      |   16 +-
 .../lucene/internal/filesystem/FileSystem.java     |    5 +-
 .../internal/management/LuceneServiceBridge.java   |    9 +-
 .../internal/repository/IndexRepository.java       |    4 +-
 .../internal/repository/IndexResultCollector.java  |    4 +-
 .../internal/results/LuceneGetPageFunction.java    |   16 +-
 .../lucene/management/LuceneServiceMXBean.java     |    6 +-
 .../sanctioned-geode-lucene-serializables.txt      |    9 +-
 .../geode/cache/lucene/EvictionDUnitTest.java      |    3 +-
 .../geode/cache/lucene/ExpirationDUnitTest.java    |    3 +-
 .../lucene/FlatFormatPdxSerializerJunitTest.java   |   19 +-
 .../lucene/FlatFormatSerializerJUnitTest.java      |    3 +-
 .../lucene/LuceneClientSecurityDUnitTest.java      |    8 +-
 .../lucene/LuceneCommandsSecurityDUnitTest.java    |    7 +-
 .../apache/geode/cache/lucene/LuceneDUnitTest.java |   11 +-
 .../cache/lucene/LuceneIndexCreationDUnitTest.java |    3 +-
 .../lucene/LuceneIndexCreationIntegrationTest.java |   27 +-
 .../LuceneIndexCreationOffHeapIntegrationTest.java |    3 +-
 .../LuceneIndexCreationOnFixedPRDUnitTest.java     |    3 +-
 ...eneIndexCreationPersistenceIntegrationTest.java |    3 +-
 .../cache/lucene/LuceneIndexDestroyDUnitTest.java  |    3 +-
 .../LuceneIndexMaintenanceIntegrationTest.java     |   22 +-
 .../geode/cache/lucene/LuceneIntegrationTest.java  |    1 +
 .../cache/lucene/LuceneQueriesAccessorBase.java    |   11 +-
 .../cache/lucene/LuceneQueriesClientDUnitTest.java |    3 +-
 .../geode/cache/lucene/LuceneQueriesDUnitTest.java |  112 +-
 .../cache/lucene/LuceneQueriesIntegrationTest.java |   70 +-
 .../LuceneQueriesPersistenceIntegrationTest.java   |    3 +-
 .../LuceneQueriesReindexClientDUnitTest.java       |   73 +
 .../lucene/LuceneQueriesReindexDUnitTest.java      |  129 +
 ...hRegionCreatedBeforeReindexClientDUnitTest.java |   67 +
 ...iesWithRegionCreatedBeforeReindexDUnitTest.java |   77 +
 ...hRegionCreatedBeforeReindexIntegrationTest.java |   62 +
 ...eriesWithReindexFlagEnabledClientDUnitTest.java |   45 +
 ...ceneQueriesWithReindexFlagEnabledDUnitTest.java |   52 +
 ...eriesWithReindexFlagEnabledIntegrationTest.java |   42 +
 .../LuceneSearchWithRollingUpgradeDUnit.java       |   52 +-
 .../cache/lucene/MixedObjectIndexDUnitTest.java    |    3 +-
 .../NestedObjectSeralizerIntegrationTest.java      |    3 +-
 .../geode/cache/lucene/PaginationDUnitTest.java    |    3 +-
 .../geode/cache/lucene/RebalanceDUnitTest.java     |    3 +-
 .../lucene/RebalanceWithRedundancyDUnitTest.java   |   58 +-
 .../internal/LuceneEventListenerJUnitTest.java     |   81 +-
 .../LuceneIndexCreationProfileJUnitTest.java       |    3 +-
 .../internal/LuceneIndexFactoryImplJUnitTest.java  |    3 +-
 .../LuceneIndexForPartitionedRegionTest.java       |   44 +-
 .../lucene/internal/LuceneIndexImplJUnitTest.java  |    3 +-
 .../LuceneIndexRecoveryHAIntegrationTest.java      |    4 +-
 .../lucene/internal/LuceneIndexStatsJUnitTest.java |    3 +-
 .../internal/LuceneQueryFactoryImplJUnitTest.java  |    3 +-
 .../lucene/internal/LuceneQueryImplJUnitTest.java  |    3 +-
 .../internal/LuceneRegionListenerJUnitTest.java    |    3 +-
 .../internal/LuceneResultStructImpJUnitTest.java   |    4 +-
 .../internal/LuceneServiceImplIntegrationTest.java |    3 +-
 .../internal/LuceneServiceImplJUnitTest.java       |   83 +-
 .../PageableLuceneQueryResultsImplJUnitTest.java   |    3 +-
 .../PartitionedRepositoryManagerJUnitTest.java     |   40 +-
 .../RawLuceneRepositoryManagerJUnitTest.java       |    3 +-
 .../internal/StringQueryProviderJUnitTest.java     |    3 +-
 .../internal/ValidateCommandParametersTest.java    |   65 +-
 .../internal/cli/LuceneIndexCommandsDUnitTest.java |   88 +-
 .../internal/cli/LuceneIndexCommandsJUnitTest.java |   23 +-
 ...neIndexCommandsWithReindexAllowedDUnitTest.java |  229 +
 .../LuceneCreateIndexFunctionJUnitTest.java        |   23 +-
 .../LuceneDescribeIndexFunctionJUnitTest.java      |    3 +-
 .../LuceneDestroyIndexFunctionJUnitTest.java       |    3 +-
 .../LuceneListIndexFunctionJUnitTest.java          |    3 +-
 .../LuceneSearchIndexFunctionJUnitTest.java        |    3 +-
 .../LuceneClusterConfigurationDUnitTest.java       |   98 +-
 ...onWhereRegionCreatedBeforeReindexDUnitTest.java |   92 +
 ...ClusterConfigurationWithReindexFlagEnabled.java |   58 +
 .../DumpDirectoryFilesIntegrationTest.java         |    3 +-
 .../directory/DumpDirectoryFilesJUnitTest.java     |    3 +-
 .../directory/RegionDirectoryJUnitTest.java        |    3 +-
 .../distributed/DistributedScoringJUnitTest.java   |    3 +-
 .../internal/distributed/EntryScoreJUnitTest.java  |    3 +-
 .../LuceneQueryFunctionContextJUnitTest.java       |    3 +-
 .../distributed/LuceneQueryFunctionJUnitTest.java  |    3 +-
 .../distributed/TopEntriesCollectorJUnitTest.java  |    3 +-
 .../TopEntriesFunctionCollectorJUnitTest.java      |    3 +-
 .../internal/distributed/TopEntriesJUnitTest.java  |    3 +-
 .../WaitUntilFlushedFunctionJUnitTest.java         |    3 +-
 .../internal/filesystem/ChunkKeyJUnitTest.java     |    3 +-
 .../lucene/internal/filesystem/FileJUnitTest.java  |    3 +-
 .../internal/filesystem/FileSystemJUnitTest.java   |    3 +-
 .../filesystem/FileSystemStatsJUnitTest.java       |    3 +-
 .../management/LuceneManagementDUnitTest.java      |   57 +-
 .../BucketTargetingFixedResolverTest.java          |    3 +-
 .../internal/partition/BucketTargetingMapTest.java |    3 +-
 .../repository/IndexRepositoryImplJUnitTest.java   |    3 +-
 .../IndexRepositoryImplPerformanceTest.java        |    3 +-
 .../repository/LuceneIndexMemoryOverheadTest.java  |    3 +-
 .../HeterogeneousLuceneSerializerJUnitTest.java    |    3 +-
 .../serializer/PdxFieldMapperJUnitTest.java        |    3 +-
 .../serializer/ReflectionFieldMapperJUnitTest.java |    4 +-
 .../results/LuceneGetPageFunctionJUnitTest.java    |    3 +-
 .../internal/results/PageEntryJUnitTest.java       |    3 +-
 .../internal/results/PageResultsJUnitTest.java     |    3 +-
 ...uceneIndexXmlGeneratorIntegrationJUnitTest.java |   30 +-
 .../xml/LuceneIndexXmlGeneratorJUnitTest.java      |    3 +-
 ...onCreatedBeforeReindexIntegrationJUnitTest.java |   57 +
 ...WithReindexFlagEnabledIntegrationJUnitTest.java |   40 +
 .../LuceneIndexXmlParserIntegrationJUnitTest.java  |   40 +-
 .../xml/LuceneIndexXmlParserJUnitTest.java         |    3 +-
 .../cache/lucene/test/IndexRepositorySpy.java      |   10 +-
 .../lucene/test/LuceneFunctionSecurityTest.java    |  107 +
 .../cache/lucene/test/LuceneTestSerializer.java    |    5 +
 .../AnalyzeLuceneSerializablesJUnitTest.java       |    4 +-
 geode-old-versions/build.gradle                    |    4 +-
 .../src/main/proto/handshake.proto                 |   37 -
 .../src/main/proto/protocolVersion.proto           |   37 +
 .../src/main/proto/v1/basicTypes.proto             |   52 +-
 .../src/main/proto/v1/clientProtocol.proto         |   75 +-
 .../src/main/proto/v1/connection_API.proto         |    8 +
 .../src/main/proto/v1/function_API.proto           |   50 +
 .../src/main/proto/v1/locator_API.proto            |   10 +-
 .../src/main/proto/v1/region_API.proto             |   46 +-
 geode-protobuf/build.gradle                        |    1 -
 .../operations/ProtobufOperationHandler.java       |   43 +
 .../protobuf/statistics/ClientStatistics.java      |   45 +
 .../protobuf/statistics/NoOpStatistics.java        |   57 +
 .../statistics/ProtobufClientStatistics.java       |  127 +
 .../statistics/ProtobufClientStatisticsImpl.java   |  110 -
 .../statistics/TimedMicrometerClientStatsImpl.kt   |   29 +
 .../protobuf/v1/EncodingTypeTranslator.java        |   68 -
 .../internal/protocol/protobuf/v1/Failure.java     |   78 +
 .../v1/LocatorMessageExecutionContext.java         |   59 +
 .../protobuf/v1/MessageExecutionContext.java       |   55 +
 .../protobuf/v1/ProtobufCachePipeline.java         |   19 +-
 .../protobuf/v1/ProtobufLocatorPipeline.java       |   87 -
 .../protobuf/v1/ProtobufOperationContext.java      |   82 +-
 .../protocol/protobuf/v1/ProtobufOpsProcessor.java |   74 +-
 .../protobuf/v1/ProtobufProtocolService.java       |   29 +-
 .../protobuf/v1/ProtobufSerializationService.java  |  165 +-
 .../protobuf/v1/ProtobufStreamProcessor.java       |   21 +-
 .../internal/protocol/protobuf/v1/Result.java      |   29 +
 .../protobuf/v1/ServerMessageExecutionContext.java |   57 +
 .../internal/protocol/protobuf/v1/Success.java     |   48 +
 .../AbstractFunctionRequestOperationHandler.java   |  146 +
 .../operations/ClearRequestOperationHandler.java   |   62 +
 .../DisconnectClientRequestOperationHandler.java   |   43 +
 ...cuteFunctionOnGroupRequestOperationHandler.java |  117 +
 ...uteFunctionOnMemberRequestOperationHandler.java |  120 +
 ...uteFunctionOnRegionRequestOperationHandler.java |  108 +
 .../operations/GetAllRequestOperationHandler.java  |  153 +-
 .../GetAvailableServersOperationHandler.java       |   63 -
 .../GetRegionNamesRequestOperationHandler.java     |   27 +-
 .../GetRegionRequestOperationHandler.java          |   59 -
 .../v1/operations/GetRequestOperationHandler.java  |   66 +-
 .../v1/operations/GetServerOperationHandler.java   |   93 +
 .../operations/GetSizeRequestOperationHandler.java |   52 +
 .../protobuf/v1/operations/HandshakeHandler.java   |   54 -
 .../v1/operations/KeySetOperationHandler.java      |   68 +
 .../OqlQueryRequestOperationHandler.java           |  156 +
 .../v1/operations/ProtocolVersionHandler.java      |   51 +
 .../operations/PutAllRequestOperationHandler.java  |  134 +-
 .../PutIfAbsentRequestOperationHandler.java        |   83 +
 .../v1/operations/PutRequestOperationHandler.java  |   71 +-
 .../operations/RemoveRequestOperationHandler.java  |   67 +-
 .../protobuf/v1/operations/VersionValidator.java   |   10 +-
 .../AuthenticationRequestOperationHandler.java     |   40 +-
 .../registry/ProtobufOperationContextRegistry.java |  179 +-
 .../v1/serialization/JsonPdxConverter.java         |   48 +
 .../v1/serialization/SerializationService.java     |   32 +
 .../v1/serialization/SerializationType.java        |   32 +
 .../protobuf/v1/serialization/TypeConverter.java   |   38 +
 .../serialization/exception/DecodingException.java |   31 +
 .../serialization/exception/EncodingException.java |   31 +
 .../v1/serializer/ProtobufProtocolSerializer.java  |    6 +-
 .../exception/InvalidProtocolMessageException.java |   31 +
 ...onnectionShiroAuthenticatingStateProcessor.java |   56 -
 ...cySecurityProtobufConnectionStateProcessor.java |   39 +
 ...NoSecurityProtobufConnectionStateProcessor.java |   35 +
 ...obufConnectionAuthenticatingStateProcessor.java |   60 +
 ...rotobufConnectionAuthorizingStateProcessor.java |   72 +
 .../ProtobufConnectionHandshakeStateProcessor.java |   33 +-
 .../v1/state/ProtobufConnectionStateProcessor.java |   76 +
 ...rotobufConnectionTerminatingStateProcessor.java |   37 +
 .../state/exception/ConnectionStateException.java  |   32 +
 .../v1/state/exception/ExceptionWithErrorCode.java |   21 +
 .../exception/OperationNotAuthorizedException.java |   31 +
 .../v1/utilities/ProtobufPrimitiveTypes.java       |   49 -
 .../v1/utilities/ProtobufRequestUtilities.java     |  118 -
 .../v1/utilities/ProtobufResponseUtilities.java    |   64 -
 .../protobuf/v1/utilities/ProtobufUtilities.java   |  232 +-
 .../exception/UnknownProtobufEncodingType.java     |   24 +
 .../exception/UnknownProtobufPrimitiveType.java    |   24 -
 .../GenericProtocolServerConnectionTest.java       |  141 -
 .../OutputCapturingServerConnectionTest.java       |   94 +
 .../tier/sockets/ProtobufServerConnectionTest.java |  141 +
 .../internal/protocol/TestExecutionContext.java    |   19 +-
 ...TypeToSerializationTypeTranslatorJUnitTest.java |   56 -
 .../protobuf/v1/AuthenticationIntegrationTest.java |   99 +-
 .../protobuf/v1/AuthorizationIntegrationTest.java  |  308 +-
 .../v1/DisconnectClientIntegrationTest.java        |  137 +
 .../v1/ExecuteFunctionOnGroupIntegrationTest.java  |  332 ++
 .../v1/ExecuteFunctionOnMemberIntegrationTest.java |  332 ++
 .../v1/ExecuteFunctionOnRegionIntegrationTest.java |  357 ++
 .../protobuf/v1/HandshakeIntegrationTest.java      |  147 -
 .../internal/protocol/protobuf/v1/MessageUtil.java |   78 +-
 .../v1/ProtobufProtocolServiceJUnitTest.java       |    6 +-
 .../protobuf/v1/ProtobufRequestUtilities.java      |  156 +
 .../v1/ProtocolVersionIntegrationTest.java         |  143 +
 .../v1/acceptance/CacheConnectionJUnitTest.java    |   39 +-
 .../CacheConnectionTimeoutJUnitTest.java           |   10 +-
 .../v1/acceptance/CacheMaxConnectionJUnitTest.java |   12 +-
 .../v1/acceptance/CacheOperationsJUnitTest.java    |  465 +-
 .../LocatorConnectionAuthenticationDUnitTest.java  |  150 +
 .../v1/acceptance/LocatorConnectionDUnitTest.java  |   55 +-
 .../ClearRequestOperationHandlerJUnitTest.java     |   78 +
 ...ionOnGroupRequestOperationHandlerJUnitTest.java |  202 +
 ...onOnMemberRequestOperationHandlerJUnitTest.java |  189 +
 ...onOnRegionRequestOperationHandlerJUnitTest.java |  160 +
 .../GetAllRequestOperationHandlerJUnitTest.java    |   84 +-
 .../GetAndPutJsonDocumentsDUnitTest.java           |  244 +
 ...tAvailableServersOperationHandlerJUnitTest.java |  113 -
 ...egionNamesRequestOperationHandlerJUnitTest.java |   17 +-
 .../GetRegionRequestOperationHandlerJUnitTest.java |  105 -
 .../GetRequestOperationHandlerJUnitTest.java       |   64 +-
 .../GetServerOperationHandlerJUnitTest.java        |  129 +
 .../GetSizeRequestOperationHandlerJUnitTest.java   |   88 +
 .../v1/operations/HandshakeHandlerJUnitTest.java   |  140 -
 .../KeySetOperationHandlerJUnitTest.java           |   81 +
 .../v1/operations/OperationHandlerJUnitTest.java   |   18 +-
 ...ueryRequestOperationHandlerIntegrationTest.java |  164 +
 .../OqlQueryRequestOperationHandlerJUnitTest.java  |  138 +
 .../ProtocolVersionHandlerJUnitTest.java           |  126 +
 .../PutAllRequestOperationHandlerJUnitTest.java    |   93 +-
 .../PutIfAbsentRequestIntegrationTest.java         |  168 +
 ...utIfAbsentRequestOperationHandlerJUnitTest.java |  169 +
 .../PutRequestOperationHandlerJUnitTest.java       |   75 +-
 .../RemoveRequestOperationHandlerJUnitTest.java    |   60 +-
 .../v1/operations/VersionValidatorJUnitTest.java   |   14 +-
 .../v1/serialization/codec/JSONCodecJUnitTest.java |  231 -
 .../codec/JsonPdxConverterJUnitTest.java           |  230 +
 .../registry/CodecRegistryJUnitTest.java           |   49 -
 .../ProtobufProtocolSerializerJUnitTest.java       |    4 +-
 .../v1/utilities/ProtobufUtilitiesJUnitTest.java   |   93 +-
 geode-pulse/build.gradle                           |    9 +-
 .../geode/tools/pulse/internal/data/Cluster.java   |  775 +---
 .../tools/pulse/internal/data/IClusterUpdater.java |    3 +-
 geode-pulse/src/main/webapp/META-INF/NOTICE        |    8 +-
 .../internal/security/LogoutHandlerUnitTest.java   |    4 +-
 .../pulse/testbed/GemFireDistributedSystem.java    |  319 --
 .../geode/tools/pulse/testbed/GemfireTopology.java |   22 -
 .../geode/tools/pulse/testbed/PropFileHelper.java  |  112 -
 .../tools/pulse/testbed/PropMockDataUpdater.java   |  502 --
 .../apache/geode/tools/pulse/testbed/TestBed.java  |   82 -
 .../org/apache/geode/tools/pulse/tests/Member.java |    5 -
 .../geode/tools/pulse/tests/MemberMBean.java       |    2 -
 .../geode/tools/pulse/tests/rules/ServerRule.java  |    3 +-
 .../tools/pulse/tests/rules/WebDriverRule.java     |   16 +-
 .../pulse/tests/ui/PulseAnonymousUserTest.java     |    5 +-
 .../tools/pulse/tests/ui/PulseAutomatedTest.java   |    4 +
 .../org/apache/geode/cache/util/AutoBalancer.java  |   50 +-
 .../util/AutoBalancerIntegrationJUnitTest.java     |   21 +-
 .../geode/cache/util/AutoBalancerJUnitTest.java    |   14 +-
 .../client/internal/GatewaySenderBatchOp.java      |    5 +-
 .../internal/cache/wan/GatewayReceiverImpl.java    |   17 +
 .../wan/GatewaySenderEventRemoteDispatcher.java    |   31 +-
 .../geode/cache/CacheXml70GatewayDUnitTest.java    |    3 +-
 .../geode/cache/CacheXml80GatewayDUnitTest.java    |    3 +-
 ...tewayReceiverAutoConnectionSourceDUnitTest.java |    3 +-
 .../cache/wan/WANRollingUpgradeDUnitTest.java      |  115 +-
 .../AnalyzeWANSerializablesJUnitTest.java          |    4 +-
 .../internal/cache/UpdateVersionDUnitTest.java     |    3 +-
 .../cache/wan/AckReaderThreadJUnitTest.java        |    7 +-
 ...ueueOverflowMBeanAttributesDistributedTest.java |  231 +
 .../cache/wan/CacheClientNotifierDUnitTest.java    |    8 +-
 .../GatewayLegacyAuthenticationRegressionTest.java |  420 ++
 .../wan/GatewayReceiverFactoryImplJUnitTest.java   |    3 +
 .../cache/wan/GatewayReceiverImplJUnitTest.java    |   57 +
 .../cache/wan/GatewayReceiverMBeanDUnitTest.java   |  119 +
 ...atewaySenderEventRemoteDispatcherJUnitTest.java |   47 +
 ...nderOverflowMBeanAttributesDistributedTest.java |  220 +
 .../cache/wan/Simple2CacheServerDUnitTest.java     |    3 +-
 .../geode/internal/cache/wan/WANTestBase.java      |  398 +-
 .../ConcurrentParallelGatewaySenderDUnitTest.java  |   79 +-
 ...rrentParallelGatewaySenderOffHeapDUnitTest.java |    3 +-
 ...ParallelGatewaySenderOperation_1_DUnitTest.java |    3 +-
 ...ParallelGatewaySenderOperation_2_DUnitTest.java |    3 +-
 ...rentSerialGatewaySenderOperationsDUnitTest.java |    3 +-
 ...ialGatewaySenderOperationsOffHeapDUnitTest.java |    3 +-
 .../ConcurrentWANPropagation_1_DUnitTest.java      |    3 +-
 .../ConcurrentWANPropagation_2_DUnitTest.java      |    3 +-
 .../cache/wan/disttx/DistTXWANDUnitTest.java       |    3 +-
 .../misc/CommonParallelGatewaySenderDUnitTest.java |    3 +-
 ...ommonParallelGatewaySenderOffHeapDUnitTest.java |    3 +-
 .../GatewayLegacyAuthenticationRegressionTest.java |  423 --
 .../KeepEventsOnGatewaySenderQueueDUnitTest.java   |    3 +-
 .../NewWANConcurrencyCheckForDestroyDUnitTest.java |    3 +-
 .../wan/misc/NewWanAuthenticationDUnitTest.java    |    3 +-
 .../cache/wan/misc/PDXNewWanDUnitTest.java         |  203 +-
 ...atedRegion_ParallelWANPersistenceDUnitTest.java |    3 +-
 ...atedRegion_ParallelWANPropagationDUnitTest.java |    3 +-
 .../misc/SenderWithTransportFilterDUnitTest.java   |    3 +-
 ...hutdownAllPersistentGatewaySenderDUnitTest.java |    3 +-
 .../cache/wan/misc/WANConfigurationJUnitTest.java  |   13 +-
 .../cache/wan/misc/WANLocatorServerDUnitTest.java  |    3 +-
 .../internal/cache/wan/misc/WANSSLDUnitTest.java   |    3 +-
 .../cache/wan/misc/WanAutoDiscoveryDUnitTest.java  |    5 +-
 .../cache/wan/misc/WanValidationsDUnitTest.java    |    3 +-
 ...lGatewaySenderOperation_2_OffHeapDUnitTest.java |    3 +-
 ...lGatewaySenderOperation_2_OffHeapDUnitTest.java |    3 +-
 ...lelGatewaySenderOperationsOffHeapDUnitTest.java |    3 +-
 ...GatewaySenderQueueOverflowOffHeapDUnitTest.java |    3 +-
 .../ParallelWANConflationOffHeapDUnitTest.java     |    3 +-
 ...stenceEnabledGatewaySenderOffHeapDUnitTest.java |    3 +-
 ...ANPropagationConcurrentOpsOffHeapDUnitTest.java |    3 +-
 .../ParallelWANPropagationOffHeapDUnitTest.java    |    3 +-
 .../SerialGatewaySenderQueueOffHeapDUnitTest.java  |    3 +-
 ...stenceEnabledGatewaySenderOffHeapDUnitTest.java |    3 +-
 .../SerialWANPropagationOffHeapDUnitTest.java      |    3 +-
 ...pagation_PartitionedRegionOffHeapDUnitTest.java |    3 +-
 ...ParallelGatewaySenderOperation_2_DUnitTest.java |    3 +-
 .../ParallelGatewaySenderOperationsDUnitTest.java  |    3 +-
 ...arallelGatewaySenderQueueOverflowDUnitTest.java |    3 +-
 .../parallel/ParallelWANConflationDUnitTest.java   |    3 +-
 ...ANPersistenceEnabledGatewaySenderDUnitTest.java |    5 +-
 ...arallelWANPropagationClientServerDUnitTest.java |    3 +-
 ...rallelWANPropagationConcurrentOpsDUnitTest.java |    3 +-
 .../parallel/ParallelWANPropagationDUnitTest.java  |    7 +-
 .../ParallelWANPropagationLoopBackDUnitTest.java   |    3 +-
 .../wan/parallel/ParallelWANStatsDUnitTest.java    |    5 +-
 .../cache/wan/serial/GatewayReceiverDUnitTest.java |  262 ++
 ...lGatewaySenderDistributedDeadlockDUnitTest.java |    3 +-
 .../SerialGatewaySenderEventListenerDUnitTest.java |    3 +-
 .../SerialGatewaySenderOperationsDUnitTest.java    |    3 +-
 .../serial/SerialGatewaySenderQueueDUnitTest.java  |    3 +-
 .../wan/serial/SerialWANConflationDUnitTest.java   |    2 +
 ...ANPersistenceEnabledGatewaySenderDUnitTest.java |    3 +-
 .../wan/serial/SerialWANPropagationDUnitTest.java  |    5 +-
 .../SerialWANPropagationLoopBackDUnitTest.java     |    3 +-
 ...lWANPropagation_PartitionedRegionDUnitTest.java |    3 +-
 .../SerialWANPropagationsFeatureDUnitTest.java     |    3 +-
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |    3 +-
 ...CreateDestroyGatewaySenderCommandDUnitTest.java |   53 +-
 .../CreateGatewayReceiverCommandDUnitTest.java     |  134 +-
 .../DestroyGatewaySenderCommandDUnitTest.java      |  107 +
 .../PauseGatewaySenderCommandDUnitTest.java        |   27 +-
 .../ResumeGatewaySenderCommandDUnitTest.java       |   27 +-
 .../StartGatewayReceiverCommandDUnitTest.java      |   27 +-
 .../StartGatewaySenderCommandDUnitTest.java        |   23 +-
 .../StatusGatewayReceiverCommandDUnitTest.java     |   31 +-
 .../StatusGatewaySenderCommandDUnitTest.java       |   31 +-
 .../StopGatewayReceiverCommandDUnitTest.java       |   27 +-
 .../StopGatewaySenderCommandDUnitTest.java         |   23 +-
 .../cache/wan/wancommand/WANCommandUtils.java      |   33 +-
 .../wan/wancommand/WanCommandListDUnitTest.java    |   51 +-
 .../geode/management/WANManagementDUnitTest.java   |  379 +-
 .../cli/commands/DescribeRegionDUnitTest.java      |    7 +-
 ...rConfigurationIndexWithFromClauseDUnitTest.java |    7 +-
 .../WANClusterConfigurationDUnitTest.java          |   18 +-
 .../internal/pulse/TestRemoteClusterDUnitTest.java |  250 -
 geode-web-api/build.gradle                         |    1 +
 .../web/controllers/AbstractBaseController.java    |    6 +-
 .../web/controllers/BaseControllerAdvice.java      |   15 +
 .../web/controllers/FunctionAccessController.java  |   37 +-
 .../CustomMappingJackson2HttpMessageConverter.java |    4 +-
 .../internal/web/security/RestSecurityService.java |   13 +
 geode-web-api/src/main/webapp/META-INF/NOTICE      |    8 +-
 geode-web/src/main/webapp/META-INF/NOTICE          |    4 +-
 .../cli/commands/AlterRuntimeCommandDUnitTest.java |   62 +-
 .../commands/ClusterConfigurationDUnitTest.java    |    6 +-
 .../cli/commands/CommandOverHttpDUnitTest.java     |    3 +-
 .../cli/commands/ConnectCommandWithSSLTest.java    |   57 +-
 .../commands/DescribeConfigCommandDUnitTest.java   |   10 +-
 ...xecuteFunctionCommandWithSecurityDUnitTest.java |    9 +-
 .../cli/commands/ExportConfigCommandDUnitTest.java |   17 +-
 .../commands/ExportLogsStatsOverHttpDUnitTest.java |    4 +-
 .../FunctionCommandsOverHttpDUnitTest.java         |    5 +-
 .../cli/commands/QueryCommandOverHttpTest.java     |   30 +
 .../commands/ShutdownCommandOverHttpDUnitTest.java |   31 +
 .../internal/security/LogNoPasswordTest.java       |    4 +-
 .../support/LoginHandlerInterceptorJUnitTest.java  |   16 +-
 .../internal/web/util/ConvertUtilsJUnitTest.java   |  185 -
 gradle.properties                                  |    4 +-
 gradle/dependency-versions.properties              |   61 +-
 gradle/publish.gradle                              |    6 +-
 gradle/spotless.gradle                             |   75 +
 gradle/test.gradle                                 |   95 +-
 settings.gradle                                    |    4 +-
 3104 files changed, 116920 insertions(+), 85656 deletions(-)
 create mode 100644 buildSrc/src/main/java/org/apache/geode/javac/EnsureCorrectRunsWithProcessor.java
 create mode 100644 buildSrc/src/main/resources/META-INF/services/javax.annotation.processing.Processor
 create mode 100644 buildSrc/src/test/java/org/apache/geode/javac/SimpleClassFile.java
 create mode 100644 buildSrc/src/test/java/org/apache/geode/javac/SimpleFileManager.java
 create mode 100644 buildSrc/src/test/java/org/apache/geode/javac/SimpleSourceFile.java
 create mode 100644 buildSrc/src/test/java/org/apache/geode/javac/TestAnnotationProcessor.java
 create mode 100644 buildSrc/src/test/java/org/apache/geode/javac/TestCompiler.java
 create mode 100755 ci/bin/concourse_job_performance.py
 create mode 100644 ci/pipelines/metrics.yml
 create mode 100755 ci/scripts/build-examples.sh
 create mode 100755 ci/scripts/capture-call-stacks.sh
 create mode 100755 ci/scripts/concourse_job_performance.sh
 create mode 100755 ci/scripts/update-passing-ref.sh
 create mode 100644 extensions/geode-modules/src/test/java/org/apache/geode/modules/util/ModuleFunctionsSecurityTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/DeployWithLargeJarTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/LogsAndDescribeConfigAreFullyRedactedAcceptanceTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/management/internal/cli/commands/StartLocatorAcceptanceTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/rest/internal/web/RestFunctionExecuteDUnitTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/tools/pulse/PulseJmxPasswordFileTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/tools/pulse/ui/PulseAcceptanceAuthTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/tools/pulse/ui/PulseAcceptanceNoAuthTest.java
 create mode 100644 geode-assembly/src/test/java/org/apache/geode/tools/pulse/ui/PulseAcceptanceTestBase.java
 create mode 100644 geode-assembly/src/test/resources/security.json
 delete mode 100644 geode-benchmarks/build.gradle
 delete mode 100644 geode-benchmarks/src/jmh/java/org/apache/geode/cache/benchmark/RangeQueryWithIndexBenchmark.java
 delete mode 100644 geode-benchmarks/src/jmh/java/org/apache/geode/cache/benchmark/RegionOperationBenchmark.java
 delete mode 100644 geode-client-protocol/build.gradle
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/ClientProtocolMessageHandler.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/Failure.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/MessageExecutionContext.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/OperationContext.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/ProtocolErrorCode.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/Result.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/Success.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/exception/InvalidProtocolMessageException.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/operations/OperationHandler.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serializer/ProtocolSerializer.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/SerializationService.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/SerializationType.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/TypeCodec.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/codec/JSONCodec.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/exception/UnsupportedEncodingTypeException.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/registry/SerializationCodecRegistry.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/registry/exception/CodecAlreadyRegisteredForTypeException.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/serialization/registry/exception/CodecNotRegisteredForTypeException.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/ConnectionAuthenticatingStateProcessor.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/ConnectionShiroAuthorizingStateProcessor.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/ConnectionStateProcessor.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/ConnectionTerminatingStateProcessor.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/LegacySecurityConnectionStateProcessor.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/NoSecurityConnectionStateProcessor.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/exception/ConnectionStateException.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/state/exception/OperationNotAuthorizedException.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/statistics/NoOpStatistics.java
 delete mode 100644 geode-client-protocol/src/main/java/org/apache/geode/internal/protocol/statistics/ProtocolClientStatistics.java
 delete mode 100644 geode-client-protocol/src/main/resources/META-INF/services/org.apache.geode.internal.protocol.serialization.TypeCodec
 delete mode 100644 geode-concurrency-test/src/main/java/java/net/InetAddress.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/JpfRunner.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/JpfRunnerConfig.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/ParallelExecutorImpl.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/logging/EmptyLogger.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/peers/JPF_java_util_concurrent_locks_ReentrantReadWriteLock.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/peers/JPF_org_apache_geode_distributed_internal_InternalDistributedSystem.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/peers/JPF_org_apache_geode_internal_logging_LogService.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/peers/JPF_org_apache_geode_internal_logging_log4j_LogMarker.java
 delete mode 100644 geode-concurrency-test/src/main/java/org/apache/geode/test/concurrency/jpf/peers/JPF_org_apache_logging_log4j_LogManager.java
 create mode 100644 geode-connectors/build.gradle
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriter.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JdbcConnectorException.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JdbcLoader.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/JdbcWriter.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/AbstractJdbcCallback.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ColumnValue.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfigBuilder.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfigExistsException.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfigNotFoundException.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfiguration.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/DataSourceManager.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/HikariJdbcDataSource.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/HikariJdbcDataSourceFactory.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorService.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceImpl.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JdbcDataSource.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JdbcDataSourceFactory.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/RegionMapping.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/RegionMappingBuilder.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/RegionMappingExistsException.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/RegionMappingNotFoundException.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlStatementFactory.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/TableKeyColumnManager.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ExceptionHandler.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/FunctionContextArgumentProvider.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingFunction.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/ElementType.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlGenerator.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlParser.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfiguration.java
 create mode 100644 geode-connectors/src/main/java/org/apache/geode/internal/ConnectorsDistributedSystemService.java
 create mode 100644 geode-connectors/src/main/resources/META-INF/schemas/geode.apache.org/schema/jdbc/jdbc-1.0.xsd
 create mode 100644 geode-connectors/src/main/resources/META-INF/services/org.apache.geode.distributed.internal.DistributedSystemService
 create mode 100644 geode-connectors/src/main/resources/META-INF/services/org.apache.geode.internal.cache.CacheService
 create mode 100644 geode-connectors/src/main/resources/META-INF/services/org.apache.geode.internal.cache.xmlcache.XmlParser
 create mode 100644 geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
 create mode 100755 geode-connectors/src/main/resources/org/apache/geode/internal/sanctioned-geode-connectors-serializables.txt
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/codeAnalysis/AnalyzeConnectorsSerializablesJUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/Employee.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcConnectorExceptionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcLoaderIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcLoaderTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcWriterIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcWriterTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/AbstractJdbcCallbackTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/ColumnValueTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfigBuilderTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfigurationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/DataSourceManagerUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/RegionMappingBuilderTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/RegionMappingTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/SqlHandlerTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/SqlStatementFactoryTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/TableKeyColumnManagerTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/TestableConnectionManager.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandDunitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/FunctionContextArgumentProviderTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcClusterConfigDistributedTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommandDUnitTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommandIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingFunctionTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlGeneratorIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlGeneratorTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlIntegrationTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcConnectorServiceXmlParserTest.java
 create mode 100644 geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfigurationTest.java
 create mode 100644 geode-connectors/src/test/resources/org/apache/geode/codeAnalysis/excludedClasses.txt
 copy {geode-web-api => geode-connectors}/src/test/resources/org/apache/geode/codeAnalysis/sanctionedDataSerializables.txt (100%)
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/CreateOnRegionBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/CreateWithEvictionUnderLimitBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/EvictionBasePerformanceBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/EvictionMultiThreadedPerformanceBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/EvictionWithPartiallyMarkedListsBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/FirstEvictionBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/GetOnRegionBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/GetsWithEvictionPerformanceBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/RangeQueryWithIndexBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/RegionOperationBenchmark.java
 create mode 100644 geode-core/src/jmh/java/org/apache/geode/cache/UpdateOnRegionBenchmark.java
 delete mode 100644 geode-core/src/jpfTest/java/org/apache/geode/internal/cache/FilterProfileConcurrencyTest.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientSideHandshakeImpl.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledAddition.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledArithmetic.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledDivision.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledMod.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledMultiplication.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledSubtraction.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/cache/query/internal/parse/ASTArithmeticOp.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/distributed/internal/DM.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionChannel.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionMap.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreBackup.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/EvictableRegion.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/EvictionAttributesMutatorImpl.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/FutureCachedDeserializable.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/InternalEntryEvent.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RegionMapOwner.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteContainsKeyValueMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteDestroyMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteFetchEntryMessage.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteFetchVersionMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteGetMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteInvalidateMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteOperationMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteOperationMessageWithDirectReply.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RemotePutAllMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/RemotePutMessage.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteRegionOperation.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RemoteRemoveAllMessage.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/RemoveCacheServerProfileMessage.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackup.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupFactory.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupOperation.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbortBackupRequest.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/AbstractBackupWriterConfig.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupDefinition.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupFileCopier.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupFilter.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupLock.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupManager.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupService.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupTask.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupWriterFactory.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/DiskStoreBackup.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriterConfig.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/FileSystemIncrementalBackupLocation.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/IncrementalBackupFilter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/IncrementalBackupLocation.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/backup/TemporaryBackupFiles.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/entries/HashRegionEntry.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/CountLRUStatistics.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/DisabledEvictionCounters.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/DisabledEvictionStatistics.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/EvictionCounters.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/EvictionCountersImpl.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/EvictionStatistics.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/EvictionStatisticsImpl.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/EvictionStats.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/HeapLRUStatistics.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/InternalEvictionStatistics.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/eviction/MemoryLRUStatistics.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/execute/InternalFunction.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/map/CacheModificationLock.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/map/FocusedRegionMap.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/map/RegionMapDestroy.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/RemoteFetchKeysMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/RemoteSizeMessage.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tier/ClientHandShake.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/ClientSideHandshake.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/Encryptor.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tier/ServerSideHandshake.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/EncryptorImpl.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/GenericProtocolServerConnection.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/HandShake.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Handshake.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/LegacyServerConnection.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/OriginalServerConnection.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ProtobufServerConnection.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionCollection.java
 delete mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerHandShakeProcessor.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeFactory.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerSideHandshakeImpl.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tx/BucketTXRegionStub.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteClearMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteContainsKeyValueMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteDestroyMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteFetchEntryMessage.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteFetchKeysMessage.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteFetchVersionMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteGetMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteInvalidateMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteOperationMessageWithDirectReply.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutAllMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemotePutMessage.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessage.java
 create mode 100755 geode-core/src/main/java/org/apache/geode/internal/cache/tx/RemoteSizeMessage.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelQueueBatchRemovalMessage.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/security/FilterPostAuthorization.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/security/FilterPreAuthorization.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/security/ObjectWithAuthz.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/util/DebuggerSupport.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/util/SingletonCallable.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/util/SingletonValue.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/internal/util/StackTraceCollector.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/internal/util/concurrent/ConcurrentMapWithReusableEntries.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/GeodeRemoteStreamExporter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/beans/FileUploader.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/beans/FileUploaderMBean.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/beans/stats/GatewaySenderOverflowMonitor.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommand.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommand.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommand.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListJndiBindingCommand.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/converters/ClassNameConverter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/converters/ConfigPropertyConverter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/converters/ExpirationActionConverter.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/domain/ClassName.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/exceptions/EntityExistsException.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/CreateJndiBindingFunction.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunction.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunctionArgs.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/DestroyJndiBindingFunction.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/JndiBindingConfiguration.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/ListJndiBindingFunction.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/MemberRegionFunction.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/MembersForRegionFunction.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionAttributesWrapper.java
 create mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/configuration/functions/DownloadJarFunction.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/configuration/functions/UploadJarFunction.java
 delete mode 100644 geode-core/src/main/java/org/apache/geode/management/internal/web/util/ConvertUtils.java
 delete mode 100644 geode-core/src/main/resources/org/apache/geode/internal/privatekey.ser
 delete mode 100644 geode-core/src/main/resources/org/apache/geode/internal/publickey.ser
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/CreateAndLocalDestroyInTXRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/PRCacheListenerDistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/PRCacheListenerWithInterestPolicyAllDistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/PRCreationTotalNumBucketsDistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/RegionExpirationDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/RegionExpirationIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/RegionShortcutTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/ReplicateCacheListenerDistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/client/internal/QueueConnectionImplJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/execute/CoreFunctionSecurityTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/internal/ArithmeticOperationsIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/internal/index/PartitionedIndexJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/internal/types/ObjectTypeAssert.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/internal/types/TypeUtilsJUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRBasicIndexCreationDeadlockDUnitTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryCacheCloseDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache/query/partitioned/PRQueryPortfolioDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache30/CreateAndLocalDestroyInTXRegressionTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/cache30/DiskRegionIntegrationTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache30/EntriesDoNotExpireDuringGIIRegressionTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/cache30/RegionExpirationDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/distributed/ServerLauncherDUnitTestHelper.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterDistributionManagerTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/distributed/internal/ConsoleDistributionManagerDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionManagerDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionManagerTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/AbstractConfigJUnitTest.java
 create mode 100755 geode-core/src/test/java/org/apache/geode/internal/InternalDataSerializerJUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/AbstractLRURegionMapTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/CacheProfileTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/DestroyEntryWithConcurrentOperationJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/DiskStoreImplIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/DiskStoreMonitorTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/DiskUsageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/EnforceUniqueHostForLonerIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/FilterProfileConcurrencyTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/FlusherThreadTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/InitialImageOperationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/JtaAfterCompletionMessageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/JtaBeforeCompletionMessageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/MonthBasedPartitionResolver.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PRCacheListenerInvocationTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PRCacheListenerWithInterestPolicyAllInvocationTest.java
 create mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/PRCustomPartitioningDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PREntryIdleExpirationTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionAsSubRegionDUnitTest.java
 create mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionAsSubregionDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionCloseDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionCloseDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionDUnitTestCase.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionGetSomeKeys.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RegionCommitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RemoteFetchEntryMessageTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RemoteOperationMessageTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RemotePutAllMessageTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RemotePutReplyMessageJUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/RemoteRemoveAllMessageTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ReplicateCacheListenerInvocationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/SerializableMonth.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/TXRegionLockRequestImplTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/TXStateProxyImplJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/TXStateProxyImplTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/TXSynchronizationRunnableTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/TestObjectWithIdentifier.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/TxCommitMessageBackwardCompatibilityDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/VMLRURegionMapTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupFactoryTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupOperationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbortBackupRequestTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/AbstractBackupWriterConfigTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupDefinitionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupFileCopierIntegrationTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupLockTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupServiceTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/BackupWriterFactoryTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriterConfigTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/FileSystemBackupWriterTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/FileSystemIncrementalBackupLocationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/backup/TemporaryBackupFilesTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/eviction/EvictionListBuilderTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/eviction/RegionEntryEvictionIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/BooleanFunction.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/ExecuteFunctionInstanceRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/FunctionExceptionsIncludeLocalMemberRegressionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/FunctionExecutionOnLonerRegressionTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/execute/PRCustomPartitioningDUnitTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/execute/PRPerformanceTestDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/PRTransaction2DUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/PRTransactionWithSizeOperationDUnitTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/execute/TestFunction.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/execute/TimeKeeper.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/ha/HARegionQueueTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/map/DestroyEntryDuringCloseIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/map/RegionMapDestroyTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/PersistPRKRFDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/PersistPRKRFIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/snapshot/ClientExporterTest.java
 create mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorSelectorIntegrationTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorSelectorJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverTest.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HAInterestDistributedTestCase.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HandShakeTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/HandshakeTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ServerConnectionIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/ClientTXStateStubTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/RemoteFetchEntryMessageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/RemoteOperationMessageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/RemoteOperationResponseTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/RemotePutAllMessageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/RemotePutReplyMessageJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/RemoteRemoveAllMessageTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/tx/SetOperationJTADistributedTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/versions/RegionVersionVectorIntegrationTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/versions/RegionVersionVectorJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/versions/RegionVersionVectorTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderEventProcessorJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderHelper.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/internal/lang/SystemPropertyHelperJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/lang/SystemPropertyHelperTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/util/PluckStacksDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/internal/util/PluckStacksUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/beans/FileUploaderTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/AbstractCliAroundInterceptorJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/AlterCompressorDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/AlterRegionCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ConnectCommandDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommandDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateJndiBindingCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateRegionSecurityDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DeployCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommandDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DestroyAsyncEventQueueCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommandDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/DestroyJndiBindingCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStackTraceCommandDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ExportStackTraceCommandTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListJndiBindingCommandDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListMembersCommandTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowStackTraceDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/TestCompressor1.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/TestCustomIdleExpiry.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/TestCustomTTLExpiry.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/converters/ClassNameConverterTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/converters/ConfigPropertyConverterTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/ClassNameTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/domain/MyCacheWriter.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/CreateJndiBindingFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyAsyncEventQueueFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/DestroyJndiBindingFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/ListJndiBindingFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/cli/result/FileResultTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/configuration/ClusterConfigLocatorRestartDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/configuration/functions/GetClusterConfigurationFunctionTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/security/FileUploaderMBeanSecurityTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/security/JmxPasswordFileTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/security/MultiClientDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/security/MultiGfshDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/security/MultiUserAuthenticationDUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/management/internal/security/MultiUserDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/memcached/ConnectionWithOneMinuteTimeoutFactory.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/pdx/JSONFormatterBasicJUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/pdx/PdxInstanceLoaderIntegrationTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/pdx/internal/MultipleCacheJUnitTest.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationLegacyConfigurationDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/security/ClientDataAuthorizationUsingLegacySecurityDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/security/ClientDataAuthorizationUsingLegacySecurityWithFailoverDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/security/IntegratedSecurityPeerAuthDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/security/templates/SimpleAccessController.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/security/templates/SimpleAuthenticator.java
 delete mode 100755 geode-core/src/test/java/org/apache/geode/test/dunit/DebuggerUtils.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/LocalVM.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/ClientVM.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/ClusterStartupRule.java
 delete mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/LocatorServerStartupRule.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/dunit/rules/tests/ClusterStartupRuleCanSpecifyOlderVersionsDUnitTest.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/junit/rules/ClientCacheRule.java
 create mode 100644 geode-core/src/test/java/org/apache/geode/test/junit/rules/VMProvider.java
 create mode 100644 geode-core/src/test/resources/org/apache/geode/cache/execute/FunctionAdapterJUnitTest.serializedFunctionAdapterWithDifferentSerialVersionUID.ser
 create mode 100644 geode-core/src/test/resources/org/apache/geode/internal/util/PluckStacksJstackGeneratedDump.txt
 create mode 100644 geode-cq/src/test/java/org/apache/geode/cache/query/cq/CQDistributedTest.java
 create mode 100644 geode-cq/src/test/java/org/apache/geode/security/FilterPostAuthorization.java
 create mode 100644 geode-cq/src/test/java/org/apache/geode/security/FilterPreAuthorization.java
 create mode 100644 geode-cq/src/test/java/org/apache/geode/security/ObjectWithAuthz.java
 create mode 100644 geode-docs/developing/general_region_data_management.html.md.erb
 delete mode 100644 geode-docs/developing/management_all_region_types/chapter_overview.html.md.erb
 create mode 100644 geode-docs/developing/partitioned_regions/fixed_custom_partitioning.html.md.erb
 create mode 100644 geode-docs/developing/partitioned_regions/standard_custom_partitioning.html.md.erb
 delete mode 100644 geode-docs/images/ClientServerAdvancedTopics-6.gif
 create mode 100644 geode-docs/images/ClientServerAdvancedTopics-6.png
 create mode 100644 geode-docs/images/expiration.png
 delete mode 100644 geode-docs/images_svg/custom_partitioned.svg
 delete mode 100644 geode-docs/images_svg/expiration.svg
 delete mode 100644 geode-docs/managing/security/encrypting_with_diffie_hellman.html.md.erb
 create mode 100644 geode-docs/tools_modules/gfsh/json_in_gfsh.html.md.erb
 create mode 100644 geode-experimental-driver/build.gradle
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/Driver.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/DriverFactory.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/Function.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/FunctionService.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/JSONWrapper.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ProtobufChannel.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ProtobufDriver.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ProtobufFunction.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ProtobufFunctionService.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ProtobufQueryService.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ProtobufRegion.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/Query.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/QueryService.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/Region.java
 create mode 100644 geode-experimental-driver/src/main/java/org/apache/geode/experimental/driver/ValueEncoder.java
 create mode 100644 geode-experimental-driver/src/test/java/org/apache/geode/experimental/driver/DriverConnectionTest.java
 create mode 100644 geode-experimental-driver/src/test/java/org/apache/geode/experimental/driver/FunctionServiceIntegrationTest.java
 create mode 100644 geode-experimental-driver/src/test/java/org/apache/geode/experimental/driver/IntegrationTestBase.java
 create mode 100644 geode-experimental-driver/src/test/java/org/apache/geode/experimental/driver/QueryServiceIntegrationTest.java
 create mode 100644 geode-experimental-driver/src/test/java/org/apache/geode/experimental/driver/RegionIntegrationTest.java
 create mode 100644 geode-experimental-driver/src/test/java/org/apache/geode/experimental/driver/ValueEncoderTest.java
 create mode 100755 geode-junit/src/main/java/org/apache/geode/test/junit/categories/FunctionServiceTest.java
 create mode 100644 geode-junit/src/main/java/org/apache/geode/test/junit/categories/LuceneTest.java
 create mode 100755 geode-junit/src/main/java/org/apache/geode/test/junit/categories/OQLIndexTest.java
 create mode 100755 geode-junit/src/main/java/org/apache/geode/test/junit/categories/OQLQueryTest.java
 create mode 100644 geode-junit/src/main/java/org/apache/geode/test/junit/rules/ExecutorServiceRule.java
 create mode 100644 geode-junit/src/test/java/org/apache/geode/test/junit/rules/ExecutorServiceRuleIntegrationTest.java
 create mode 100644 geode-junit/src/test/java/org/apache/geode/test/junit/rules/ExecutorServiceRuleTest.java
 delete mode 100755 geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/AbstractPartitionedRepositoryManager.java
 create mode 100644 geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/CreateLuceneCommandParametersValidator.java
 mode change 100644 => 100755 geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManager.java
 mode change 100755 => 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesClientDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesReindexClientDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesReindexDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesWithRegionCreatedBeforeReindexClientDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesWithRegionCreatedBeforeReindexDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesWithRegionCreatedBeforeReindexIntegrationTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesWithReindexFlagEnabledClientDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesWithReindexFlagEnabledDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesWithReindexFlagEnabledIntegrationTest.java
 mode change 100755 => 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexImplJUnitTest.java
 mode change 100755 => 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
 mode change 100755 => 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/cli/LuceneIndexCommandsWithReindexAllowedDUnitTest.java
 mode change 100755 => 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/configuration/LuceneClusterConfigurationDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/configuration/LuceneClusterConfigurationWhereRegionCreatedBeforeReindexDUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/configuration/LuceneClusterConfigurationWithReindexFlagEnabled.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/xml/LuceneIndexXmlGeneratorWhereRegionCreatedBeforeReindexIntegrationJUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/xml/LuceneIndexXmlGeneratorWithReindexFlagEnabledIntegrationJUnitTest.java
 create mode 100644 geode-lucene/src/test/java/org/apache/geode/cache/lucene/test/LuceneFunctionSecurityTest.java
 mode change 100755 => 100644 geode-lucene/src/test/java/org/apache/geode/codeAnalysis/AnalyzeLuceneSerializablesJUnitTest.java
 delete mode 100644 geode-protobuf-messages/src/main/proto/handshake.proto
 create mode 100644 geode-protobuf-messages/src/main/proto/protocolVersion.proto
 create mode 100644 geode-protobuf-messages/src/main/proto/v1/function_API.proto
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/operations/ProtobufOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/ClientStatistics.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/NoOpStatistics.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/ProtobufClientStatistics.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/ProtobufClientStatisticsImpl.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/TimedMicrometerClientStatsImpl.kt
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/EncodingTypeTranslator.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/Failure.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/LocatorMessageExecutionContext.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/MessageExecutionContext.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufLocatorPipeline.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/Result.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ServerMessageExecutionContext.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/Success.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/AbstractFunctionRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ClearRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/DisconnectClientRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnGroupRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandler.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetAvailableServersOperationHandler.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetRegionRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetServerOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetSizeRequestOperationHandler.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/HandshakeHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/KeySetOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OqlQueryRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ProtocolVersionHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/PutIfAbsentRequestOperationHandler.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/JsonPdxConverter.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/SerializationService.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/SerializationType.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/TypeConverter.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/exception/DecodingException.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/exception/EncodingException.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/serializer/exception/InvalidProtocolMessageException.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/ConnectionShiroAuthenticatingStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/LegacySecurityProtobufConnectionStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/NoSecurityProtobufConnectionStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/ProtobufConnectionAuthenticatingStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/ProtobufConnectionAuthorizingStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/ProtobufConnectionStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/ProtobufConnectionTerminatingStateProcessor.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/exception/ConnectionStateException.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/exception/ExceptionWithErrorCode.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/state/exception/OperationNotAuthorizedException.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/utilities/ProtobufPrimitiveTypes.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/utilities/ProtobufRequestUtilities.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/utilities/ProtobufResponseUtilities.java
 create mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/utilities/exception/UnknownProtobufEncodingType.java
 delete mode 100644 geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/utilities/exception/UnknownProtobufPrimitiveType.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/GenericProtocolServerConnectionTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/OutputCapturingServerConnectionTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/cache/tier/sockets/ProtobufServerConnectionTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/EncodingTypeToSerializationTypeTranslatorJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/DisconnectClientIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnGroupIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnMemberIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnRegionIntegrationTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/HandshakeIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufRequestUtilities.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ProtocolVersionIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/LocatorConnectionAuthenticationDUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ClearRequestOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnGroupRequestOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetAndPutJsonDocumentsDUnitTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetAvailableServersOperationHandlerJUnitTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetRegionRequestOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetServerOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/GetSizeRequestOperationHandlerJUnitTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/HandshakeHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/KeySetOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OqlQueryRequestOperationHandlerIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/OqlQueryRequestOperationHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ProtocolVersionHandlerJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/PutIfAbsentRequestIntegrationTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/PutIfAbsentRequestOperationHandlerJUnitTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/codec/JSONCodecJUnitTest.java
 create mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/codec/JsonPdxConverterJUnitTest.java
 delete mode 100644 geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/serialization/registry/CodecRegistryJUnitTest.java
 delete mode 100644 geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/GemFireDistributedSystem.java
 delete mode 100644 geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/GemfireTopology.java
 delete mode 100644 geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/PropFileHelper.java
 delete mode 100644 geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/PropMockDataUpdater.java
 delete mode 100644 geode-pulse/src/test/java/org/apache/geode/tools/pulse/testbed/TestBed.java
 mode change 100755 => 100644 geode-wan/src/test/java/org/apache/geode/codeAnalysis/AnalyzeWANSerializablesJUnitTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/AsyncEventQueueOverflowMBeanAttributesDistributedTest.java
 mode change 100755 => 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/CacheClientNotifierDUnitTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewayLegacyAuthenticationRegressionTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewayReceiverMBeanDUnitTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventRemoteDispatcherJUnitTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderOverflowMBeanAttributesDistributedTest.java
 mode change 100755 => 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/Simple2CacheServerDUnitTest.java
 delete mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/misc/GatewayLegacyAuthenticationRegressionTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/serial/GatewayReceiverDUnitTest.java
 create mode 100644 geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/DestroyGatewaySenderCommandDUnitTest.java
 delete mode 100644 geode-wan/src/test/java/org/apache/geode/management/internal/pulse/TestRemoteClusterDUnitTest.java
 create mode 100644 geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/QueryCommandOverHttpTest.java
 create mode 100644 geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/ShutdownCommandOverHttpDUnitTest.java
 delete mode 100644 geode-web/src/test/java/org/apache/geode/management/internal/web/util/ConvertUtilsJUnitTest.java
 create mode 100644 gradle/spotless.gradle

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.

[geode] 05/05: A commit that I can demo.

Posted by ud...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e2cc32a809457e92d35ed8a10f54b168a1db2e24
Merge: df27f26 a6db167
Author: Udo <uk...@pivotal.io>
AuthorDate: Tue Mar 20 15:28:24 2018 -0700

    A commit that I can demo.

 .../bean/stats/RegionStatsJUnitTest.java           |  1 +
 .../statistics/TimedMicrometerClientStatsImpl.kt   | 29 ++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --cc geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/TimedMicrometerClientStatsImpl.kt
index 0000000,0000000..e9acac4
new file mode 100644
--- /dev/null
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/TimedMicrometerClientStatsImpl.kt
@@@ -1,0 -1,0 +1,29 @@@
++package org.apache.geode.internal.protocol.protobuf.statistics
++
++import io.micrometer.core.instrument.MeterRegistry
++import io.micrometer.core.instrument.Tag
++import io.micrometer.core.instrument.Timer
++import org.apache.geode.internal.cache.CachePerfStats
++import org.apache.geode.internal.cache.MicroMeterRegistryFactory
++import java.util.concurrent.TimeUnit
++import java.util.concurrent.atomic.AtomicInteger
++
++class TimedMicrometerClientStatsImpl(meterRegistry: MeterRegistry) : MicrometerClientStatsImpl(meterRegistry) {
++
++    constructor() : this(MicroMeterRegistryFactory.getMeterRegistry())
++
++    private fun constructTimerForMetric(metricName: String): Timer =
++            meterRegistry.timer("${metricName}Latency", emptyList())
++
++    private val operationTimer = constructTimerForMetric("operation")
++
++    override fun startOperation(): Long = CachePerfStats.getStatTime()
++
++    override fun endOperation(startOperationTime: Long) {
++        updateTimer(startOperationTime, operationTimer)
++    }
++
++    private fun updateTimer(startTimeInNanos: Long, timer: Timer) {
++        timer.record((System.nanoTime() - startTimeInNanos), TimeUnit.NANOSECONDS)
++    }
++}

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.

[geode] 01/05: initial commit for micrometer implementation

Posted by ud...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7863c796473b27da8a7d84c82649f2e2426d10a2
Author: Udo Kohlmeyer <uk...@pivotal.io>
AuthorDate: Tue Jan 2 10:55:52 2018 -0800

    initial commit for micrometer implementation
---
 geode-protobuf/build.gradle                        |  28 +++
 .../statistics/MicrometerClientStatsImpl.kt        |  69 ++++++
 .../protobuf/v1/ProtobufProtocolService.java       |   7 +-
 .../v1/acceptance/CacheOperationsJUnitTest.java    | 258 +++++++++++----------
 4 files changed, 235 insertions(+), 127 deletions(-)

diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index c1eed05..13368a9 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -27,4 +27,32 @@ dependencies {
     testCompile 'org.powermock:powermock-api-mockito:' + project.'powermock.version'
 
     compile 'com.google.protobuf:protobuf-java:' + project.'protobuf-java.version'
+    compile group: 'io.micrometer', name: 'micrometer-core', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-graphite', version: '1.0.0-rc.5'
+    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
+}
+buildscript {
+    ext.kotlin_version = '1.2.10'
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+    }
+}
+apply plugin: 'kotlin'
+repositories {
+    mavenCentral()
+}
+compileKotlin {
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
+}
+compileTestKotlin {
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
 }
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
new file mode 100644
index 0000000..bb95d6a
--- /dev/null
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
@@ -0,0 +1,69 @@
+package org.apache.geode.internal.protocol.protobuf.statistics
+
+import com.netflix.spectator.atlas.AtlasConfig
+import io.micrometer.atlas.AtlasMeterRegistry
+import io.micrometer.core.instrument.Clock
+import io.micrometer.core.instrument.MeterRegistry
+import io.micrometer.core.instrument.composite.CompositeMeterRegistry
+import io.micrometer.core.instrument.util.HierarchicalNameMapper
+import io.micrometer.graphite.GraphiteConfig
+import io.micrometer.graphite.GraphiteMeterRegistry
+import io.micrometer.influx.InfluxConfig
+import io.micrometer.influx.InfluxMeterRegistry
+import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics
+import java.time.Duration
+
+class MicrometerClientStatsImpl : ProtocolClientStatistics {
+    private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
+        override fun step(): Duration = Duration.ofSeconds(10)
+        override fun db(): String = "mydb"
+        override fun get(k: String): String? = null
+        override fun uri(): String = "http://localhost:8086"
+    }, Clock.SYSTEM)
+
+    private val atlasMetrics: MeterRegistry = AtlasMeterRegistry(object : AtlasConfig {
+        override fun get(k: String?): String? = null
+        override fun enabled(): Boolean = true
+        override fun uri(): String = "http://localhost:7101/api/v1/publish"
+        override fun step(): Duration = Duration.ofSeconds(10)
+    }, Clock.SYSTEM)
+
+    private val metrics = CompositeMeterRegistry(Clock.SYSTEM)
+
+    init {
+        metrics.add(influxMetrics)
+        metrics.add(atlasMetrics)
+    }
+
+    val clientConnectedCounter = metrics.counter("clientConnected")
+    val messageReceivedCounter = metrics.counter("messageReceived")
+    val messageSentCounter = metrics.counter("messageSent")
+    val authorizationViolationsCounter = metrics.counter("authorizationViolations")
+    val authenticationFailureCounter = metrics.counter("authenticationFailures")
+
+    override fun clientConnected() {
+        System.err.println("Increment Counter")
+        clientConnectedCounter.increment()
+    }
+
+    override fun clientDisconnected() {
+        System.err.println("Decrement Counter")
+        clientConnectedCounter.increment(-1.0)
+    }
+
+    override fun messageReceived(bytes: Int) {
+        messageReceivedCounter.increment(bytes.toDouble())
+    }
+
+    override fun messageSent(bytes: Int) {
+        messageSentCounter.increment(bytes.toDouble())
+    }
+
+    override fun incAuthorizationViolations() {
+        authorizationViolationsCounter.increment()
+    }
+
+    override fun incAuthenticationFailures() {
+        authenticationFailureCounter.increment()
+    }
+}
\ No newline at end of file
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
index bfc2048..58637a6 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
@@ -24,6 +24,10 @@ import org.apache.geode.internal.protocol.protobuf.statistics.ClientStatistics;
 import org.apache.geode.internal.protocol.protobuf.statistics.NoOpStatistics;
 import org.apache.geode.internal.protocol.protobuf.statistics.ProtobufClientStatistics;
 import org.apache.geode.internal.protocol.protobuf.v1.state.ProtobufConnectionHandshakeStateProcessor;
+import org.apache.geode.internal.protocol.protobuf.Handshake;
+import org.apache.geode.internal.protocol.protobuf.statistics.MicrometerClientStatsImpl;
+import org.apache.geode.internal.protocol.statistics.NoOpStatistics;
+import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics;
 import org.apache.geode.internal.security.SecurityService;
 
 public class ProtobufProtocolService implements ClientProtocolService {
@@ -33,7 +37,8 @@ public class ProtobufProtocolService implements ClientProtocolService {
   @Override
   public synchronized void initializeStatistics(String statisticsName, StatisticsFactory factory) {
     if (statistics == null) {
-      statistics = new ProtobufClientStatistics(factory, statisticsName);
+      // statistics = new ProtobufClientStatisticsImpl(factory, statisticsName);
+      statistics = new MicrometerClientStatsImpl();
     }
   }
 
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
index 4859837..cac6ba3 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
@@ -38,6 +38,7 @@ import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
 
 import org.awaitility.Awaitility;
 import org.junit.After;
@@ -80,16 +81,16 @@ public class CacheOperationsJUnitTest {
   private final String TEST_VALUE = "testValue";
   private final String TEST_REGION = "testRegion";
 
-  private final String DEFAULT_STORE = "default.keystore";
-  private final String SSL_PROTOCOLS = "any";
-  private final String SSL_CIPHERS = "any";
+    private final String DEFAULT_STORE = "default.keystore";
+    private final String SSL_PROTOCOLS = "any";
+    private final String SSL_CIPHERS = "any";
 
-  private final String TEST_MULTIOP_KEY1 = "multiopKey1";
-  private final String TEST_MULTIOP_KEY2 = "multiopKey2";
-  private final String TEST_MULTIOP_KEY3 = "multiopKey3";
-  private final String TEST_MULTIOP_VALUE1 = "multiopValue1";
-  private final String TEST_MULTIOP_VALUE2 = "multiopValue2";
-  private final String TEST_MULTIOP_VALUE3 = "multiopValue3";
+    private final String TEST_MULTIOP_KEY1 = "multiopKey1";
+    private final String TEST_MULTIOP_KEY2 = "multiopKey2";
+    private final String TEST_MULTIOP_KEY3 = "multiopKey3";
+    private final String TEST_MULTIOP_VALUE1 = "multiopValue1";
+    private final String TEST_MULTIOP_VALUE2 = "multiopValue2";
+    private final String TEST_MULTIOP_VALUE3 = "multiopValue3";
 
   private Cache cache;
   private int cacheServerPort;
@@ -97,105 +98,111 @@ public class CacheOperationsJUnitTest {
   private Socket socket;
   private OutputStream outputStream;
 
-  @Rule
-  public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
+    @Rule
+    public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
 
   @Rule
   public TestName testName = new TestName();
   private ProtobufProtocolSerializer protobufProtocolSerializer;
 
-  @Before
-  public void setup() throws Exception {
-    // Test names prefixed with useSSL_ will setup the cache and socket to use SSL transport
-    boolean useSSL = testName.getMethodName().startsWith("useSSL_");
+    @Before
+    public void setup() throws Exception {
+        // Test names prefixed with useSSL_ will setup the cache and socket to use SSL transport
+        boolean useSSL = testName.getMethodName().startsWith("useSSL_");
 
-    Properties properties = new Properties();
-    if (useSSL) {
-      updatePropertiesForSSLCache(properties);
-    }
+        Properties properties = new Properties();
+        if (useSSL) {
+            updatePropertiesForSSLCache(properties);
+        }
 
-    CacheFactory cacheFactory = new CacheFactory(properties);
-    cacheFactory.set(ConfigurationProperties.MCAST_PORT, "0");
-    cacheFactory.set(ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION, "false");
-    cacheFactory.set(ConfigurationProperties.USE_CLUSTER_CONFIGURATION, "false");
-    cache = cacheFactory.create();
+        CacheFactory cacheFactory = new CacheFactory(properties);
+        cacheFactory.set(ConfigurationProperties.MCAST_PORT, "0");
+        cacheFactory.set(ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION, "false");
+        cacheFactory.set(ConfigurationProperties.USE_CLUSTER_CONFIGURATION, "false");
+        cache = cacheFactory.create();
 
-    CacheServer cacheServer = cache.addCacheServer();
-    cacheServerPort = AvailablePortHelper.getRandomAvailableTCPPort();
-    cacheServer.setPort(cacheServerPort);
-    cacheServer.start();
+        CacheServer cacheServer = cache.addCacheServer();
+        cacheServerPort = AvailablePortHelper.getRandomAvailableTCPPort();
+        cacheServer.setPort(cacheServerPort);
+        cacheServer.start();
 
-    RegionFactory<Object, Object> regionFactory = cache.createRegionFactory();
-    regionFactory.create(TEST_REGION);
+        RegionFactory<Object, Object> regionFactory = cache.createRegionFactory();
+        regionFactory.create(TEST_REGION);
 
-    System.setProperty("geode.feature-protobuf-protocol", "true");
+        System.setProperty("geode.feature-protobuf-protocol", "true");
 
-    if (useSSL) {
-      socket = getSSLSocket();
-    } else {
-      socket = new Socket("localhost", cacheServerPort);
-    }
-    Awaitility.await().atMost(5, TimeUnit.SECONDS).until(socket::isConnected);
-    outputStream = socket.getOutputStream();
+        if (useSSL) {
+            socket = getSSLSocket();
+        } else {
+            socket = new Socket("localhost", cacheServerPort);
+        }
+        Awaitility.await().atMost(5, TimeUnit.SECONDS).until(socket::isConnected);
+        outputStream = socket.getOutputStream();
 
-    MessageUtil.performAndVerifyHandshake(socket);
+        MessageUtil.performAndVerifyHandshake(socket);
 
     serializationService = new ProtobufSerializationService();
     protobufProtocolSerializer = new ProtobufProtocolSerializer();
   }
 
-  @After
-  public void cleanup() throws IOException {
-    cache.close();
-    socket.close();
-    SocketCreatorFactory.close();
-  }
+    @After
+    public void cleanup() throws IOException {
+        cache.close();
+        socket.close();
+        SocketCreatorFactory.close();
+    }
 
-  @Test
-  public void testNewProtocolWithMultikeyOperations() throws Exception {
-    System.setProperty("geode.feature-protobuf-protocol", "true");
+    private static String randomLengthString() {
+        Random random = new Random();
+        StringBuffer stringBuffer = new StringBuffer();
+        int length = (int) (random.nextInt(1024000)*(1.75*random.nextInt(10)));
+        for (int i = 0; i < (length); i++) {
+            stringBuffer.append("a");
+        }
+        return stringBuffer.toString();
+    }
 
-    ProtobufProtocolSerializer protobufProtocolSerializer = new ProtobufProtocolSerializer();
-    Set<BasicTypes.Entry> putEntries = new HashSet<>();
-    putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY1,
-        TEST_MULTIOP_VALUE1));
-    putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY2,
-        TEST_MULTIOP_VALUE2));
-    putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY3,
-        TEST_MULTIOP_VALUE3));
-    ClientProtocol.Message putAllMessage =
-        ProtobufRequestUtilities.createPutAllRequest(TEST_REGION, putEntries);
-    protobufProtocolSerializer.serialize(putAllMessage, outputStream);
-    validatePutAllResponse(socket, protobufProtocolSerializer, new HashSet<>());
-
-    Set<BasicTypes.EncodedValue> getEntries = new HashSet<>();
-    getEntries.add(serializationService.encode(TEST_MULTIOP_KEY1));
-    getEntries.add(serializationService.encode(TEST_MULTIOP_KEY2));
-    getEntries.add(serializationService.encode(TEST_MULTIOP_KEY3));
-
-    RegionAPI.GetAllRequest getAllRequest =
-        ProtobufRequestUtilities.createGetAllRequest(TEST_REGION, getEntries);
-
-    ClientProtocol.Message getAllMessage =
-        ClientProtocol.Message.newBuilder().setGetAllRequest(getAllRequest).build();
-    protobufProtocolSerializer.serialize(getAllMessage, outputStream);
-    validateGetAllResponse(socket, protobufProtocolSerializer);
-
-    RegionAPI.KeySetRequest keySetRequest =
-        RegionAPI.KeySetRequest.newBuilder().setRegionName(TEST_REGION).build();
-    ClientProtocol.Message keySetMessage =
-        ClientProtocol.Message.newBuilder().setKeySetRequest(keySetRequest).build();
-    protobufProtocolSerializer.serialize(keySetMessage, outputStream);
-    validateKeySetResponse(socket, protobufProtocolSerializer);
-  }
+    @Test
+    public void testNewProtocolWithMultikeyOperations() throws Exception {
+        System.setProperty("geode.feature-protobuf-protocol", "true");
+        for (int i = 0; i < 10000000; i++) {
+
+            ProtobufProtocolSerializer protobufProtocolSerializer = new ProtobufProtocolSerializer();
+            Set<BasicTypes.Entry> putEntries = new HashSet<>();
+            putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY1,
+                    randomLengthString()));
+            putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY2,
+                    randomLengthString()));
+            putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY3,
+                    randomLengthString()));
+            ClientProtocol.Message putAllMessage = ProtobufUtilities.createProtobufMessage(
+                    ProtobufRequestUtilities.createPutAllRequest(TEST_REGION, putEntries));
+            protobufProtocolSerializer.serialize(putAllMessage, outputStream);
+            validatePutAllResponse(socket, protobufProtocolSerializer, new HashSet<>());
+
+            Set<BasicTypes.EncodedValue> getEntries = new HashSet<>();
+            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY1));
+//            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY2));
+//            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY3));
+
+            RegionAPI.GetAllRequest getAllRequest =
+                    ProtobufRequestUtilities.createGetAllRequest(TEST_REGION, getEntries);
+
+            ClientProtocol.Message getAllMessage = ProtobufUtilities.createProtobufMessage(
+                    ProtobufUtilities.createProtobufRequestWithGetAllRequest(getAllRequest));
+            Thread.sleep(100);
+            protobufProtocolSerializer.serialize(getAllMessage, outputStream);
+            validateGetAllResponse(socket, protobufProtocolSerializer);
+        }
+    }
 
-  @Test
-  public void multiKeyOperationErrorsWithClasscastException() throws Exception {
-    RegionFactory<Float, Object> regionFactory = cache.createRegionFactory();
-    regionFactory.setKeyConstraint(Float.class);
-    String regionName = "constraintRegion";
-    regionFactory.create(regionName);
-    System.setProperty("geode.feature-protobuf-protocol", "true");
+    @Test
+    public void multiKeyOperationErrorsWithClasscastException() throws Exception {
+        RegionFactory<Float, Object> regionFactory = cache.createRegionFactory();
+        regionFactory.setKeyConstraint(Float.class);
+        String regionName = "constraintRegion";
+        regionFactory.create(regionName);
+        System.setProperty("geode.feature-protobuf-protocol", "true");
 
     Set<BasicTypes.Entry> putEntries = new HashSet<>();
     putEntries.add(ProtobufUtilities.createEntry(serializationService, 2.2f, TEST_MULTIOP_VALUE1));
@@ -212,10 +219,10 @@ public class CacheOperationsJUnitTest {
     expectedFailedKeys.add(serializationService.encode(TEST_MULTIOP_KEY3));
     validatePutAllResponse(socket, protobufProtocolSerializer, expectedFailedKeys);
 
-    ClientProtocol.Message getMessage =
-        MessageUtil.makeGetRequestMessage(serializationService, 2.2f, regionName);
-    protobufProtocolSerializer.serialize(getMessage, outputStream);
-    validateGetResponse(socket, protobufProtocolSerializer, TEST_MULTIOP_VALUE1);
+        ClientProtocol.Message getMessage =
+                MessageUtil.makeGetRequestMessage(serializationService, 2.2f, regionName);
+        protobufProtocolSerializer.serialize(getMessage, outputStream);
+        validateGetResponse(socket, protobufProtocolSerializer, TEST_MULTIOP_VALUE1);
 
     ClientProtocol.Message removeMessage = ProtobufRequestUtilities.createRemoveRequest(TEST_REGION,
         serializationService.encode(TEST_KEY));
@@ -234,8 +241,8 @@ public class CacheOperationsJUnitTest {
     assertEquals(ClientProtocol.Message.MessageTypeCase.GETRESPONSE, response.getMessageTypeCase());
     RegionAPI.GetResponse getResponse = response.getGetResponse();
 
-    assertFalse(getResponse.hasResult());
-  }
+        assertFalse(getResponse.hasResult());
+    }
 
   @Test
   public void testNewProtocolGetRegionNamesCallSucceeds() throws Exception {
@@ -298,11 +305,11 @@ public class CacheOperationsJUnitTest {
         response.getMessageTypeCase());
     assertEquals(expectedFailedKeys.size(), response.getPutAllResponse().getFailedKeysCount());
 
-    Stream<BasicTypes.EncodedValue> failedKeyStream = response.getPutAllResponse()
-        .getFailedKeysList().stream().map(BasicTypes.KeyedError::getKey);
-    assertTrue(failedKeyStream.allMatch(expectedFailedKeys::contains));
+//        Stream<BasicTypes.EncodedValue> failedKeyStream = response.getPutAllResponse()
+//                .getFailedKeysList().stream().map(BasicTypes.KeyedError::getKey);
+//        assertTrue(failedKeyStream.allMatch(expectedFailedKeys::contains));
 
-  }
+    }
 
   private void validateGetAllResponse(Socket socket,
       ProtobufProtocolSerializer protobufProtocolSerializer)
@@ -339,7 +346,6 @@ public class CacheOperationsJUnitTest {
           Assert.fail("Unexpected key found by getAll: " + key);
       }
     }
-  }
 
   private void validateKeySetResponse(Socket socket,
       ProtobufProtocolSerializer protobufProtocolSerializer) throws Exception {
@@ -363,36 +369,36 @@ public class CacheOperationsJUnitTest {
         response.getMessageTypeCase());
   }
 
-  private void updatePropertiesForSSLCache(Properties properties) {
-    String keyStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
-    String trustStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+    private void updatePropertiesForSSLCache(Properties properties) {
+        String keyStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+        String trustStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
 
-    properties.put(SSL_ENABLED_COMPONENTS, "server");
-    properties.put(ConfigurationProperties.SSL_PROTOCOLS, SSL_PROTOCOLS);
-    properties.put(ConfigurationProperties.SSL_CIPHERS, SSL_CIPHERS);
-    properties.put(SSL_REQUIRE_AUTHENTICATION, String.valueOf(true));
+        properties.put(SSL_ENABLED_COMPONENTS, "server");
+        properties.put(ConfigurationProperties.SSL_PROTOCOLS, SSL_PROTOCOLS);
+        properties.put(ConfigurationProperties.SSL_CIPHERS, SSL_CIPHERS);
+        properties.put(SSL_REQUIRE_AUTHENTICATION, String.valueOf(true));
 
-    properties.put(SSL_KEYSTORE_TYPE, "jks");
-    properties.put(SSL_KEYSTORE, keyStore);
-    properties.put(SSL_KEYSTORE_PASSWORD, "password");
-    properties.put(SSL_TRUSTSTORE, trustStore);
-    properties.put(SSL_TRUSTSTORE_PASSWORD, "password");
-  }
+        properties.put(SSL_KEYSTORE_TYPE, "jks");
+        properties.put(SSL_KEYSTORE, keyStore);
+        properties.put(SSL_KEYSTORE_PASSWORD, "password");
+        properties.put(SSL_TRUSTSTORE, trustStore);
+        properties.put(SSL_TRUSTSTORE_PASSWORD, "password");
+    }
 
-  private Socket getSSLSocket() throws IOException {
-    String keyStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
-    String trustStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
-
-    SSLConfig sslConfig = new SSLConfig();
-    sslConfig.setEnabled(true);
-    sslConfig.setCiphers(SSL_CIPHERS);
-    sslConfig.setProtocols(SSL_PROTOCOLS);
-    sslConfig.setRequireAuth(true);
-    sslConfig.setKeystoreType("jks");
-    sslConfig.setKeystore(keyStorePath);
-    sslConfig.setKeystorePassword("password");
-    sslConfig.setTruststore(trustStorePath);
-    sslConfig.setKeystorePassword("password");
+    private Socket getSSLSocket() throws IOException {
+        String keyStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+        String trustStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+
+        SSLConfig sslConfig = new SSLConfig();
+        sslConfig.setEnabled(true);
+        sslConfig.setCiphers(SSL_CIPHERS);
+        sslConfig.setProtocols(SSL_PROTOCOLS);
+        sslConfig.setRequireAuth(true);
+        sslConfig.setKeystoreType("jks");
+        sslConfig.setKeystore(keyStorePath);
+        sslConfig.setKeystorePassword("password");
+        sslConfig.setTruststore(trustStorePath);
+        sslConfig.setKeystorePassword("password");
 
     SocketCreator socketCreator = new SocketCreator(sslConfig);
     return socketCreator.connectForClient("localhost", cacheServerPort, 5000);

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.

[geode] 02/05: Changing counter to gauge

Posted by ud...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 6859a2366b8062e1767eb9ae68bc6e83f78c79ff
Author: Udo Kohlmeyer <uk...@pivotal.io>
AuthorDate: Wed Jan 3 09:49:54 2018 -0800

    Changing counter to gauge
---
 .../statistics/MicrometerClientStatsImpl.kt        | 31 ++++++++++------------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
index bb95d6a..b726ed3 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
@@ -1,19 +1,18 @@
 package org.apache.geode.internal.protocol.protobuf.statistics
 
-import com.netflix.spectator.atlas.AtlasConfig
-import io.micrometer.atlas.AtlasMeterRegistry
 import io.micrometer.core.instrument.Clock
 import io.micrometer.core.instrument.MeterRegistry
 import io.micrometer.core.instrument.composite.CompositeMeterRegistry
-import io.micrometer.core.instrument.util.HierarchicalNameMapper
-import io.micrometer.graphite.GraphiteConfig
-import io.micrometer.graphite.GraphiteMeterRegistry
 import io.micrometer.influx.InfluxConfig
 import io.micrometer.influx.InfluxMeterRegistry
 import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics
 import java.time.Duration
+import java.util.concurrent.atomic.AtomicInteger
 
 class MicrometerClientStatsImpl : ProtocolClientStatistics {
+
+    private val clientsConnected = AtomicInteger(0)
+
     private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
         override fun step(): Duration = Duration.ofSeconds(10)
         override fun db(): String = "mydb"
@@ -21,34 +20,32 @@ class MicrometerClientStatsImpl : ProtocolClientStatistics {
         override fun uri(): String = "http://localhost:8086"
     }, Clock.SYSTEM)
 
-    private val atlasMetrics: MeterRegistry = AtlasMeterRegistry(object : AtlasConfig {
-        override fun get(k: String?): String? = null
-        override fun enabled(): Boolean = true
-        override fun uri(): String = "http://localhost:7101/api/v1/publish"
-        override fun step(): Duration = Duration.ofSeconds(10)
-    }, Clock.SYSTEM)
+//    private val atlasMetrics: MeterRegistry = AtlasMeterRegistry(object : AtlasConfig {
+//        override fun get(k: String?): String? = null
+//        override fun enabled(): Boolean = true
+//        override fun uri(): String = "http://localhost:7101/api/v1/publish"
+//        override fun step(): Duration = Duration.ofSeconds(10)
+//    }, Clock.SYSTEM)
 
     private val metrics = CompositeMeterRegistry(Clock.SYSTEM)
 
     init {
         metrics.add(influxMetrics)
-        metrics.add(atlasMetrics)
+//        metrics.add(atlasMetrics)
     }
 
-    val clientConnectedCounter = metrics.counter("clientConnected")
+    val clientConnectedCounter = metrics.gauge("clientConnected", clientsConnected)
     val messageReceivedCounter = metrics.counter("messageReceived")
     val messageSentCounter = metrics.counter("messageSent")
     val authorizationViolationsCounter = metrics.counter("authorizationViolations")
     val authenticationFailureCounter = metrics.counter("authenticationFailures")
 
     override fun clientConnected() {
-        System.err.println("Increment Counter")
-        clientConnectedCounter.increment()
+        clientsConnected.incrementAndGet()
     }
 
     override fun clientDisconnected() {
-        System.err.println("Decrement Counter")
-        clientConnectedCounter.increment(-1.0)
+        clientsConnected.decrementAndGet()
     }
 
     override fun messageReceived(bytes: Int) {

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.

[geode] 04/05: Adding Micrometer to PartitionedRegionStats

Posted by ud...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit df27f26facf173f66d1790a2069128351b43e59b
Author: Udo Kohlmeyer <uk...@pivotal.io>
AuthorDate: Thu Jan 11 17:13:51 2018 -0800

    Adding Micrometer to PartitionedRegionStats
---
 .../main/java/org/apache/geode/admin/package.html  |    2 +-
 .../internal/cache/MicroMeterRegistryFactory.kt    |    8 +
 .../cache/MicrometerPartitionRegionStats.kt        |  428 +++----
 .../apache/geode/internal/cache/MicrometerStats.kt |   19 +-
 .../internal/cache/PRHARedundancyProvider.java     |    7 +-
 .../geode/internal/cache/PartitionedRegion.java    |   31 +-
 .../internal/cache/PartitionedRegionDataStore.java |    2 +-
 .../internal/cache/PartitionedRegionStats.java     | 1264 ++------------------
 .../internal/cache/PartitionedRegionStatsImpl.java |  402 ++-----
 .../cache/TimedMicrometerPartitionedRegionStats.kt |    9 +-
 .../cache/partitioned/CreateBucketMessage.java     |    2 +-
 .../partitioned/CreateMissingBucketsTask.java      |    3 +-
 .../cache/partitioned/FetchEntryMessage.java       |    7 +-
 .../internal/cache/tx/PartitionedTXRegionStub.java |    4 +-
 .../org/apache/geode/management/MemberMXBean.java  |    4 +-
 .../internal/beans/MemberMBeanBridge.java          |    6 +-
 .../internal/cli/commands/ShowMetricsCommand.java  |   18 +-
 .../management/internal/cli/i18n/CliStrings.java   |   16 +-
 .../management/OffHeapManagementDUnitTest.java     |    2 +-
 .../bean/stats/MemberLevelStatsJUnitTest.java      |    7 +-
 .../bean/stats/RegionStatsJUnitTest.java           |    3 +-
 .../ShowMetricsCommandIntegrationTest.java         |   24 +-
 .../cli/commands/ShowMetricsDUnitTest.java         |   12 +-
 .../cli/commands/ShowMetricsJUnitTest.java         |    6 +-
 .../management/internal/security/TestCommand.java  |    2 +-
 .../cli/commands/golden-help-offline.properties    |   18 +-
 .../cli/commands/golden-help-online.properties     |    4 +-
 .../statistics/MicrometerClientStatsImpl.kt        |   38 +-
 28 files changed, 503 insertions(+), 1845 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/admin/package.html b/geode-core/src/main/java/org/apache/geode/admin/package.html
index 29ce994..79e4b2b 100644
--- a/geode-core/src/main/java/org/apache/geode/admin/package.html
+++ b/geode-core/src/main/java/org/apache/geode/admin/package.html
@@ -62,7 +62,7 @@ indicates that a GemFire component is unhealthy and needs immediate
 attention.</P>
 
 <P>Because each GemFire application has its own definition of what it
-means to be "healthy", the metrics that are used to determine health
+means to be "healthy", the meterRegistry that are used to determine health
 are configurable.  {@link
 org.apache.geode.admin.GemFireHealthConfig} provides methods for
 configuring how the health of {@linkplain
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicroMeterRegistryFactory.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicroMeterRegistryFactory.kt
new file mode 100644
index 0000000..96dfa4e
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicroMeterRegistryFactory.kt
@@ -0,0 +1,8 @@
+package org.apache.geode.internal.cache
+
+import io.micrometer.core.instrument.MeterRegistry
+
+object MicroMeterRegistryFactory {
+    private val meterRegistry = MicrometerStats().meterRegistry
+    fun getMeterRegistry(): MeterRegistry = meterRegistry
+}
\ No newline at end of file
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
index dcb695d..0ddf647 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
@@ -1,15 +1,48 @@
 package org.apache.geode.internal.cache
 
+import com.netflix.spectator.impl.AtomicDouble
 import io.micrometer.core.instrument.Counter
 import io.micrometer.core.instrument.Gauge
+import io.micrometer.core.instrument.MeterRegistry
 import io.micrometer.core.instrument.Tag
+import org.apache.geode.Statistics
+import java.lang.Number
 import java.util.concurrent.atomic.AtomicInteger
 
-open class MicrometerPartitionRegionStats(val regionName: String) : MicrometerStats() {
+open class MicrometerPartitionRegionStats(val meterRegistry: MeterRegistry, val regionName: String) : PartitionedRegionStats {
+    override fun getStats(): Statistics? {
+        //we do nothing here... because we don't need to
+        return null;
+    }
 
     @Suppress("PropertyName")
     protected val PARTITIONED_REGION = "PartitionedRegion"
+    private val tags = listOf<Tag>(Tag.of("region", regionName), Tag.of("regionType", PARTITIONED_REGION))
+
+    private fun constructCounterForMetric(metricName: String): Counter {
+        return meterRegistry.counter("${metricName}", tags)
+    }
+
+    private fun <T> constructGaugeForMetric(metricName: String, atomic: T, function: (T) -> Double): Gauge = Gauge.builder(metricName, atomic, function).tags(tags).register(meterRegistry)
+
+
+    private fun incrementAtomic(atomic: AtomicInteger, value: Int) {
+        atomic.addAndGet(value)
+    }
+
+    private fun incrementAtomic(atomic: AtomicDouble, value: Double) {
+        atomic.addAndGet(value)
+    }
+
+    //Atomic values to track
+    private val bucketCountAtomic = AtomicInteger(0)
+    private val lowBucketCountAtomic = AtomicInteger(0)
+    private val numberCopiesBucketCountAtomic = AtomicInteger(0)
+    private val totalNumberOfBucketsAtomic = AtomicInteger(0)
+    private val primaryBucketCountAtomic = AtomicInteger(0)
+    private val numberVolunteeringThreadsAtomic = AtomicInteger(0)
 
+    //Micrometer Meters
     private val putCounter = constructCounterForMetric("put")
     private val putAllCounter = constructCounterForMetric("putAll")
     private val createCounter = constructCounterForMetric("create")
@@ -21,360 +54,243 @@ open class MicrometerPartitionRegionStats(val regionName: String) : MicrometerSt
     private val containValueForKeyCounter = constructCounterForMetric("containValueForKey")
     private val containsKeyValueRetriesCounter = constructCounterForMetric("containsKeyValueRetries")
     private val containsKeyValueOpsRetriedCounter = constructCounterForMetric("containsKeyValueOpsRetried")
-    private val incInvalidateRetriesCounter = constructCounterForMetric("incInvalidateRetries")
-    private val incInvalidateOpsRetriedCounter = constructCounterForMetric("incInvalidateOpsRetried")
-    private val incDestroyRetriesCounter = constructCounterForMetric("incDestroyRetries")
-    private val incDestroyOpsRetriedCounter = constructCounterForMetric("incDestroyOpsRetried")
-    private val incPutRetriesCounter = constructCounterForMetric("incPutRetries")
-    private val incPutOpsRetriedCounter = constructCounterForMetric("incPutOpsRetried")
-    private val incGetOpsRetriedCounter = constructCounterForMetric("incGetOpsRetried")
-    private val incGetRetriesCounter = constructCounterForMetric("incGetRetries")
-    private val incCreateOpsRetriedCounter = constructCounterForMetric("incCreateOpsRetried")
-    private val incCreateRetriesCounter = constructCounterForMetric("incCreateRetries")
-    private val incPreferredReadLocalCounter = constructCounterForMetric("incPreferredReadLocal")
-    private val incPreferredReadRemoteCounter = constructCounterForMetric("incPreferredReadRemote")
-    private val incPutAllRetriesCounter = constructCounterForMetric("incPutAllRetries")
-    private val incPutAllMsgsRetriedCounter = constructCounterForMetric("incPutAllMsgsRetried")
-    private val incRemoveAllRetriesCounter = constructCounterForMetric("incRemoveAllRetries")
-    private val incRemoveAllMsgsRetriedCounter = constructCounterForMetric("incRemoveAllMsgsRetried")
-    private val incPartitionMessagesSentCounter = constructCounterForMetric("incPartitionMessagesSent")
-    private val incBucketCountCounter = constructCounterForMetric("incBucketCount")
-
-    private fun constructCounterForMetric(metricName: String): Counter =
-            metrics.counter("${metricName}Counter", regionName, PARTITIONED_REGION)
-
-    private fun constructAtomicIntegerToMonitor(metricName: String): AtomicInteger =
-            metrics.gauge("${metricName}Gauge",listOf(regionName,PARTITIONED_REGION), AtomicInteger(0),AtomicInteger::get)
-
-    open fun endPut(startTimeInNanos: Long) = putCounter.increment()
-    open fun endPutAll(startTimeInNanos: Long) = putAllCounter.increment()
-    open fun endCreate(startTimeInNanos: Long) = createCounter.increment()
-    open fun endRemoveAll(startTimeInNanos: Long) = removeAllCounter.increment()
-    open fun endGet(startTimeInNanos: Long) = getCounter.increment()
-    open fun endDestroy(startTimeInNanos: Long) = destroyCounter.increment()
-    open fun endInvalidate(startTimeInNanos: Long) = invalidateCounter.increment()
-    open fun endContainsKey(startTimeInNanos: Long) = containsKeyCounter.increment()
-    open fun endContainsValueForKey(startTimeInNanos: Long) = containValueForKeyCounter.increment()
-    fun incContainsKeyValueRetries() = containsKeyValueRetriesCounter.increment()
-    fun incContainsKeyValueOpsRetried() = containsKeyValueOpsRetriedCounter.increment()
-    fun incInvalidateRetries() = incInvalidateRetriesCounter.increment()
-    fun incInvalidateOpsRetried() = incInvalidateOpsRetriedCounter.increment()
-    fun incDestroyRetries() = incDestroyRetriesCounter.increment()
-    fun incDestroyOpsRetried() = incDestroyOpsRetriedCounter.increment()
-    fun incPutRetries() = incPutRetriesCounter.increment()
-    fun incPutOpsRetried() = incPutOpsRetriedCounter.increment()
-    fun incGetOpsRetried() = incGetOpsRetriedCounter.increment()
-    fun incGetRetries() = incGetRetriesCounter.increment()
-    fun incCreateOpsRetried() = incCreateOpsRetriedCounter.increment()
-    fun incCreateRetries() = incCreateRetriesCounter.increment()
-    fun incPreferredReadLocal() = incPreferredReadLocalCounter.increment()
-    fun incPreferredReadRemote() = incPreferredReadRemoteCounter.increment()
-    fun incPutAllRetries() = incPutAllRetriesCounter.increment()
-    fun incPutAllMsgsRetried() = incPutAllMsgsRetriedCounter.increment()
-    fun incRemoveAllRetries() = incRemoveAllRetriesCounter.increment()
-    fun incRemoveAllMsgsRetried() = incRemoveAllMsgsRetriedCounter.increment()
-    fun incPartitionMessagesSent() = incPartitionMessagesSentCounter.increment()
-    fun incBucketCount(bucketCount: Int) = incBucketCountGauge.increment(bucketCount.toDouble())
-    fun incLowRedundancyBucketCount(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    private val invalidateRetriesCounter = constructCounterForMetric("invalidateRetries")
+    private val invalidateOpsRetriedCounter = constructCounterForMetric("invalidateOpsRetried")
+    private val destroyRetriesCounter = constructCounterForMetric("destroyRetries")
+    private val destroyOpsRetriedCounter = constructCounterForMetric("destroyOpsRetried")
+    private val putRetriesCounter = constructCounterForMetric("putRetries")
+    private val putOpsRetriedCounter = constructCounterForMetric("putOpsRetried")
+    private val getOpsRetriedCounter = constructCounterForMetric("getOpsRetried")
+    private val getRetriesCounter = constructCounterForMetric("getRetries")
+    private val createOpsRetriedCounter = constructCounterForMetric("createOpsRetried")
+    private val createRetriesCounter = constructCounterForMetric("createRetries")
+    private val preferredReadLocalCounter = constructCounterForMetric("preferredReadLocal")
+    private val preferredReadRemoteCounter = constructCounterForMetric("preferredReadRemote")
+    private val putAllRetriesCounter = constructCounterForMetric("putAllRetries")
+    private val putAllMsgsRetriedCounter = constructCounterForMetric("putAllMsgsRetried")
+    private val removeAllRetriesCounter = constructCounterForMetric("removeAllRetries")
+    private val removeAllMsgsRetriedCounter = constructCounterForMetric("removeAllMsgsRetried")
+    private val partitionMessagesSentCounter = constructCounterForMetric("partitionMessagesSent")
+    private val prMetaDataSentCounter = constructCounterForMetric("prMetaDataSentCounter")
+    private val bucketCountGauge = constructGaugeForMetric("bucketCount", bucketCountAtomic, { it.get().toDouble() })
+    private val lowBucketCountGauge = constructGaugeForMetric("lowBucketCount", lowBucketCountAtomic, { it.get().toDouble() })
+    private val numberCopiesBucketCountGauge = constructGaugeForMetric("numberCopiesBucketCount", numberCopiesBucketCountAtomic, { it.get().toDouble() })
+    private val totalNumberOfBucketsGauge = constructGaugeForMetric("totalNumberOfBuckets", totalNumberOfBucketsAtomic, { it.get().toDouble() })
+    private val primaryBucketCountGauge = constructGaugeForMetric("primaryBucketCount", primaryBucketCountAtomic, { it.get().toDouble() })
+    private val numberVolunteeringThreadsGauge = constructGaugeForMetric("numberVolunteeringThreads", numberVolunteeringThreadsAtomic, { it.get().toDouble() })
 
-    fun incNoCopiesBucketCount(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    override fun close() {
+        //Noop
     }
 
-    fun incTotalNumBuckets(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endPut(startTimeInNanos: Long) = putCounter.increment()
+    override fun endPutAll(startTimeInNanos: Long) = putAllCounter.increment()
+    override fun endCreate(startTimeInNanos: Long) = createCounter.increment()
+    override fun endRemoveAll(startTimeInNanos: Long) = removeAllCounter.increment()
+    override fun endGet(startTimeInNanos: Long) = getCounter.increment()
+    override fun endDestroy(startTimeInNanos: Long) = destroyCounter.increment()
+    override fun endInvalidate(startTimeInNanos: Long) = invalidateCounter.increment()
+    override fun endContainsKey(startTimeInNanos: Long) = containsKeyCounter.increment()
+    override fun endContainsValueForKey(startTimeInNanos: Long) = containValueForKeyCounter.increment()
+    override fun incContainsKeyValueRetries() = containsKeyValueRetriesCounter.increment()
+    override fun incContainsKeyValueOpsRetried() = containsKeyValueOpsRetriedCounter.increment()
+    override fun incInvalidateRetries() = invalidateRetriesCounter.increment()
+    override fun incInvalidateOpsRetried() = invalidateOpsRetriedCounter.increment()
+    override fun incDestroyRetries() = destroyRetriesCounter.increment()
+    override fun incDestroyOpsRetried() = destroyOpsRetriedCounter.increment()
+    override fun incPutRetries() = putRetriesCounter.increment()
+    override fun incPutOpsRetried() = putOpsRetriedCounter.increment()
+    override fun incGetOpsRetried() = getOpsRetriedCounter.increment()
+    override fun incGetRetries() = getRetriesCounter.increment()
+    override fun incCreateOpsRetried() = createOpsRetriedCounter.increment()
+    override fun incCreateRetries() = createRetriesCounter.increment()
+    override fun incPreferredReadLocal() = preferredReadLocalCounter.increment()
+    override fun incPreferredReadRemote() = preferredReadRemoteCounter.increment()
+    override fun incPutAllRetries() = putAllRetriesCounter.increment()
+    override fun incPutAllMsgsRetried() = putAllMsgsRetriedCounter.increment()
+    override fun incRemoveAllRetries() = removeAllRetriesCounter.increment()
+    override fun incRemoveAllMsgsRetried() = removeAllMsgsRetriedCounter.increment()
+    override fun incPartitionMessagesSent() = partitionMessagesSentCounter.increment()
+    override fun incBucketCount(bucketCount: Int) = incrementAtomic(bucketCountAtomic,bucketCount)
+    override fun incLowRedundancyBucketCount(lowBucketCount: Int) = incrementAtomic(lowBucketCountAtomic,lowBucketCount)
+    override fun incNoCopiesBucketCount(numberCopiesBucketCount: Int) = incrementAtomic(numberCopiesBucketCountAtomic, numberCopiesBucketCount)
+    override fun incTotalNumBuckets(totalNumberOfBuckets: Int) = incrementAtomic(totalNumberOfBucketsAtomic, totalNumberOfBuckets)
+    override fun incPrimaryBucketCount(primaryBucketCount: Int) = incrementAtomic(primaryBucketCountAtomic, primaryBucketCount)
+    override fun incVolunteeringThreads(numberVolunteeringThreads: Int) = incrementAtomic(numberVolunteeringThreadsAtomic, numberVolunteeringThreads)
+    override fun incPRMetaDataSentCount() = prMetaDataSentCounter.increment()
 
-    fun incPrimaryBucketCount(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun incDataStoreEntryCount(amt: Int) {
 
-    fun incVolunteeringThreads(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun incPRMetaDataSentCount() {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    override fun incBytesInUse(delta: Long) {
+        0
     }
 
-    fun incDataStoreEntryCount(amt: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringInProgress(): Int = 0
 
-    fun incBytesInUse(delta: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun startPartitionMessageProcessing(): Long = 0
 
-    fun getVolunteeringInProgress(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endPartitionMessagesProcessing(start: Long) {
 
-    fun startPartitionMessageProcessing(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun endPartitionMessagesProcessing(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun setBucketCount(i: Int) {
 
-    fun setBucketCount(i: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
 
-    fun getDataStoreEntryCount(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getDataStoreEntryCount(): Int = 0
 
 
-    fun getDataStoreBytesInUse(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getDataStoreBytesInUse(): Long = 0
 
-    fun getTotalBucketCount(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getTotalBucketCount(): Int = 0
 
-    fun getVolunteeringBecamePrimary(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringBecamePrimary(): Int = 0
 
-    fun getVolunteeringBecamePrimaryTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringBecamePrimaryTime(): Long = 0
 
-    fun getVolunteeringOtherPrimary(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringOtherPrimary(): Int = 0
 
-    fun getVolunteeringOtherPrimaryTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringOtherPrimaryTime(): Long = 0
 
-    fun getVolunteeringClosed(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringClosed(): Int = 0
 
-    fun getVolunteeringClosedTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringClosedTime(): Long = 0
 
-    fun startVolunteering(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun startVolunteering(): Long = 0
 
-    fun endVolunteeringBecamePrimary(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endVolunteeringBecamePrimary(start: Long) {
 
-    fun endVolunteeringOtherPrimary(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun endVolunteeringClosed(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endVolunteeringOtherPrimary(start: Long) {
 
-    fun getTotalNumBuckets(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
+    override fun endVolunteeringClosed(start: Long) {
 
-    fun getPrimaryBucketCount(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
+    override fun getTotalNumBuckets(): Int = 0
 
-    fun getVolunteeringThreads(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
 
+    override fun getPrimaryBucketCount(): Int = 0
 
-    fun getLowRedundancyBucketCount(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
 
-    fun getNoCopiesBucketCount(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getVolunteeringThreads(): Int = 0
 
 
-    fun getConfiguredRedundantCopies(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getLowRedundancyBucketCount(): Int = 0
 
-    fun setConfiguredRedundantCopies(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getNoCopiesBucketCount(): Int = 0
 
-    fun setLocalMaxMemory(l: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
 
-    fun getActualRedundantCopies(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getConfiguredRedundantCopies(): Int = 0
 
-    fun setActualRedundantCopies(`val`: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun setConfiguredRedundantCopies(value: Int) {
 
-    fun putStartTime(key: Any?, startTime: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun removeStartTime(key: Any?): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun setLocalMaxMemory(l: Long) {
 
-    fun endGetEntry(startTime: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun endGetEntry(start: Long, numInc: Int) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getActualRedundantCopies(): Int = 0
 
-    fun startRecovery(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun setActualRedundantCopies(value: Int) {
 
-    fun endRecovery(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun startBucketCreate(isRebalance: Boolean): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun putStartTime(key: Any?, startTime: Long) {
 
-    fun endBucketCreate(start: Long, success: Boolean, isRebalance: Boolean) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun startPrimaryTransfer(isRebalance: Boolean): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun removeStartTime(key: Any?): Long = 0
 
-    fun endPrimaryTransfer(start: Long, success: Boolean, isRebalance: Boolean) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endGetEntry(startTime: Long) {
 
-    fun getBucketCreatesInProgress(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun getBucketCreatesCompleted(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endGetEntry(start: Long, numInc: Int) {
 
-    fun getBucketCreatesFailed(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun getBucketCreateTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun startRecovery(): Long = 0
 
-    fun getPrimaryTransfersInProgress(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endRecovery(start: Long) {
 
-    fun getPrimaryTransfersCompleted(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun getPrimaryTransfersFailed(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun startBucketCreate(isRebalance: Boolean): Long = 0
 
-    fun getPrimaryTransferTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endBucketCreate(start: Long, success: Boolean, isRebalance: Boolean) {
 
-    fun startRebalanceBucketCreate() {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun endRebalanceBucketCreate(start: Long, end: Long, success: Boolean) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun startPrimaryTransfer(isRebalance: Boolean): Long = 0
 
-    fun startRebalancePrimaryTransfer() {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun endPrimaryTransfer(start: Long, success: Boolean, isRebalance: Boolean) {
 
-    fun endRebalancePrimaryTransfer(start: Long, end: Long, success: Boolean) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun getRebalanceBucketCreatesInProgress(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getBucketCreatesInProgress(): Int = 0
 
-    fun getRebalanceBucketCreatesCompleted(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getBucketCreatesCompleted(): Int = 0
 
-    fun getRebalanceBucketCreatesFailed(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getBucketCreatesFailed(): Int = 0
 
-    fun getRebalanceBucketCreateTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getBucketCreateTime(): Long = 0
 
-    fun getRebalancePrimaryTransfersInProgress(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getPrimaryTransfersInProgress(): Int = 0
 
-    fun getRebalancePrimaryTransfersCompleted(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getPrimaryTransfersCompleted(): Int = 0
 
-    fun getRebalancePrimaryTransfersFailed(): Int {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getPrimaryTransfersFailed(): Int = 0
 
-    fun getRebalancePrimaryTransferTime(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getPrimaryTransferTime(): Long = 0
 
-    fun startApplyReplication(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getRebalanceBucketCreatesInProgress(): Int = 0
 
-    fun endApplyReplication(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getRebalanceBucketCreatesCompleted(): Int = 0
 
-    fun startSendReplication(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getRebalanceBucketCreatesFailed(): Int = 0
 
-    fun endSendReplication(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getRebalanceBucketCreateTime(): Long = 0
 
-    fun startPutRemote(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
-    }
+    override fun getRebalancePrimaryTransfersInProgress(): Int = 0
+
+    override fun getRebalancePrimaryTransfersCompleted(): Int = 0
+
+    override fun getRebalancePrimaryTransfersFailed(): Int = 0
+
+    override fun getRebalancePrimaryTransferTime(): Long = 0
+
+    override fun startApplyReplication(): Long = 0
+
+    override fun endApplyReplication(start: Long) {
 
-    fun endPutRemote(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
 
-    fun startPutLocal(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    override fun startSendReplication(): Long = 0
+
+    override fun endSendReplication(start: Long) {
+
     }
 
-    fun endPutLocal(start: Long) {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    override fun startPutRemote(): Long = 0
+
+    override fun endPutRemote(start: Long) {
+
     }
 
+    override fun startPutLocal(): Long = 0
+
+    override fun endPutLocal(start: Long) {
 
-    fun getPRMetaDataSentCount(): Long {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
     }
+
+
+    override fun getPRMetaDataSentCount(): Long = 0
 }
\ No newline at end of file
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
index b083052..c44a0ab 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
@@ -8,20 +8,27 @@ import io.micrometer.influx.InfluxMeterRegistry
 import io.micrometer.jmx.JmxMeterRegistry
 import java.time.Duration
 
-abstract class MicrometerStats {
-    protected val metrics = CompositeMeterRegistry(Clock.SYSTEM)
+class MicrometerStats {
+    val meterRegistry = CompositeMeterRegistry(Clock.SYSTEM)
     private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
-        override fun step(): Duration = Duration.ofSeconds(1)
+        override fun step(): Duration = Duration.ofSeconds(10)
         override fun db(): String = "mydb"
         override fun get(k: String): String? = null
         override fun uri(): String = "http://localhost:8086"
     }, Clock.SYSTEM)
 
+//    private val atlasMetrics: MeterRegistry = AtlasMeterRegistry(object : AtlasConfig {
+//        override fun get(k: String?): String? = null
+//        override fun enabled(): Boolean = true
+//        override fun uri(): String = "http://localhost:7101/api/v1/publish"
+//        override fun step(): Duration = Duration.ofSeconds(10)
+//    }, Clock.SYSTEM)
+
     private val jmxMetrics: MeterRegistry = JmxMeterRegistry()
 
     init {
-        metrics.add(influxMetrics)
-//        metrics.add(atlasMetrics)
-        metrics.add(jmxMetrics)
+        meterRegistry.add(influxMetrics)
+//        meterRegistry.add(atlasMetrics)
+        meterRegistry.add(jmxMetrics)
     }
 }
\ No newline at end of file
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PRHARedundancyProvider.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PRHARedundancyProvider.java
index 7bbed43..9626fa1 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PRHARedundancyProvider.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PRHARedundancyProvider.java
@@ -446,7 +446,7 @@ public class PRHARedundancyProvider {
   // public static final boolean ENFORCE_UNIQUE_HOST_STORAGE_ALLOCATION =
   // DistributionConfig.DEFAULT_ENFORCE_UNIQUE_HOST;
 
-  public InternalDistributedMember createBucketOnDataStore(int bucketId, int size, long startTime,
+  public InternalDistributedMember createBucketOnDataStore(int bucketId, int size,
       RetryTimeKeeper snoozer) {
     Set<InternalDistributedMember> attempted = new HashSet<InternalDistributedMember>();
     InternalDistributedMember ret;
@@ -523,7 +523,7 @@ public class PRHARedundancyProvider {
    *         region referred to in the query.
    */
   public InternalDistributedMember createBucketAtomically(final int bucketId,
-      final int newBucketSize, final long startTime, final boolean finishIncompleteCreation,
+      final int newBucketSize,  final boolean finishIncompleteCreation,
       String partitionName) throws PartitionedRegionStorageException, PartitionedRegionException,
       PartitionOfflineException {
     final boolean isDebugEnabled = logger.isDebugEnabled();
@@ -1040,13 +1040,12 @@ public class PRHARedundancyProvider {
 
   public void finishIncompleteBucketCreation(int bucketId) {
     String partitionName = null;
-    final long startTime = PartitionedRegionStats.startTime();
     if (this.prRegion.isFixedPartitionedRegion()) {
       FixedPartitionAttributesImpl fpa =
           PartitionedRegionHelper.getFixedPartitionAttributesForBucket(this.prRegion, bucketId);
       partitionName = fpa.getPartitionName();
     }
-    createBucketAtomically(bucketId, 0, startTime, true, partitionName);
+    createBucketAtomically(bucketId, 0, true, partitionName);
   }
 
   /**
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 4287f0e..9ce448c 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
@@ -526,7 +526,7 @@ public class PartitionedRegion extends LocalRegion
 
   @Override
   public boolean remove(Object key, Object value, Object callbackArg) {
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     try {
       return super.remove(key, value, callbackArg);
     } finally {
@@ -715,6 +715,7 @@ public class PartitionedRegion extends LocalRegion
 
   private final PartitionedRegionRedundancyTracker redundancyTracker;
 
+
   /**
    * Constructor for a PartitionedRegion. This has an accessor (Region API) functionality and
    * contains a datastore for actual storage. An accessor can act as a local cache by having a local
@@ -726,7 +727,8 @@ public class PartitionedRegion extends LocalRegion
     super(regionName, regionAttributes, parentRegion, cache, internalRegionArgs);
 
     this.node = initializeNode();
-    this.prStats = new PartitionedRegionStats(cache.getDistributedSystem(), getFullPath());
+    this.prStats = new TimedMicrometerPartitionedRegionStats(getFullPath());
+//    this.prStats = new PartitionedRegionStatsImpl(cache.getDistributedSystem(), getFullPath());
     this.regionIdentifier = getFullPath().replace('/', '#');
 
     if (logger.isDebugEnabled()) {
@@ -1553,7 +1555,7 @@ public class PartitionedRegion extends LocalRegion
   @Override
   protected Region.Entry<?, ?> nonTXGetEntry(KeyInfo keyInfo, boolean access,
       boolean allowTombstones) {
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     final Object key = keyInfo.getKey();
     try {
       int bucketId = keyInfo.getBucketId();
@@ -1986,7 +1988,7 @@ public class PartitionedRegion extends LocalRegion
   boolean virtualPut(EntryEventImpl event, boolean ifNew, boolean ifOld, Object expectedOldValue,
       boolean requireOldValue, long lastModified, boolean overwriteDestroyed)
       throws TimeoutException, CacheWriterException {
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     boolean result = false;
     final DistributedPutAllOperation putAllOp_save = event.setPutAllOperation(null);
 
@@ -2159,7 +2161,7 @@ public class PartitionedRegion extends LocalRegion
       throw cache.getCacheClosedException("Cache is shutting down");
     }
 
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     // build all the msgs by bucketid
     HashMap prMsgMap = putAllOp.createPRMessages();
     PutAllPartialResult partialKeys = new PutAllPartialResult(putAllOp.putAllDataSize);
@@ -2251,7 +2253,7 @@ public class PartitionedRegion extends LocalRegion
       throw cache.getCacheClosedException("Cache is shutting down");
     }
 
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     // build all the msgs by bucketid
     HashMap<Integer, RemoveAllPRMessage> prMsgMap = op.createPRMessages();
     PutAllPartialResult partialKeys = new PutAllPartialResult(op.removeAllDataSize);
@@ -3262,12 +3264,11 @@ public class PartitionedRegion extends LocalRegion
     }
     // Potentially no storage assigned, start bucket creation, be careful of race
     // conditions
-    final long startTime = PartitionedRegionStats.startTime();
     if (isDataStore()) {
-      ret = this.redundancyProvider.createBucketAtomically(bucketId, size, startTime, false,
+      ret = this.redundancyProvider.createBucketAtomically(bucketId, size, false,
           partitionName);
     } else {
-      ret = this.redundancyProvider.createBucketOnDataStore(bucketId, size, startTime, snoozer);
+      ret = this.redundancyProvider.createBucketOnDataStore(bucketId, size, snoozer);
     }
     return ret;
   }
@@ -3280,7 +3281,7 @@ public class PartitionedRegion extends LocalRegion
     Object obj = null;
     final Object key = keyInfo.getKey();
     final Object aCallbackArgument = keyInfo.getCallbackArg();
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     try {
       int bucketId = keyInfo.getBucketId();
       if (bucketId == KeyInfo.UNKNOWN_BUCKET) {
@@ -5081,7 +5082,7 @@ public class PartitionedRegion extends LocalRegion
       final Object expectedOldValue)
       throws TimeoutException, EntryNotFoundException, CacheWriterException {
 
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     try {
       if (event.getEventId() == null) {
         event.setNewEventId(this.cache.getDistributedSystem());
@@ -5570,8 +5571,8 @@ public class PartitionedRegion extends LocalRegion
   }
 
   @Override
-  public void basicInvalidate(EntryEventImpl event) throws EntryNotFoundException {
-    final long startTime = PartitionedRegionStats.startTime();
+  void basicInvalidate(EntryEventImpl event) throws EntryNotFoundException {
+    final long startTime = prStats.startTime();
     try {
       if (event.getEventId() == null) {
         event.setNewEventId(this.cache.getDistributedSystem());
@@ -6217,7 +6218,7 @@ public class PartitionedRegion extends LocalRegion
 
   @Override
   protected boolean nonTXContainsKey(KeyInfo keyInfo) {
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     boolean contains = false;
     try {
       int bucketId = keyInfo.getBucketId();
@@ -6391,7 +6392,7 @@ public class PartitionedRegion extends LocalRegion
     // checkClosed();
     checkReadiness();
     validateKey(key);
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = prStats.startTime();
     boolean containsValueForKey = false;
     try {
       containsValueForKey = getDataView().containsValueForKey(getKeyInfo(key), this);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
index ef8eb99..a1865f2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java
@@ -2672,7 +2672,7 @@ public class PartitionedRegionDataStore implements HasCachePerfStats {
    * @param bucket the Region containing the bucket data
    */
   public void dumpBucket(int bucketId, final LocalRegion bucket) {
-    Integer buckId = Integer.valueOf(bucketId);
+    Integer buckId = bucketId;
     visitBucket(buckId, bucket, new EntryVisitor() {
       final StringBuffer buf = new StringBuffer("Entries in bucket ").append(bucket).append("\n");
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
index 08434c9..03717ed 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStats.java
@@ -15,17 +15,7 @@
 
 package org.apache.geode.internal.cache;
 
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.geode.StatisticDescriptor;
 import org.apache.geode.Statistics;
-import org.apache.geode.StatisticsFactory;
-import org.apache.geode.StatisticsType;
-import org.apache.geode.StatisticsTypeFactory;
-import org.apache.geode.cache.Region;
-import org.apache.geode.internal.statistics.StatisticsTypeFactoryImpl;
 
 /**
  * Represents a statistics type that can be archived to vsd. Loading of this class automatically
@@ -42,1157 +32,113 @@ import org.apache.geode.internal.statistics.StatisticsTypeFactoryImpl;
  *
  * @since GemFire 5.0
  */
-public class PartitionedRegionStats {
-
-  private static final StatisticsType type;
-
-  private static final int dataStoreEntryCountId;
-  private static final int dataStoreBytesInUseId;
-  private static final int bucketCountId;
-
-  private static final int putsCompletedId;
-  private static final int putOpsRetriedId;
-  private static final int putRetriesId;
-
-  private static final int createsCompletedId;
-  private static final int createOpsRetriedId;
-  private static final int createRetriesId;
-
-  private static final int preferredReadLocalId;
-  private static final int preferredReadRemoteId;
-
-  private static final int getsCompletedId;
-  private static final int getOpsRetriedId;
-  private static final int getRetriesId;
-
-  private static final int destroysCompletedId;
-  private static final int destroyOpsRetriedId;
-  private static final int destroyRetriesId;
-
-  private static final int invalidatesCompletedId;
-  private static final int invalidateOpsRetriedId;
-  private static final int invalidateRetriesId;
-
-  private static final int containsKeyCompletedId;
-  private static final int containsKeyOpsRetriedId;
-  private static final int containsKeyRetriesId;
-
-  private static final int containsValueForKeyCompletedId;
-
-  private static final int partitionMessagesSentId;
-  private static final int partitionMessagesReceivedId;
-  private static final int partitionMessagesProcessedId;
-
-  private static final int putTimeId;
-  private static final int createTimeId;
-  private static final int getTimeId;
-  private static final int destroyTimeId;
-  private static final int invalidateTimeId;
-  private static final int containsKeyTimeId;
-  private static final int containsValueForKeyTimeId;
-  private static final int partitionMessagesProcessingTimeId;
-
-  private static final String PUTALLS_COMPLETED = "putAllsCompleted";
-  private static final String PUTALL_MSGS_RETRIED = "putAllMsgsRetried";
-  private static final String PUTALL_RETRIES = "putAllRetries";
-  private static final String PUTALL_TIME = "putAllTime";
-
-  private static final int fieldId_PUTALLS_COMPLETED;
-  private static final int fieldId_PUTALL_MSGS_RETRIED;
-  private static final int fieldId_PUTALL_RETRIES;
-  private static final int fieldId_PUTALL_TIME;
-
-  private static final String REMOVE_ALLS_COMPLETED = "removeAllsCompleted";
-  private static final String REMOVE_ALL_MSGS_RETRIED = "removeAllMsgsRetried";
-  private static final String REMOVE_ALL_RETRIES = "removeAllRetries";
-  private static final String REMOVE_ALL_TIME = "removeAllTime";
-
-  private static final int fieldId_REMOVE_ALLS_COMPLETED;
-  private static final int fieldId_REMOVE_ALL_MSGS_RETRIED;
-  private static final int fieldId_REMOVE_ALL_RETRIES;
-  private static final int fieldId_REMOVE_ALL_TIME;
-
-  private static final int volunteeringInProgressId; // count of volunteering in progress
-  private static final int volunteeringBecamePrimaryId; // ended as primary
-  private static final int volunteeringBecamePrimaryTimeId; // time spent that ended as primary
-  private static final int volunteeringOtherPrimaryId; // ended as not primary
-  private static final int volunteeringOtherPrimaryTimeId; // time spent that ended as not primary
-  private static final int volunteeringClosedId; // ended as closed
-  private static final int volunteeringClosedTimeId; // time spent that ended as closed
-
-  private static final int applyReplicationCompletedId;
-  private static final int applyReplicationInProgressId;
-  private static final int applyReplicationTimeId;
-  private static final int sendReplicationCompletedId;
-  private static final int sendReplicationInProgressId;
-  private static final int sendReplicationTimeId;
-  private static final int putRemoteCompletedId;
-  private static final int putRemoteInProgressId;
-  private static final int putRemoteTimeId;
-  private static final int putLocalCompletedId;
-  private static final int putLocalInProgressId;
-  private static final int putLocalTimeId;
-
-  private static final int totalNumBucketsId; // total number of buckets
-  private static final int primaryBucketCountId; // number of hosted primary buckets
-  private static final int volunteeringThreadsId; // number of threads actively volunteering
-  private static final int lowRedundancyBucketCountId; // number of buckets currently without full
-                                                       // redundancy
-  private static final int noCopiesBucketCountId; // number of buckets currently without any
-                                                  // redundancy
-
-  private static final int configuredRedundantCopiesId;
-  private static final int actualRedundantCopiesId;
-
-  private static final int getEntriesCompletedId;
-  private static final int getEntryTimeId;
-
-  private static final int recoveriesInProgressId;
-  private static final int recoveriesCompletedId;
-  private static final int recoveriesTimeId;
-  private static final int bucketCreatesInProgressId;
-  private static final int bucketCreatesCompletedId;
-  private static final int bucketCreatesFailedId;
-  private static final int bucketCreateTimeId;
-
-  private static final int rebalanceBucketCreatesInProgressId;
-  private static final int rebalanceBucketCreatesCompletedId;
-  private static final int rebalanceBucketCreatesFailedId;
-  private static final int rebalanceBucketCreateTimeId;
-
-  private static final int primaryTransfersInProgressId;
-  private static final int primaryTransfersCompletedId;
-  private static final int primaryTransfersFailedId;
-  private static final int primaryTransferTimeId;
-
-  private static final int rebalancePrimaryTransfersInProgressId;
-  private static final int rebalancePrimaryTransfersCompletedId;
-  private static final int rebalancePrimaryTransfersFailedId;
-  private static final int rebalancePrimaryTransferTimeId;
-
-  private static final int prMetaDataSentCountId;
-
-  private static final int localMaxMemoryId;
-
-  static {
-    final boolean largerIsBetter = true;
-    StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
-    type = f.createType("PartitionedRegionStats",
-        "Statistics for operations and connections in the Partitioned Region",
-        new StatisticDescriptor[] {
-
-            f.createIntGauge("bucketCount", "Number of buckets in this node.", "buckets"),
-            f.createIntCounter("putsCompleted", "Number of puts completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("putOpsRetried",
-                "Number of put operations which had to be retried due to failures.", "operations",
-                false),
-            f.createIntCounter("putRetries",
-                "Total number of times put operations had to be retried.", "retry attempts", false),
-            f.createIntCounter("createsCompleted", "Number of creates completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("createOpsRetried",
-                "Number of create operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("createRetries",
-                "Total number of times put operations had to be retried.", "retry attempts", false),
-            f.createIntCounter("preferredReadLocal", "Number of reads satisfied from local store",
-                "operations", largerIsBetter),
-            f.createIntCounter(PUTALLS_COMPLETED, "Number of putAlls completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter(PUTALL_MSGS_RETRIED,
-                "Number of putAll messages which had to be retried due to failures.", "operations",
-                false),
-            f.createIntCounter(PUTALL_RETRIES,
-                "Total number of times putAll messages had to be retried.", "retry attempts",
-                false),
-            f.createLongCounter(PUTALL_TIME, "Total time spent doing putAlls.", "nanoseconds",
-                !largerIsBetter),
-            f.createIntCounter(REMOVE_ALLS_COMPLETED, "Number of removeAlls completed.",
-                "operations", largerIsBetter),
-            f.createIntCounter(REMOVE_ALL_MSGS_RETRIED,
-                "Number of removeAll messages which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter(REMOVE_ALL_RETRIES,
-                "Total number of times removeAll messages had to be retried.", "retry attempts",
-                false),
-            f.createLongCounter(REMOVE_ALL_TIME, "Total time spent doing removeAlls.",
-                "nanoseconds", !largerIsBetter),
-            f.createIntCounter("preferredReadRemote", "Number of reads satisfied from remote store",
-                "operations", false),
-            f.createIntCounter("getsCompleted", "Number of gets completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("getOpsRetried",
-                "Number of get operations which had to be retried due to failures.", "operations",
-                false),
-            f.createIntCounter("getRetries",
-                "Total number of times get operations had to be retried.", "retry attempts", false),
-            f.createIntCounter("destroysCompleted", "Number of destroys completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("destroyOpsRetried",
-                "Number of destroy operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("destroyRetries",
-                "Total number of times destroy operations had to be retried.", "retry attempts",
-                false),
-            f.createIntCounter("invalidatesCompleted", "Number of invalidates completed.",
-                "operations", largerIsBetter),
-
-            f.createIntCounter("invalidateOpsRetried",
-                "Number of invalidate operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("invalidateRetries",
-                "Total number of times invalidate operations had to be retried.", "retry attempts",
-                false),
-            f.createIntCounter("containsKeyCompleted", "Number of containsKeys completed.",
-                "operations", largerIsBetter),
-
-            f.createIntCounter("containsKeyOpsRetried",
-                "Number of containsKey or containsValueForKey operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("containsKeyRetries",
-                "Total number of times containsKey or containsValueForKey operations had to be retried.",
-                "operations", false),
-            f.createIntCounter("containsValueForKeyCompleted",
-                "Number of containsValueForKeys completed.", "operations", largerIsBetter),
-            f.createIntCounter("PartitionMessagesSent", "Number of PartitionMessages Sent.",
-                "operations", largerIsBetter),
-            f.createIntCounter("PartitionMessagesReceived", "Number of PartitionMessages Received.",
-                "operations", largerIsBetter),
-            f.createIntCounter("PartitionMessagesProcessed",
-                "Number of PartitionMessages Processed.", "operations", largerIsBetter),
-            f.createLongCounter("putTime", "Total time spent doing puts.", "nanoseconds", false),
-            f.createLongCounter("createTime", "Total time spent doing create operations.",
-                "nanoseconds", false),
-            f.createLongCounter("getTime", "Total time spent performing get operations.",
-                "nanoseconds", false),
-            f.createLongCounter("destroyTime", "Total time spent doing destroys.", "nanoseconds",
-                false),
-            f.createLongCounter("invalidateTime", "Total time spent doing invalidates.",
-                "nanoseconds", false),
-            f.createLongCounter("containsKeyTime",
-                "Total time spent performing containsKey operations.", "nanoseconds", false),
-            f.createLongCounter("containsValueForKeyTime",
-                "Total time spent performing containsValueForKey operations.", "nanoseconds",
-                false),
-            f.createLongCounter("partitionMessagesProcessingTime",
-                "Total time spent on PartitionMessages processing.", "nanoseconds", false),
-            f.createIntGauge("dataStoreEntryCount",
-                "The number of entries stored in this Cache for the named Partitioned Region. This does not include entries which are tombstones. See CachePerfStats.tombstoneCount.",
-                "entries"),
-            f.createLongGauge("dataStoreBytesInUse",
-                "The current number of bytes stored in this Cache for the named Partitioned Region",
-                "bytes"),
-            f.createIntGauge("volunteeringInProgress",
-                "Current number of attempts to volunteer for primary of a bucket.", "operations"),
-            f.createIntCounter("volunteeringBecamePrimary",
-                "Total number of attempts to volunteer that ended when this member became primary.",
-                "operations"),
-            f.createLongCounter("volunteeringBecamePrimaryTime",
-                "Total time spent volunteering that ended when this member became primary.",
-                "nanoseconds", false),
-            f.createIntCounter("volunteeringOtherPrimary",
-                "Total number of attempts to volunteer that ended when this member discovered other primary.",
-                "operations"),
-            f.createLongCounter("volunteeringOtherPrimaryTime",
-                "Total time spent volunteering that ended when this member discovered other primary.",
-                "nanoseconds", false),
-            f.createIntCounter("volunteeringClosed",
-                "Total number of attempts to volunteer that ended when this member's bucket closed.",
-                "operations"),
-            f.createLongCounter("volunteeringClosedTime",
-                "Total time spent volunteering that ended when this member's bucket closed.",
-                "nanoseconds", false),
-            f.createIntGauge("totalNumBuckets", "The total number of buckets.", "buckets"),
-            f.createIntGauge("primaryBucketCount",
-                "Current number of primary buckets hosted locally.", "buckets"),
-            f.createIntGauge("volunteeringThreads",
-                "Current number of threads volunteering for primary.", "threads"),
-            f.createIntGauge("lowRedundancyBucketCount",
-                "Current number of buckets without full redundancy.", "buckets"),
-            f.createIntGauge("noCopiesBucketCount",
-                "Current number of buckets without any copies remaining.", "buckets"),
-            f.createIntGauge("configuredRedundantCopies",
-                "Configured number of redundant copies for this partitioned region.", "copies"),
-            f.createIntGauge("actualRedundantCopies",
-                "Actual number of redundant copies for this partitioned region.", "copies"),
-            f.createIntCounter("getEntryCompleted", "Number of getEntry operations completed.",
-                "operations", largerIsBetter),
-            f.createLongCounter("getEntryTime", "Total time spent performing getEntry operations.",
-                "nanoseconds", false),
-
-            f.createIntGauge("recoveriesInProgress",
-                "Current number of redundancy recovery operations in progress for this region.",
-                "operations"),
-            f.createIntCounter("recoveriesCompleted",
-                "Total number of redundancy recovery operations performed on this region.",
-                "operations"),
-            f.createLongCounter("recoveryTime", "Total number time spent recovering redundancy.",
-                "operations"),
-            f.createIntGauge("bucketCreatesInProgress",
-                "Current number of bucket create operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("bucketCreatesCompleted",
-                "Total number of bucket create operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("bucketCreatesFailed",
-                "Total number of bucket create operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("bucketCreateTime",
-                "Total time spent performing bucket create operations for rebalancing.",
-                "nanoseconds", false),
-            f.createIntGauge("primaryTransfersInProgress",
-                "Current number of primary transfer operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("primaryTransfersCompleted",
-                "Total number of primary transfer operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("primaryTransfersFailed",
-                "Total number of primary transfer operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("primaryTransferTime",
-                "Total time spent performing primary transfer operations for rebalancing.",
-                "nanoseconds", false),
-
-            f.createIntCounter("applyReplicationCompleted",
-                "Total number of replicated values sent from a primary to this redundant data store.",
-                "operations", largerIsBetter),
-            f.createIntGauge("applyReplicationInProgress",
-                "Current number of replication operations in progress on this redundant data store.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("applyReplicationTime",
-                "Total time spent storing replicated values on this redundant data store.",
-                "nanoseconds", !largerIsBetter),
-            f.createIntCounter("sendReplicationCompleted",
-                "Total number of replicated values sent from this primary to a redundant data store.",
-                "operations", largerIsBetter),
-            f.createIntGauge("sendReplicationInProgress",
-                "Current number of replication operations in progress from this primary.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("sendReplicationTime",
-                "Total time spent replicating values from this primary to a redundant data store.",
-                "nanoseconds", !largerIsBetter),
-            f.createIntCounter("putRemoteCompleted",
-                "Total number of completed puts that did not originate in the primary. These puts require an extra network hop to the primary.",
-                "operations", largerIsBetter),
-            f.createIntGauge("putRemoteInProgress",
-                "Current number of puts in progress that did not originate in the primary.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("putRemoteTime",
-                "Total time spent doing puts that did not originate in the primary.", "nanoseconds",
-                !largerIsBetter),
-            f.createIntCounter("putLocalCompleted",
-                "Total number of completed puts that did originate in the primary. These puts are optimal.",
-                "operations", largerIsBetter),
-            f.createIntGauge("putLocalInProgress",
-                "Current number of puts in progress that did originate in the primary.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("putLocalTime",
-                "Total time spent doing puts that did originate in the primary.", "nanoseconds",
-                !largerIsBetter),
-
-            f.createIntGauge("rebalanceBucketCreatesInProgress",
-                "Current number of bucket create operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalanceBucketCreatesCompleted",
-                "Total number of bucket create operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalanceBucketCreatesFailed",
-                "Total number of bucket create operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("rebalanceBucketCreateTime",
-                "Total time spent performing bucket create operations for rebalancing.",
-                "nanoseconds", false),
-            f.createIntGauge("rebalancePrimaryTransfersInProgress",
-                "Current number of primary transfer operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalancePrimaryTransfersCompleted",
-                "Total number of primary transfer operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalancePrimaryTransfersFailed",
-                "Total number of primary transfer operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("rebalancePrimaryTransferTime",
-                "Total time spent performing primary transfer operations for rebalancing.",
-                "nanoseconds", false),
-            f.createLongCounter("prMetaDataSentCount",
-                "total number of times meta data refreshed sent on client's request.", "operation",
-                false),
-
-            f.createLongGauge("localMaxMemory",
-                "local max memory in bytes for this region on this member", "bytes")
-
-        });
-
-    bucketCountId = type.nameToId("bucketCount");
-
-    putsCompletedId = type.nameToId("putsCompleted");
-    putOpsRetriedId = type.nameToId("putOpsRetried");
-    putRetriesId = type.nameToId("putRetries");
-    createsCompletedId = type.nameToId("createsCompleted");
-    createOpsRetriedId = type.nameToId("createOpsRetried");
-    createRetriesId = type.nameToId("createRetries");
-    getsCompletedId = type.nameToId("getsCompleted");
-    preferredReadLocalId = type.nameToId("preferredReadLocal");
-    preferredReadRemoteId = type.nameToId("preferredReadRemote");
-    getOpsRetriedId = type.nameToId("getOpsRetried");
-    getRetriesId = type.nameToId("getRetries");
-    destroysCompletedId = type.nameToId("destroysCompleted");
-    destroyOpsRetriedId = type.nameToId("destroyOpsRetried");
-    destroyRetriesId = type.nameToId("destroyRetries");
-    invalidatesCompletedId = type.nameToId("invalidatesCompleted");
-    invalidateOpsRetriedId = type.nameToId("invalidateOpsRetried");
-    invalidateRetriesId = type.nameToId("invalidateRetries");
-    containsKeyCompletedId = type.nameToId("containsKeyCompleted");
-    containsKeyOpsRetriedId = type.nameToId("containsKeyOpsRetried");
-    containsKeyRetriesId = type.nameToId("containsKeyRetries");
-    containsValueForKeyCompletedId = type.nameToId("containsValueForKeyCompleted");
-    partitionMessagesSentId = type.nameToId("PartitionMessagesSent");
-    partitionMessagesReceivedId = type.nameToId("PartitionMessagesReceived");
-    partitionMessagesProcessedId = type.nameToId("PartitionMessagesProcessed");
-    fieldId_PUTALLS_COMPLETED = type.nameToId(PUTALLS_COMPLETED);
-    fieldId_PUTALL_MSGS_RETRIED = type.nameToId(PUTALL_MSGS_RETRIED);
-    fieldId_PUTALL_RETRIES = type.nameToId(PUTALL_RETRIES);
-    fieldId_PUTALL_TIME = type.nameToId(PUTALL_TIME);
-    fieldId_REMOVE_ALLS_COMPLETED = type.nameToId(REMOVE_ALLS_COMPLETED);
-    fieldId_REMOVE_ALL_MSGS_RETRIED = type.nameToId(REMOVE_ALL_MSGS_RETRIED);
-    fieldId_REMOVE_ALL_RETRIES = type.nameToId(REMOVE_ALL_RETRIES);
-    fieldId_REMOVE_ALL_TIME = type.nameToId(REMOVE_ALL_TIME);
-    putTimeId = type.nameToId("putTime");
-    createTimeId = type.nameToId("createTime");
-    getTimeId = type.nameToId("getTime");
-    destroyTimeId = type.nameToId("destroyTime");
-    invalidateTimeId = type.nameToId("invalidateTime");
-    containsKeyTimeId = type.nameToId("containsKeyTime");
-    containsValueForKeyTimeId = type.nameToId("containsValueForKeyTime");
-    partitionMessagesProcessingTimeId = type.nameToId("partitionMessagesProcessingTime");
-    dataStoreEntryCountId = type.nameToId("dataStoreEntryCount");
-    dataStoreBytesInUseId = type.nameToId("dataStoreBytesInUse");
-
-    volunteeringInProgressId = type.nameToId("volunteeringInProgress");
-    volunteeringBecamePrimaryId = type.nameToId("volunteeringBecamePrimary");
-    volunteeringBecamePrimaryTimeId = type.nameToId("volunteeringBecamePrimaryTime");
-    volunteeringOtherPrimaryId = type.nameToId("volunteeringOtherPrimary");
-    volunteeringOtherPrimaryTimeId = type.nameToId("volunteeringOtherPrimaryTime");
-    volunteeringClosedId = type.nameToId("volunteeringClosed");
-    volunteeringClosedTimeId = type.nameToId("volunteeringClosedTime");
-
-    totalNumBucketsId = type.nameToId("totalNumBuckets");
-    primaryBucketCountId = type.nameToId("primaryBucketCount");
-    volunteeringThreadsId = type.nameToId("volunteeringThreads");
-    lowRedundancyBucketCountId = type.nameToId("lowRedundancyBucketCount");
-    noCopiesBucketCountId = type.nameToId("noCopiesBucketCount");
-
-    getEntriesCompletedId = type.nameToId("getEntryCompleted");
-    getEntryTimeId = type.nameToId("getEntryTime");
-
-    configuredRedundantCopiesId = type.nameToId("configuredRedundantCopies");
-    actualRedundantCopiesId = type.nameToId("actualRedundantCopies");
-
-    recoveriesCompletedId = type.nameToId("recoveriesCompleted");
-    recoveriesInProgressId = type.nameToId("recoveriesInProgress");
-    recoveriesTimeId = type.nameToId("recoveryTime");
-    bucketCreatesInProgressId = type.nameToId("bucketCreatesInProgress");
-    bucketCreatesCompletedId = type.nameToId("bucketCreatesCompleted");
-    bucketCreatesFailedId = type.nameToId("bucketCreatesFailed");
-    bucketCreateTimeId = type.nameToId("bucketCreateTime");
-    primaryTransfersInProgressId = type.nameToId("primaryTransfersInProgress");
-    primaryTransfersCompletedId = type.nameToId("primaryTransfersCompleted");
-    primaryTransfersFailedId = type.nameToId("primaryTransfersFailed");
-    primaryTransferTimeId = type.nameToId("primaryTransferTime");
-
-    rebalanceBucketCreatesInProgressId = type.nameToId("rebalanceBucketCreatesInProgress");
-    rebalanceBucketCreatesCompletedId = type.nameToId("rebalanceBucketCreatesCompleted");
-    rebalanceBucketCreatesFailedId = type.nameToId("rebalanceBucketCreatesFailed");
-    rebalanceBucketCreateTimeId = type.nameToId("rebalanceBucketCreateTime");
-    rebalancePrimaryTransfersInProgressId = type.nameToId("rebalancePrimaryTransfersInProgress");
-    rebalancePrimaryTransfersCompletedId = type.nameToId("rebalancePrimaryTransfersCompleted");
-    rebalancePrimaryTransfersFailedId = type.nameToId("rebalancePrimaryTransfersFailed");
-    rebalancePrimaryTransferTimeId = type.nameToId("rebalancePrimaryTransferTime");
-
-    applyReplicationCompletedId = type.nameToId("applyReplicationCompleted");
-    applyReplicationInProgressId = type.nameToId("applyReplicationInProgress");
-    applyReplicationTimeId = type.nameToId("applyReplicationTime");
-    sendReplicationCompletedId = type.nameToId("sendReplicationCompleted");
-    sendReplicationInProgressId = type.nameToId("sendReplicationInProgress");
-    sendReplicationTimeId = type.nameToId("sendReplicationTime");
-    putRemoteCompletedId = type.nameToId("putRemoteCompleted");
-    putRemoteInProgressId = type.nameToId("putRemoteInProgress");
-    putRemoteTimeId = type.nameToId("putRemoteTime");
-    putLocalCompletedId = type.nameToId("putLocalCompleted");
-    putLocalInProgressId = type.nameToId("putLocalInProgress");
-    putLocalTimeId = type.nameToId("putLocalTime");
-
-    prMetaDataSentCountId = type.nameToId("prMetaDataSentCount");
-
-    localMaxMemoryId = type.nameToId("localMaxMemory");
-  }
-
-  private final Statistics stats;
-
-  /**
-   * Utility map for temporarily holding stat start times.
-   * <p>
-   * This was originally added to avoid having to add a long volunteeringStarted variable to every
-   * instance of BucketAdvisor. Majority of BucketAdvisors never volunteer and an instance of
-   * BucketAdvisor exists for every bucket defined in a PartitionedRegion which could result in a
-   * lot of unused longs. Volunteering is a rare event and thus the performance implications of a
-   * HashMap lookup is small and preferrable to so many longs. Key: BucketAdvisor, Value: Long
-   */
-  private final Map startTimeMap;
-
-  public static long startTime() {
+public interface PartitionedRegionStats {
+  default long startTime() {
     return CachePerfStats.getStatTime();
   }
-
-  public static long getStatTime() {
+  default long getStatTime() {
     return CachePerfStats.getStatTime();
   }
-
-  public PartitionedRegionStats(StatisticsFactory factory, String name) {
-    this.stats = factory.createAtomicStatistics(type, name /* fixes bug 42343 */);
-
-    if (CachePerfStats.enableClockStats) {
-      this.startTimeMap = new ConcurrentHashMap();
-    } else {
-      this.startTimeMap = Collections.EMPTY_MAP;
-    }
-  }
-
-  public void close() {
-    this.stats.close();
-  }
-
-  public Statistics getStats() {
-    return this.stats;
-  }
-
-  // ------------------------------------------------------------------------
-  // region op stats
-  // ------------------------------------------------------------------------
-
-  public void endPut(long start) {
-    endPut(start, 1);
-  }
-
-  /**
-   * This method sets the end time for putAll and updates the counters
-   *
-   * @param start
-   */
-  public void endPutAll(long start) {
-    endPutAll(start, 1);
-  }
-
-  public void endRemoveAll(long start) {
-    endRemoveAll(start, 1);
-  }
-
-  public void endCreate(long start) {
-    endCreate(start, 1);
-  }
-
-  public void endGet(long start) {
-    endGet(start, 1);
-  }
-
-  public void endContainsKey(long start) {
-    endContainsKey(start, 1);
-  }
-
-  public void endContainsValueForKey(long start) {
-    endContainsValueForKey(start, 1);
-  }
-
-  public void endPut(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      long delta = CachePerfStats.getStatTime() - start;
-      this.stats.incLong(putTimeId, delta);
-    }
-    this.stats.incInt(putsCompletedId, numInc);
-  }
-
-  /**
-   * This method sets the end time for putAll and updates the counters
-   *
-   * @param start
-   * @param numInc
-   */
-  public void endPutAll(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      long delta = CachePerfStats.getStatTime() - start;
-      this.stats.incLong(fieldId_PUTALL_TIME, delta);
-      // this.putStatsHistogram.endOp(delta);
-
-    }
-    this.stats.incInt(fieldId_PUTALLS_COMPLETED, numInc);
-  }
-
-  public void endRemoveAll(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      long delta = CachePerfStats.getStatTime() - start;
-      this.stats.incLong(fieldId_REMOVE_ALL_TIME, delta);
-    }
-    this.stats.incInt(fieldId_REMOVE_ALLS_COMPLETED, numInc);
-  }
-
-  public void endCreate(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(createTimeId, CachePerfStats.getStatTime() - start);
-    }
-    this.stats.incInt(createsCompletedId, numInc);
-  }
-
-  public void endGet(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      final long delta = CachePerfStats.getStatTime() - start;
-      this.stats.incLong(getTimeId, delta);
-    }
-    this.stats.incInt(getsCompletedId, numInc);
-  }
-
-  public void endDestroy(long start) {
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(destroyTimeId, CachePerfStats.getStatTime() - start);
-    }
-    this.stats.incInt(destroysCompletedId, 1);
-  }
-
-  public void endInvalidate(long start) {
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(invalidateTimeId, CachePerfStats.getStatTime() - start);
-    }
-    this.stats.incInt(invalidatesCompletedId, 1);
-  }
-
-  public void endContainsKey(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(containsKeyTimeId, CachePerfStats.getStatTime() - start);
-    }
-    this.stats.incInt(containsKeyCompletedId, numInc);
-  }
-
-  public void endContainsValueForKey(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(containsValueForKeyTimeId, CachePerfStats.getStatTime() - start);
-    }
-    this.stats.incInt(containsValueForKeyCompletedId, numInc);
-  }
-
-  public void incContainsKeyValueRetries() {
-    this.stats.incInt(containsKeyRetriesId, 1);
-  }
-
-  public void incContainsKeyValueOpsRetried() {
-    this.stats.incInt(containsKeyOpsRetriedId, 1);
-  }
-
-  public void incInvalidateRetries() {
-    this.stats.incInt(invalidateRetriesId, 1);
-  }
-
-  public void incInvalidateOpsRetried() {
-    this.stats.incInt(invalidateOpsRetriedId, 1);
-  }
-
-  public void incDestroyRetries() {
-    this.stats.incInt(destroyRetriesId, 1);
-  }
-
-  public void incDestroyOpsRetried() {
-    this.stats.incInt(destroyOpsRetriedId, 1);
-  }
-
-  public void incPutRetries() {
-    this.stats.incInt(putRetriesId, 1);
-  }
-
-  public void incPutOpsRetried() {
-    this.stats.incInt(putOpsRetriedId, 1);
-  }
-
-  public void incGetOpsRetried() {
-    this.stats.incInt(getOpsRetriedId, 1);
-  }
-
-  public void incGetRetries() {
-    this.stats.incInt(getRetriesId, 1);
-  }
-
-  public void incCreateOpsRetried() {
-    this.stats.incInt(createOpsRetriedId, 1);
-  }
-
-  public void incCreateRetries() {
-    this.stats.incInt(createRetriesId, 1);
-  }
-
-  // ------------------------------------------------------------------------
-  // preferred read stats
-  // ------------------------------------------------------------------------
-
-  public void incPreferredReadLocal() {
-    this.stats.incInt(preferredReadLocalId, 1);
-  }
-
-  public void incPreferredReadRemote() {
-    this.stats.incInt(preferredReadRemoteId, 1);
-  }
-
-  // ------------------------------------------------------------------------
-  // messaging stats
-  // ------------------------------------------------------------------------
-
-  public long startPartitionMessageProcessing() {
-    this.stats.incInt(partitionMessagesReceivedId, 1);
-    return startTime();
-  }
-
-  public void endPartitionMessagesProcessing(long start) {
-    if (CachePerfStats.enableClockStats) {
-      long delta = CachePerfStats.getStatTime() - start;
-      this.stats.incLong(partitionMessagesProcessingTimeId, delta);
-    }
-    this.stats.incInt(partitionMessagesProcessedId, 1);
-  }
-
-  public void incPartitionMessagesSent() {
-    this.stats.incInt(partitionMessagesSentId, 1);
-  }
-
-  // ------------------------------------------------------------------------
-  // datastore stats
-  // ------------------------------------------------------------------------
-
-  public void incBucketCount(int delta) {
-    this.stats.incInt(bucketCountId, delta);
-  }
-
-  public void setBucketCount(int i) {
-    this.stats.setInt(bucketCountId, i);
-  }
-
-  public void incDataStoreEntryCount(int amt) {
-    this.stats.incInt(dataStoreEntryCountId, amt);
-  }
-
-  public int getDataStoreEntryCount() {
-    return this.stats.getInt(dataStoreEntryCountId);
-  }
-
-  public void incBytesInUse(long delta) {
-    this.stats.incLong(dataStoreBytesInUseId, delta);
-  }
-
-  public long getDataStoreBytesInUse() {
-    return this.stats.getLong(dataStoreBytesInUseId);
-  }
-
-  public int getTotalBucketCount() {
-    int bucketCount = this.stats.getInt(bucketCountId);
-    return bucketCount;
-  }
-
-  public void incPutAllRetries() {
-    this.stats.incInt(fieldId_PUTALL_RETRIES, 1);
-  }
-
-  public void incPutAllMsgsRetried() {
-    this.stats.incInt(fieldId_PUTALL_MSGS_RETRIED, 1);
-  }
-
-  public void incRemoveAllRetries() {
-    this.stats.incInt(fieldId_REMOVE_ALL_RETRIES, 1);
-  }
-
-  public void incRemoveAllMsgsRetried() {
-    this.stats.incInt(fieldId_REMOVE_ALL_MSGS_RETRIED, 1);
-  }
-
-  // ------------------------------------------------------------------------
-  // stats for volunteering/discovering/becoming primary
-  // ------------------------------------------------------------------------
-
-  public int getVolunteeringInProgress() {
-    return this.stats.getInt(volunteeringInProgressId);
-  }
-
-  public int getVolunteeringBecamePrimary() {
-    return this.stats.getInt(volunteeringBecamePrimaryId);
-  }
-
-  public long getVolunteeringBecamePrimaryTime() {
-    return this.stats.getLong(volunteeringBecamePrimaryTimeId);
-  }
-
-  public int getVolunteeringOtherPrimary() {
-    return this.stats.getInt(volunteeringOtherPrimaryId);
-  }
-
-  public long getVolunteeringOtherPrimaryTime() {
-    return this.stats.getLong(volunteeringOtherPrimaryTimeId);
-  }
-
-  public int getVolunteeringClosed() {
-    return this.stats.getInt(volunteeringClosedId);
-  }
-
-  public long getVolunteeringClosedTime() {
-    return this.stats.getLong(volunteeringClosedTimeId);
-  }
-
-  public long startVolunteering() {
-    this.stats.incInt(volunteeringInProgressId, 1);
-    return CachePerfStats.getStatTime();
-  }
-
-  public void endVolunteeringBecamePrimary(long start) {
-    long ts = CachePerfStats.getStatTime();
-    this.stats.incInt(volunteeringInProgressId, -1);
-    this.stats.incInt(volunteeringBecamePrimaryId, 1);
-    if (CachePerfStats.enableClockStats) {
-      long time = ts - start;
-      this.stats.incLong(volunteeringBecamePrimaryTimeId, time);
-    }
-  }
-
-  public void endVolunteeringOtherPrimary(long start) {
-    long ts = CachePerfStats.getStatTime();
-    this.stats.incInt(volunteeringInProgressId, -1);
-    this.stats.incInt(volunteeringOtherPrimaryId, 1);
-    if (CachePerfStats.enableClockStats) {
-      long time = ts - start;
-      this.stats.incLong(volunteeringOtherPrimaryTimeId, time);
-    }
-  }
-
-  public void endVolunteeringClosed(long start) {
-    long ts = CachePerfStats.getStatTime();
-    this.stats.incInt(volunteeringInProgressId, -1);
-    this.stats.incInt(volunteeringClosedId, 1);
-    if (CachePerfStats.enableClockStats) {
-      long time = ts - start;
-      this.stats.incLong(volunteeringClosedTimeId, time);
-    }
-  }
-
-  public int getTotalNumBuckets() {
-    return this.stats.getInt(totalNumBucketsId);
-  }
-
-  public void incTotalNumBuckets(int val) {
-    this.stats.incInt(totalNumBucketsId, val);
-  }
-
-  public int getPrimaryBucketCount() {
-    return this.stats.getInt(primaryBucketCountId);
-  }
-
-  public void incPrimaryBucketCount(int val) {
-    this.stats.incInt(primaryBucketCountId, val);
-  }
-
-  public int getVolunteeringThreads() {
-    return this.stats.getInt(volunteeringThreadsId);
-  }
-
-  public void incVolunteeringThreads(int val) {
-    this.stats.incInt(volunteeringThreadsId, val);
-  }
-
-  public int getLowRedundancyBucketCount() {
-    return this.stats.getInt(lowRedundancyBucketCountId);
-  }
-
-  public int getNoCopiesBucketCount() {
-    return this.stats.getInt(noCopiesBucketCountId);
-  }
-
-  public void incLowRedundancyBucketCount(int val) {
-    this.stats.incInt(lowRedundancyBucketCountId, val);
-  }
-
-  public void incNoCopiesBucketCount(int val) {
-    this.stats.incInt(noCopiesBucketCountId, val);
-  }
-
-  public int getConfiguredRedundantCopies() {
-    return this.stats.getInt(configuredRedundantCopiesId);
-  }
-
-  public void setConfiguredRedundantCopies(int val) {
-    this.stats.setInt(configuredRedundantCopiesId, val);
-  }
-
-  public void setLocalMaxMemory(long l) {
-    this.stats.setLong(localMaxMemoryId, l);
-  }
-
-  public int getActualRedundantCopies() {
-    return this.stats.getInt(actualRedundantCopiesId);
-  }
-
-  public void setActualRedundantCopies(int val) {
-    this.stats.setInt(actualRedundantCopiesId, val);
-  }
-
-  // ------------------------------------------------------------------------
-  // startTimeMap methods
-  // ------------------------------------------------------------------------
-
-  /** Put stat start time in holding map for later removal and use by caller */
-  public void putStartTime(Object key, long startTime) {
-    if (CachePerfStats.enableClockStats) {
-      this.startTimeMap.put(key, Long.valueOf(startTime));
-    }
-  }
-
-  /** Remove stat start time from holding map to complete a clock stat */
-  public long removeStartTime(Object key) {
-    Long startTime = (Long) this.startTimeMap.remove(key);
-    return startTime == null ? 0 : startTime.longValue();
-  }
-
-  /**
-   * Statistic to track the {@link Region#getEntry(Object)} call
-   *
-   * @param startTime the time the getEntry operation started
-   */
-  public void endGetEntry(long startTime) {
-    endGetEntry(startTime, 1);
-  }
-
-  /**
-   * This method sets the end time for update and updates the counters
-   *
-   * @param start
-   * @param numInc
-   */
-  public void endGetEntry(long start, int numInc) {
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(getEntryTimeId, CachePerfStats.getStatTime() - start);
-    }
-    this.stats.incInt(getEntriesCompletedId, numInc);
-  }
-
-  // ------------------------------------------------------------------------
-  // bucket creation, primary transfer stats (see also rebalancing stats below)
-  // ------------------------------------------------------------------------
-  public long startRecovery() {
-    this.stats.incInt(recoveriesInProgressId, 1);
-    return PartitionedRegionStats.getStatTime();
-  }
-
-  public void endRecovery(long start) {
-    long ts = PartitionedRegionStats.getStatTime();
-    this.stats.incInt(recoveriesInProgressId, -1);
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(recoveriesTimeId, ts - start);
-    }
-    this.stats.incInt(recoveriesCompletedId, 1);
-  }
-
-  public long startBucketCreate(boolean isRebalance) {
-    this.stats.incInt(bucketCreatesInProgressId, 1);
-    if (isRebalance) {
-      startRebalanceBucketCreate();
-    }
-    return PartitionedRegionStats.getStatTime();
-  }
-
-  public void endBucketCreate(long start, boolean success, boolean isRebalance) {
-    long ts = PartitionedRegionStats.getStatTime();
-    this.stats.incInt(bucketCreatesInProgressId, -1);
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(bucketCreateTimeId, ts - start);
-    }
-    if (success) {
-      this.stats.incInt(bucketCreatesCompletedId, 1);
-    } else {
-      this.stats.incInt(bucketCreatesFailedId, 1);
-    }
-    if (isRebalance) {
-      endRebalanceBucketCreate(start, ts, success);
-    }
-  }
-
-  public long startPrimaryTransfer(boolean isRebalance) {
-    this.stats.incInt(primaryTransfersInProgressId, 1);
-    if (isRebalance) {
-      startRebalancePrimaryTransfer();
-    }
-    return PartitionedRegionStats.getStatTime();
-  }
-
-  public void endPrimaryTransfer(long start, boolean success, boolean isRebalance) {
-    long ts = PartitionedRegionStats.getStatTime();
-    this.stats.incInt(primaryTransfersInProgressId, -1);
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(primaryTransferTimeId, ts - start);
-    }
-    if (success) {
-      this.stats.incInt(primaryTransfersCompletedId, 1);
-    } else {
-      this.stats.incInt(primaryTransfersFailedId, 1);
-    }
-    if (isRebalance) {
-      endRebalancePrimaryTransfer(start, ts, success);
-    }
-  }
-
-  public int getBucketCreatesInProgress() {
-    return this.stats.getInt(bucketCreatesInProgressId);
-  }
-
-  public int getBucketCreatesCompleted() {
-    return this.stats.getInt(bucketCreatesCompletedId);
-  }
-
-  public int getBucketCreatesFailed() {
-    return this.stats.getInt(bucketCreatesFailedId);
-  }
-
-  public long getBucketCreateTime() {
-    return this.stats.getLong(bucketCreateTimeId);
-  }
-
-  public int getPrimaryTransfersInProgress() {
-    return this.stats.getInt(primaryTransfersInProgressId);
-  }
-
-  public int getPrimaryTransfersCompleted() {
-    return this.stats.getInt(primaryTransfersCompletedId);
-  }
-
-  public int getPrimaryTransfersFailed() {
-    return this.stats.getInt(primaryTransfersFailedId);
-  }
-
-  public long getPrimaryTransferTime() {
-    return this.stats.getLong(primaryTransferTimeId);
-  }
-
-  // ------------------------------------------------------------------------
-  // rebalancing stats
-  // ------------------------------------------------------------------------
-
-  private void startRebalanceBucketCreate() {
-    this.stats.incInt(rebalanceBucketCreatesInProgressId, 1);
-  }
-
-  private void endRebalanceBucketCreate(long start, long end, boolean success) {
-    this.stats.incInt(rebalanceBucketCreatesInProgressId, -1);
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(rebalanceBucketCreateTimeId, end - start);
-    }
-    if (success) {
-      this.stats.incInt(rebalanceBucketCreatesCompletedId, 1);
-    } else {
-      this.stats.incInt(rebalanceBucketCreatesFailedId, 1);
-    }
-  }
-
-  private void startRebalancePrimaryTransfer() {
-    this.stats.incInt(rebalancePrimaryTransfersInProgressId, 1);
-  }
-
-  private void endRebalancePrimaryTransfer(long start, long end, boolean success) {
-    this.stats.incInt(rebalancePrimaryTransfersInProgressId, -1);
-    if (CachePerfStats.enableClockStats) {
-      this.stats.incLong(rebalancePrimaryTransferTimeId, end - start);
-    }
-    if (success) {
-      this.stats.incInt(rebalancePrimaryTransfersCompletedId, 1);
-    } else {
-      this.stats.incInt(rebalancePrimaryTransfersFailedId, 1);
-    }
-  }
-
-  public int getRebalanceBucketCreatesInProgress() {
-    return this.stats.getInt(rebalanceBucketCreatesInProgressId);
-  }
-
-  public int getRebalanceBucketCreatesCompleted() {
-    return this.stats.getInt(rebalanceBucketCreatesCompletedId);
-  }
-
-  public int getRebalanceBucketCreatesFailed() {
-    return this.stats.getInt(rebalanceBucketCreatesFailedId);
-  }
-
-  public long getRebalanceBucketCreateTime() {
-    return this.stats.getLong(rebalanceBucketCreateTimeId);
-  }
-
-  public int getRebalancePrimaryTransfersInProgress() {
-    return this.stats.getInt(rebalancePrimaryTransfersInProgressId);
-  }
-
-  public int getRebalancePrimaryTransfersCompleted() {
-    return this.stats.getInt(rebalancePrimaryTransfersCompletedId);
-  }
-
-  public int getRebalancePrimaryTransfersFailed() {
-    return this.stats.getInt(rebalancePrimaryTransfersFailedId);
-  }
-
-  public long getRebalancePrimaryTransferTime() {
-    return this.stats.getLong(rebalancePrimaryTransferTimeId);
-  }
-
-  public long startApplyReplication() {
-    stats.incInt(applyReplicationInProgressId, 1);
-    return CachePerfStats.getStatTime();
-  }
-
-  public void endApplyReplication(long start) {
-    long delta = CachePerfStats.getStatTime() - start;
-    stats.incInt(applyReplicationInProgressId, -1);
-    stats.incInt(applyReplicationCompletedId, 1);
-    stats.incLong(applyReplicationTimeId, delta);
-  }
-
-  public long startSendReplication() {
-    stats.incInt(sendReplicationInProgressId, 1);
-    return CachePerfStats.getStatTime();
-  }
-
-  public void endSendReplication(long start) {
-    long delta = CachePerfStats.getStatTime() - start;
-    stats.incInt(sendReplicationInProgressId, -1);
-    stats.incInt(sendReplicationCompletedId, 1);
-    stats.incLong(sendReplicationTimeId, delta);
-  }
-
-  public long startPutRemote() {
-    stats.incInt(putRemoteInProgressId, 1);
-    return CachePerfStats.getStatTime();
-  }
-
-  public void endPutRemote(long start) {
-    long delta = CachePerfStats.getStatTime() - start;
-    stats.incInt(putRemoteInProgressId, -1);
-    stats.incInt(putRemoteCompletedId, 1);
-    stats.incLong(putRemoteTimeId, delta);
-  }
-
-  public long startPutLocal() {
-    stats.incInt(putLocalInProgressId, 1);
-    return CachePerfStats.getStatTime();
-  }
-
-  public void endPutLocal(long start) {
-    long delta = CachePerfStats.getStatTime() - start;
-    stats.incInt(putLocalInProgressId, -1);
-    stats.incInt(putLocalCompletedId, 1);
-    stats.incLong(putLocalTimeId, delta);
-  }
-
-  public void incPRMetaDataSentCount() {
-    this.stats.incLong(prMetaDataSentCountId, 1);
-  }
-
-  public long getPRMetaDataSentCount() {
-    return this.stats.getLong(prMetaDataSentCountId);
-  }
+  void close();
+  void endPut(long start);
+  void endPutAll(long start);
+  void endRemoveAll(long start);
+  void endCreate(long start);
+  void endGet(long start);
+  void endContainsKey(long start);
+  void endContainsValueForKey(long start);
+  void endDestroy(long start);
+  void endInvalidate(long start);
+  void incContainsKeyValueRetries();
+  void incContainsKeyValueOpsRetried();
+  void incInvalidateRetries();
+  void incInvalidateOpsRetried();
+  void incDestroyRetries();
+  void incDestroyOpsRetried();
+  void incPutRetries();
+  void incPutOpsRetried();
+  void incGetOpsRetried();
+  void incGetRetries();
+  void incCreateOpsRetried();
+  void incCreateRetries();
+  void incPreferredReadLocal();
+  void incPreferredReadRemote();
+  long startPartitionMessageProcessing();
+  void endPartitionMessagesProcessing(long start);
+  void incPartitionMessagesSent();
+  void incBucketCount(int delta);
+  void setBucketCount(int i);
+  void incDataStoreEntryCount(int amt);
+  int getDataStoreEntryCount();
+  void incBytesInUse(long delta);
+  long getDataStoreBytesInUse();
+  int getTotalBucketCount();
+  void incPutAllRetries();
+  void incPutAllMsgsRetried();
+  void incRemoveAllRetries();
+  void incRemoveAllMsgsRetried();
+  int getVolunteeringInProgress();
+  int getVolunteeringBecamePrimary();
+  long getVolunteeringBecamePrimaryTime();
+  int getVolunteeringOtherPrimary();
+  long getVolunteeringOtherPrimaryTime();
+  int getVolunteeringClosed();
+  long getVolunteeringClosedTime();
+  long startVolunteering();
+  void endVolunteeringBecamePrimary(long start);
+  void endVolunteeringOtherPrimary(long start);
+  void endVolunteeringClosed(long start);
+  int getTotalNumBuckets();
+  void incTotalNumBuckets(int val);
+  int getPrimaryBucketCount();
+  void incPrimaryBucketCount(int val);
+  int getVolunteeringThreads();
+  void incVolunteeringThreads(int val);
+  int getLowRedundancyBucketCount();
+  int getNoCopiesBucketCount();
+  void incLowRedundancyBucketCount(int val);
+  void incNoCopiesBucketCount(int val);
+  int getConfiguredRedundantCopies();
+  void setConfiguredRedundantCopies(int val);
+  void setLocalMaxMemory(long l);
+  int getActualRedundantCopies();
+  void setActualRedundantCopies(int val);
+  void putStartTime(Object key, long startTime);
+  long removeStartTime(Object key);
+  void endGetEntry(long startTime);
+  void endGetEntry(long start, int numInc);
+  long startRecovery();
+  void endRecovery(long start);
+  long startBucketCreate(boolean isRebalance);
+  void endBucketCreate(long start, boolean success, boolean isRebalance);
+  long startPrimaryTransfer(boolean isRebalance);
+  void endPrimaryTransfer(long start, boolean success, boolean isRebalance);
+  int getBucketCreatesInProgress();
+  int getBucketCreatesCompleted();
+  int getBucketCreatesFailed();
+  long getBucketCreateTime();
+  int getPrimaryTransfersInProgress();
+  int getPrimaryTransfersCompleted();
+  int getPrimaryTransfersFailed();
+  long getPrimaryTransferTime();
+  int getRebalanceBucketCreatesInProgress();
+  int getRebalanceBucketCreatesCompleted();
+  int getRebalanceBucketCreatesFailed();
+  long getRebalanceBucketCreateTime();
+  int getRebalancePrimaryTransfersInProgress();
+  int getRebalancePrimaryTransfersCompleted();
+  int getRebalancePrimaryTransfersFailed();
+  long getRebalancePrimaryTransferTime();
+  long startApplyReplication();
+  void endApplyReplication(long start);
+  long startSendReplication();
+  void endSendReplication(long start);
+  long startPutRemote();
+  void endPutRemote(long start);
+  long startPutLocal();
+  void endPutLocal(long start);
+  void incPRMetaDataSentCount();
+  long getPRMetaDataSentCount();
+
+    Statistics getStats();
 }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java
index 24cd598..aa43145 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java
@@ -175,253 +175,102 @@ public class PartitionedRegionStatsImpl implements PartitionedRegionStats {
   private static final int localMaxMemoryId;
 
   static {
-    final boolean largerIsBetter = true;
     StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
     type = f.createType("PartitionedRegionStatsImpl",
         "Statistics for operations and connections in the Partitioned Region",
         new StatisticDescriptor[] {
-
             f.createIntGauge("bucketCount", "Number of buckets in this node.", "buckets"),
-            f.createIntCounter("putsCompleted", "Number of puts completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("putOpsRetried",
-                "Number of put operations which had to be retried due to failures.", "operations",
-                false),
-            f.createIntCounter("putRetries",
-                "Total number of times put operations had to be retried.", "retry attempts", false),
-            f.createIntCounter("createsCompleted", "Number of creates completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("createOpsRetried",
-                "Number of create operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("createRetries",
-                "Total number of times put operations had to be retried.", "retry attempts", false),
-            f.createIntCounter("preferredReadLocal", "Number of reads satisfied from local store",
-                "operations", largerIsBetter),
-            f.createIntCounter(PUTALLS_COMPLETED, "Number of putAlls completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter(PUTALL_MSGS_RETRIED,
-                "Number of putAll messages which had to be retried due to failures.", "operations",
-                false),
-            f.createIntCounter(PUTALL_RETRIES,
-                "Total number of times putAll messages had to be retried.", "retry attempts",
-                false),
-            f.createLongCounter(PUTALL_TIME, "Total time spent doing putAlls.", "nanoseconds",
-                !largerIsBetter),
-            f.createIntCounter(REMOVE_ALLS_COMPLETED, "Number of removeAlls completed.",
-                "operations", largerIsBetter),
-            f.createIntCounter(REMOVE_ALL_MSGS_RETRIED,
-                "Number of removeAll messages which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter(REMOVE_ALL_RETRIES,
-                "Total number of times removeAll messages had to be retried.", "retry attempts",
-                false),
-            f.createLongCounter(REMOVE_ALL_TIME, "Total time spent doing removeAlls.",
-                "nanoseconds", !largerIsBetter),
-            f.createIntCounter("preferredReadRemote", "Number of reads satisfied from remote store",
-                "operations", false),
-            f.createIntCounter("getsCompleted", "Number of gets completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("getOpsRetried",
-                "Number of get operations which had to be retried due to failures.", "operations",
-                false),
-            f.createIntCounter("getRetries",
-                "Total number of times get operations had to be retried.", "retry attempts", false),
-            f.createIntCounter("destroysCompleted", "Number of destroys completed.", "operations",
-                largerIsBetter),
-            f.createIntCounter("destroyOpsRetried",
-                "Number of destroy operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("destroyRetries",
-                "Total number of times destroy operations had to be retried.", "retry attempts",
-                false),
-            f.createIntCounter("invalidatesCompleted", "Number of invalidates completed.",
-                "operations", largerIsBetter),
-
-            f.createIntCounter("invalidateOpsRetried",
-                "Number of invalidate operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("invalidateRetries",
-                "Total number of times invalidate operations had to be retried.", "retry attempts",
-                false),
-            f.createIntCounter("containsKeyCompleted", "Number of containsKeys completed.",
-                "operations", largerIsBetter),
-
-            f.createIntCounter("containsKeyOpsRetried",
-                "Number of containsKey or containsValueForKey operations which had to be retried due to failures.",
-                "operations", false),
-            f.createIntCounter("containsKeyRetries",
-                "Total number of times containsKey or containsValueForKey operations had to be retried.",
-                "operations", false),
-            f.createIntCounter("containsValueForKeyCompleted",
-                "Number of containsValueForKeys completed.", "operations", largerIsBetter),
-            f.createIntCounter("PartitionMessagesSent", "Number of PartitionMessages Sent.",
-                "operations", largerIsBetter),
-            f.createIntCounter("PartitionMessagesReceived", "Number of PartitionMessages Received.",
-                "operations", largerIsBetter),
-            f.createIntCounter("PartitionMessagesProcessed",
-                "Number of PartitionMessages Processed.", "operations", largerIsBetter),
+            f.createIntCounter("putsCompleted", "Number of puts completed.", "operations", true),
+            f.createIntCounter("putOpsRetried", "Number of put operations which had to be retried due to failures.", "operations", false),
+            f.createIntCounter("putRetries", "Total number of times put operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("createsCompleted", "Number of creates completed.", "operations", true),
+            f.createIntCounter("createOpsRetried", "Number of create operations which had to be retried due to failures.", "operations", false),
+            f.createIntCounter("createRetries", "Total number of times put operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("preferredReadLocal", "Number of reads satisfied from local store", "operations", true),
+            f.createIntCounter(PUTALLS_COMPLETED, "Number of putAlls completed.", "operations", true),
+            f.createIntCounter(PUTALL_MSGS_RETRIED, "Number of putAll messages which had to be retried due to failures.", "operations", false),
+            f.createIntCounter(PUTALL_RETRIES, "Total number of times putAll messages had to be retried.", "retry attempts", false),
+            f.createLongCounter(PUTALL_TIME, "Total time spent doing putAlls.", "nanoseconds", false),
+            f.createIntCounter(REMOVE_ALLS_COMPLETED, "Number of removeAlls completed.", "operations", true),
+            f.createIntCounter(REMOVE_ALL_MSGS_RETRIED, "Number of removeAll messages which had to be retried due to failures.", "operations", false),
+            f.createIntCounter(REMOVE_ALL_RETRIES, "Total number of times removeAll messages had to be retried.", "retry attempts", false),
+            f.createLongCounter(REMOVE_ALL_TIME, "Total time spent doing removeAlls.", "nanoseconds", false),
+            f.createIntCounter("preferredReadRemote", "Number of reads satisfied from remote store", "operations", false),
+            f.createIntCounter("getsCompleted", "Number of gets completed.", "operations", true),
+            f.createIntCounter("getOpsRetried", "Number of get operations which had to be retried due to failures.", "operations", false),
+            f.createIntCounter("getRetries", "Total number of times get operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("destroysCompleted", "Number of destroys completed.", "operations", true),
+            f.createIntCounter("destroyOpsRetried", "Number of destroy operations which had to be retried due to failures.", "operations", false),
+            f.createIntCounter("destroyRetries", "Total number of times destroy operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("invalidatesCompleted", "Number of invalidates completed.", "operations", true),
+            f.createIntCounter("invalidateOpsRetried", "Number of invalidate operations which had to be retried due to failures.", "operations", false),
+            f.createIntCounter("invalidateRetries", "Total number of times invalidate operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("containsKeyCompleted", "Number of containsKeys completed.", "operations", true),
+            f.createIntCounter("containsKeyOpsRetried", "Number of containsKey or containsValueForKey operations which had to be retried due to failures.", "operations", false),
+            f.createIntCounter("containsKeyRetries", "Total number of times containsKey or containsValueForKey operations had to be retried.", "operations", false),
+            f.createIntCounter("containsValueForKeyCompleted", "Number of containsValueForKeys completed.", "operations", true),
+            f.createIntCounter("PartitionMessagesSent", "Number of PartitionMessages Sent.", "operations", true),
+            f.createIntCounter("PartitionMessagesReceived", "Number of PartitionMessages Received.", "operations", true),
+            f.createIntCounter("PartitionMessagesProcessed", "Number of PartitionMessages Processed.", "operations", true),
             f.createLongCounter("putTime", "Total time spent doing puts.", "nanoseconds", false),
-            f.createLongCounter("createTime", "Total time spent doing create operations.",
-                "nanoseconds", false),
-            f.createLongCounter("getTime", "Total time spent performing get operations.",
-                "nanoseconds", false),
-            f.createLongCounter("destroyTime", "Total time spent doing destroys.", "nanoseconds",
-                false),
-            f.createLongCounter("invalidateTime", "Total time spent doing invalidates.",
-                "nanoseconds", false),
-            f.createLongCounter("containsKeyTime",
-                "Total time spent performing containsKey operations.", "nanoseconds", false),
-            f.createLongCounter("containsValueForKeyTime",
-                "Total time spent performing containsValueForKey operations.", "nanoseconds",
-                false),
-            f.createLongCounter("partitionMessagesProcessingTime",
-                "Total time spent on PartitionMessages processing.", "nanoseconds", false),
-            f.createIntGauge("dataStoreEntryCount",
-                "The number of entries stored in this Cache for the named Partitioned Region. This does not include entries which are tombstones. See CachePerfStats.tombstoneCount.",
-                "entries"),
-            f.createLongGauge("dataStoreBytesInUse",
-                "The current number of bytes stored in this Cache for the named Partitioned Region",
-                "bytes"),
-            f.createIntGauge("volunteeringInProgress",
-                "Current number of attempts to volunteer for primary of a bucket.", "operations"),
-            f.createIntCounter("volunteeringBecamePrimary",
-                "Total number of attempts to volunteer that ended when this member became primary.",
-                "operations"),
-            f.createLongCounter("volunteeringBecamePrimaryTime",
-                "Total time spent volunteering that ended when this member became primary.",
-                "nanoseconds", false),
-            f.createIntCounter("volunteeringOtherPrimary",
-                "Total number of attempts to volunteer that ended when this member discovered other primary.",
-                "operations"),
-            f.createLongCounter("volunteeringOtherPrimaryTime",
-                "Total time spent volunteering that ended when this member discovered other primary.",
-                "nanoseconds", false),
-            f.createIntCounter("volunteeringClosed",
-                "Total number of attempts to volunteer that ended when this member's bucket closed.",
-                "operations"),
-            f.createLongCounter("volunteeringClosedTime",
-                "Total time spent volunteering that ended when this member's bucket closed.",
-                "nanoseconds", false),
+            f.createLongCounter("createTime", "Total time spent doing create operations.", "nanoseconds", false),
+            f.createLongCounter("getTime", "Total time spent performing get operations.", "nanoseconds", false),
+            f.createLongCounter("destroyTime", "Total time spent doing destroys.", "nanoseconds", false),
+            f.createLongCounter("invalidateTime", "Total time spent doing invalidates.", "nanoseconds", false),
+            f.createLongCounter("containsKeyTime", "Total time spent performing containsKey operations.", "nanoseconds", false),
+            f.createLongCounter("containsValueForKeyTime", "Total time spent performing containsValueForKey operations.", "nanoseconds", false),
+            f.createLongCounter("partitionMessagesProcessingTime", "Total time spent on PartitionMessages processing.", "nanoseconds", false),
+            f.createIntGauge("dataStoreEntryCount", "The number of entries stored in this Cache for the named Partitioned Region. This does not include entries which are tombstones. See CachePerfStats.tombstoneCount.", "entries"),
+            f.createLongGauge("dataStoreBytesInUse", "The current number of bytes stored in this Cache for the named Partitioned Region", "bytes"),
+            f.createIntGauge("volunteeringInProgress","Current number of attempts to volunteer for primary of a bucket.", "operations"),
+            f.createIntCounter("volunteeringBecamePrimary", "Total number of attempts to volunteer that ended when this member became primary.", "operations"),
+            f.createLongCounter("volunteeringBecamePrimaryTime", "Total time spent volunteering that ended when this member became primary.", "nanoseconds", false),
+            f.createIntCounter("volunteeringOtherPrimary", "Total number of attempts to volunteer that ended when this member discovered other primary.", "operations"),
+            f.createLongCounter("volunteeringOtherPrimaryTime", "Total time spent volunteering that ended when this member discovered other primary.", "nanoseconds", false),
+            f.createIntCounter("volunteeringClosed", "Total number of attempts to volunteer that ended when this member's bucket closed.", "operations"),
+            f.createLongCounter("volunteeringClosedTime", "Total time spent volunteering that ended when this member's bucket closed.", "nanoseconds", false),
             f.createIntGauge("totalNumBuckets", "The total number of buckets.", "buckets"),
-            f.createIntGauge("primaryBucketCount",
-                "Current number of primary buckets hosted locally.", "buckets"),
-            f.createIntGauge("volunteeringThreads",
-                "Current number of threads volunteering for primary.", "threads"),
-            f.createIntGauge("lowRedundancyBucketCount",
-                "Current number of buckets without full redundancy.", "buckets"),
-            f.createIntGauge("noCopiesBucketCount",
-                "Current number of buckets without any copies remaining.", "buckets"),
-            f.createIntGauge("configuredRedundantCopies",
-                "Configured number of redundant copies for this partitioned region.", "copies"),
-            f.createIntGauge("actualRedundantCopies",
-                "Actual number of redundant copies for this partitioned region.", "copies"),
-            f.createIntCounter("getEntryCompleted", "Number of getEntry operations completed.",
-                "operations", largerIsBetter),
-            f.createLongCounter("getEntryTime", "Total time spent performing getEntry operations.",
-                "nanoseconds", false),
-
-            f.createIntGauge("recoveriesInProgress",
-                "Current number of redundancy recovery operations in progress for this region.",
-                "operations"),
-            f.createIntCounter("recoveriesCompleted",
-                "Total number of redundancy recovery operations performed on this region.",
-                "operations"),
-            f.createLongCounter("recoveryTime", "Total number time spent recovering redundancy.",
-                "operations"),
-            f.createIntGauge("bucketCreatesInProgress",
-                "Current number of bucket create operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("bucketCreatesCompleted",
-                "Total number of bucket create operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("bucketCreatesFailed",
-                "Total number of bucket create operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("bucketCreateTime",
-                "Total time spent performing bucket create operations for rebalancing.",
-                "nanoseconds", false),
-            f.createIntGauge("primaryTransfersInProgress",
-                "Current number of primary transfer operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("primaryTransfersCompleted",
-                "Total number of primary transfer operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("primaryTransfersFailed",
-                "Total number of primary transfer operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("primaryTransferTime",
-                "Total time spent performing primary transfer operations for rebalancing.",
-                "nanoseconds", false),
-
-            f.createIntCounter("applyReplicationCompleted",
-                "Total number of replicated values sent from a primary to this redundant data store.",
-                "operations", largerIsBetter),
-            f.createIntGauge("applyReplicationInProgress",
-                "Current number of replication operations in progress on this redundant data store.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("applyReplicationTime",
-                "Total time spent storing replicated values on this redundant data store.",
-                "nanoseconds", !largerIsBetter),
-            f.createIntCounter("sendReplicationCompleted",
-                "Total number of replicated values sent from this primary to a redundant data store.",
-                "operations", largerIsBetter),
-            f.createIntGauge("sendReplicationInProgress",
-                "Current number of replication operations in progress from this primary.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("sendReplicationTime",
-                "Total time spent replicating values from this primary to a redundant data store.",
-                "nanoseconds", !largerIsBetter),
-            f.createIntCounter("putRemoteCompleted",
-                "Total number of completed puts that did not originate in the primary. These puts require an extra network hop to the primary.",
-                "operations", largerIsBetter),
-            f.createIntGauge("putRemoteInProgress",
-                "Current number of puts in progress that did not originate in the primary.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("putRemoteTime",
-                "Total time spent doing puts that did not originate in the primary.", "nanoseconds",
-                !largerIsBetter),
-            f.createIntCounter("putLocalCompleted",
-                "Total number of completed puts that did originate in the primary. These puts are optimal.",
-                "operations", largerIsBetter),
-            f.createIntGauge("putLocalInProgress",
-                "Current number of puts in progress that did originate in the primary.",
-                "operations", !largerIsBetter),
-            f.createLongCounter("putLocalTime",
-                "Total time spent doing puts that did originate in the primary.", "nanoseconds",
-                !largerIsBetter),
-
-            f.createIntGauge("rebalanceBucketCreatesInProgress",
-                "Current number of bucket create operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalanceBucketCreatesCompleted",
-                "Total number of bucket create operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalanceBucketCreatesFailed",
-                "Total number of bucket create operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("rebalanceBucketCreateTime",
-                "Total time spent performing bucket create operations for rebalancing.",
-                "nanoseconds", false),
-            f.createIntGauge("rebalancePrimaryTransfersInProgress",
-                "Current number of primary transfer operations being performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalancePrimaryTransfersCompleted",
-                "Total number of primary transfer operations performed for rebalancing.",
-                "operations"),
-            f.createIntCounter("rebalancePrimaryTransfersFailed",
-                "Total number of primary transfer operations performed for rebalancing that failed.",
-                "operations"),
-            f.createLongCounter("rebalancePrimaryTransferTime",
-                "Total time spent performing primary transfer operations for rebalancing.",
-                "nanoseconds", false),
-            f.createLongCounter("prMetaDataSentCount",
-                "total number of times meta data refreshed sent on client's request.", "operation",
-                false),
-
-            f.createLongGauge("localMaxMemory",
-                "local max memory in bytes for this region on this member", "bytes")
-
+            f.createIntGauge("primaryBucketCount", "Current number of primary buckets hosted locally.", "buckets"),
+            f.createIntGauge("volunteeringThreads", "Current number of threads volunteering for primary.", "threads"),
+            f.createIntGauge("lowRedundancyBucketCount", "Current number of buckets without full redundancy.", "buckets"),
+            f.createIntGauge("noCopiesBucketCount", "Current number of buckets without any copies remaining.", "buckets"),
+            f.createIntGauge("configuredRedundantCopies", "Configured number of redundant copies for this partitioned region.", "copies"),
+            f.createIntGauge("actualRedundantCopies", "Actual number of redundant copies for this partitioned region.", "copies"),
+            f.createIntCounter("getEntryCompleted", "Number of getEntry operations completed.", "operations", true),
+            f.createLongCounter("getEntryTime", "Total time spent performing getEntry operations.", "nanoseconds", false),
+            f.createIntGauge("recoveriesInProgress", "Current number of redundancy recovery operations in progress for this region.", "operations"),
+            f.createIntCounter("recoveriesCompleted", "Total number of redundancy recovery operations performed on this region.", "operations"),
+            f.createLongCounter("recoveryTime", "Total number time spent recovering redundancy.", "operations"),
+            f.createIntGauge("bucketCreatesInProgress", "Current number of bucket create operations being performed for rebalancing.", "operations"),
+            f.createIntCounter("bucketCreatesCompleted", "Total number of bucket create operations performed for rebalancing.", "operations"),
+            f.createIntCounter("bucketCreatesFailed", "Total number of bucket create operations performed for rebalancing that failed.", "operations"),
+            f.createLongCounter("bucketCreateTime", "Total time spent performing bucket create operations for rebalancing.", "nanoseconds", false),
+            f.createIntGauge("primaryTransfersInProgress", "Current number of primary transfer operations being performed for rebalancing.", "operations"),
+            f.createIntCounter("primaryTransfersCompleted", "Total number of primary transfer operations performed for rebalancing.", "operations"),
+            f.createIntCounter("primaryTransfersFailed", "Total number of primary transfer operations performed for rebalancing that failed.", "operations"),
+            f.createLongCounter("primaryTransferTime", "Total time spent performing primary transfer operations for rebalancing.", "nanoseconds", false),
+            f.createIntCounter("applyReplicationCompleted", "Total number of replicated values sent from a primary to this redundant data store.", "operations", true),
+            f.createIntGauge("applyReplicationInProgress", "Current number of replication operations in progress on this redundant data store.", "operations", false),
+            f.createLongCounter("applyReplicationTime", "Total time spent storing replicated values on this redundant data store.", "nanoseconds", false),
+            f.createIntCounter("sendReplicationCompleted", "Total number of replicated values sent from this primary to a redundant data store.", "operations", true),
+            f.createIntGauge("sendReplicationInProgress", "Current number of replication operations in progress from this primary.", "operations", false),
+            f.createLongCounter("sendReplicationTime", "Total time spent replicating values from this primary to a redundant data store.", "nanoseconds", false),
+            f.createIntCounter("putRemoteCompleted", "Total number of completed puts that did not originate in the primary. These puts require an extra network hop to the primary.", "operations", true),
+            f.createIntGauge("putRemoteInProgress", "Current number of puts in progress that did not originate in the primary.", "operations", false),
+            f.createLongCounter("putRemoteTime", "Total time spent doing puts that did not originate in the primary.", "nanoseconds", false),
+            f.createIntCounter("putLocalCompleted", "Total number of completed puts that did originate in the primary. These puts are optimal.", "operations", true),
+            f.createIntGauge("putLocalInProgress", "Current number of puts in progress that did originate in the primary.", "operations", false),
+            f.createLongCounter("putLocalTime", "Total time spent doing puts that did originate in the primary.", "nanoseconds", false),
+            f.createIntGauge("rebalanceBucketCreatesInProgress", "Current number of bucket create operations being performed for rebalancing.", "operations"),
+            f.createIntCounter("rebalanceBucketCreatesCompleted", "Total number of bucket create operations performed for rebalancing.", "operations"),
+            f.createIntCounter("rebalanceBucketCreatesFailed", "Total number of bucket create operations performed for rebalancing that failed.", "operations"),
+            f.createLongCounter("rebalanceBucketCreateTime", "Total time spent performing bucket create operations for rebalancing.", "nanoseconds", false),
+            f.createIntGauge("rebalancePrimaryTransfersInProgress", "Current number of primary transfer operations being performed for rebalancing.", "operations"),
+            f.createIntCounter("rebalancePrimaryTransfersCompleted", "Total number of primary transfer operations performed for rebalancing.", "operations"),
+            f.createIntCounter("rebalancePrimaryTransfersFailed", "Total number of primary transfer operations performed for rebalancing that failed.", "operations"),
+            f.createLongCounter("rebalancePrimaryTransferTime", "Total time spent performing primary transfer operations for rebalancing.", "nanoseconds", false),
+            f.createLongCounter("prMetaDataSentCount", "total number of times meta data refreshed sent on client's request.", "operation", false),
+            f.createLongGauge("localMaxMemory", "local max memory in bytes for this region on this member", "bytes")
         });
 
     bucketCountId = type.nameToId("bucketCount");
@@ -566,94 +415,53 @@ public class PartitionedRegionStatsImpl implements PartitionedRegionStats {
 
   @Override
   public void endPut(long start) {
-    endPut(start, 1);
-  }
-
-  /**
-   * This method sets the end time for putAll and updates the counters
-   *
-   * @param start
-   */
-  @Override
-  public void endPutAll(long start) {
-    endPutAll(start, 1);
-  }
-
-  @Override
-  public void endRemoveAll(long start) {
-    endRemoveAll(start, 1);
-  }
-
-  @Override
-  public void endCreate(long start) {
-    endCreate(start, 1);
-  }
-
-  @Override
-  public void endGet(long start) {
-    endGet(start, 1);
-  }
-
-  @Override
-  public void endContainsKey(long start) {
-    endContainsKey(start, 1);
-  }
-
-  @Override
-  public void endContainsValueForKey(long start) {
-    endContainsValueForKey(start, 1);
-  }
-
-  @Override
-  public void endPut(long start, int numInc) {
     if (CachePerfStats.enableClockStats) {
       long delta = CachePerfStats.getStatTime() - start;
       this.stats.incLong(putTimeId, delta);
     }
-    this.stats.incInt(putsCompletedId, numInc);
+    this.stats.incInt(putsCompletedId, 1);
   }
 
   /**
    * This method sets the end time for putAll and updates the counters
    *
    * @param start
-   * @param numInc
    */
   @Override
-  public void endPutAll(long start, int numInc) {
+  public void endPutAll(long start) {
     if (CachePerfStats.enableClockStats) {
       long delta = CachePerfStats.getStatTime() - start;
       this.stats.incLong(fieldId_PUTALL_TIME, delta);
       // this.putStatsHistogram.endOp(delta);
 
     }
-    this.stats.incInt(fieldId_PUTALLS_COMPLETED, numInc);
+    this.stats.incInt(fieldId_PUTALLS_COMPLETED, 1);
   }
 
   @Override
-  public void endRemoveAll(long start, int numInc) {
+  public void endRemoveAll(long start) {
     if (CachePerfStats.enableClockStats) {
       long delta = CachePerfStats.getStatTime() - start;
       this.stats.incLong(fieldId_REMOVE_ALL_TIME, delta);
     }
-    this.stats.incInt(fieldId_REMOVE_ALLS_COMPLETED, numInc);
+    this.stats.incInt(fieldId_REMOVE_ALLS_COMPLETED, 1);
   }
 
   @Override
-  public void endCreate(long start, int numInc) {
+  public void endCreate(long start) {
     if (CachePerfStats.enableClockStats) {
       this.stats.incLong(createTimeId, CachePerfStats.getStatTime() - start);
     }
-    this.stats.incInt(createsCompletedId, numInc);
+    this.stats.incInt(createsCompletedId, 1);
   }
 
   @Override
-  public void endGet(long start, int numInc) {
+  public void endGet(long start) {
     if (CachePerfStats.enableClockStats) {
       final long delta = CachePerfStats.getStatTime() - start;
       this.stats.incLong(getTimeId, delta);
     }
-    this.stats.incInt(getsCompletedId, numInc);
+    this.stats.incInt(getsCompletedId, 1);
   }
 
   @Override
@@ -673,19 +481,19 @@ public class PartitionedRegionStatsImpl implements PartitionedRegionStats {
   }
 
   @Override
-  public void endContainsKey(long start, int numInc) {
+  public void endContainsKey(long start) {
     if (CachePerfStats.enableClockStats) {
       this.stats.incLong(containsKeyTimeId, CachePerfStats.getStatTime() - start);
     }
-    this.stats.incInt(containsKeyCompletedId, numInc);
+    this.stats.incInt(containsKeyCompletedId, 1);
   }
 
   @Override
-  public void endContainsValueForKey(long start, int numInc) {
+  public void endContainsValueForKey(long start) {
     if (CachePerfStats.enableClockStats) {
       this.stats.incLong(containsValueForKeyTimeId, CachePerfStats.getStatTime() - start);
     }
-    this.stats.incInt(containsValueForKeyCompletedId, numInc);
+    this.stats.incInt(containsValueForKeyCompletedId, 1);
   }
 
   @Override
@@ -1065,7 +873,7 @@ public class PartitionedRegionStatsImpl implements PartitionedRegionStats {
   public long startBucketCreate(boolean isRebalance) {
     this.stats.incInt(bucketCreatesInProgressId, 1);
     if (isRebalance) {
-      startRebalanceBucketCreate();
+      this.stats.incInt(rebalanceBucketCreatesInProgressId, 1);
     }
     return getStatTime();
   }
@@ -1157,10 +965,6 @@ public class PartitionedRegionStatsImpl implements PartitionedRegionStats {
   // rebalancing stats
   // ------------------------------------------------------------------------
 
-  private void startRebalanceBucketCreate() {
-    this.stats.incInt(rebalanceBucketCreatesInProgressId, 1);
-  }
-
   private void endRebalanceBucketCreate(long start, long end, boolean success) {
     this.stats.incInt(rebalanceBucketCreatesInProgressId, -1);
     if (CachePerfStats.enableClockStats) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt
index b9018db..b9f4a70 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt
@@ -1,11 +1,16 @@
 package org.apache.geode.internal.cache
 
+import io.micrometer.core.instrument.MeterRegistry
+import io.micrometer.core.instrument.Tag
 import io.micrometer.core.instrument.Timer
 import java.util.concurrent.TimeUnit
 
-class TimedMicrometerPartitionedRegionStats(regionName: String) : MicrometerPartitionRegionStats(regionName) {
+class TimedMicrometerPartitionedRegionStats(meterRegistry: MeterRegistry, regionName: String) : MicrometerPartitionRegionStats(meterRegistry,regionName) {
+
+    constructor(regionName:String) : this(MicroMeterRegistryFactory.getMeterRegistry(),regionName)
+
     private fun constructTimerForMetric(metricName: String): Timer =
-            metrics.timer("${metricName}Latency", regionName, PARTITIONED_REGION)
+            meterRegistry.timer("${metricName}Latency", listOf(Tag.of("region", regionName), Tag.of("regionType", PARTITIONED_REGION)))
 
     private val putTimer = constructTimerForMetric("put")
     private val putAllTimer = constructTimerForMetric("putAll")
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateBucketMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateBucketMessage.java
index e134f94..31a80ff 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateBucketMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateBucketMessage.java
@@ -144,7 +144,7 @@ public class CreateBucketMessage extends PartitionMessage {
     }
     r.checkReadiness();
     InternalDistributedMember primary = r.getRedundancyProvider().createBucketAtomically(bucketId,
-        bucketSize, startTime, false, partitionName);
+        bucketSize,  false, partitionName);
     r.getPrStats().endPartitionMessagesProcessing(startTime);
     CreateBucketReplyMessage.sendResponse(getSender(), getProcessorId(), dm, primary);
     return false;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateMissingBucketsTask.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateMissingBucketsTask.java
index 2d1b3e8..bfe5fd9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateMissingBucketsTask.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/CreateMissingBucketsTask.java
@@ -55,8 +55,7 @@ public class CreateMissingBucketsTask extends RecoveryRunnable {
       if (parentRegion.getRegionAdvisor().getBucketAdvisor(i).getBucketRedundancy() != region
           .getRegionAdvisor().getBucketAdvisor(i).getBucketRedundancy()) {
         /* if (leaderRegion.getRegionAdvisor().isStorageAssignedForBucket(i)) { */
-        final long startTime = PartitionedRegionStats.startTime();
-        region.getRedundancyProvider().createBucketAtomically(i, 0, startTime, true, null);
+        region.getRedundancyProvider().createBucketAtomically(i, 0, true, null);
       }
     }
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
index ea08ef2..ecdb891 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/FetchEntryMessage.java
@@ -128,9 +128,9 @@ public class FetchEntryMessage extends PartitionMessage {
         val = (EntrySnapshot) r.getDataView().getEntryOnRemote(keyInfo, r, true);
         r.getPrStats().endPartitionMessagesProcessing(startTime);
         FetchEntryReplyMessage.send(getSender(), getProcessorId(), val, dm, null);
-      } catch (TransactionException tex) {
+      } catch (TransactionException | PrimaryBucketException ex) {
         FetchEntryReplyMessage.send(getSender(), getProcessorId(), null, dm,
-            new ReplyException(tex));
+            new ReplyException(ex));
       } catch (PRLocallyDestroyedException pde) {
         FetchEntryReplyMessage.send(getSender(), getProcessorId(), null, dm,
             new ReplyException(new ForceReattemptException(
@@ -140,9 +140,6 @@ public class FetchEntryMessage extends PartitionMessage {
       } catch (EntryNotFoundException enfe) {
         FetchEntryReplyMessage.send(getSender(), getProcessorId(), null, dm, new ReplyException(
             LocalizedStrings.FetchEntryMessage_ENTRY_NOT_FOUND.toLocalizedString(), enfe));
-      } catch (PrimaryBucketException pbe) {
-        FetchEntryReplyMessage.send(getSender(), getProcessorId(), null, dm,
-            new ReplyException(pbe));
       } catch (ForceReattemptException pbe) {
         pbe.checkKey(key);
         // Slightly odd -- we're marshalling the retry to the peer on another host...
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/PartitionedTXRegionStub.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/PartitionedTXRegionStub.java
index c029175..ab90f30 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tx/PartitionedTXRegionStub.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tx/PartitionedTXRegionStub.java
@@ -394,7 +394,7 @@ public class PartitionedTXRegionStub extends AbstractPeerTXRegionStub {
     }
 
     PartitionedRegion pr = (PartitionedRegion) r;
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = pr.prStats.startTime();
     // build all the msgs by bucketid
     HashMap prMsgMap = putallO.createPRMessages();
     PutAllPartialResult partialKeys = new PutAllPartialResult(putallO.putAllDataSize);
@@ -454,7 +454,7 @@ public class PartitionedTXRegionStub extends AbstractPeerTXRegionStub {
     }
 
     PartitionedRegion pr = (PartitionedRegion) r;
-    final long startTime = PartitionedRegionStats.startTime();
+    final long startTime = pr.prStats.startTime();
     // build all the msgs by bucketid
     HashMap<Integer, RemoveAllPRMessage> prMsgMap = op.createPRMessages();
     PutAllPartialResult partialKeys = new PutAllPartialResult(op.removeAllDataSize);
diff --git a/geode-core/src/main/java/org/apache/geode/management/MemberMXBean.java b/geode-core/src/main/java/org/apache/geode/management/MemberMXBean.java
index a240106..e195a1e 100644
--- a/geode-core/src/main/java/org/apache/geode/management/MemberMXBean.java
+++ b/geode-core/src/main/java/org/apache/geode/management/MemberMXBean.java
@@ -180,12 +180,12 @@ public interface MemberMXBean {
   void shutDownMember();
 
   /**
-   * Returns JVM metrics.
+   * Returns JVM meterRegistry.
    */
   JVMMetrics showJVMMetrics();
 
   /**
-   * Returns operating system metrics.
+   * Returns operating system meterRegistry.
    */
   OSMetrics showOSMetrics();
 
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java b/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java
index e010fc5..46446a5 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/beans/MemberMBeanBridge.java
@@ -726,7 +726,7 @@ public class MemberMBeanBridge {
   }
 
   /**
-   * @return Some basic JVM metrics at the particular instance
+   * @return Some basic JVM meterRegistry at the particular instance
    */
   public JVMMetrics fetchJVMMetrics() {
     long gcCount = getGCStatistic(StatsKey.VM_GC_STATS_COLLECTIONS).longValue();
@@ -745,11 +745,11 @@ public class MemberMBeanBridge {
   }
 
   /**
-   * All OS metrics are not present in java.lang.management.OperatingSystemMXBean It has to be cast
+   * All OS meterRegistry are not present in java.lang.management.OperatingSystemMXBean It has to be cast
    * to com.sun.management.OperatingSystemMXBean. To avoid the cast using dynamic call so that Java
    * platform will take care of the details in a native manner;
    *
-   * @return Some basic OS metrics at the particular instance
+   * @return Some basic OS meterRegistry at the particular instance
    */
   public OSMetrics fetchOSMetrics() {
     OSMetrics metrics = null;
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommand.java
index e1d35b9..d98b301 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommand.java
@@ -136,10 +136,10 @@ public class ShowMetricsCommand extends GfshCommand {
   }
 
   /**
-   * Gets the system wide metrics
+   * Gets the system wide meterRegistry
    *
    * @return ResultData with required System wide statistics or ErrorResultData if DS MBean is not
-   *         found to gather metrics
+   *         found to gather meterRegistry
    */
   private ResultData getSystemWideMetrics(String export_to_report_to, String[] categoriesArr,
       StringBuilder csvBuilder) {
@@ -164,17 +164,17 @@ public class ShowMetricsCommand extends GfshCommand {
     writeSystemWideMetricValues(dsMxBean, csvBuilder, metricsTable, categoriesToDisplay);
     if (StringUtils.isNotEmpty(export_to_report_to)) {
       crd.addAsFile(export_to_report_to, csvBuilder.toString(),
-          "Cluster wide metrics exported to {0}.", false);
+          "Cluster wide meterRegistry exported to {0}.", false);
     }
 
     return crd;
   }
 
   /**
-   * Gets the Cluster wide metrics for a given member
+   * Gets the Cluster wide meterRegistry for a given member
    *
    * @return ResultData with required Member statistics or ErrorResultData if MemberMbean is not
-   *         found to gather metrics
+   *         found to gather meterRegistry
    * @throws ResultDataException if building result fails
    */
   private ResultData getMemberMetrics(DistributedMember distributedMember,
@@ -228,14 +228,14 @@ public class ShowMetricsCommand extends GfshCommand {
 
     if (StringUtils.isNotEmpty(export_to_report_to)) {
       crd.addAsFile(export_to_report_to, csvBuilder != null ? csvBuilder.toString() : null,
-          "Member metrics exported to {0}.", false);
+          "Member meterRegistry exported to {0}.", false);
     }
     return crd;
 
   }
 
   /**
-   * Gets the Cluster-wide metrics for a region
+   * Gets the Cluster-wide meterRegistry for a region
    *
    * @return ResultData containing the table
    * @throws ResultDataException if building result fails
@@ -275,10 +275,10 @@ public class ShowMetricsCommand extends GfshCommand {
   }
 
   /**
-   * Gets the metrics of region on a given member
+   * Gets the meterRegistry of region on a given member
    *
    * @return ResultData with required Region statistics or ErrorResultData if Region MBean is not
-   *         found to gather metrics
+   *         found to gather meterRegistry
    * @throws ResultDataException if building result fails
    */
   private ResultData getRegionMetricsFromMember(String regionName,
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
index fe8650c..139a19c 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
@@ -2034,15 +2034,15 @@ public class CliStrings {
   public static final String SHOW_LOG_MSG_INVALID_NUMBER = "Invalid number";
   public static final String SHOW_LOG_ERROR = "Error";
 
-  /* show metrics */
-  public static final String SHOW_METRICS = "show metrics";
+  /* show meterRegistry */
+  public static final String SHOW_METRICS = "show meterRegistry";
   public static final String SHOW_METRICS__HELP =
-      "Display or export metrics for the entire distributed system, a member or a region.";
+      "Display or export meterRegistry for the entire distributed system, a member or a region.";
   public static final String SHOW_METRICS__REGION = "region";
   public static final String SHOW_METRICS__REGION__HELP =
-      "Name/Path of the region whose metrics will be displayed/exported.";
+      "Name/Path of the region whose meterRegistry will be displayed/exported.";
   public static final String SHOW_METRICS__MEMBER__HELP =
-      "Name/Id of the member whose metrics will be displayed/exported.";
+      "Name/Id of the member whose meterRegistry will be displayed/exported.";
   public static final String SHOW_METRICS__CATEGORY = "categories";
   public static final String SHOW_METRICS__CATEGORY__HELP =
       "Categories available based upon the parameters specified are:\n"
@@ -2053,14 +2053,14 @@ public class CliStrings {
           + "- member and region specified: callback, diskstore, eviction, partition, region";
   public static final String SHOW_METRICS__FILE = "file";
   public static final String SHOW_METRICS__FILE__HELP =
-      "Name of the file to which metrics will be written.";
-  public static final String SHOW_METRICS__ERROR = "Unable to retrieve metrics : {0} ";
+      "Name of the file to which meterRegistry will be written.";
+  public static final String SHOW_METRICS__ERROR = "Unable to retrieve meterRegistry : {0} ";
   public static final String SHOW_METRICS__TYPE__HEADER = "Category";
   public static final String SHOW_METRICS__METRIC__HEADER = "Metric";
   public static final String SHOW_METRICS__VALUE__HEADER = "Value";
   public static final String SHOW_METRICS__CACHESERVER__PORT = "port";
   public static final String SHOW_METRICS__CACHESERVER__PORT__HELP =
-      "Port number of the Cache Server whose metrics are to be displayed/exported. This can only be used along with the --member parameter.";
+      "Port number of the Cache Server whose meterRegistry are to be displayed/exported. This can only be used along with the --member parameter.";
   public static final String SHOW_METRICS__CANNOT__USE__CACHESERVERPORT =
       "If the --port parameter is specified, then the --member parameter must also be specified.";
   public static final String SHOW_METRICS__CANNOT__USE__REGION__WITH__CACHESERVERPORT =
diff --git a/geode-core/src/test/java/org/apache/geode/management/OffHeapManagementDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/OffHeapManagementDUnitTest.java
index d50ee3e..a4ef96d 100644
--- a/geode-core/src/test/java/org/apache/geode/management/OffHeapManagementDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/OffHeapManagementDUnitTest.java
@@ -199,7 +199,7 @@ public class OffHeapManagementDUnitTest extends CacheTestCase {
     assertOffHeapMetricsOnVm(vm, TOTAL_MEMORY, 0, 0, 0);
 
     /*
-     * Perform ops on the off-heap region and assert that the off-heap metrics correctly reflect the
+     * Perform ops on the off-heap region and assert that the off-heap meterRegistry correctly reflect the
      * ops
      */
     doPutOnVm(vm, KEY, VALUE, OFF_HEAP_REGION_NAME, false);
diff --git a/geode-core/src/test/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java
index e430b49..98a75a1 100644
--- a/geode-core/src/test/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/bean/stats/MemberLevelStatsJUnitTest.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.geode.internal.cache.*;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -30,10 +31,6 @@ import org.apache.geode.distributed.internal.DistributionStats;
 import org.apache.geode.distributed.internal.locks.DLockStats;
 import org.apache.geode.internal.NanoTimer;
 import org.apache.geode.internal.OSProcess;
-import org.apache.geode.internal.cache.CachePerfStats;
-import org.apache.geode.internal.cache.DiskStoreStats;
-import org.apache.geode.internal.cache.GemFireCacheImpl;
-import org.apache.geode.internal.cache.PartitionedRegionStats;
 import org.apache.geode.internal.cache.execute.FunctionServiceStats;
 import org.apache.geode.internal.statistics.VMStatsContract;
 import org.apache.geode.internal.stats50.VMStats50;
@@ -94,7 +91,7 @@ public class MemberLevelStatsJUnitTest extends MBeanStatsTestCase {
     }
 
     for (int i = 0; i < 4; i++) {
-      PartitionedRegionStats stats = new PartitionedRegionStats(system, name.getMethodName() + i);
+      PartitionedRegionStats stats = new PartitionedRegionStatsImpl(system, name.getMethodName() + i);
       parRegionStatsList.add(stats);
       bridge.addPartionRegionStats(stats);
     }
diff --git a/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
index dd9e19c..db7dce2 100644
--- a/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.management.bean.stats;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.geode.internal.cache.PartitionedRegionStatsImpl;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -49,7 +50,7 @@ public class RegionStatsJUnitTest extends MBeanStatsTestCase {
 
   protected void init() {
     cachePerfStats = new CachePerfStats(system);
-    partitionedRegionStats = new PartitionedRegionStats(system, "/tests");
+    partitionedRegionStats = new PartitionedRegionStatsImpl(system, "/tests");
     diskRegionStats = new DiskRegionStats(system, "test-disk");
 
     bridge = new RegionMBeanBridge(cachePerfStats);
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommandIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommandIntegrationTest.java
index 7bbad90..d0139d8 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommandIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsCommandIntegrationTest.java
@@ -69,14 +69,14 @@ public class ShowMetricsCommandIntegrationTest {
   @Test
   public void commandFailsWhenNotConnected() throws Exception {
     gfsh.disconnect();
-    gfsh.executeAndAssertThat("show metrics")
+    gfsh.executeAndAssertThat("show meterRegistry")
         .containsOutput("was found but is not currently available");
   }
 
   @Test
   public void getRegionMetricsShowsExactlyDefaultCategories() throws Exception {
     // Use --region and --member to get RegionMetricsFromMember
-    String cmd = "show metrics --region=/" + REGION_NAME + " --member=" + MEMBER_NAME;
+    String cmd = "show meterRegistry --region=/" + REGION_NAME + " --member=" + MEMBER_NAME;
     List<String> expectedCategories =
         ShowMetricsInterceptor.getValidCategoriesAsStrings(true, true, false);
     // Blank lines are permitted for grouping.
@@ -89,7 +89,7 @@ public class ShowMetricsCommandIntegrationTest {
   @Test
   public void getSystemRegionMetricsShowsExactlyDefaultCategories() throws Exception {
     // Use --region alone to get SystemRegionMetrics
-    String cmd = "show metrics --region=/" + REGION_NAME;
+    String cmd = "show meterRegistry --region=/" + REGION_NAME;
     List<String> expectedCategories =
         ShowMetricsInterceptor.getValidCategoriesAsStrings(true, false, false);
     // Blank lines are permitted for grouping.
@@ -102,8 +102,8 @@ public class ShowMetricsCommandIntegrationTest {
 
   @Test
   public void getMemberMetricsShowsExactlyDefaultCategories() throws Exception {
-    // Use --member to get member metrics
-    String cmd = "show metrics --member=" + MEMBER_NAME;
+    // Use --member to get member meterRegistry
+    String cmd = "show meterRegistry --member=" + MEMBER_NAME;
     List<String> expectedCategories =
         ShowMetricsInterceptor.getValidCategoriesAsStrings(false, true, false);
     // Blank lines are permitted for grouping.
@@ -116,8 +116,8 @@ public class ShowMetricsCommandIntegrationTest {
 
   @Test
   public void getMemberWithPortMetricsShowsExactlyDefaultCategories() throws Exception {
-    // Use --member and --port to get member metrics with port info
-    String cmd = "show metrics --member=" + MEMBER_NAME + " --port=" + server.getPort();
+    // Use --member and --port to get member meterRegistry with port info
+    String cmd = "show meterRegistry --member=" + MEMBER_NAME + " --port=" + server.getPort();
     List<String> expectedCategories =
         ShowMetricsInterceptor.getValidCategoriesAsStrings(false, true, true);
     // Blank lines are permitted for grouping.
@@ -130,8 +130,8 @@ public class ShowMetricsCommandIntegrationTest {
 
   @Test
   public void getSystemMetricsShowsExactlyDefaultCategories() throws Exception {
-    // No specified options yield system-wide metrics
-    String cmd = "show metrics";
+    // No specified options yield system-wide meterRegistry
+    String cmd = "show meterRegistry";
     List<String> expectedCategories =
         ShowMetricsInterceptor.getValidCategoriesAsStrings(false, false, false);
     // Blank lines are permitted for grouping.
@@ -145,7 +145,7 @@ public class ShowMetricsCommandIntegrationTest {
   @Test
   public void invalidCategoryGetsReported() throws Exception {
     String cmd =
-        "show metrics --categories=\"cluster,cache,some_invalid_category,another_invalid_category\"";
+        "show meterRegistry --categories=\"cluster,cache,some_invalid_category,another_invalid_category\"";
 
     gfsh.executeAndAssertThat(cmd).containsOutput("Invalid Categories")
         .containsOutput("some_invalid_category").containsOutput("another_invalid_category")
@@ -154,7 +154,7 @@ public class ShowMetricsCommandIntegrationTest {
 
   @Test
   public void categoryOptionAbridgesOutput() throws Exception {
-    String cmd = "show metrics --categories=\"cluster,cache\"";
+    String cmd = "show meterRegistry --categories=\"cluster,cache\"";
     List<String> expectedCategories = Arrays.asList("cluster", "cache", "");
     logger.info("Expecting categories: " + String.join(", ", expectedCategories));
 
@@ -166,7 +166,7 @@ public class ShowMetricsCommandIntegrationTest {
   public void getRegionMetricsForPartitionedRegionWithStatistics() throws Exception {
     String cmd = "create region --name=region2 --type=PARTITION --enable-statistics";
     gfsh.executeAndAssertThat(cmd).statusIsSuccess();
-    String cmd2 = "show metrics --member=" + MEMBER_NAME + " --region=region2";
+    String cmd2 = "show meterRegistry --member=" + MEMBER_NAME + " --region=region2";
     gfsh.executeAndAssertThat(cmd2).statusIsSuccess().tableHasRowWithValues("Category", "Metric",
         "Value", "", "missCount", "-1");
   }
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java
index 82bd123..75c7baa 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java
@@ -118,19 +118,19 @@ public class ShowMetricsDUnitTest {
 
   @Test
   public void testShowMetricsDefault() throws Exception {
-    gfsh.executeAndAssertThat("show metrics").statusIsSuccess();
+    gfsh.executeAndAssertThat("show meterRegistry").statusIsSuccess();
   }
 
   @Test
   public void testShowMetricsRegion() throws Exception {
-    gfsh.executeAndAssertThat("show metrics --region=REGION1").statusIsSuccess();
+    gfsh.executeAndAssertThat("show meterRegistry --region=REGION1").statusIsSuccess();
     assertThat(gfsh.getGfshOutput()).contains("Cluster-wide Region Metrics");
   }
 
   @Test
   public void testShowMetricsMember() throws Exception {
     gfsh.executeAndAssertThat(
-        "show metrics --member=" + server.getName() + " --port=" + server.getPort())
+        "show meterRegistry --member=" + server.getName() + " --port=" + server.getPort())
         .statusIsSuccess().containsOutput("Member Metrics").containsOutput("cacheserver");
   }
 
@@ -139,17 +139,17 @@ public class ShowMetricsDUnitTest {
     File output = tempFolder.newFile("memberMetricReport.csv");
     output.delete();
 
-    gfsh.executeAndAssertThat("show metrics --member=" + server.getName() + " --port="
+    gfsh.executeAndAssertThat("show meterRegistry --member=" + server.getName() + " --port="
         + server.getPort() + " --file=" + output.getAbsolutePath()).statusIsSuccess()
         .containsOutput("Member Metrics").containsOutput("cacheserver")
-        .containsOutput("Member metrics exported to " + output.getAbsolutePath());
+        .containsOutput("Member meterRegistry exported to " + output.getAbsolutePath());
 
     assertThat(output).exists();
   }
 
   @Test
   public void testShowMetricsRegionFromMember() throws Exception {
-    gfsh.executeAndAssertThat("show metrics --member=" + server.getName() + " --region=REGION1")
+    gfsh.executeAndAssertThat("show meterRegistry --member=" + server.getName() + " --region=REGION1")
         .statusIsSuccess();
     assertThat(gfsh.getGfshOutput()).contains("Metrics for region:/REGION1 On Member server-1");
   }
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsJUnitTest.java
index e6f15e4..b625b1d 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowMetricsJUnitTest.java
@@ -36,7 +36,7 @@ public class ShowMetricsJUnitTest {
   public void testPortAndRegion() throws Exception {
     ShowMetricsCommand command = spy(ShowMetricsCommand.class);
     CommandResult result =
-        parser.executeCommandWithInstance(command, "show metrics --port=0 --region=regionA");
+        parser.executeCommandWithInstance(command, "show meterRegistry --port=0 --region=regionA");
     assertThat(result.getStatus()).isEqualTo(Result.Status.ERROR);
     assertThat(result.getContent().toString())
         .contains("The --region and --port parameters are mutually exclusive");
@@ -45,7 +45,7 @@ public class ShowMetricsJUnitTest {
   @Test
   public void testPortOnly() throws Exception {
     ShowMetricsCommand command = spy(ShowMetricsCommand.class);
-    CommandResult result = parser.executeCommandWithInstance(command, "show metrics --port=0");
+    CommandResult result = parser.executeCommandWithInstance(command, "show meterRegistry --port=0");
     assertThat(result.getStatus()).isEqualTo(Result.Status.ERROR);
     assertThat(result.getContent().toString()).contains(
         "If the --port parameter is specified, then the --member parameter must also be specified.");
@@ -54,7 +54,7 @@ public class ShowMetricsJUnitTest {
   @Test
   public void invalidPortNumber() throws Exception {
     ShowMetricsCommand command = spy(ShowMetricsCommand.class);
-    CommandResult result = parser.executeCommandWithInstance(command, "show metrics --port=abc");
+    CommandResult result = parser.executeCommandWithInstance(command, "show meterRegistry --port=abc");
     assertThat(result.getStatus()).isEqualTo(Result.Status.ERROR);
     // When relying on Spring's converters, any command that does not parse is "Invalid"
     assertThat(result.getContent().toString()).contains("Invalid command");
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
index c5705c2..9a18ed6 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java
@@ -224,7 +224,7 @@ public class TestCommand {
     createTestCommand("netstat --member=server1", ResourcePermissions.CLUSTER_READ);
     createTestCommand("show dead-locks --file=deadlocks.txt", ResourcePermissions.CLUSTER_READ);
     createTestCommand("show log --member=locator1 --lines=5", ResourcePermissions.CLUSTER_READ);
-    createTestCommand("show metrics", ResourcePermissions.CLUSTER_READ);
+    createTestCommand("show meterRegistry", ResourcePermissions.CLUSTER_READ);
 
 
     // PDX Commands
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
index 8199dbf..dfc685e 100644
--- a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
+++ b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
@@ -2196,7 +2196,7 @@ PARAMETERS\n\
 \ \ \ \ \ \ \ \ Default (if the parameter is specified without value): true\n\
 \ \ \ \ \ \ \ \ Default (if the parameter is not specified): false\n\
 \n\
-Other commands starting with "sh" are: show dead-locks, show log, show metrics, show missing-disk-stores, show subscription-queue-size, shutdown\n\
+Other commands starting with "sh" are: show dead-locks, show log, show meterRegistry, show missing-disk-stores, show subscription-queue-size, shutdown\n\
 
 show-dead-locks.help=\
 NAME\n\
@@ -2230,28 +2230,28 @@ PARAMETERS\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ \ \ \ \ Default (if the parameter is not specified): 0\n\
 
-show-metrics.help=\
+show-meterRegistry.help=\
 NAME\n\
-\ \ \ \ show metrics\n\
+\ \ \ \ show meterRegistry\n\
 IS AVAILABLE\n\
 \ \ \ \ false\n\
 SYNOPSIS\n\
-\ \ \ \ Display or export metrics for the entire distributed system, a member or a region.\n\
+\ \ \ \ Display or export meterRegistry for the entire distributed system, a member or a region.\n\
 SYNTAX\n\
-\ \ \ \ show metrics [--member=value] [--region=value] [--file=value] [--port=value]\n\
+\ \ \ \ show meterRegistry [--member=value] [--region=value] [--file=value] [--port=value]\n\
 \ \ \ \ [--categories=value(,value)*]\n\
 PARAMETERS\n\
 \ \ \ \ member\n\
-\ \ \ \ \ \ \ \ Name/Id of the member whose metrics will be displayed/exported.\n\
+\ \ \ \ \ \ \ \ Name/Id of the member whose meterRegistry will be displayed/exported.\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ region\n\
-\ \ \ \ \ \ \ \ Name/Path of the region whose metrics will be displayed/exported.\n\
+\ \ \ \ \ \ \ \ Name/Path of the region whose meterRegistry will be displayed/exported.\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ file\n\
-\ \ \ \ \ \ \ \ Name of the file to which metrics will be written.\n\
+\ \ \ \ \ \ \ \ Name of the file to which meterRegistry will be written.\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ port\n\
-\ \ \ \ \ \ \ \ Port number of the Cache Server whose metrics are to be displayed/exported. This can only\n\
+\ \ \ \ \ \ \ \ Port number of the Cache Server whose meterRegistry are to be displayed/exported. This can only\n\
 \ \ \ \ \ \ \ \ be used along with the --member parameter.\n\
 \ \ \ \ \ \ \ \ Required: false\n\
 \ \ \ \ categories\n\
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-online.properties b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-online.properties
index 2b22650..14763f4 100644
--- a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-online.properties
+++ b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-online.properties
@@ -506,9 +506,9 @@ NAME\n\
 IS AVAILABLE\n\
 \ \ \ \ true\n\
 
-show-metrics.help=\
+show-meterRegistry.help=\
 NAME\n\
-\ \ \ \ show metrics\n\
+\ \ \ \ show meterRegistry\n\
 IS AVAILABLE\n\
 \ \ \ \ true\n\
 
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
index bcf2ff1..2192627 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
@@ -7,43 +7,21 @@ import io.micrometer.core.instrument.composite.CompositeMeterRegistry
 import io.micrometer.influx.InfluxConfig
 import io.micrometer.influx.InfluxMeterRegistry
 import io.micrometer.jmx.JmxMeterRegistry
+import org.apache.geode.internal.cache.MicroMeterRegistryFactory
 import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics
 import java.time.Duration
 import java.util.concurrent.atomic.AtomicInteger
 
-class MicrometerClientStatsImpl : ProtocolClientStatistics {
+class MicrometerClientStatsImpl(val meterRegistry: MeterRegistry) : ProtocolClientStatistics {
+    constructor() : this(MicroMeterRegistryFactory.getMeterRegistry())
 
     private val clientsConnected = AtomicInteger(0)
 
-    private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
-        override fun step(): Duration = Duration.ofSeconds(1)
-        override fun db(): String = "mydb"
-        override fun get(k: String): String? = null
-        override fun uri(): String = "http://localhost:8086"
-    }, Clock.SYSTEM)
-
-//    private val atlasMetrics: MeterRegistry = AtlasMeterRegistry(object : AtlasConfig {
-//        override fun get(k: String?): String? = null
-//        override fun enabled(): Boolean = true
-//        override fun uri(): String = "http://localhost:7101/api/v1/publish"
-//        override fun step(): Duration = Duration.ofSeconds(10)
-//    }, Clock.SYSTEM)
-
-    private val jmxMetrics: MeterRegistry = JmxMeterRegistry()
-
-    private val metrics = CompositeMeterRegistry(Clock.SYSTEM)
-
-    init {
-        metrics.add(influxMetrics)
-//        metrics.add(atlasMetrics)
-        metrics.add(jmxMetrics)
-    }
-
-    val clientConnectedCounter = metrics.gauge("clientConnected", clientsConnected)
-    val messageReceivedCounter = metrics.summary("messageReceived")
-    val messageSentCounter = metrics.summary("messageSent")
-    val authorizationViolationsCounter = metrics.counter("authorizationViolations")
-    val authenticationFailureCounter = metrics.counter("authenticationFailures")
+    val clientConnectedCounter = meterRegistry.gauge("clientConnected", clientsConnected)
+    val messageReceivedCounter = meterRegistry.summary("messageReceived")
+    val messageSentCounter = meterRegistry.summary("messageSent")
+    val authorizationViolationsCounter = meterRegistry.counter("authorizationViolations")
+    val authenticationFailureCounter = meterRegistry.counter("authenticationFailures")
 
     override fun clientConnected() {
         clientsConnected.incrementAndGet()

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.

[geode] 03/05: Adding Micrometer to PartitionedRegionStats

Posted by ud...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d0a1f78c9a1d9948f2decdfa58a90d77efbf92a1
Author: Udo Kohlmeyer <uk...@pivotal.io>
AuthorDate: Fri Jan 5 17:47:08 2018 -0800

    Adding Micrometer to PartitionedRegionStats
---
 geode-core/build.gradle                            |  388 +++---
 .../cache/MicrometerPartitionRegionStats.kt        |  380 ++++++
 .../apache/geode/internal/cache/MicrometerStats.kt |   27 +
 .../internal/cache/PartitionedRegionStatsImpl.java | 1297 ++++++++++++++++++++
 .../cache/TimedMicrometerPartitionedRegionStats.kt |   67 +
 geode-protobuf/build.gradle                        |    1 +
 .../statistics/MicrometerClientStatsImpl.kt        |   15 +-
 .../v1/acceptance/CacheOperationsJUnitTest.java    |   14 +-
 8 files changed, 2000 insertions(+), 189 deletions(-)

diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 426840f..4363762 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -17,227 +17,257 @@
 
 
 apply plugin: 'antlr'
+apply plugin: 'kotlin'
 apply plugin: 'me.champeau.gradle.jmh'
 
 sourceSets {
-  jca {
-    compileClasspath += configurations.compile
-    runtimeClasspath += configurations.runtime
-  }
+    jca {
+        compileClasspath += configurations.compile
+        runtimeClasspath += configurations.runtime
+    }
 }
 
 
 
 configurations {
-  //declaring new configuration that will be used to associate with artifacts
-  archives
+    //declaring new configuration that will be used to associate with artifacts
+    archives
 }
 
 dependencies {
-  // Source Dependencies
-  antlr 'antlr:antlr:' + project.'antlr.version'
-
-  // External
-  provided files("${System.getProperty('java.home')}/../lib/tools.jar")
-  compile 'com.github.stephenc.findbugs:findbugs-annotations:' + project.'stephenc-findbugs.version'
-  compile 'org.jgroups:jgroups:' + project.'jgroups.version'
-  compile 'antlr:antlr:' + project.'antlr.version'
-  compile 'com.fasterxml.jackson.core:jackson-annotations:' + project.'jackson.version'
-  compile 'com.fasterxml.jackson.core:jackson-databind:' + project.'jackson.version'
-  compile 'commons-io:commons-io:' + project.'commons-io.version'
-  compile 'commons-validator:commons-validator:' + project.'commons-validator.version'
-  compile 'commons-digester:commons-digester:' + project.'commons-digester.version'
-
-  compile 'commons-lang:commons-lang:' + project.'commons-lang.version'
-  compile ('commons-modeler:commons-modeler:' + project.'commons-modeler.version') {
-    exclude module: 'commons-digester'
-    exclude module: 'commons-logging-api'
-    exclude module: 'mx4j-jmx'
-    exclude module: 'xml-apis'
-    ext.optional = true
-  }
-  compile ('io.netty:netty-all:' + project.'netty-all.version') {
-    ext.optional = true
-  }
-  compile 'it.unimi.dsi:fastutil:' + project.'fastutil.version'
-  compile ('javax.mail:javax.mail-api:' + project.'javax.mail-api.version') {
-    ext.optional = true;
-  }
-  compile 'javax.resource:javax.resource-api:' + project.'javax.resource-api.version'
-  compile ('mx4j:mx4j:' + project.'mx4j.version') {
-    ext.optional = true;
-  }
-  compile ('mx4j:mx4j-remote:' + project.'mx4j-remote.version') {
-    ext.optional = true;
-  }
-  compile ('mx4j:mx4j-tools:' + project.'mx4j-tools.version') {
-    ext.optional = true;
-  }
-  compile ('net.java.dev.jna:jna:' + project.'jna.version')
-
-  compile ('net.sf.jopt-simple:jopt-simple:' + project.'jopt-simple.version')
-
-  compile 'org.apache.logging.log4j:log4j-api:' + project.'log4j.version'
-  compile 'org.apache.logging.log4j:log4j-core:' + project.'log4j.version'
-  runtime ('org.fusesource.jansi:jansi:' + project.'jansi.version') {
-    ext.optional = true
-  }
-  runtime 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
-
-  runtime ('org.apache.logging.log4j:log4j-slf4j-impl:' + project.'log4j.version') {
-    exclude module: 'slf4j-api'
-    ext.optional = true
-  }
-  runtime ('org.apache.logging.log4j:log4j-jcl:' + project.'log4j.version') {
-    ext.optional = true
-  }
-  runtime ('org.apache.logging.log4j:log4j-jul:' + project.'log4j.version') {
-    ext.optional = true
-  }
-  compile ('org.eclipse.jetty:jetty-webapp:' + project.'jetty.version') {
-    ext.optional = true
-  }
-  provided ('org.springframework:spring-webmvc:' + project.'springframework.version') {
-    exclude module: 'aopalliance'
-    exclude module: 'spring-aop'
-    ext.optional = true
-  }
-  compile ('org.springframework:spring-core:' + project.'springframework.version') {
-    ext.optional = true
-  }
-  compile ('org.springframework.shell:spring-shell:' + project.'spring-shell.version') {
-    exclude module: 'aopalliance'
-    exclude module: 'asm'
-    exclude module: 'cglib'
-    exclude module: 'guava'
-    exclude module: 'spring-aop'
-    exclude module: 'spring-context-support'
-    ext.optional = true
-  }
-  compile ('org.iq80.snappy:snappy:' + project.'snappy-java.version') {
-    ext.optional = true
-  }
-
-  compile 'org.apache.shiro:shiro-core:' + project.'shiro.version'
-
-  // https://mvnrepository.com/artifact/io.github.lukehutch/fast-classpath-scanner
-  compile 'io.github.lukehutch:fast-classpath-scanner:' + project.'fast-classpath-scanner.version'
-
-  compile 'com.healthmarketscience.rmiio:rmiio:' + project.'rmiio.version'
-
-  compile project(':geode-common')
-  compile project(':geode-json')
-
-  jcaCompile sourceSets.main.output
-
-  testCompile project(':geode-junit')
-  testCompile project(':geode-old-versions')
-
-  // Test Dependencies
-  // External
-  testCompile 'com.jayway.jsonpath:json-path-assert:' + project.'json-path-assert.version'
-  testCompile 'org.apache.bcel:bcel:' + project.'bcel.version'
-  testRuntime 'org.apache.derby:derby:' + project.'derby.version'
-  testCompile 'org.mockito:mockito-core:' + project.'mockito-core.version'
-  testRuntime 'commons-collections:commons-collections:' + project.'commons-collections.version'
-  testRuntime 'commons-configuration:commons-configuration:' + project.'commons-configuration.version'
-  testRuntime 'commons-io:commons-io:' + project.'commons-io.version'
-  testRuntime 'commons-validator:commons-validator:' + project.'commons-validator.version'
-  testCompile 'net.spy:spymemcached:' + project.'spymemcached.version'
-  testCompile 'redis.clients:jedis:' + project.'jedis.version'
-  testCompile 'org.springframework:spring-test:' + project.'springframework.version'
-
-
-  testCompile 'com.pholser:junit-quickcheck-core:' + project.'junit-quickcheck.version'
-  testCompile 'com.pholser:junit-quickcheck-generators:' + project.'junit-quickcheck.version'
-  testCompile 'com.pholser:junit-quickcheck-guava:' + project.'junit-quickcheck.version'
-
-  testRuntime 'xerces:xercesImpl:' + project.'xercesImpl.version'
-  testCompile project(':geode-concurrency-test')
+    // Source Dependencies
+    antlr 'antlr:antlr:' + project.'antlr.version'
+
+    // External
+    provided files("${System.getProperty('java.home')}/../lib/tools.jar")
+
+    compile group: 'io.micrometer', name: 'micrometer-core', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-jmx', version: '1.0.0-rc.5'
+
+
+    compile 'com.github.stephenc.findbugs:findbugs-annotations:' + project.'stephenc-findbugs.version'
+    compile 'org.jgroups:jgroups:' + project.'jgroups.version'
+    compile 'antlr:antlr:' + project.'antlr.version'
+    compile 'com.fasterxml.jackson.core:jackson-annotations:' + project.'jackson.version'
+    compile 'com.fasterxml.jackson.core:jackson-databind:' + project.'jackson.version'
+    compile 'commons-io:commons-io:' + project.'commons-io.version'
+    compile 'commons-validator:commons-validator:' + project.'commons-validator.version'
+    compile 'commons-digester:commons-digester:' + project.'commons-digester.version'
+
+    compile 'commons-lang:commons-lang:' + project.'commons-lang.version'
+    compile('commons-modeler:commons-modeler:' + project.'commons-modeler.version') {
+        exclude module: 'commons-digester'
+        exclude module: 'commons-logging-api'
+        exclude module: 'mx4j-jmx'
+        exclude module: 'xml-apis'
+        ext.optional = true
+    }
+    compile('io.netty:netty-all:' + project.'netty-all.version') {
+        ext.optional = true
+    }
+    compile 'it.unimi.dsi:fastutil:' + project.'fastutil.version'
+    compile('javax.mail:javax.mail-api:' + project.'javax.mail-api.version') {
+        ext.optional = true;
+    }
+    compile 'javax.resource:javax.resource-api:' + project.'javax.resource-api.version'
+    compile('mx4j:mx4j:' + project.'mx4j.version') {
+        ext.optional = true;
+    }
+    compile('mx4j:mx4j-remote:' + project.'mx4j-remote.version') {
+        ext.optional = true;
+    }
+    compile('mx4j:mx4j-tools:' + project.'mx4j-tools.version') {
+        ext.optional = true;
+    }
+    compile('net.java.dev.jna:jna:' + project.'jna.version')
+
+    compile('net.sf.jopt-simple:jopt-simple:' + project.'jopt-simple.version')
+
+    compile 'org.apache.logging.log4j:log4j-api:' + project.'log4j.version'
+    compile 'org.apache.logging.log4j:log4j-core:' + project.'log4j.version'
+    runtime('org.fusesource.jansi:jansi:' + project.'jansi.version') {
+        ext.optional = true
+    }
+    runtime 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
+
+    runtime('org.apache.logging.log4j:log4j-slf4j-impl:' + project.'log4j.version') {
+        exclude module: 'slf4j-api'
+        ext.optional = true
+    }
+    runtime('org.apache.logging.log4j:log4j-jcl:' + project.'log4j.version') {
+        ext.optional = true
+    }
+    runtime('org.apache.logging.log4j:log4j-jul:' + project.'log4j.version') {
+        ext.optional = true
+    }
+    compile('org.eclipse.jetty:jetty-webapp:' + project.'jetty.version') {
+        ext.optional = true
+    }
+    provided('org.springframework:spring-webmvc:' + project.'springframework.version') {
+        exclude module: 'aopalliance'
+        exclude module: 'spring-aop'
+        ext.optional = true
+    }
+    compile('org.springframework:spring-core:' + project.'springframework.version') {
+        ext.optional = true
+    }
+    compile('org.springframework.shell:spring-shell:' + project.'spring-shell.version') {
+        exclude module: 'aopalliance'
+        exclude module: 'asm'
+        exclude module: 'cglib'
+        exclude module: 'guava'
+        exclude module: 'spring-aop'
+        exclude module: 'spring-context-support'
+        ext.optional = true
+    }
+    compile('org.iq80.snappy:snappy:' + project.'snappy-java.version') {
+        ext.optional = true
+    }
+
+    compile 'org.apache.shiro:shiro-core:' + project.'shiro.version'
+
+    // https://mvnrepository.com/artifact/io.github.lukehutch/fast-classpath-scanner
+    compile 'io.github.lukehutch:fast-classpath-scanner:' + project.'fast-classpath-scanner.version'
+
+    compile 'com.healthmarketscience.rmiio:rmiio:' + project.'rmiio.version'
+
+    compile project(':geode-common')
+    compile project(':geode-json')
+
+    jcaCompile sourceSets.main.output
+
+    testCompile project(':geode-junit')
+    testCompile project(':geode-old-versions')
+
+    // Test Dependencies
+    // External
+    testCompile 'com.jayway.jsonpath:json-path-assert:' + project.'json-path-assert.version'
+    testCompile 'org.apache.bcel:bcel:' + project.'bcel.version'
+    testRuntime 'org.apache.derby:derby:' + project.'derby.version'
+    testCompile 'org.mockito:mockito-core:' + project.'mockito-core.version'
+    testRuntime 'commons-collections:commons-collections:' + project.'commons-collections.version'
+    testRuntime 'commons-configuration:commons-configuration:' + project.'commons-configuration.version'
+    testRuntime 'commons-io:commons-io:' + project.'commons-io.version'
+    testRuntime 'commons-validator:commons-validator:' + project.'commons-validator.version'
+    testCompile 'net.spy:spymemcached:' + project.'spymemcached.version'
+    testCompile 'redis.clients:jedis:' + project.'jedis.version'
+    testCompile 'org.springframework:spring-test:' + project.'springframework.version'
+
+
+    testCompile 'com.pholser:junit-quickcheck-core:' + project.'junit-quickcheck.version'
+    testCompile 'com.pholser:junit-quickcheck-generators:' + project.'junit-quickcheck.version'
+    testCompile 'com.pholser:junit-quickcheck-guava:' + project.'junit-quickcheck.version'
+
+    testRuntime 'xerces:xercesImpl:' + project.'xercesImpl.version'
+    testCompile project(':geode-concurrency-test')
 }
 
 def generatedResources = "$buildDir/generated-resources/main"
 
 sourceSets {
-  main {
-    output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
-  }
-  test {
-    output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
-  }
+    main {
+        output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
+    }
+    test {
+        output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
+    }
 }
 
 jmh {
-  include = project.hasProperty('include') ? project.getProperties().get('include') : '.*'
-  duplicateClassesStrategy = 'warn'
+    include = project.hasProperty('include') ? project.getProperties().get('include') : '.*'
+    duplicateClassesStrategy = 'warn'
 }
 
 // Creates the version properties file and writes it to the classes dir
 task createVersionPropertiesFile {
-  def propertiesFile = file(generatedResources + "/org/apache/geode/internal/GemFireVersion.properties");
-  outputs.file propertiesFile
-  inputs.dir compileJava.destinationDir
-
-  doLast {
-    def props = [
-      "Product-Name"      : productName,
-      "Product-Version"   : version,
-      "Build-Id"          : "${System.env.USER} ${buildId}".toString(),
-      "Build-Date"        : new Date().format('yyyy-MM-dd HH:mm:ss Z'),
-      "Build-Platform"    : "${System.properties['os.name']} ${System.properties['os.version']} ${System.properties['os.arch']}".toString(),
-      "Build-Java-Version": System.properties['java.version']
-    ] as Properties
-    props.putAll(readScmInfo())
-
-    propertiesFile.getParentFile().mkdirs();
-    new FileOutputStream(propertiesFile).withStream { fos ->
-      props.store(fos, '')
+    def propertiesFile = file(generatedResources + "/org/apache/geode/internal/GemFireVersion.properties");
+    outputs.file propertiesFile
+    inputs.dir compileJava.destinationDir
+
+    doLast {
+        def props = [
+                "Product-Name"      : productName,
+                "Product-Version"   : version,
+                "Build-Id"          : "${System.env.USER} ${buildId}".toString(),
+                "Build-Date"        : new Date().format('yyyy-MM-dd HH:mm:ss Z'),
+                "Build-Platform"    : "${System.properties['os.name']} ${System.properties['os.version']} ${System.properties['os.arch']}".toString(),
+                "Build-Java-Version": System.properties['java.version']
+        ] as Properties
+        props.putAll(readScmInfo())
+
+        propertiesFile.getParentFile().mkdirs();
+        new FileOutputStream(propertiesFile).withStream { fos ->
+            props.store(fos, '')
+        }
     }
-  }
 }
 
 jar {
 
-  from sourceSets.main.output
-  from sourceSets.jca.output
+    from sourceSets.main.output
+    from sourceSets.jca.output
 
-  exclude 'org/apache/geode/management/internal/web/**'
-  exclude 'org/apache/geode/internal/i18n/StringIdResourceBundle_ja.txt'
-  exclude 'org/apache/geode/admin/doc-files/ds4_0.dtd'
+    exclude 'org/apache/geode/management/internal/web/**'
+    exclude 'org/apache/geode/internal/i18n/StringIdResourceBundle_ja.txt'
+    exclude 'org/apache/geode/admin/doc-files/ds4_0.dtd'
 }
 
-task webJar (type: Jar, dependsOn: classes) {
-  description 'Assembles the jar archive containing the gemfire management web classes.'
-  from sourceSets.main.output
-  baseName 'geode-web'
-  include 'org/apache/geode/management/internal/web/**'
+task webJar(type: Jar, dependsOn: classes) {
+    description 'Assembles the jar archive containing the gemfire management web classes.'
+    from sourceSets.main.output
+    baseName 'geode-web'
+    include 'org/apache/geode/management/internal/web/**'
 }
 
-task raJar (type: Jar, dependsOn: classes) {
-  description 'Assembles the jar archive that contains the JCA classes'
-  from sourceSets.jca.output
-  exclude 'org/apache/geode/ra/**'
-  archiveName 'ra.jar'
+task raJar(type: Jar, dependsOn: classes) {
+    description 'Assembles the jar archive that contains the JCA classes'
+    from sourceSets.jca.output
+    exclude 'org/apache/geode/ra/**'
+    archiveName 'ra.jar'
 }
 
-task jcaJar (type: Jar, dependsOn: raJar) {
-  description 'Assembles the jar archive that contains the JCA bundle'
-  baseName 'geode-jca'
-  extension 'rar'
-  metaInf { from 'src/jca/ra.xml' }
-  from raJar.archivePath
+task jcaJar(type: Jar, dependsOn: raJar) {
+    description 'Assembles the jar archive that contains the JCA bundle'
+    baseName 'geode-jca'
+    extension 'rar'
+    metaInf { from 'src/jca/ra.xml' }
+    from raJar.archivePath
 }
 
 configurations {
-  classesOutput {
-    extendsFrom compile
-    description  'a dependency that exposes the compiled classes'
-  }
+    classesOutput {
+        extendsFrom compile
+        description 'a dependency that exposes the compiled classes'
+    }
 }
 
 dependencies {
-  classesOutput sourceSets.main.output
+    classesOutput sourceSets.main.output
 }
 
 tasks.eclipse.dependsOn(generateGrammarSource)
+buildscript {
+    ext.kotlin_version = '1.2.10'
+    repositories {
+        mavenCentral()
+    }
+    dependencies {
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+    }
+}
+repositories {
+    mavenCentral()
+}
+compileKotlin {
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
+}
+compileTestKotlin {
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
+}
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
new file mode 100644
index 0000000..dcb695d
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
@@ -0,0 +1,380 @@
+package org.apache.geode.internal.cache
+
+import io.micrometer.core.instrument.Counter
+import io.micrometer.core.instrument.Gauge
+import io.micrometer.core.instrument.Tag
+import java.util.concurrent.atomic.AtomicInteger
+
+open class MicrometerPartitionRegionStats(val regionName: String) : MicrometerStats() {
+
+    @Suppress("PropertyName")
+    protected val PARTITIONED_REGION = "PartitionedRegion"
+
+    private val putCounter = constructCounterForMetric("put")
+    private val putAllCounter = constructCounterForMetric("putAll")
+    private val createCounter = constructCounterForMetric("create")
+    private val removeAllCounter = constructCounterForMetric("removeAll")
+    private val getCounter = constructCounterForMetric("get")
+    private val destroyCounter = constructCounterForMetric("destroy")
+    private val invalidateCounter = constructCounterForMetric("invalidate")
+    private val containsKeyCounter = constructCounterForMetric("containsKey")
+    private val containValueForKeyCounter = constructCounterForMetric("containValueForKey")
+    private val containsKeyValueRetriesCounter = constructCounterForMetric("containsKeyValueRetries")
+    private val containsKeyValueOpsRetriedCounter = constructCounterForMetric("containsKeyValueOpsRetried")
+    private val incInvalidateRetriesCounter = constructCounterForMetric("incInvalidateRetries")
+    private val incInvalidateOpsRetriedCounter = constructCounterForMetric("incInvalidateOpsRetried")
+    private val incDestroyRetriesCounter = constructCounterForMetric("incDestroyRetries")
+    private val incDestroyOpsRetriedCounter = constructCounterForMetric("incDestroyOpsRetried")
+    private val incPutRetriesCounter = constructCounterForMetric("incPutRetries")
+    private val incPutOpsRetriedCounter = constructCounterForMetric("incPutOpsRetried")
+    private val incGetOpsRetriedCounter = constructCounterForMetric("incGetOpsRetried")
+    private val incGetRetriesCounter = constructCounterForMetric("incGetRetries")
+    private val incCreateOpsRetriedCounter = constructCounterForMetric("incCreateOpsRetried")
+    private val incCreateRetriesCounter = constructCounterForMetric("incCreateRetries")
+    private val incPreferredReadLocalCounter = constructCounterForMetric("incPreferredReadLocal")
+    private val incPreferredReadRemoteCounter = constructCounterForMetric("incPreferredReadRemote")
+    private val incPutAllRetriesCounter = constructCounterForMetric("incPutAllRetries")
+    private val incPutAllMsgsRetriedCounter = constructCounterForMetric("incPutAllMsgsRetried")
+    private val incRemoveAllRetriesCounter = constructCounterForMetric("incRemoveAllRetries")
+    private val incRemoveAllMsgsRetriedCounter = constructCounterForMetric("incRemoveAllMsgsRetried")
+    private val incPartitionMessagesSentCounter = constructCounterForMetric("incPartitionMessagesSent")
+    private val incBucketCountCounter = constructCounterForMetric("incBucketCount")
+
+    private fun constructCounterForMetric(metricName: String): Counter =
+            metrics.counter("${metricName}Counter", regionName, PARTITIONED_REGION)
+
+    private fun constructAtomicIntegerToMonitor(metricName: String): AtomicInteger =
+            metrics.gauge("${metricName}Gauge",listOf(regionName,PARTITIONED_REGION), AtomicInteger(0),AtomicInteger::get)
+
+    open fun endPut(startTimeInNanos: Long) = putCounter.increment()
+    open fun endPutAll(startTimeInNanos: Long) = putAllCounter.increment()
+    open fun endCreate(startTimeInNanos: Long) = createCounter.increment()
+    open fun endRemoveAll(startTimeInNanos: Long) = removeAllCounter.increment()
+    open fun endGet(startTimeInNanos: Long) = getCounter.increment()
+    open fun endDestroy(startTimeInNanos: Long) = destroyCounter.increment()
+    open fun endInvalidate(startTimeInNanos: Long) = invalidateCounter.increment()
+    open fun endContainsKey(startTimeInNanos: Long) = containsKeyCounter.increment()
+    open fun endContainsValueForKey(startTimeInNanos: Long) = containValueForKeyCounter.increment()
+    fun incContainsKeyValueRetries() = containsKeyValueRetriesCounter.increment()
+    fun incContainsKeyValueOpsRetried() = containsKeyValueOpsRetriedCounter.increment()
+    fun incInvalidateRetries() = incInvalidateRetriesCounter.increment()
+    fun incInvalidateOpsRetried() = incInvalidateOpsRetriedCounter.increment()
+    fun incDestroyRetries() = incDestroyRetriesCounter.increment()
+    fun incDestroyOpsRetried() = incDestroyOpsRetriedCounter.increment()
+    fun incPutRetries() = incPutRetriesCounter.increment()
+    fun incPutOpsRetried() = incPutOpsRetriedCounter.increment()
+    fun incGetOpsRetried() = incGetOpsRetriedCounter.increment()
+    fun incGetRetries() = incGetRetriesCounter.increment()
+    fun incCreateOpsRetried() = incCreateOpsRetriedCounter.increment()
+    fun incCreateRetries() = incCreateRetriesCounter.increment()
+    fun incPreferredReadLocal() = incPreferredReadLocalCounter.increment()
+    fun incPreferredReadRemote() = incPreferredReadRemoteCounter.increment()
+    fun incPutAllRetries() = incPutAllRetriesCounter.increment()
+    fun incPutAllMsgsRetried() = incPutAllMsgsRetriedCounter.increment()
+    fun incRemoveAllRetries() = incRemoveAllRetriesCounter.increment()
+    fun incRemoveAllMsgsRetried() = incRemoveAllMsgsRetriedCounter.increment()
+    fun incPartitionMessagesSent() = incPartitionMessagesSentCounter.increment()
+    fun incBucketCount(bucketCount: Int) = incBucketCountGauge.increment(bucketCount.toDouble())
+    fun incLowRedundancyBucketCount(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incNoCopiesBucketCount(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incTotalNumBuckets(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incPrimaryBucketCount(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incVolunteeringThreads(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incPRMetaDataSentCount() {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incDataStoreEntryCount(amt: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun incBytesInUse(delta: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringInProgress(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startPartitionMessageProcessing(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endPartitionMessagesProcessing(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun setBucketCount(i: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getDataStoreEntryCount(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getDataStoreBytesInUse(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getTotalBucketCount(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringBecamePrimary(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringBecamePrimaryTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringOtherPrimary(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringOtherPrimaryTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringClosed(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getVolunteeringClosedTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startVolunteering(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endVolunteeringBecamePrimary(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endVolunteeringOtherPrimary(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endVolunteeringClosed(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getTotalNumBuckets(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getPrimaryBucketCount(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getVolunteeringThreads(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getLowRedundancyBucketCount(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getNoCopiesBucketCount(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getConfiguredRedundantCopies(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun setConfiguredRedundantCopies(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun setLocalMaxMemory(l: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getActualRedundantCopies(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun setActualRedundantCopies(`val`: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun putStartTime(key: Any?, startTime: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun removeStartTime(key: Any?): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endGetEntry(startTime: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endGetEntry(start: Long, numInc: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startRecovery(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endRecovery(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startBucketCreate(isRebalance: Boolean): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endBucketCreate(start: Long, success: Boolean, isRebalance: Boolean) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startPrimaryTransfer(isRebalance: Boolean): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endPrimaryTransfer(start: Long, success: Boolean, isRebalance: Boolean) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getBucketCreatesInProgress(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getBucketCreatesCompleted(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getBucketCreatesFailed(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getBucketCreateTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getPrimaryTransfersInProgress(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getPrimaryTransfersCompleted(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getPrimaryTransfersFailed(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getPrimaryTransferTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startRebalanceBucketCreate() {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endRebalanceBucketCreate(start: Long, end: Long, success: Boolean) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startRebalancePrimaryTransfer() {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endRebalancePrimaryTransfer(start: Long, end: Long, success: Boolean) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalanceBucketCreatesInProgress(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalanceBucketCreatesCompleted(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalanceBucketCreatesFailed(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalanceBucketCreateTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalancePrimaryTransfersInProgress(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalancePrimaryTransfersCompleted(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalancePrimaryTransfersFailed(): Int {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun getRebalancePrimaryTransferTime(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startApplyReplication(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endApplyReplication(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startSendReplication(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endSendReplication(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startPutRemote(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endPutRemote(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun startPutLocal(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    fun endPutLocal(start: Long) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+
+    fun getPRMetaDataSentCount(): Long {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+}
\ No newline at end of file
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
new file mode 100644
index 0000000..b083052
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
@@ -0,0 +1,27 @@
+package org.apache.geode.internal.cache
+
+import io.micrometer.core.instrument.Clock
+import io.micrometer.core.instrument.MeterRegistry
+import io.micrometer.core.instrument.composite.CompositeMeterRegistry
+import io.micrometer.influx.InfluxConfig
+import io.micrometer.influx.InfluxMeterRegistry
+import io.micrometer.jmx.JmxMeterRegistry
+import java.time.Duration
+
+abstract class MicrometerStats {
+    protected val metrics = CompositeMeterRegistry(Clock.SYSTEM)
+    private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
+        override fun step(): Duration = Duration.ofSeconds(1)
+        override fun db(): String = "mydb"
+        override fun get(k: String): String? = null
+        override fun uri(): String = "http://localhost:8086"
+    }, Clock.SYSTEM)
+
+    private val jmxMetrics: MeterRegistry = JmxMeterRegistry()
+
+    init {
+        metrics.add(influxMetrics)
+//        metrics.add(atlasMetrics)
+        metrics.add(jmxMetrics)
+    }
+}
\ No newline at end of file
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java
new file mode 100644
index 0000000..24cd598
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionStatsImpl.java
@@ -0,0 +1,1297 @@
+/*
+ * 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 org.apache.geode.internal.cache;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.geode.StatisticDescriptor;
+import org.apache.geode.Statistics;
+import org.apache.geode.StatisticsFactory;
+import org.apache.geode.StatisticsType;
+import org.apache.geode.StatisticsTypeFactory;
+import org.apache.geode.cache.Region;
+import org.apache.geode.internal.statistics.StatisticsTypeFactoryImpl;
+
+/**
+ * Represents a statistics type that can be archived to vsd. Loading of this class automatically
+ * triggers statistics archival.
+ * <p>
+ *
+ * A singleton instance can be requested with the initSingleton(...) and getSingleton() methods.
+ * <p>
+ *
+ * Individual instances can be created with the constructor.
+ * <p>
+ *
+ * To manipulate the statistic values, use (inc|dec|set|get)&lt;fieldName&gt; methods.
+ *
+ * @since GemFire 5.0
+ */
+public class PartitionedRegionStatsImpl implements PartitionedRegionStats {
+
+  private static final StatisticsType type;
+
+  private static final int dataStoreEntryCountId;
+  private static final int dataStoreBytesInUseId;
+  private static final int bucketCountId;
+
+  private static final int putsCompletedId;
+  private static final int putOpsRetriedId;
+  private static final int putRetriesId;
+
+  private static final int createsCompletedId;
+  private static final int createOpsRetriedId;
+  private static final int createRetriesId;
+
+  private static final int preferredReadLocalId;
+  private static final int preferredReadRemoteId;
+
+  private static final int getsCompletedId;
+  private static final int getOpsRetriedId;
+  private static final int getRetriesId;
+
+  private static final int destroysCompletedId;
+  private static final int destroyOpsRetriedId;
+  private static final int destroyRetriesId;
+
+  private static final int invalidatesCompletedId;
+  private static final int invalidateOpsRetriedId;
+  private static final int invalidateRetriesId;
+
+  private static final int containsKeyCompletedId;
+  private static final int containsKeyOpsRetriedId;
+  private static final int containsKeyRetriesId;
+
+  private static final int containsValueForKeyCompletedId;
+
+  private static final int partitionMessagesSentId;
+  private static final int partitionMessagesReceivedId;
+  private static final int partitionMessagesProcessedId;
+
+  private static final int putTimeId;
+  private static final int createTimeId;
+  private static final int getTimeId;
+  private static final int destroyTimeId;
+  private static final int invalidateTimeId;
+  private static final int containsKeyTimeId;
+  private static final int containsValueForKeyTimeId;
+  private static final int partitionMessagesProcessingTimeId;
+
+  private static final String PUTALLS_COMPLETED = "putAllsCompleted";
+  private static final String PUTALL_MSGS_RETRIED = "putAllMsgsRetried";
+  private static final String PUTALL_RETRIES = "putAllRetries";
+  private static final String PUTALL_TIME = "putAllTime";
+
+  private static final int fieldId_PUTALLS_COMPLETED;
+  private static final int fieldId_PUTALL_MSGS_RETRIED;
+  private static final int fieldId_PUTALL_RETRIES;
+  private static final int fieldId_PUTALL_TIME;
+
+  private static final String REMOVE_ALLS_COMPLETED = "removeAllsCompleted";
+  private static final String REMOVE_ALL_MSGS_RETRIED = "removeAllMsgsRetried";
+  private static final String REMOVE_ALL_RETRIES = "removeAllRetries";
+  private static final String REMOVE_ALL_TIME = "removeAllTime";
+
+  private static final int fieldId_REMOVE_ALLS_COMPLETED;
+  private static final int fieldId_REMOVE_ALL_MSGS_RETRIED;
+  private static final int fieldId_REMOVE_ALL_RETRIES;
+  private static final int fieldId_REMOVE_ALL_TIME;
+
+  private static final int volunteeringInProgressId; // count of volunteering in progress
+  private static final int volunteeringBecamePrimaryId; // ended as primary
+  private static final int volunteeringBecamePrimaryTimeId; // time spent that ended as primary
+  private static final int volunteeringOtherPrimaryId; // ended as not primary
+  private static final int volunteeringOtherPrimaryTimeId; // time spent that ended as not primary
+  private static final int volunteeringClosedId; // ended as closed
+  private static final int volunteeringClosedTimeId; // time spent that ended as closed
+
+  private static final int applyReplicationCompletedId;
+  private static final int applyReplicationInProgressId;
+  private static final int applyReplicationTimeId;
+  private static final int sendReplicationCompletedId;
+  private static final int sendReplicationInProgressId;
+  private static final int sendReplicationTimeId;
+  private static final int putRemoteCompletedId;
+  private static final int putRemoteInProgressId;
+  private static final int putRemoteTimeId;
+  private static final int putLocalCompletedId;
+  private static final int putLocalInProgressId;
+  private static final int putLocalTimeId;
+
+  private static final int totalNumBucketsId; // total number of buckets
+  private static final int primaryBucketCountId; // number of hosted primary buckets
+  private static final int volunteeringThreadsId; // number of threads actively volunteering
+  private static final int lowRedundancyBucketCountId; // number of buckets currently without full
+                                                       // redundancy
+  private static final int noCopiesBucketCountId; // number of buckets currently without any
+                                                  // redundancy
+
+  private static final int configuredRedundantCopiesId;
+  private static final int actualRedundantCopiesId;
+
+  private static final int getEntriesCompletedId;
+  private static final int getEntryTimeId;
+
+  private static final int recoveriesInProgressId;
+  private static final int recoveriesCompletedId;
+  private static final int recoveriesTimeId;
+  private static final int bucketCreatesInProgressId;
+  private static final int bucketCreatesCompletedId;
+  private static final int bucketCreatesFailedId;
+  private static final int bucketCreateTimeId;
+
+  private static final int rebalanceBucketCreatesInProgressId;
+  private static final int rebalanceBucketCreatesCompletedId;
+  private static final int rebalanceBucketCreatesFailedId;
+  private static final int rebalanceBucketCreateTimeId;
+
+  private static final int primaryTransfersInProgressId;
+  private static final int primaryTransfersCompletedId;
+  private static final int primaryTransfersFailedId;
+  private static final int primaryTransferTimeId;
+
+  private static final int rebalancePrimaryTransfersInProgressId;
+  private static final int rebalancePrimaryTransfersCompletedId;
+  private static final int rebalancePrimaryTransfersFailedId;
+  private static final int rebalancePrimaryTransferTimeId;
+
+  private static final int prMetaDataSentCountId;
+
+  private static final int localMaxMemoryId;
+
+  static {
+    final boolean largerIsBetter = true;
+    StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
+    type = f.createType("PartitionedRegionStatsImpl",
+        "Statistics for operations and connections in the Partitioned Region",
+        new StatisticDescriptor[] {
+
+            f.createIntGauge("bucketCount", "Number of buckets in this node.", "buckets"),
+            f.createIntCounter("putsCompleted", "Number of puts completed.", "operations",
+                largerIsBetter),
+            f.createIntCounter("putOpsRetried",
+                "Number of put operations which had to be retried due to failures.", "operations",
+                false),
+            f.createIntCounter("putRetries",
+                "Total number of times put operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("createsCompleted", "Number of creates completed.", "operations",
+                largerIsBetter),
+            f.createIntCounter("createOpsRetried",
+                "Number of create operations which had to be retried due to failures.",
+                "operations", false),
+            f.createIntCounter("createRetries",
+                "Total number of times put operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("preferredReadLocal", "Number of reads satisfied from local store",
+                "operations", largerIsBetter),
+            f.createIntCounter(PUTALLS_COMPLETED, "Number of putAlls completed.", "operations",
+                largerIsBetter),
+            f.createIntCounter(PUTALL_MSGS_RETRIED,
+                "Number of putAll messages which had to be retried due to failures.", "operations",
+                false),
+            f.createIntCounter(PUTALL_RETRIES,
+                "Total number of times putAll messages had to be retried.", "retry attempts",
+                false),
+            f.createLongCounter(PUTALL_TIME, "Total time spent doing putAlls.", "nanoseconds",
+                !largerIsBetter),
+            f.createIntCounter(REMOVE_ALLS_COMPLETED, "Number of removeAlls completed.",
+                "operations", largerIsBetter),
+            f.createIntCounter(REMOVE_ALL_MSGS_RETRIED,
+                "Number of removeAll messages which had to be retried due to failures.",
+                "operations", false),
+            f.createIntCounter(REMOVE_ALL_RETRIES,
+                "Total number of times removeAll messages had to be retried.", "retry attempts",
+                false),
+            f.createLongCounter(REMOVE_ALL_TIME, "Total time spent doing removeAlls.",
+                "nanoseconds", !largerIsBetter),
+            f.createIntCounter("preferredReadRemote", "Number of reads satisfied from remote store",
+                "operations", false),
+            f.createIntCounter("getsCompleted", "Number of gets completed.", "operations",
+                largerIsBetter),
+            f.createIntCounter("getOpsRetried",
+                "Number of get operations which had to be retried due to failures.", "operations",
+                false),
+            f.createIntCounter("getRetries",
+                "Total number of times get operations had to be retried.", "retry attempts", false),
+            f.createIntCounter("destroysCompleted", "Number of destroys completed.", "operations",
+                largerIsBetter),
+            f.createIntCounter("destroyOpsRetried",
+                "Number of destroy operations which had to be retried due to failures.",
+                "operations", false),
+            f.createIntCounter("destroyRetries",
+                "Total number of times destroy operations had to be retried.", "retry attempts",
+                false),
+            f.createIntCounter("invalidatesCompleted", "Number of invalidates completed.",
+                "operations", largerIsBetter),
+
+            f.createIntCounter("invalidateOpsRetried",
+                "Number of invalidate operations which had to be retried due to failures.",
+                "operations", false),
+            f.createIntCounter("invalidateRetries",
+                "Total number of times invalidate operations had to be retried.", "retry attempts",
+                false),
+            f.createIntCounter("containsKeyCompleted", "Number of containsKeys completed.",
+                "operations", largerIsBetter),
+
+            f.createIntCounter("containsKeyOpsRetried",
+                "Number of containsKey or containsValueForKey operations which had to be retried due to failures.",
+                "operations", false),
+            f.createIntCounter("containsKeyRetries",
+                "Total number of times containsKey or containsValueForKey operations had to be retried.",
+                "operations", false),
+            f.createIntCounter("containsValueForKeyCompleted",
+                "Number of containsValueForKeys completed.", "operations", largerIsBetter),
+            f.createIntCounter("PartitionMessagesSent", "Number of PartitionMessages Sent.",
+                "operations", largerIsBetter),
+            f.createIntCounter("PartitionMessagesReceived", "Number of PartitionMessages Received.",
+                "operations", largerIsBetter),
+            f.createIntCounter("PartitionMessagesProcessed",
+                "Number of PartitionMessages Processed.", "operations", largerIsBetter),
+            f.createLongCounter("putTime", "Total time spent doing puts.", "nanoseconds", false),
+            f.createLongCounter("createTime", "Total time spent doing create operations.",
+                "nanoseconds", false),
+            f.createLongCounter("getTime", "Total time spent performing get operations.",
+                "nanoseconds", false),
+            f.createLongCounter("destroyTime", "Total time spent doing destroys.", "nanoseconds",
+                false),
+            f.createLongCounter("invalidateTime", "Total time spent doing invalidates.",
+                "nanoseconds", false),
+            f.createLongCounter("containsKeyTime",
+                "Total time spent performing containsKey operations.", "nanoseconds", false),
+            f.createLongCounter("containsValueForKeyTime",
+                "Total time spent performing containsValueForKey operations.", "nanoseconds",
+                false),
+            f.createLongCounter("partitionMessagesProcessingTime",
+                "Total time spent on PartitionMessages processing.", "nanoseconds", false),
+            f.createIntGauge("dataStoreEntryCount",
+                "The number of entries stored in this Cache for the named Partitioned Region. This does not include entries which are tombstones. See CachePerfStats.tombstoneCount.",
+                "entries"),
+            f.createLongGauge("dataStoreBytesInUse",
+                "The current number of bytes stored in this Cache for the named Partitioned Region",
+                "bytes"),
+            f.createIntGauge("volunteeringInProgress",
+                "Current number of attempts to volunteer for primary of a bucket.", "operations"),
+            f.createIntCounter("volunteeringBecamePrimary",
+                "Total number of attempts to volunteer that ended when this member became primary.",
+                "operations"),
+            f.createLongCounter("volunteeringBecamePrimaryTime",
+                "Total time spent volunteering that ended when this member became primary.",
+                "nanoseconds", false),
+            f.createIntCounter("volunteeringOtherPrimary",
+                "Total number of attempts to volunteer that ended when this member discovered other primary.",
+                "operations"),
+            f.createLongCounter("volunteeringOtherPrimaryTime",
+                "Total time spent volunteering that ended when this member discovered other primary.",
+                "nanoseconds", false),
+            f.createIntCounter("volunteeringClosed",
+                "Total number of attempts to volunteer that ended when this member's bucket closed.",
+                "operations"),
+            f.createLongCounter("volunteeringClosedTime",
+                "Total time spent volunteering that ended when this member's bucket closed.",
+                "nanoseconds", false),
+            f.createIntGauge("totalNumBuckets", "The total number of buckets.", "buckets"),
+            f.createIntGauge("primaryBucketCount",
+                "Current number of primary buckets hosted locally.", "buckets"),
+            f.createIntGauge("volunteeringThreads",
+                "Current number of threads volunteering for primary.", "threads"),
+            f.createIntGauge("lowRedundancyBucketCount",
+                "Current number of buckets without full redundancy.", "buckets"),
+            f.createIntGauge("noCopiesBucketCount",
+                "Current number of buckets without any copies remaining.", "buckets"),
+            f.createIntGauge("configuredRedundantCopies",
+                "Configured number of redundant copies for this partitioned region.", "copies"),
+            f.createIntGauge("actualRedundantCopies",
+                "Actual number of redundant copies for this partitioned region.", "copies"),
+            f.createIntCounter("getEntryCompleted", "Number of getEntry operations completed.",
+                "operations", largerIsBetter),
+            f.createLongCounter("getEntryTime", "Total time spent performing getEntry operations.",
+                "nanoseconds", false),
+
+            f.createIntGauge("recoveriesInProgress",
+                "Current number of redundancy recovery operations in progress for this region.",
+                "operations"),
+            f.createIntCounter("recoveriesCompleted",
+                "Total number of redundancy recovery operations performed on this region.",
+                "operations"),
+            f.createLongCounter("recoveryTime", "Total number time spent recovering redundancy.",
+                "operations"),
+            f.createIntGauge("bucketCreatesInProgress",
+                "Current number of bucket create operations being performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("bucketCreatesCompleted",
+                "Total number of bucket create operations performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("bucketCreatesFailed",
+                "Total number of bucket create operations performed for rebalancing that failed.",
+                "operations"),
+            f.createLongCounter("bucketCreateTime",
+                "Total time spent performing bucket create operations for rebalancing.",
+                "nanoseconds", false),
+            f.createIntGauge("primaryTransfersInProgress",
+                "Current number of primary transfer operations being performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("primaryTransfersCompleted",
+                "Total number of primary transfer operations performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("primaryTransfersFailed",
+                "Total number of primary transfer operations performed for rebalancing that failed.",
+                "operations"),
+            f.createLongCounter("primaryTransferTime",
+                "Total time spent performing primary transfer operations for rebalancing.",
+                "nanoseconds", false),
+
+            f.createIntCounter("applyReplicationCompleted",
+                "Total number of replicated values sent from a primary to this redundant data store.",
+                "operations", largerIsBetter),
+            f.createIntGauge("applyReplicationInProgress",
+                "Current number of replication operations in progress on this redundant data store.",
+                "operations", !largerIsBetter),
+            f.createLongCounter("applyReplicationTime",
+                "Total time spent storing replicated values on this redundant data store.",
+                "nanoseconds", !largerIsBetter),
+            f.createIntCounter("sendReplicationCompleted",
+                "Total number of replicated values sent from this primary to a redundant data store.",
+                "operations", largerIsBetter),
+            f.createIntGauge("sendReplicationInProgress",
+                "Current number of replication operations in progress from this primary.",
+                "operations", !largerIsBetter),
+            f.createLongCounter("sendReplicationTime",
+                "Total time spent replicating values from this primary to a redundant data store.",
+                "nanoseconds", !largerIsBetter),
+            f.createIntCounter("putRemoteCompleted",
+                "Total number of completed puts that did not originate in the primary. These puts require an extra network hop to the primary.",
+                "operations", largerIsBetter),
+            f.createIntGauge("putRemoteInProgress",
+                "Current number of puts in progress that did not originate in the primary.",
+                "operations", !largerIsBetter),
+            f.createLongCounter("putRemoteTime",
+                "Total time spent doing puts that did not originate in the primary.", "nanoseconds",
+                !largerIsBetter),
+            f.createIntCounter("putLocalCompleted",
+                "Total number of completed puts that did originate in the primary. These puts are optimal.",
+                "operations", largerIsBetter),
+            f.createIntGauge("putLocalInProgress",
+                "Current number of puts in progress that did originate in the primary.",
+                "operations", !largerIsBetter),
+            f.createLongCounter("putLocalTime",
+                "Total time spent doing puts that did originate in the primary.", "nanoseconds",
+                !largerIsBetter),
+
+            f.createIntGauge("rebalanceBucketCreatesInProgress",
+                "Current number of bucket create operations being performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("rebalanceBucketCreatesCompleted",
+                "Total number of bucket create operations performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("rebalanceBucketCreatesFailed",
+                "Total number of bucket create operations performed for rebalancing that failed.",
+                "operations"),
+            f.createLongCounter("rebalanceBucketCreateTime",
+                "Total time spent performing bucket create operations for rebalancing.",
+                "nanoseconds", false),
+            f.createIntGauge("rebalancePrimaryTransfersInProgress",
+                "Current number of primary transfer operations being performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("rebalancePrimaryTransfersCompleted",
+                "Total number of primary transfer operations performed for rebalancing.",
+                "operations"),
+            f.createIntCounter("rebalancePrimaryTransfersFailed",
+                "Total number of primary transfer operations performed for rebalancing that failed.",
+                "operations"),
+            f.createLongCounter("rebalancePrimaryTransferTime",
+                "Total time spent performing primary transfer operations for rebalancing.",
+                "nanoseconds", false),
+            f.createLongCounter("prMetaDataSentCount",
+                "total number of times meta data refreshed sent on client's request.", "operation",
+                false),
+
+            f.createLongGauge("localMaxMemory",
+                "local max memory in bytes for this region on this member", "bytes")
+
+        });
+
+    bucketCountId = type.nameToId("bucketCount");
+
+    putsCompletedId = type.nameToId("putsCompleted");
+    putOpsRetriedId = type.nameToId("putOpsRetried");
+    putRetriesId = type.nameToId("putRetries");
+    createsCompletedId = type.nameToId("createsCompleted");
+    createOpsRetriedId = type.nameToId("createOpsRetried");
+    createRetriesId = type.nameToId("createRetries");
+    getsCompletedId = type.nameToId("getsCompleted");
+    preferredReadLocalId = type.nameToId("preferredReadLocal");
+    preferredReadRemoteId = type.nameToId("preferredReadRemote");
+    getOpsRetriedId = type.nameToId("getOpsRetried");
+    getRetriesId = type.nameToId("getRetries");
+    destroysCompletedId = type.nameToId("destroysCompleted");
+    destroyOpsRetriedId = type.nameToId("destroyOpsRetried");
+    destroyRetriesId = type.nameToId("destroyRetries");
+    invalidatesCompletedId = type.nameToId("invalidatesCompleted");
+    invalidateOpsRetriedId = type.nameToId("invalidateOpsRetried");
+    invalidateRetriesId = type.nameToId("invalidateRetries");
+    containsKeyCompletedId = type.nameToId("containsKeyCompleted");
+    containsKeyOpsRetriedId = type.nameToId("containsKeyOpsRetried");
+    containsKeyRetriesId = type.nameToId("containsKeyRetries");
+    containsValueForKeyCompletedId = type.nameToId("containsValueForKeyCompleted");
+    partitionMessagesSentId = type.nameToId("PartitionMessagesSent");
+    partitionMessagesReceivedId = type.nameToId("PartitionMessagesReceived");
+    partitionMessagesProcessedId = type.nameToId("PartitionMessagesProcessed");
+    fieldId_PUTALLS_COMPLETED = type.nameToId(PUTALLS_COMPLETED);
+    fieldId_PUTALL_MSGS_RETRIED = type.nameToId(PUTALL_MSGS_RETRIED);
+    fieldId_PUTALL_RETRIES = type.nameToId(PUTALL_RETRIES);
+    fieldId_PUTALL_TIME = type.nameToId(PUTALL_TIME);
+    fieldId_REMOVE_ALLS_COMPLETED = type.nameToId(REMOVE_ALLS_COMPLETED);
+    fieldId_REMOVE_ALL_MSGS_RETRIED = type.nameToId(REMOVE_ALL_MSGS_RETRIED);
+    fieldId_REMOVE_ALL_RETRIES = type.nameToId(REMOVE_ALL_RETRIES);
+    fieldId_REMOVE_ALL_TIME = type.nameToId(REMOVE_ALL_TIME);
+    putTimeId = type.nameToId("putTime");
+    createTimeId = type.nameToId("createTime");
+    getTimeId = type.nameToId("getTime");
+    destroyTimeId = type.nameToId("destroyTime");
+    invalidateTimeId = type.nameToId("invalidateTime");
+    containsKeyTimeId = type.nameToId("containsKeyTime");
+    containsValueForKeyTimeId = type.nameToId("containsValueForKeyTime");
+    partitionMessagesProcessingTimeId = type.nameToId("partitionMessagesProcessingTime");
+    dataStoreEntryCountId = type.nameToId("dataStoreEntryCount");
+    dataStoreBytesInUseId = type.nameToId("dataStoreBytesInUse");
+
+    volunteeringInProgressId = type.nameToId("volunteeringInProgress");
+    volunteeringBecamePrimaryId = type.nameToId("volunteeringBecamePrimary");
+    volunteeringBecamePrimaryTimeId = type.nameToId("volunteeringBecamePrimaryTime");
+    volunteeringOtherPrimaryId = type.nameToId("volunteeringOtherPrimary");
+    volunteeringOtherPrimaryTimeId = type.nameToId("volunteeringOtherPrimaryTime");
+    volunteeringClosedId = type.nameToId("volunteeringClosed");
+    volunteeringClosedTimeId = type.nameToId("volunteeringClosedTime");
+
+    totalNumBucketsId = type.nameToId("totalNumBuckets");
+    primaryBucketCountId = type.nameToId("primaryBucketCount");
+    volunteeringThreadsId = type.nameToId("volunteeringThreads");
+    lowRedundancyBucketCountId = type.nameToId("lowRedundancyBucketCount");
+    noCopiesBucketCountId = type.nameToId("noCopiesBucketCount");
+
+    getEntriesCompletedId = type.nameToId("getEntryCompleted");
+    getEntryTimeId = type.nameToId("getEntryTime");
+
+    configuredRedundantCopiesId = type.nameToId("configuredRedundantCopies");
+    actualRedundantCopiesId = type.nameToId("actualRedundantCopies");
+
+    recoveriesCompletedId = type.nameToId("recoveriesCompleted");
+    recoveriesInProgressId = type.nameToId("recoveriesInProgress");
+    recoveriesTimeId = type.nameToId("recoveryTime");
+    bucketCreatesInProgressId = type.nameToId("bucketCreatesInProgress");
+    bucketCreatesCompletedId = type.nameToId("bucketCreatesCompleted");
+    bucketCreatesFailedId = type.nameToId("bucketCreatesFailed");
+    bucketCreateTimeId = type.nameToId("bucketCreateTime");
+    primaryTransfersInProgressId = type.nameToId("primaryTransfersInProgress");
+    primaryTransfersCompletedId = type.nameToId("primaryTransfersCompleted");
+    primaryTransfersFailedId = type.nameToId("primaryTransfersFailed");
+    primaryTransferTimeId = type.nameToId("primaryTransferTime");
+
+    rebalanceBucketCreatesInProgressId = type.nameToId("rebalanceBucketCreatesInProgress");
+    rebalanceBucketCreatesCompletedId = type.nameToId("rebalanceBucketCreatesCompleted");
+    rebalanceBucketCreatesFailedId = type.nameToId("rebalanceBucketCreatesFailed");
+    rebalanceBucketCreateTimeId = type.nameToId("rebalanceBucketCreateTime");
+    rebalancePrimaryTransfersInProgressId = type.nameToId("rebalancePrimaryTransfersInProgress");
+    rebalancePrimaryTransfersCompletedId = type.nameToId("rebalancePrimaryTransfersCompleted");
+    rebalancePrimaryTransfersFailedId = type.nameToId("rebalancePrimaryTransfersFailed");
+    rebalancePrimaryTransferTimeId = type.nameToId("rebalancePrimaryTransferTime");
+
+    applyReplicationCompletedId = type.nameToId("applyReplicationCompleted");
+    applyReplicationInProgressId = type.nameToId("applyReplicationInProgress");
+    applyReplicationTimeId = type.nameToId("applyReplicationTime");
+    sendReplicationCompletedId = type.nameToId("sendReplicationCompleted");
+    sendReplicationInProgressId = type.nameToId("sendReplicationInProgress");
+    sendReplicationTimeId = type.nameToId("sendReplicationTime");
+    putRemoteCompletedId = type.nameToId("putRemoteCompleted");
+    putRemoteInProgressId = type.nameToId("putRemoteInProgress");
+    putRemoteTimeId = type.nameToId("putRemoteTime");
+    putLocalCompletedId = type.nameToId("putLocalCompleted");
+    putLocalInProgressId = type.nameToId("putLocalInProgress");
+    putLocalTimeId = type.nameToId("putLocalTime");
+
+    prMetaDataSentCountId = type.nameToId("prMetaDataSentCount");
+
+    localMaxMemoryId = type.nameToId("localMaxMemory");
+  }
+
+  private final Statistics stats;
+
+  /**
+   * Utility map for temporarily holding stat start times.
+   * <p>
+   * This was originally added to avoid having to add a long volunteeringStarted variable to every
+   * instance of BucketAdvisor. Majority of BucketAdvisors never volunteer and an instance of
+   * BucketAdvisor exists for every bucket defined in a PartitionedRegion which could result in a
+   * lot of unused longs. Volunteering is a rare event and thus the performance implications of a
+   * HashMap lookup is small and preferrable to so many longs. Key: BucketAdvisor, Value: Long
+   */
+  private final Map startTimeMap;
+
+  public PartitionedRegionStatsImpl(StatisticsFactory factory, String name) {
+    this.stats = factory.createAtomicStatistics(type, name /* fixes bug 42343 */);
+
+    if (CachePerfStats.enableClockStats) {
+      this.startTimeMap = new ConcurrentHashMap();
+    } else {
+      this.startTimeMap = Collections.EMPTY_MAP;
+    }
+  }
+
+  @Override
+  public void close() {
+    this.stats.close();
+  }
+
+  public Statistics getStats() {
+    return this.stats;
+  }
+
+  // ------------------------------------------------------------------------
+  // region op stats
+  // ------------------------------------------------------------------------
+
+  @Override
+  public void endPut(long start) {
+    endPut(start, 1);
+  }
+
+  /**
+   * This method sets the end time for putAll and updates the counters
+   *
+   * @param start
+   */
+  @Override
+  public void endPutAll(long start) {
+    endPutAll(start, 1);
+  }
+
+  @Override
+  public void endRemoveAll(long start) {
+    endRemoveAll(start, 1);
+  }
+
+  @Override
+  public void endCreate(long start) {
+    endCreate(start, 1);
+  }
+
+  @Override
+  public void endGet(long start) {
+    endGet(start, 1);
+  }
+
+  @Override
+  public void endContainsKey(long start) {
+    endContainsKey(start, 1);
+  }
+
+  @Override
+  public void endContainsValueForKey(long start) {
+    endContainsValueForKey(start, 1);
+  }
+
+  @Override
+  public void endPut(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      long delta = CachePerfStats.getStatTime() - start;
+      this.stats.incLong(putTimeId, delta);
+    }
+    this.stats.incInt(putsCompletedId, numInc);
+  }
+
+  /**
+   * This method sets the end time for putAll and updates the counters
+   *
+   * @param start
+   * @param numInc
+   */
+  @Override
+  public void endPutAll(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      long delta = CachePerfStats.getStatTime() - start;
+      this.stats.incLong(fieldId_PUTALL_TIME, delta);
+      // this.putStatsHistogram.endOp(delta);
+
+    }
+    this.stats.incInt(fieldId_PUTALLS_COMPLETED, numInc);
+  }
+
+  @Override
+  public void endRemoveAll(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      long delta = CachePerfStats.getStatTime() - start;
+      this.stats.incLong(fieldId_REMOVE_ALL_TIME, delta);
+    }
+    this.stats.incInt(fieldId_REMOVE_ALLS_COMPLETED, numInc);
+  }
+
+  @Override
+  public void endCreate(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(createTimeId, CachePerfStats.getStatTime() - start);
+    }
+    this.stats.incInt(createsCompletedId, numInc);
+  }
+
+  @Override
+  public void endGet(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      final long delta = CachePerfStats.getStatTime() - start;
+      this.stats.incLong(getTimeId, delta);
+    }
+    this.stats.incInt(getsCompletedId, numInc);
+  }
+
+  @Override
+  public void endDestroy(long start) {
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(destroyTimeId, CachePerfStats.getStatTime() - start);
+    }
+    this.stats.incInt(destroysCompletedId, 1);
+  }
+
+  @Override
+  public void endInvalidate(long start) {
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(invalidateTimeId, CachePerfStats.getStatTime() - start);
+    }
+    this.stats.incInt(invalidatesCompletedId, 1);
+  }
+
+  @Override
+  public void endContainsKey(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(containsKeyTimeId, CachePerfStats.getStatTime() - start);
+    }
+    this.stats.incInt(containsKeyCompletedId, numInc);
+  }
+
+  @Override
+  public void endContainsValueForKey(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(containsValueForKeyTimeId, CachePerfStats.getStatTime() - start);
+    }
+    this.stats.incInt(containsValueForKeyCompletedId, numInc);
+  }
+
+  @Override
+  public void incContainsKeyValueRetries() {
+    this.stats.incInt(containsKeyRetriesId, 1);
+  }
+
+  @Override
+  public void incContainsKeyValueOpsRetried() {
+    this.stats.incInt(containsKeyOpsRetriedId, 1);
+  }
+
+  @Override
+  public void incInvalidateRetries() {
+    this.stats.incInt(invalidateRetriesId, 1);
+  }
+
+  @Override
+  public void incInvalidateOpsRetried() {
+    this.stats.incInt(invalidateOpsRetriedId, 1);
+  }
+
+  @Override
+  public void incDestroyRetries() {
+    this.stats.incInt(destroyRetriesId, 1);
+  }
+
+  @Override
+  public void incDestroyOpsRetried() {
+    this.stats.incInt(destroyOpsRetriedId, 1);
+  }
+
+  @Override
+  public void incPutRetries() {
+    this.stats.incInt(putRetriesId, 1);
+  }
+
+  @Override
+  public void incPutOpsRetried() {
+    this.stats.incInt(putOpsRetriedId, 1);
+  }
+
+  @Override
+  public void incGetOpsRetried() {
+    this.stats.incInt(getOpsRetriedId, 1);
+  }
+
+  @Override
+  public void incGetRetries() {
+    this.stats.incInt(getRetriesId, 1);
+  }
+
+  @Override
+  public void incCreateOpsRetried() {
+    this.stats.incInt(createOpsRetriedId, 1);
+  }
+
+  @Override
+  public void incCreateRetries() {
+    this.stats.incInt(createRetriesId, 1);
+  }
+
+  // ------------------------------------------------------------------------
+  // preferred read stats
+  // ------------------------------------------------------------------------
+
+  @Override
+  public void incPreferredReadLocal() {
+    this.stats.incInt(preferredReadLocalId, 1);
+  }
+
+  @Override
+  public void incPreferredReadRemote() {
+    this.stats.incInt(preferredReadRemoteId, 1);
+  }
+
+  // ------------------------------------------------------------------------
+  // messaging stats
+  // ------------------------------------------------------------------------
+
+  @Override
+  public long startPartitionMessageProcessing() {
+    this.stats.incInt(partitionMessagesReceivedId, 1);
+    return startTime();
+  }
+
+  @Override
+  public void endPartitionMessagesProcessing(long start) {
+    if (CachePerfStats.enableClockStats) {
+      long delta = CachePerfStats.getStatTime() - start;
+      this.stats.incLong(partitionMessagesProcessingTimeId, delta);
+    }
+    this.stats.incInt(partitionMessagesProcessedId, 1);
+  }
+
+  @Override
+  public void incPartitionMessagesSent() {
+    this.stats.incInt(partitionMessagesSentId, 1);
+  }
+
+  // ------------------------------------------------------------------------
+  // datastore stats
+  // ------------------------------------------------------------------------
+
+  @Override
+  public void incBucketCount(int delta) {
+    this.stats.incInt(bucketCountId, delta);
+  }
+
+  @Override
+  public void setBucketCount(int i) {
+    this.stats.setInt(bucketCountId, i);
+  }
+
+  @Override
+  public void incDataStoreEntryCount(int amt) {
+    this.stats.incInt(dataStoreEntryCountId, amt);
+  }
+
+  @Override
+  public int getDataStoreEntryCount() {
+    return this.stats.getInt(dataStoreEntryCountId);
+  }
+
+  @Override
+  public void incBytesInUse(long delta) {
+    this.stats.incLong(dataStoreBytesInUseId, delta);
+  }
+
+  @Override
+  public long getDataStoreBytesInUse() {
+    return this.stats.getLong(dataStoreBytesInUseId);
+  }
+
+  @Override
+  public int getTotalBucketCount() {
+    int bucketCount = this.stats.getInt(bucketCountId);
+    return bucketCount;
+  }
+
+  @Override
+  public void incPutAllRetries() {
+    this.stats.incInt(fieldId_PUTALL_RETRIES, 1);
+  }
+
+  @Override
+  public void incPutAllMsgsRetried() {
+    this.stats.incInt(fieldId_PUTALL_MSGS_RETRIED, 1);
+  }
+
+  @Override
+  public void incRemoveAllRetries() {
+    this.stats.incInt(fieldId_REMOVE_ALL_RETRIES, 1);
+  }
+
+  @Override
+  public void incRemoveAllMsgsRetried() {
+    this.stats.incInt(fieldId_REMOVE_ALL_MSGS_RETRIED, 1);
+  }
+
+  // ------------------------------------------------------------------------
+  // stats for volunteering/discovering/becoming primary
+  // ------------------------------------------------------------------------
+
+  @Override
+  public int getVolunteeringInProgress() {
+    return this.stats.getInt(volunteeringInProgressId);
+  }
+
+  @Override
+  public int getVolunteeringBecamePrimary() {
+    return this.stats.getInt(volunteeringBecamePrimaryId);
+  }
+
+  @Override
+  public long getVolunteeringBecamePrimaryTime() {
+    return this.stats.getLong(volunteeringBecamePrimaryTimeId);
+  }
+
+  @Override
+  public int getVolunteeringOtherPrimary() {
+    return this.stats.getInt(volunteeringOtherPrimaryId);
+  }
+
+  @Override
+  public long getVolunteeringOtherPrimaryTime() {
+    return this.stats.getLong(volunteeringOtherPrimaryTimeId);
+  }
+
+  @Override
+  public int getVolunteeringClosed() {
+    return this.stats.getInt(volunteeringClosedId);
+  }
+
+  @Override
+  public long getVolunteeringClosedTime() {
+    return this.stats.getLong(volunteeringClosedTimeId);
+  }
+
+  @Override
+  public long startVolunteering() {
+    this.stats.incInt(volunteeringInProgressId, 1);
+    return CachePerfStats.getStatTime();
+  }
+
+  @Override
+  public void endVolunteeringBecamePrimary(long start) {
+    long ts = CachePerfStats.getStatTime();
+    this.stats.incInt(volunteeringInProgressId, -1);
+    this.stats.incInt(volunteeringBecamePrimaryId, 1);
+    if (CachePerfStats.enableClockStats) {
+      long time = ts - start;
+      this.stats.incLong(volunteeringBecamePrimaryTimeId, time);
+    }
+  }
+
+  @Override
+  public void endVolunteeringOtherPrimary(long start) {
+    long ts = CachePerfStats.getStatTime();
+    this.stats.incInt(volunteeringInProgressId, -1);
+    this.stats.incInt(volunteeringOtherPrimaryId, 1);
+    if (CachePerfStats.enableClockStats) {
+      long time = ts - start;
+      this.stats.incLong(volunteeringOtherPrimaryTimeId, time);
+    }
+  }
+
+  @Override
+  public void endVolunteeringClosed(long start) {
+    long ts = CachePerfStats.getStatTime();
+    this.stats.incInt(volunteeringInProgressId, -1);
+    this.stats.incInt(volunteeringClosedId, 1);
+    if (CachePerfStats.enableClockStats) {
+      long time = ts - start;
+      this.stats.incLong(volunteeringClosedTimeId, time);
+    }
+  }
+
+  @Override
+  public int getTotalNumBuckets() {
+    return this.stats.getInt(totalNumBucketsId);
+  }
+
+  @Override
+  public void incTotalNumBuckets(int val) {
+    this.stats.incInt(totalNumBucketsId, val);
+  }
+
+  @Override
+  public int getPrimaryBucketCount() {
+    return this.stats.getInt(primaryBucketCountId);
+  }
+
+  @Override
+  public void incPrimaryBucketCount(int val) {
+    this.stats.incInt(primaryBucketCountId, val);
+  }
+
+  @Override
+  public int getVolunteeringThreads() {
+    return this.stats.getInt(volunteeringThreadsId);
+  }
+
+  @Override
+  public void incVolunteeringThreads(int val) {
+    this.stats.incInt(volunteeringThreadsId, val);
+  }
+
+  @Override
+  public int getLowRedundancyBucketCount() {
+    return this.stats.getInt(lowRedundancyBucketCountId);
+  }
+
+  @Override
+  public int getNoCopiesBucketCount() {
+    return this.stats.getInt(noCopiesBucketCountId);
+  }
+
+  @Override
+  public void incLowRedundancyBucketCount(int val) {
+    this.stats.incInt(lowRedundancyBucketCountId, val);
+  }
+
+  @Override
+  public void incNoCopiesBucketCount(int val) {
+    this.stats.incInt(noCopiesBucketCountId, val);
+  }
+
+  @Override
+  public int getConfiguredRedundantCopies() {
+    return this.stats.getInt(configuredRedundantCopiesId);
+  }
+
+  @Override
+  public void setConfiguredRedundantCopies(int val) {
+    this.stats.setInt(configuredRedundantCopiesId, val);
+  }
+
+  @Override
+  public void setLocalMaxMemory(long l) {
+    this.stats.setLong(localMaxMemoryId, l);
+  }
+
+  @Override
+  public int getActualRedundantCopies() {
+    return this.stats.getInt(actualRedundantCopiesId);
+  }
+
+  @Override
+  public void setActualRedundantCopies(int val) {
+    this.stats.setInt(actualRedundantCopiesId, val);
+  }
+
+  // ------------------------------------------------------------------------
+  // startTimeMap methods
+  // ------------------------------------------------------------------------
+
+  /** Put stat start time in holding map for later removal and use by caller */
+  @Override
+  public void putStartTime(Object key, long startTime) {
+    if (CachePerfStats.enableClockStats) {
+      this.startTimeMap.put(key, Long.valueOf(startTime));
+    }
+  }
+
+  /** Remove stat start time from holding map to complete a clock stat */
+  @Override
+  public long removeStartTime(Object key) {
+    Long startTime = (Long) this.startTimeMap.remove(key);
+    return startTime == null ? 0 : startTime.longValue();
+  }
+
+  /**
+   * Statistic to track the {@link Region#getEntry(Object)} call
+   *
+   * @param startTime the time the getEntry operation started
+   */
+  @Override
+  public void endGetEntry(long startTime) {
+    endGetEntry(startTime, 1);
+  }
+
+  /**
+   * This method sets the end time for update and updates the counters
+   *
+   * @param start
+   * @param numInc
+   */
+  @Override
+  public void endGetEntry(long start, int numInc) {
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(getEntryTimeId, CachePerfStats.getStatTime() - start);
+    }
+    this.stats.incInt(getEntriesCompletedId, numInc);
+  }
+
+  // ------------------------------------------------------------------------
+  // bucket creation, primary transfer stats (see also rebalancing stats below)
+  // ------------------------------------------------------------------------
+  @Override
+  public long startRecovery() {
+    this.stats.incInt(recoveriesInProgressId, 1);
+    return getStatTime();
+  }
+
+  @Override
+  public void endRecovery(long start) {
+    long ts = getStatTime();
+    this.stats.incInt(recoveriesInProgressId, -1);
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(recoveriesTimeId, ts - start);
+    }
+    this.stats.incInt(recoveriesCompletedId, 1);
+  }
+
+  @Override
+  public long startBucketCreate(boolean isRebalance) {
+    this.stats.incInt(bucketCreatesInProgressId, 1);
+    if (isRebalance) {
+      startRebalanceBucketCreate();
+    }
+    return getStatTime();
+  }
+
+  @Override
+  public void endBucketCreate(long start, boolean success, boolean isRebalance) {
+    long ts = getStatTime();
+    this.stats.incInt(bucketCreatesInProgressId, -1);
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(bucketCreateTimeId, ts - start);
+    }
+    if (success) {
+      this.stats.incInt(bucketCreatesCompletedId, 1);
+    } else {
+      this.stats.incInt(bucketCreatesFailedId, 1);
+    }
+    if (isRebalance) {
+      endRebalanceBucketCreate(start, ts, success);
+    }
+  }
+
+  @Override
+  public long startPrimaryTransfer(boolean isRebalance) {
+    this.stats.incInt(primaryTransfersInProgressId, 1);
+    if (isRebalance) {
+      startRebalancePrimaryTransfer();
+    }
+    return getStatTime();
+  }
+
+  @Override
+  public void endPrimaryTransfer(long start, boolean success, boolean isRebalance) {
+    long ts = getStatTime();
+    this.stats.incInt(primaryTransfersInProgressId, -1);
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(primaryTransferTimeId, ts - start);
+    }
+    if (success) {
+      this.stats.incInt(primaryTransfersCompletedId, 1);
+    } else {
+      this.stats.incInt(primaryTransfersFailedId, 1);
+    }
+    if (isRebalance) {
+      endRebalancePrimaryTransfer(start, ts, success);
+    }
+  }
+
+  @Override
+  public int getBucketCreatesInProgress() {
+    return this.stats.getInt(bucketCreatesInProgressId);
+  }
+
+  @Override
+  public int getBucketCreatesCompleted() {
+    return this.stats.getInt(bucketCreatesCompletedId);
+  }
+
+  @Override
+  public int getBucketCreatesFailed() {
+    return this.stats.getInt(bucketCreatesFailedId);
+  }
+
+  @Override
+  public long getBucketCreateTime() {
+    return this.stats.getLong(bucketCreateTimeId);
+  }
+
+  @Override
+  public int getPrimaryTransfersInProgress() {
+    return this.stats.getInt(primaryTransfersInProgressId);
+  }
+
+  @Override
+  public int getPrimaryTransfersCompleted() {
+    return this.stats.getInt(primaryTransfersCompletedId);
+  }
+
+  @Override
+  public int getPrimaryTransfersFailed() {
+    return this.stats.getInt(primaryTransfersFailedId);
+  }
+
+  @Override
+  public long getPrimaryTransferTime() {
+    return this.stats.getLong(primaryTransferTimeId);
+  }
+
+  // ------------------------------------------------------------------------
+  // rebalancing stats
+  // ------------------------------------------------------------------------
+
+  private void startRebalanceBucketCreate() {
+    this.stats.incInt(rebalanceBucketCreatesInProgressId, 1);
+  }
+
+  private void endRebalanceBucketCreate(long start, long end, boolean success) {
+    this.stats.incInt(rebalanceBucketCreatesInProgressId, -1);
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(rebalanceBucketCreateTimeId, end - start);
+    }
+    if (success) {
+      this.stats.incInt(rebalanceBucketCreatesCompletedId, 1);
+    } else {
+      this.stats.incInt(rebalanceBucketCreatesFailedId, 1);
+    }
+  }
+
+  private void startRebalancePrimaryTransfer() {
+    this.stats.incInt(rebalancePrimaryTransfersInProgressId, 1);
+  }
+
+  private void endRebalancePrimaryTransfer(long start, long end, boolean success) {
+    this.stats.incInt(rebalancePrimaryTransfersInProgressId, -1);
+    if (CachePerfStats.enableClockStats) {
+      this.stats.incLong(rebalancePrimaryTransferTimeId, end - start);
+    }
+    if (success) {
+      this.stats.incInt(rebalancePrimaryTransfersCompletedId, 1);
+    } else {
+      this.stats.incInt(rebalancePrimaryTransfersFailedId, 1);
+    }
+  }
+
+  @Override
+  public int getRebalanceBucketCreatesInProgress() {
+    return this.stats.getInt(rebalanceBucketCreatesInProgressId);
+  }
+
+  @Override
+  public int getRebalanceBucketCreatesCompleted() {
+    return this.stats.getInt(rebalanceBucketCreatesCompletedId);
+  }
+
+  @Override
+  public int getRebalanceBucketCreatesFailed() {
+    return this.stats.getInt(rebalanceBucketCreatesFailedId);
+  }
+
+  @Override
+  public long getRebalanceBucketCreateTime() {
+    return this.stats.getLong(rebalanceBucketCreateTimeId);
+  }
+
+  @Override
+  public int getRebalancePrimaryTransfersInProgress() {
+    return this.stats.getInt(rebalancePrimaryTransfersInProgressId);
+  }
+
+  @Override
+  public int getRebalancePrimaryTransfersCompleted() {
+    return this.stats.getInt(rebalancePrimaryTransfersCompletedId);
+  }
+
+  @Override
+  public int getRebalancePrimaryTransfersFailed() {
+    return this.stats.getInt(rebalancePrimaryTransfersFailedId);
+  }
+
+  @Override
+  public long getRebalancePrimaryTransferTime() {
+    return this.stats.getLong(rebalancePrimaryTransferTimeId);
+  }
+
+  @Override
+  public long startApplyReplication() {
+    stats.incInt(applyReplicationInProgressId, 1);
+    return CachePerfStats.getStatTime();
+  }
+
+  @Override
+  public void endApplyReplication(long start) {
+    long delta = CachePerfStats.getStatTime() - start;
+    stats.incInt(applyReplicationInProgressId, -1);
+    stats.incInt(applyReplicationCompletedId, 1);
+    stats.incLong(applyReplicationTimeId, delta);
+  }
+
+  @Override
+  public long startSendReplication() {
+    stats.incInt(sendReplicationInProgressId, 1);
+    return CachePerfStats.getStatTime();
+  }
+
+  @Override
+  public void endSendReplication(long start) {
+    long delta = CachePerfStats.getStatTime() - start;
+    stats.incInt(sendReplicationInProgressId, -1);
+    stats.incInt(sendReplicationCompletedId, 1);
+    stats.incLong(sendReplicationTimeId, delta);
+  }
+
+  @Override
+  public long startPutRemote() {
+    stats.incInt(putRemoteInProgressId, 1);
+    return CachePerfStats.getStatTime();
+  }
+
+  @Override
+  public void endPutRemote(long start) {
+    long delta = CachePerfStats.getStatTime() - start;
+    stats.incInt(putRemoteInProgressId, -1);
+    stats.incInt(putRemoteCompletedId, 1);
+    stats.incLong(putRemoteTimeId, delta);
+  }
+
+  @Override
+  public long startPutLocal() {
+    stats.incInt(putLocalInProgressId, 1);
+    return CachePerfStats.getStatTime();
+  }
+
+  @Override
+  public void endPutLocal(long start) {
+    long delta = CachePerfStats.getStatTime() - start;
+    stats.incInt(putLocalInProgressId, -1);
+    stats.incInt(putLocalCompletedId, 1);
+    stats.incLong(putLocalTimeId, delta);
+  }
+
+  @Override
+  public void incPRMetaDataSentCount() {
+    this.stats.incLong(prMetaDataSentCountId, 1);
+  }
+
+  @Override
+  public long getPRMetaDataSentCount() {
+    return this.stats.getLong(prMetaDataSentCountId);
+  }
+}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt
new file mode 100644
index 0000000..b9018db
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TimedMicrometerPartitionedRegionStats.kt
@@ -0,0 +1,67 @@
+package org.apache.geode.internal.cache
+
+import io.micrometer.core.instrument.Timer
+import java.util.concurrent.TimeUnit
+
+class TimedMicrometerPartitionedRegionStats(regionName: String) : MicrometerPartitionRegionStats(regionName) {
+    private fun constructTimerForMetric(metricName: String): Timer =
+            metrics.timer("${metricName}Latency", regionName, PARTITIONED_REGION)
+
+    private val putTimer = constructTimerForMetric("put")
+    private val putAllTimer = constructTimerForMetric("putAll")
+    private val createTimer = constructTimerForMetric("create")
+    private val removeAllTimer = constructTimerForMetric("removeAll")
+    private val getTimer = constructTimerForMetric("get")
+    private val destroyTimer = constructTimerForMetric("destroy")
+    private val invalidateTimer = constructTimerForMetric("invalidate")
+    private val containsKeyTimer = constructTimerForMetric("containsKey")
+    private val containValueForKeyTimer = constructTimerForMetric("containValueForKey")
+
+    override fun endPut(startTimeInNanos: Long) {
+        super.endPut(startTimeInNanos)
+        updateTimer(startTimeInNanos, putTimer)
+    }
+
+    override fun endPutAll(startTimeInNanos: Long) {
+        super.endPutAll(startTimeInNanos)
+        updateTimer(startTimeInNanos, putAllTimer)
+    }
+
+    override fun endCreate(startTimeInNanos: Long) {
+        super.endCreate(startTimeInNanos)
+        updateTimer(startTimeInNanos, createTimer)
+    }
+
+    override fun endRemoveAll(startTimeInNanos: Long) {
+        super.endRemoveAll(startTimeInNanos)
+        updateTimer(startTimeInNanos, removeAllTimer)
+    }
+
+    override fun endGet(startTimeInNanos: Long) {
+        super.endGet(startTimeInNanos)
+        updateTimer(startTimeInNanos, getTimer)
+    }
+
+    override fun endDestroy(startTimeInNanos: Long) {
+        super.endDestroy(startTimeInNanos)
+        updateTimer(startTimeInNanos, destroyTimer)
+    }
+
+    override fun endInvalidate(startTimeInNanos: Long) {
+        super.endInvalidate(startTimeInNanos)
+        updateTimer(startTimeInNanos, invalidateTimer)
+    }
+
+    override fun endContainsKey(startTimeInNanos: Long) {
+        super.endContainsKey(startTimeInNanos)
+        updateTimer(startTimeInNanos, containsKeyTimer)
+    }
+    override fun endContainsValueForKey(startTimeInNanos: Long) {
+        super.endContainsValueForKey(startTimeInNanos)
+        updateTimer(startTimeInNanos, containValueForKeyTimer)
+    }
+
+    private fun updateTimer(startTimeInNanos: Long, timer: Timer) {
+        timer.record((System.nanoTime() - startTimeInNanos), TimeUnit.NANOSECONDS)
+    }
+}
\ No newline at end of file
diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index 13368a9..8c55681 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -31,6 +31,7 @@ dependencies {
     compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.0-rc.5'
     compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.0-rc.5'
     compile group: 'io.micrometer', name: 'micrometer-registry-graphite', version: '1.0.0-rc.5'
+    compile group: 'io.micrometer', name: 'micrometer-registry-jmx', version: '1.0.0-rc.5'
     compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
 }
 buildscript {
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
index b726ed3..bcf2ff1 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
@@ -1,10 +1,12 @@
 package org.apache.geode.internal.protocol.protobuf.statistics
 
 import io.micrometer.core.instrument.Clock
+import io.micrometer.core.instrument.DistributionSummary
 import io.micrometer.core.instrument.MeterRegistry
 import io.micrometer.core.instrument.composite.CompositeMeterRegistry
 import io.micrometer.influx.InfluxConfig
 import io.micrometer.influx.InfluxMeterRegistry
+import io.micrometer.jmx.JmxMeterRegistry
 import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics
 import java.time.Duration
 import java.util.concurrent.atomic.AtomicInteger
@@ -14,7 +16,7 @@ class MicrometerClientStatsImpl : ProtocolClientStatistics {
     private val clientsConnected = AtomicInteger(0)
 
     private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
-        override fun step(): Duration = Duration.ofSeconds(10)
+        override fun step(): Duration = Duration.ofSeconds(1)
         override fun db(): String = "mydb"
         override fun get(k: String): String? = null
         override fun uri(): String = "http://localhost:8086"
@@ -27,16 +29,19 @@ class MicrometerClientStatsImpl : ProtocolClientStatistics {
 //        override fun step(): Duration = Duration.ofSeconds(10)
 //    }, Clock.SYSTEM)
 
+    private val jmxMetrics: MeterRegistry = JmxMeterRegistry()
+
     private val metrics = CompositeMeterRegistry(Clock.SYSTEM)
 
     init {
         metrics.add(influxMetrics)
 //        metrics.add(atlasMetrics)
+        metrics.add(jmxMetrics)
     }
 
     val clientConnectedCounter = metrics.gauge("clientConnected", clientsConnected)
-    val messageReceivedCounter = metrics.counter("messageReceived")
-    val messageSentCounter = metrics.counter("messageSent")
+    val messageReceivedCounter = metrics.summary("messageReceived")
+    val messageSentCounter = metrics.summary("messageSent")
     val authorizationViolationsCounter = metrics.counter("authorizationViolations")
     val authenticationFailureCounter = metrics.counter("authenticationFailures")
 
@@ -49,11 +54,11 @@ class MicrometerClientStatsImpl : ProtocolClientStatistics {
     }
 
     override fun messageReceived(bytes: Int) {
-        messageReceivedCounter.increment(bytes.toDouble())
+        messageReceivedCounter.record(bytes.toDouble())
     }
 
     override fun messageSent(bytes: Int) {
-        messageSentCounter.increment(bytes.toDouble())
+        messageSentCounter.record(bytes.toDouble())
     }
 
     override fun incAuthorizationViolations() {
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
index cac6ba3..14613ab 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
@@ -155,7 +155,7 @@ public class CacheOperationsJUnitTest {
     private static String randomLengthString() {
         Random random = new Random();
         StringBuffer stringBuffer = new StringBuffer();
-        int length = (int) (random.nextInt(1024000)*(1.75*random.nextInt(10)));
+        int length = (int) (random.nextInt(1024000) * (1.75 * random.nextInt(10)));
         for (int i = 0; i < (length); i++) {
             stringBuffer.append("a");
         }
@@ -173,8 +173,10 @@ public class CacheOperationsJUnitTest {
                     randomLengthString()));
             putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY2,
                     randomLengthString()));
-            putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY3,
-                    randomLengthString()));
+            if (new Random().nextInt() % 2 == 0) {
+                putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY3,
+                        randomLengthString()));
+            }
             ClientProtocol.Message putAllMessage = ProtobufUtilities.createProtobufMessage(
                     ProtobufRequestUtilities.createPutAllRequest(TEST_REGION, putEntries));
             protobufProtocolSerializer.serialize(putAllMessage, outputStream);
@@ -182,8 +184,10 @@ public class CacheOperationsJUnitTest {
 
             Set<BasicTypes.EncodedValue> getEntries = new HashSet<>();
             getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY1));
-//            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY2));
-//            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY3));
+            if(new Random().nextInt() % 5 == 0) {
+            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY2));
+            getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY3));
+            }
 
             RegionAPI.GetAllRequest getAllRequest =
                     ProtobufRequestUtilities.createGetAllRequest(TEST_REGION, getEntries);

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.