You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2017/10/25 16:40:53 UTC

[geode] branch develop updated: GEODE-3870: move region entry classes to new entries package (#972)

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 8ff23e0  GEODE-3870: move region entry classes to new entries package (#972)
8ff23e0 is described below

commit 8ff23e06430721f82e2fe3ce36da7b8238c18633
Author: Kirk Lund <kl...@apache.org>
AuthorDate: Wed Oct 25 09:40:51 2017 -0700

    GEODE-3870: move region entry classes to new entries package (#972)
    
    * Move Region Entries into entries package
    * Move NonLocalRegionEntry back to internal.cache package
    * Regenerate region entry classes from Linux
---
 dev-tools/generateRegionEntryClasses.sh            |   2 +-
 .../query/internal/index/CompactRangeIndex.java    |   2 +-
 .../internal/cache/AbstractDiskLRURegionEntry.java |   1 +
 .../geode/internal/cache/AbstractDiskRegion.java   |   1 +
 .../geode/internal/cache/AbstractLRURegionMap.java |   1 +
 .../geode/internal/cache/AbstractRegion.java       |  10 +-
 .../geode/internal/cache/AbstractRegionMap.java    |   5 +-
 .../apache/geode/internal/cache/BucketRegion.java  |  36 ++--
 .../org/apache/geode/internal/cache/DiskId.java    | 126 ++++++--------
 .../apache/geode/internal/cache/DiskRegion.java    |  13 +-
 .../apache/geode/internal/cache/DiskStoreImpl.java |  12 +-
 .../geode/internal/cache/DistributedRegion.java    |   4 +-
 .../apache/geode/internal/cache/EntriesSet.java    |   2 +-
 .../geode/internal/cache/EntryEventImpl.java       |   3 +-
 .../geode/internal/cache/ExportDiskRegion.java     |   3 +-
 .../internal/cache/InitialImageOperation.java      |  21 ++-
 .../apache/geode/internal/cache/LocalRegion.java   |  23 +--
 .../geode/internal/cache/LocalRegionDataView.java  |   1 +
 .../geode/internal/cache/NonLocalRegionEntry.java  |  12 +-
 .../cache/OfflineCompactionDiskRegion.java         |   1 +
 .../org/apache/geode/internal/cache/Oplog.java     |   5 +-
 .../org/apache/geode/internal/cache/OplogSet.java  |   3 +-
 .../apache/geode/internal/cache/OverflowOplog.java |   5 +-
 .../geode/internal/cache/OverflowOplogSet.java     |   3 +-
 .../geode/internal/cache/PartitionedRegion.java    |   2 +-
 .../geode/internal/cache/PersistentOplogSet.java   |   3 +-
 .../internal/cache/PlaceHolderDiskRegion.java      |   1 +
 .../geode/internal/cache/ProxyRegionMap.java       |   1 +
 .../apache/geode/internal/cache/RegionEntry.java   | 187 ++++++++++-----------
 .../org/apache/geode/internal/cache/RegionMap.java |   1 +
 .../apache/geode/internal/cache/TXManagerImpl.java |   1 +
 .../org/apache/geode/internal/cache/TXState.java   |   1 +
 .../geode/internal/cache/ValidatingDiskRegion.java |   1 +
 .../{ => entries}/AbstractDiskRegionEntry.java     |   9 +-
 .../{ => entries}/AbstractLRURegionEntry.java      |   4 +-
 .../AbstractOplogDiskRegionEntry.java              |  12 +-
 .../cache/{ => entries}/AbstractRegionEntry.java   |  41 +++--
 .../internal/cache/{ => entries}/DiskEntry.java    |  52 ++++--
 .../cache/{ => entries}/LeafRegionEntry.cpp        |  12 +-
 .../cache/{ => entries}/OffHeapRegionEntry.java    |   3 +-
 .../{ => entries}/VMStatsDiskLRURegionEntry.java   |   5 +-
 .../VMStatsDiskLRURegionEntryHeap.java             |   7 +-
 .../VMStatsDiskLRURegionEntryHeapIntKey.java       |  10 +-
 .../VMStatsDiskLRURegionEntryHeapLongKey.java      |  10 +-
 .../VMStatsDiskLRURegionEntryHeapObjectKey.java    |  10 +-
 .../VMStatsDiskLRURegionEntryHeapStringKey1.java   |  10 +-
 .../VMStatsDiskLRURegionEntryHeapStringKey2.java   |  10 +-
 .../VMStatsDiskLRURegionEntryHeapUUIDKey.java      |  10 +-
 .../VMStatsDiskLRURegionEntryOffHeap.java          |   7 +-
 .../VMStatsDiskLRURegionEntryOffHeapIntKey.java    |  11 +-
 .../VMStatsDiskLRURegionEntryOffHeapLongKey.java   |  11 +-
 .../VMStatsDiskLRURegionEntryOffHeapObjectKey.java |  11 +-
 ...VMStatsDiskLRURegionEntryOffHeapStringKey1.java |  11 +-
 ...VMStatsDiskLRURegionEntryOffHeapStringKey2.java |  11 +-
 .../VMStatsDiskLRURegionEntryOffHeapUUIDKey.java   |  11 +-
 .../{ => entries}/VMStatsDiskRegionEntry.java      |   4 +-
 .../{ => entries}/VMStatsDiskRegionEntryHeap.java  |   7 +-
 .../VMStatsDiskRegionEntryHeapIntKey.java          |   9 +-
 .../VMStatsDiskRegionEntryHeapLongKey.java         |   9 +-
 .../VMStatsDiskRegionEntryHeapObjectKey.java       |   9 +-
 .../VMStatsDiskRegionEntryHeapStringKey1.java      |   9 +-
 .../VMStatsDiskRegionEntryHeapStringKey2.java      |   9 +-
 .../VMStatsDiskRegionEntryHeapUUIDKey.java         |   9 +-
 .../VMStatsDiskRegionEntryOffHeap.java             |   7 +-
 .../VMStatsDiskRegionEntryOffHeapIntKey.java       |  10 +-
 .../VMStatsDiskRegionEntryOffHeapLongKey.java      |  10 +-
 .../VMStatsDiskRegionEntryOffHeapObjectKey.java    |  10 +-
 .../VMStatsDiskRegionEntryOffHeapStringKey1.java   |  10 +-
 .../VMStatsDiskRegionEntryOffHeapStringKey2.java   |  10 +-
 .../VMStatsDiskRegionEntryOffHeapUUIDKey.java      |  10 +-
 .../cache/{ => entries}/VMStatsLRURegionEntry.java |   6 +-
 .../{ => entries}/VMStatsLRURegionEntryHeap.java   |   7 +-
 .../VMStatsLRURegionEntryHeapIntKey.java           |   4 +-
 .../VMStatsLRURegionEntryHeapLongKey.java          |   4 +-
 .../VMStatsLRURegionEntryHeapObjectKey.java        |   4 +-
 .../VMStatsLRURegionEntryHeapStringKey1.java       |   4 +-
 .../VMStatsLRURegionEntryHeapStringKey2.java       |   4 +-
 .../VMStatsLRURegionEntryHeapUUIDKey.java          |   4 +-
 .../VMStatsLRURegionEntryOffHeap.java              |   7 +-
 .../VMStatsLRURegionEntryOffHeapIntKey.java        |   5 +-
 .../VMStatsLRURegionEntryOffHeapLongKey.java       |   5 +-
 .../VMStatsLRURegionEntryOffHeapObjectKey.java     |   5 +-
 .../VMStatsLRURegionEntryOffHeapStringKey1.java    |   5 +-
 .../VMStatsLRURegionEntryOffHeapStringKey2.java    |   5 +-
 .../VMStatsLRURegionEntryOffHeapUUIDKey.java       |   5 +-
 .../cache/{ => entries}/VMStatsRegionEntry.java    |   4 +-
 .../{ => entries}/VMStatsRegionEntryHeap.java      |   7 +-
 .../VMStatsRegionEntryHeapIntKey.java              |   3 +-
 .../VMStatsRegionEntryHeapLongKey.java             |   3 +-
 .../VMStatsRegionEntryHeapObjectKey.java           |   3 +-
 .../VMStatsRegionEntryHeapStringKey1.java          |   3 +-
 .../VMStatsRegionEntryHeapStringKey2.java          |   3 +-
 .../VMStatsRegionEntryHeapUUIDKey.java             |   3 +-
 .../{ => entries}/VMStatsRegionEntryOffHeap.java   |   7 +-
 .../VMStatsRegionEntryOffHeapIntKey.java           |   4 +-
 .../VMStatsRegionEntryOffHeapLongKey.java          |   4 +-
 .../VMStatsRegionEntryOffHeapObjectKey.java        |   4 +-
 .../VMStatsRegionEntryOffHeapStringKey1.java       |   4 +-
 .../VMStatsRegionEntryOffHeapStringKey2.java       |   4 +-
 .../VMStatsRegionEntryOffHeapUUIDKey.java          |   4 +-
 .../{ => entries}/VMThinDiskLRURegionEntry.java    |   5 +-
 .../VMThinDiskLRURegionEntryHeap.java              |   7 +-
 .../VMThinDiskLRURegionEntryHeapIntKey.java        |  10 +-
 .../VMThinDiskLRURegionEntryHeapLongKey.java       |  10 +-
 .../VMThinDiskLRURegionEntryHeapObjectKey.java     |  10 +-
 .../VMThinDiskLRURegionEntryHeapStringKey1.java    |  10 +-
 .../VMThinDiskLRURegionEntryHeapStringKey2.java    |  10 +-
 .../VMThinDiskLRURegionEntryHeapUUIDKey.java       |  10 +-
 .../VMThinDiskLRURegionEntryOffHeap.java           |   7 +-
 .../VMThinDiskLRURegionEntryOffHeapIntKey.java     |  11 +-
 .../VMThinDiskLRURegionEntryOffHeapLongKey.java    |  11 +-
 .../VMThinDiskLRURegionEntryOffHeapObjectKey.java  |  11 +-
 .../VMThinDiskLRURegionEntryOffHeapStringKey1.java |  11 +-
 .../VMThinDiskLRURegionEntryOffHeapStringKey2.java |  11 +-
 .../VMThinDiskLRURegionEntryOffHeapUUIDKey.java    |  11 +-
 .../cache/{ => entries}/VMThinDiskRegionEntry.java |   4 +-
 .../{ => entries}/VMThinDiskRegionEntryHeap.java   |   7 +-
 .../VMThinDiskRegionEntryHeapIntKey.java           |   9 +-
 .../VMThinDiskRegionEntryHeapLongKey.java          |   9 +-
 .../VMThinDiskRegionEntryHeapObjectKey.java        |   9 +-
 .../VMThinDiskRegionEntryHeapStringKey1.java       |   9 +-
 .../VMThinDiskRegionEntryHeapStringKey2.java       |   9 +-
 .../VMThinDiskRegionEntryHeapUUIDKey.java          |   9 +-
 .../VMThinDiskRegionEntryOffHeap.java              |   7 +-
 .../VMThinDiskRegionEntryOffHeapIntKey.java        |  10 +-
 .../VMThinDiskRegionEntryOffHeapLongKey.java       |  10 +-
 .../VMThinDiskRegionEntryOffHeapObjectKey.java     |  10 +-
 .../VMThinDiskRegionEntryOffHeapStringKey1.java    |  10 +-
 .../VMThinDiskRegionEntryOffHeapStringKey2.java    |  10 +-
 .../VMThinDiskRegionEntryOffHeapUUIDKey.java       |  10 +-
 .../cache/{ => entries}/VMThinLRURegionEntry.java  |   4 +-
 .../{ => entries}/VMThinLRURegionEntryHeap.java    |   7 +-
 .../VMThinLRURegionEntryHeapIntKey.java            |   4 +-
 .../VMThinLRURegionEntryHeapLongKey.java           |   4 +-
 .../VMThinLRURegionEntryHeapObjectKey.java         |   4 +-
 .../VMThinLRURegionEntryHeapStringKey1.java        |   4 +-
 .../VMThinLRURegionEntryHeapStringKey2.java        |   4 +-
 .../VMThinLRURegionEntryHeapUUIDKey.java           |   4 +-
 .../{ => entries}/VMThinLRURegionEntryOffHeap.java |   7 +-
 .../VMThinLRURegionEntryOffHeapIntKey.java         |   5 +-
 .../VMThinLRURegionEntryOffHeapLongKey.java        |   5 +-
 .../VMThinLRURegionEntryOffHeapObjectKey.java      |   5 +-
 .../VMThinLRURegionEntryOffHeapStringKey1.java     |   5 +-
 .../VMThinLRURegionEntryOffHeapStringKey2.java     |   5 +-
 .../VMThinLRURegionEntryOffHeapUUIDKey.java        |   5 +-
 .../cache/{ => entries}/VMThinRegionEntry.java     |   4 +-
 .../cache/{ => entries}/VMThinRegionEntryHeap.java |   7 +-
 .../{ => entries}/VMThinRegionEntryHeapIntKey.java |   3 +-
 .../VMThinRegionEntryHeapLongKey.java              |   3 +-
 .../VMThinRegionEntryHeapObjectKey.java            |   3 +-
 .../VMThinRegionEntryHeapStringKey1.java           |   3 +-
 .../VMThinRegionEntryHeapStringKey2.java           |   3 +-
 .../VMThinRegionEntryHeapUUIDKey.java              |   3 +-
 .../{ => entries}/VMThinRegionEntryOffHeap.java    |   7 +-
 .../VMThinRegionEntryOffHeapIntKey.java            |   4 +-
 .../VMThinRegionEntryOffHeapLongKey.java           |   4 +-
 .../VMThinRegionEntryOffHeapObjectKey.java         |   4 +-
 .../VMThinRegionEntryOffHeapStringKey1.java        |   4 +-
 .../VMThinRegionEntryOffHeapStringKey2.java        |   4 +-
 .../VMThinRegionEntryOffHeapUUIDKey.java           |   4 +-
 .../VersionedStatsDiskLRURegionEntry.java          |   3 +-
 .../VersionedStatsDiskLRURegionEntryHeap.java      |   7 +-
 ...VersionedStatsDiskLRURegionEntryHeapIntKey.java |  11 +-
 ...ersionedStatsDiskLRURegionEntryHeapLongKey.java |  11 +-
 ...sionedStatsDiskLRURegionEntryHeapObjectKey.java |  11 +-
 ...ionedStatsDiskLRURegionEntryHeapStringKey1.java |  11 +-
 ...ionedStatsDiskLRURegionEntryHeapStringKey2.java |  11 +-
 ...ersionedStatsDiskLRURegionEntryHeapUUIDKey.java |  11 +-
 .../VersionedStatsDiskLRURegionEntryOffHeap.java   |   7 +-
 ...sionedStatsDiskLRURegionEntryOffHeapIntKey.java |  12 +-
 ...ionedStatsDiskLRURegionEntryOffHeapLongKey.java |  12 +-
 ...nedStatsDiskLRURegionEntryOffHeapObjectKey.java |  12 +-
 ...edStatsDiskLRURegionEntryOffHeapStringKey1.java |  12 +-
 ...edStatsDiskLRURegionEntryOffHeapStringKey2.java |  12 +-
 ...ionedStatsDiskLRURegionEntryOffHeapUUIDKey.java |  12 +-
 .../VersionedStatsDiskRegionEntry.java             |   3 +-
 .../VersionedStatsDiskRegionEntryHeap.java         |   7 +-
 .../VersionedStatsDiskRegionEntryHeapIntKey.java   |  10 +-
 .../VersionedStatsDiskRegionEntryHeapLongKey.java  |  10 +-
 ...VersionedStatsDiskRegionEntryHeapObjectKey.java |  10 +-
 ...ersionedStatsDiskRegionEntryHeapStringKey1.java |  10 +-
 ...ersionedStatsDiskRegionEntryHeapStringKey2.java |  10 +-
 .../VersionedStatsDiskRegionEntryHeapUUIDKey.java  |  10 +-
 .../VersionedStatsDiskRegionEntryOffHeap.java      |   7 +-
 ...VersionedStatsDiskRegionEntryOffHeapIntKey.java |  11 +-
 ...ersionedStatsDiskRegionEntryOffHeapLongKey.java |  11 +-
 ...sionedStatsDiskRegionEntryOffHeapObjectKey.java |  11 +-
 ...ionedStatsDiskRegionEntryOffHeapStringKey1.java |  11 +-
 ...ionedStatsDiskRegionEntryOffHeapStringKey2.java |  11 +-
 ...ersionedStatsDiskRegionEntryOffHeapUUIDKey.java |  11 +-
 .../VersionedStatsLRURegionEntry.java              |   3 +-
 .../VersionedStatsLRURegionEntryHeap.java          |   7 +-
 .../VersionedStatsLRURegionEntryHeapIntKey.java    |   5 +-
 .../VersionedStatsLRURegionEntryHeapLongKey.java   |   5 +-
 .../VersionedStatsLRURegionEntryHeapObjectKey.java |   5 +-
 ...VersionedStatsLRURegionEntryHeapStringKey1.java |   5 +-
 ...VersionedStatsLRURegionEntryHeapStringKey2.java |   5 +-
 .../VersionedStatsLRURegionEntryHeapUUIDKey.java   |   5 +-
 .../VersionedStatsLRURegionEntryOffHeap.java       |   7 +-
 .../VersionedStatsLRURegionEntryOffHeapIntKey.java |   6 +-
 ...VersionedStatsLRURegionEntryOffHeapLongKey.java |   6 +-
 ...rsionedStatsLRURegionEntryOffHeapObjectKey.java |   6 +-
 ...sionedStatsLRURegionEntryOffHeapStringKey1.java |   6 +-
 ...sionedStatsLRURegionEntryOffHeapStringKey2.java |   6 +-
 ...VersionedStatsLRURegionEntryOffHeapUUIDKey.java |   6 +-
 .../{ => entries}/VersionedStatsRegionEntry.java   |   6 +-
 .../VersionedStatsRegionEntryHeap.java             |   7 +-
 .../VersionedStatsRegionEntryHeapIntKey.java       |   4 +-
 .../VersionedStatsRegionEntryHeapLongKey.java      |   4 +-
 .../VersionedStatsRegionEntryHeapObjectKey.java    |   4 +-
 .../VersionedStatsRegionEntryHeapStringKey1.java   |   4 +-
 .../VersionedStatsRegionEntryHeapStringKey2.java   |   4 +-
 .../VersionedStatsRegionEntryHeapUUIDKey.java      |   4 +-
 .../VersionedStatsRegionEntryOffHeap.java          |   7 +-
 .../VersionedStatsRegionEntryOffHeapIntKey.java    |   5 +-
 .../VersionedStatsRegionEntryOffHeapLongKey.java   |   5 +-
 .../VersionedStatsRegionEntryOffHeapObjectKey.java |   5 +-
 ...VersionedStatsRegionEntryOffHeapStringKey1.java |   5 +-
 ...VersionedStatsRegionEntryOffHeapStringKey2.java |   5 +-
 .../VersionedStatsRegionEntryOffHeapUUIDKey.java   |   5 +-
 .../VersionedThinDiskLRURegionEntry.java           |   3 +-
 .../VersionedThinDiskLRURegionEntryHeap.java       |   7 +-
 .../VersionedThinDiskLRURegionEntryHeapIntKey.java |  11 +-
 ...VersionedThinDiskLRURegionEntryHeapLongKey.java |  11 +-
 ...rsionedThinDiskLRURegionEntryHeapObjectKey.java |  11 +-
 ...sionedThinDiskLRURegionEntryHeapStringKey1.java |  11 +-
 ...sionedThinDiskLRURegionEntryHeapStringKey2.java |  11 +-
 ...VersionedThinDiskLRURegionEntryHeapUUIDKey.java |  11 +-
 .../VersionedThinDiskLRURegionEntryOffHeap.java    |   7 +-
 ...rsionedThinDiskLRURegionEntryOffHeapIntKey.java |  12 +-
 ...sionedThinDiskLRURegionEntryOffHeapLongKey.java |  12 +-
 ...onedThinDiskLRURegionEntryOffHeapObjectKey.java |  12 +-
 ...nedThinDiskLRURegionEntryOffHeapStringKey1.java |  12 +-
 ...nedThinDiskLRURegionEntryOffHeapStringKey2.java |  12 +-
 ...sionedThinDiskLRURegionEntryOffHeapUUIDKey.java |  12 +-
 .../VersionedThinDiskRegionEntry.java              |   6 +-
 .../VersionedThinDiskRegionEntryHeap.java          |   7 +-
 .../VersionedThinDiskRegionEntryHeapIntKey.java    |  10 +-
 .../VersionedThinDiskRegionEntryHeapLongKey.java   |  10 +-
 .../VersionedThinDiskRegionEntryHeapObjectKey.java |  10 +-
 ...VersionedThinDiskRegionEntryHeapStringKey1.java |  10 +-
 ...VersionedThinDiskRegionEntryHeapStringKey2.java |  10 +-
 .../VersionedThinDiskRegionEntryHeapUUIDKey.java   |  10 +-
 .../VersionedThinDiskRegionEntryOffHeap.java       |   7 +-
 .../VersionedThinDiskRegionEntryOffHeapIntKey.java |  11 +-
 ...VersionedThinDiskRegionEntryOffHeapLongKey.java |  11 +-
 ...rsionedThinDiskRegionEntryOffHeapObjectKey.java |  11 +-
 ...sionedThinDiskRegionEntryOffHeapStringKey1.java |  11 +-
 ...sionedThinDiskRegionEntryOffHeapStringKey2.java |  11 +-
 ...VersionedThinDiskRegionEntryOffHeapUUIDKey.java |  11 +-
 .../{ => entries}/VersionedThinLRURegionEntry.java |  10 +-
 .../VersionedThinLRURegionEntryHeap.java           |   7 +-
 .../VersionedThinLRURegionEntryHeapIntKey.java     |   5 +-
 .../VersionedThinLRURegionEntryHeapLongKey.java    |   5 +-
 .../VersionedThinLRURegionEntryHeapObjectKey.java  |   5 +-
 .../VersionedThinLRURegionEntryHeapStringKey1.java |   5 +-
 .../VersionedThinLRURegionEntryHeapStringKey2.java |   5 +-
 .../VersionedThinLRURegionEntryHeapUUIDKey.java    |   5 +-
 .../VersionedThinLRURegionEntryOffHeap.java        |   7 +-
 .../VersionedThinLRURegionEntryOffHeapIntKey.java  |   6 +-
 .../VersionedThinLRURegionEntryOffHeapLongKey.java |   6 +-
 ...ersionedThinLRURegionEntryOffHeapObjectKey.java |   6 +-
 ...rsionedThinLRURegionEntryOffHeapStringKey1.java |   6 +-
 ...rsionedThinLRURegionEntryOffHeapStringKey2.java |   6 +-
 .../VersionedThinLRURegionEntryOffHeapUUIDKey.java |   6 +-
 .../{ => entries}/VersionedThinRegionEntry.java    |   3 +-
 .../VersionedThinRegionEntryHeap.java              |   7 +-
 .../VersionedThinRegionEntryHeapIntKey.java        |   4 +-
 .../VersionedThinRegionEntryHeapLongKey.java       |   4 +-
 .../VersionedThinRegionEntryHeapObjectKey.java     |   4 +-
 .../VersionedThinRegionEntryHeapStringKey1.java    |   4 +-
 .../VersionedThinRegionEntryHeapStringKey2.java    |   4 +-
 .../VersionedThinRegionEntryHeapUUIDKey.java       |   4 +-
 .../VersionedThinRegionEntryOffHeap.java           |   7 +-
 .../VersionedThinRegionEntryOffHeapIntKey.java     |   5 +-
 .../VersionedThinRegionEntryOffHeapLongKey.java    |   5 +-
 .../VersionedThinRegionEntryOffHeapObjectKey.java  |   5 +-
 .../VersionedThinRegionEntryOffHeapStringKey1.java |   5 +-
 .../VersionedThinRegionEntryOffHeapStringKey2.java |   5 +-
 .../VersionedThinRegionEntryOffHeapUUIDKey.java    |   5 +-
 .../geode/internal/cache/lru/NewLIFOClockHand.java |   2 +-
 .../geode/internal/cache/lru/NewLRUClockHand.java  |   1 +
 .../cache/persistence/DiskRecoveryStore.java       |   4 +-
 .../apache/geode/internal/cache/properties.html    |   2 +-
 .../region/entry/RegionEntryFactoryBuilder.java    |  32 ++++
 .../cache/tier/sockets/command/GetEntry70.java     |   1 -
 .../internal/offheap/OffHeapRegionEntryHelper.java |   4 +-
 .../geode/internal/sequencelog/EntryLogger.java    |   2 +-
 .../concurrent/CustomEntryConcurrentHashMap.java   |   2 +-
 .../internal/index/MapIndexStoreJUnitTest.java     |   2 +-
 .../geode/cache30/ClientServerCCEDUnitTest.java    |   2 +-
 .../apache/geode/internal/InlineKeyJUnitTest.java  |   6 +
 .../cache/AbstractOplogDiskRegionEntryTest.java    |   1 +
 .../geode/internal/cache/Bug37377DUnitTest.java    |   1 +
 .../geode/internal/cache/Bug39079DUnitTest.java    |   1 +
 ...urrentFlushingAndRegionOperationsJUnitTest.java |   1 +
 ...currentRollingAndRegionOperationsJUnitTest.java |   1 +
 .../geode/internal/cache/ConflationJUnitTest.java  |   3 +-
 .../internal/cache/DiskRegByteArrayDUnitTest.java  |   3 +-
 .../internal/cache/DiskRegRecoveryJUnitTest.java   |   1 +
 .../geode/internal/cache/DiskRegionJUnitTest.java  |   1 +
 .../cache/EvictionObjectSizerDUnitTest.java        |   3 +-
 .../geode/internal/cache/GIIDeltaDUnitTest.java    |   1 +
 .../cache/OffHeapValueWrapperJUnitTest.java        |   4 +-
 .../geode/internal/cache/OplogJUnitTest.java       |   1 +
 .../internal/cache/TombstoneCreationJUnitTest.java |   2 +
 .../{ => entries}/AbstractRegionEntryTest.java     |  12 +-
 .../geode/internal/offheap/InlineKeyJUnitTest.java |   6 +
 .../geode/internal/offheap/OffHeapRegionBase.java  |   1 +
 .../offheap/OffHeapRegionEntryHelperJUnitTest.java |   6 +-
 .../security/ClientAuthorizationTestCase.java      |   2 +-
 311 files changed, 1811 insertions(+), 663 deletions(-)

diff --git a/dev-tools/generateRegionEntryClasses.sh b/dev-tools/generateRegionEntryClasses.sh
index 23a8a02..b0c0004 100755
--- a/dev-tools/generateRegionEntryClasses.sh
+++ b/dev-tools/generateRegionEntryClasses.sh
@@ -22,7 +22,7 @@
 # Then use 'git diff' to validate the changes you made to the
 # generated java files before committing them.
 
-SRCDIR=geode-core/src/main/java/org/apache/geode/internal/cache
+SRCDIR=geode-core/src/main/java/org/apache/geode/internal/cache/entries
 SRCFILE=$SRCDIR/LeafRegionEntry.cpp
 
 for VERTYPE in VM Versioned
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
index 2c19d9d..e6fd743 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
@@ -66,7 +66,7 @@ import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.RegionEntryContext;
-import org.apache.geode.internal.cache.VMThinRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeap;
 import org.apache.geode.internal.cache.persistence.query.CloseableIterator;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.LogService;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskLRURegionEntry.java
index b4fbd8f..ad4d46b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskLRURegionEntry.java
@@ -16,6 +16,7 @@
 package org.apache.geode.internal.cache;
 
 
+import org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry;
 import org.apache.geode.internal.cache.lru.LRUEntry;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegion.java
index 1958a85..ca07426 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegion.java
@@ -20,6 +20,7 @@ import org.apache.geode.compression.Compressor;
 import org.apache.geode.internal.ClassPathLoader;
 import org.apache.geode.internal.CopyOnWriteHashSet;
 import org.apache.geode.internal.cache.DiskInitFile.DiskRegionFlag;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRegionView;
 import org.apache.geode.internal.cache.persistence.PersistentMemberID;
 import org.apache.geode.internal.cache.persistence.PersistentMemberPattern;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionMap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionMap.java
index 9f02c58..8e63dd4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionMap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionMap.java
@@ -26,6 +26,7 @@ import org.apache.geode.cache.EvictionAlgorithm;
 import org.apache.geode.cache.RegionDestroyedException;
 import org.apache.geode.internal.Assert;
 import org.apache.geode.internal.cache.control.InternalResourceManager;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.cache.lru.HeapEvictor;
 import org.apache.geode.internal.cache.lru.HeapLRUCapacityController;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java
index db9674e..e6fdaaf 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java
@@ -845,7 +845,7 @@ public abstract class AbstractRegion implements Region, RegionAttributes, Attrib
   // block
   // in case the value of the entry is "REMOVED" token. This prevents dead lock
   // caused by the Bug # 33336
-  boolean isIndexCreationThread() {
+  public boolean isIndexCreationThread() {
     Boolean value = isIndexCreator.get();
     return value != null ? value : false;
   }
@@ -1473,7 +1473,7 @@ public abstract class AbstractRegion implements Region, RegionAttributes, Attrib
    *
    * @since GemFire 5.0
    */
-  protected boolean isProxy() {
+  public boolean isProxy() {
     return getDataPolicy().isEmpty();
   }
 
@@ -1515,7 +1515,7 @@ public abstract class AbstractRegion implements Region, RegionAttributes, Attrib
   /**
    * Returns true if this region could expire an entry
    */
-  boolean isEntryExpiryPossible() {
+  public boolean isEntryExpiryPossible() {
     return this.entryExpiryPossible;
   }
 
@@ -1831,4 +1831,8 @@ public abstract class AbstractRegion implements Region, RegionAttributes, Attrib
   public boolean getOffHeap() {
     return this.offHeap;
   }
+
+  public boolean isConcurrencyChecksEnabled() {
+    return this.concurrencyChecksEnabled;
+  }
 }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
index 40c8b07..ea26ef9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionMap.java
@@ -23,6 +23,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.util.BlobHelper;
 import org.apache.logging.log4j.Logger;
 
@@ -3489,7 +3493,6 @@ public abstract class AbstractRegionMap implements RegionMap {
    * Removing the existing indexed value requires the current value in the cache, that is the one
    * prior to applying the operation.
    * 
-   * @param op
    * @param entry the RegionEntry that contains the value prior to applying the op
    */
   private void txRemoveOldIndexEntry(Operation op, RegionEntry entry) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java
index cc84b9f..f744780 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java
@@ -376,7 +376,6 @@ public class BucketRegion extends DistributedRegion implements Bucket {
    * Search the CM for keys. If found any, return the first found one Otherwise, save the keys into
    * the CM, and return null The thread will acquire the lock before searching.
    * 
-   * @param keys
    * @return first key found in CM null means not found
    */
   private LockObject searchAndLock(Object keys[]) {
@@ -416,8 +415,6 @@ public class BucketRegion extends DistributedRegion implements Bucket {
   /**
    * After processed the keys, this method will remove them from CM. And notifyAll for each key. The
    * thread needs to acquire lock of CM first.
-   * 
-   * @param keys
    */
   public void removeAndNotifyKeys(Object keys[]) {
     final boolean isTraceEnabled = logger.isTraceEnabled();
@@ -431,7 +428,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
             lockValue.setRemoved();
             if (isTraceEnabled) {
               long waitTime = System.currentTimeMillis() - lockValue.lockedTimeStamp;
-              logger.trace("LockKeys: remove key {}, notifyAll for {}. It waited", keys[i],
+              logger.trace("LockKeys: remove key {}, notifyAll for {}. It waited {}", keys[i],
                   lockValue, waitTime);
             }
             if (lockValue.isSomeoneWaiting()) {
@@ -447,8 +444,6 @@ public class BucketRegion extends DistributedRegion implements Bucket {
    * Keep checking if CM has contained any key in keys. If yes, wait for notify, then retry again.
    * This method will block current thread for long time. It only exits when current thread
    * successfully save its keys into CM.
-   * 
-   * @param keys
    */
   public void waitUntilLocked(Object keys[]) {
     final boolean isDebugEnabled = logger.isDebugEnabled();
@@ -469,12 +464,12 @@ public class BucketRegion extends DistributedRegion implements Bucket {
           } catch (InterruptedException e) {
             // TODO this isn't a localizable string and it's being logged at info level
             if (isDebugEnabled) {
-              logger.debug("{} interrupted while waiting for {}", title, foundLock, e.getMessage());
+              logger.debug("{} interrupted while waiting for {}", title, foundLock);
             }
           }
           if (isDebugEnabled) {
             long waitTime = System.currentTimeMillis() - foundLock.lockedTimeStamp;
-            logger.debug("{} waited {} ms to lock", title, waitTime, foundLock);
+            logger.debug("{} waited {} ms to lock {}", title, waitTime, foundLock);
           }
         }
       } else {
@@ -587,10 +582,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
   /**
    * Fix for Bug#45917 We are updating the seqNumber so that new seqNumbers are generated starting
    * from the latest in the system.
-   * 
-   * @param l
    */
-
   public void updateEventSeqNum(long l) {
     Atomics.setIfGreater(this.eventSeqNum, l);
     if (logger.isDebugEnabled()) {
@@ -720,8 +712,6 @@ public class BucketRegion extends DistributedRegion implements Bucket {
    * Checks to make sure that this node is primary, and locks the bucket to make sure the bucket
    * stays the primary bucket while the write is in progress. Any call to this method must be
    * followed with a call to endLocalWrite().
-   * 
-   * @param event
    */
   private boolean beginLocalWrite(EntryEventImpl event) {
     if (!needWriteLock(event)) {
@@ -1433,8 +1423,6 @@ public class BucketRegion extends DistributedRegion implements Bucket {
   /**
    * Horribly plagiarized from the similar method in LocalRegion
    * 
-   * @param key
-   * @param updateStats
    * @param clientEvent holder for client version tag
    * @param returnTombstones whether Token.TOMBSTONE should be returned for destroyed entries
    * @return serialized form if present, null if the entry is not in the cache, or INVALID or
@@ -1489,8 +1477,6 @@ public class BucketRegion extends DistributedRegion implements Bucket {
    * <p>
    * Horribly plagiarized from the similar method in LocalRegion
    * 
-   * @param keyInfo
-   * @param generateCallbacks
    * @param clientEvent holder for the entry's version information
    * @param returnTombstones TODO
    * @return serialized (byte) form
@@ -1763,7 +1749,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
       Set adjunctRecipients, FilterRoutingInfo filterRoutingInfo, DirectReplyProcessor processor,
       boolean calculateDelta, boolean sendDeltaWithFullValue) {
 
-    Set failures = Collections.EMPTY_SET;
+    Set failures = Collections.emptySet();
     PartitionMessage msg = event.getPartitionMessage();
     if (calculateDelta) {
       setDeltaIfNeeded(event);
@@ -1967,7 +1953,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
       }
       return r;
     } else {
-      return Collections.EMPTY_SET;
+      return Collections.emptySet();
     }
   }
 
@@ -1998,7 +1984,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
   }
 
   @Override
-  boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
+  public boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
       throws CacheWriterException, EntryNotFoundException, TimeoutException {
 
     boolean origRemoteState = false;
@@ -2155,7 +2141,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
   }
 
   @Override
-  int updateSizeOnEvict(Object key, int oldSize) {
+  public int updateSizeOnEvict(Object key, int oldSize) {
     int newDiskSize = oldSize;
     updateBucket2Size(oldSize, newDiskSize, SizeOp.EVICT);
     return newDiskSize;
@@ -2267,7 +2253,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
           throw new AssertionError("unhandled sizeOp: " + this);
       }
     }
-  };
+  }
 
   /**
    * Updates the bucket size.
@@ -2324,11 +2310,11 @@ public class BucketRegion extends DistributedRegion implements Bucket {
    * Increments the current number of entries whose value has been overflowed to disk by this
    * bucket, by a given amount.
    */
-  void incNumOverflowOnDisk(long delta) {
+  public void incNumOverflowOnDisk(long delta) {
     this.numOverflowOnDisk.addAndGet(delta);
   }
 
-  void incNumOverflowBytesOnDisk(long delta) {
+  public void incNumOverflowBytesOnDisk(long delta) {
     if (delta == 0)
       return;
     this.numOverflowBytesOnDisk.addAndGet(delta);
@@ -2347,7 +2333,7 @@ public class BucketRegion extends DistributedRegion implements Bucket {
    * Increments the current number of entries whose value has been overflowed to disk by this
    * bucket,by a given amount.
    */
-  void incNumEntriesInVM(long delta) {
+  public void incNumEntriesInVM(long delta) {
     this.numEntriesInVM.addAndGet(delta);
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskId.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskId.java
index fba88f1..40136a9 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskId.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskId.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 
 /**
@@ -51,10 +52,10 @@ public abstract class DiskId {
   // userBits of the value on disk
   // private byte userBits = -1;
 
-  abstract long getKeyId();
+  public abstract long getKeyId();
 
   /** Returns the offset in oplog where the entry is stored */
-  abstract long getOffsetInOplog();
+  public abstract long getOffsetInOplog();
 
 
   /**
@@ -71,7 +72,7 @@ public abstract class DiskId {
   /**
    * @return Returns the oplog id.
    */
-  synchronized long getOplogId() {
+  public synchronized long getOplogId() {
     // mask the first byte to get the oplogId
     long oplogId = this.id & MAX_OPLOG_ID;
 
@@ -83,25 +84,25 @@ public abstract class DiskId {
     return oplogId;
   }
 
-  abstract void setKeyId(long keyId);
+  public abstract void setKeyId(long keyId);
 
   /**
    * Setter for oplog offset of an entry
    * 
    * @param offsetInOplog - offset in oplog where the entry is stored.
    */
-  abstract void setOffsetInOplog(long offsetInOplog);
+  public abstract void setOffsetInOplog(long offsetInOplog);
 
-  abstract void markForWriting();
+  public abstract void markForWriting();
 
-  abstract void unmarkForWriting();
+  public abstract void unmarkForWriting();
 
-  abstract boolean needsToBeWritten();
+  public abstract boolean needsToBeWritten();
 
   /**
    * Returns previous oplog id
    */
-  synchronized long setOplogId(long oplogId) {
+  public synchronized long setOplogId(long oplogId) {
     long result = getOplogId();
     long oldUserBits = this.id & USER_BITS_MASK;// only get the most significant byte containing
     // sign bit + toggle flag + user bits
@@ -117,47 +118,17 @@ public abstract class DiskId {
     return result;
   }
 
-  // /**
-  // * Setter for the flush buffer toggle flag
-  // *
-  // * @param flag -
-  // * The flush buffer toggle flag which identifies whether the latest
-  // * value is present in the pendingflushes buffer or the pending
-  // * writes buffer
-  // */
-  // void setFlushBufferToggleFlag(boolean flag) {
-  // if (flag) {
-  // this.id = this.id | IS_FLUSH_BUFFER_TOGGLE_BIT;// set the toggle flag bit
-  // //Assert.assertTrue(getFlushBufferToggleFlag());
-  // }
-  // else {
-  // this.id = this.id & 0x5FFFFFFF;// reset the toggle flag bit
-  // //Assert.assertTrue(!getFlushBufferToggleFlag());
-  // }
-
-  // }
-
-  // /**
-  // * @return Returns the flush buffer toggle flag.
-  // */
-  // boolean getFlushBufferToggleFlag() {
-  // return (this.id & IS_FLUSH_BUFFER_TOGGLE_BIT) != 0; //return true if toggle
-  // // flag bit is 1 else
-  // // return false.
-  // //return this.flushBufferToggleFlag;
-  // }
-
   /**
    * @return Returns the userBits.
    */
-  synchronized byte getUserBits() {
+  public synchronized byte getUserBits() {
     return (byte) (this.id >> USER_BITS_SHIFT); // shift to right to get the user bits
   }
 
   /**
    * @param userBits The userBit to set.
    */
-  synchronized void setUserBits(byte userBits) {
+  public synchronized void setUserBits(byte userBits) {
     long userLong = ((long) userBits) << USER_BITS_SHIFT;// set it as most signifcant byte.
 
     this.id &= OPLOG_ID_MASK; // mask the most significant byte in id.
@@ -198,14 +169,14 @@ public abstract class DiskId {
   /**
    * @return Returns the valueLength.
    */
-  int getValueLength() {
+  public int getValueLength() {
     return valueLength & 0x7fffffff;
   }
 
   /**
    * @param valueLength The valueLength to set.
    */
-  void setValueLength(int valueLength) {
+  public void setValueLength(int valueLength) {
     if (valueLength < 0) {
       throw new IllegalStateException(
           "Expected DiskId valueLength " + valueLength + " to be >= 0.");
@@ -234,7 +205,7 @@ public abstract class DiskId {
     /*
      * StringBuffer temp = new StringBuffer("Oplog Key ID = "); temp.append(this.keyId);
      */
-    StringBuffer temp = new StringBuffer("Oplog ID = ");
+    StringBuilder temp = new StringBuilder("Oplog ID = ");
     temp.append(this.getOplogId());
     temp.append("; Offset in Oplog = ");
     temp.append(getOffsetInOplog());
@@ -250,10 +221,9 @@ public abstract class DiskId {
    * maxOplogSize (in bytes) is greater than Integer.MAX_VALUE, LongOplogOffsetDiskId will be
    * created and for maxOplogSize lesser than that, IntOplogOffsetDiskId will be created.
    * 
-   * @param maxOplogSize
    * @return the disk-id instance created.
    */
-  static DiskId createDiskId(long maxOplogSize, boolean isPersistenceType,
+  public static DiskId createDiskId(long maxOplogSize, boolean isPersistenceType,
       boolean needsLinkedList) {
     long bytes = maxOplogSize * 1024 * 1024;
     if (bytes > Integer.MAX_VALUE) {
@@ -332,7 +302,7 @@ public abstract class DiskId {
    * 
    * 
    */
-  protected static abstract class IntOplogOffsetDiskId extends DiskId {
+  protected abstract static class IntOplogOffsetDiskId extends DiskId {
     /**
      * The position in the oplog (the oplog offset) where this entry's value is stored
      */
@@ -342,7 +312,7 @@ public abstract class DiskId {
      * @return the offset in oplog where the entry is stored (returned as long)
      */
     @Override
-    long getOffsetInOplog() {
+    public long getOffsetInOplog() {
       return offsetInOplog;
     }
 
@@ -352,7 +322,7 @@ public abstract class DiskId {
      * @param offsetInOplog - offset in oplog where the entry is stored.
      */
     @Override
-    void setOffsetInOplog(long offsetInOplog) {
+    public void setOffsetInOplog(long offsetInOplog) {
       this.offsetInOplog = (int) offsetInOplog;
     }
   }
@@ -362,7 +332,7 @@ public abstract class DiskId {
    * 
    * 
    */
-  protected static abstract class LongOplogOffsetDiskId extends DiskId {
+  protected abstract static class LongOplogOffsetDiskId extends DiskId {
     /**
      * The position in the oplog (the oplog offset) where this entry's value is stored
      */
@@ -372,7 +342,7 @@ public abstract class DiskId {
      * @return the offset in oplog where the entry is stored.
      */
     @Override
-    long getOffsetInOplog() {
+    public long getOffsetInOplog() {
       return offsetInOplog;
     }
 
@@ -382,7 +352,7 @@ public abstract class DiskId {
      * @param offsetInOplog - offset in oplog where the entry is stored.
      */
     @Override
-    void setOffsetInOplog(long offsetInOplog) {
+    public void setOffsetInOplog(long offsetInOplog) {
       this.offsetInOplog = offsetInOplog;
     }
   }
@@ -393,35 +363,35 @@ public abstract class DiskId {
     }
 
     @Override
-    long getKeyId() {
+    public long getKeyId() {
       throw new UnsupportedOperationException(
           LocalizedStrings.DiskId_FOR_OVERFLOW_ONLY_MODE_THE_KEYID_SHOULD_NOT_BE_QUERIED
               .toLocalizedString());
     }
 
     @Override
-    void setKeyId(long keyId) {
+    public void setKeyId(long keyId) {
       throw new UnsupportedOperationException(
           LocalizedStrings.DiskId_FOR_OVERFLOW_ONLY_MODE_THE_KEYID_SHOULD_NOT_BE_SET
               .toLocalizedString());
     }
 
     @Override
-    void markForWriting() {
+    public void markForWriting() {
       this.valueLength |= 0x80000000;
     }
 
     @Override
-    void unmarkForWriting() {
+    public void unmarkForWriting() {
       this.valueLength &= 0x7fffffff;
     }
 
     @Override
-    boolean needsToBeWritten() {
+    public boolean needsToBeWritten() {
       return (this.valueLength & 0x80000000) != 0;
     }
   }
-  final protected static class OverflowOnlyWithIntOffset extends OverflowOnlyWithIntOffsetNoLL {
+  protected static final class OverflowOnlyWithIntOffset extends OverflowOnlyWithIntOffsetNoLL {
     /**
      * Used by DiskRegion for compaction
      * 
@@ -462,35 +432,35 @@ public abstract class DiskId {
     }
 
     @Override
-    long getKeyId() {
+    public long getKeyId() {
       throw new UnsupportedOperationException(
           LocalizedStrings.DiskId_FOR_OVERFLOW_ONLY_MODE_THE_KEYID_SHOULD_NOT_BE_QUERIED
               .toLocalizedString());
     }
 
     @Override
-    void setKeyId(long keyId) {
+    public void setKeyId(long keyId) {
       throw new UnsupportedOperationException(
           LocalizedStrings.DiskId_FOR_OVERFLOW_ONLY_MODE_THE_KEYID_SHOULD_NOT_BE_SET
               .toLocalizedString());
     }
 
     @Override
-    void markForWriting() {
+    public void markForWriting() {
       this.valueLength |= 0x80000000;
     }
 
     @Override
-    void unmarkForWriting() {
+    public void unmarkForWriting() {
       this.valueLength &= 0x7fffffff;
     }
 
     @Override
-    boolean needsToBeWritten() {
+    public boolean needsToBeWritten() {
       return (this.valueLength & 0x80000000) != 0;
     }
   }
-  final protected static class OverflowOnlyWithLongOffset extends OverflowOnlyWithLongOffsetNoLL {
+  protected static final class OverflowOnlyWithLongOffset extends OverflowOnlyWithLongOffsetNoLL {
     /**
      * Used by DiskRegion for compaction
      * 
@@ -530,40 +500,40 @@ public abstract class DiskId {
     private long keyId;
 
     @Override
-    long getKeyId() {
+    public long getKeyId() {
       return keyId;
     }
 
     @Override
-    void setKeyId(long keyId) {
+    public void setKeyId(long keyId) {
       this.keyId = keyId;
     }
 
     @Override
-    void markForWriting() {
+    public void markForWriting() {
       throw new IllegalStateException("Should not be used for persistent region");
     }
 
     @Override
-    void unmarkForWriting() {
+    public void unmarkForWriting() {
       // Do nothing
     }
 
     @Override
-    boolean needsToBeWritten() {
+    public boolean needsToBeWritten() {
       return false;
     }
 
     @Override
     public String toString() {
-      StringBuffer temp = new StringBuffer("Oplog Key ID = ");
+      StringBuilder temp = new StringBuilder("Oplog Key ID = ");
       temp.append(this.keyId);
       temp.append("; ");
       temp.append(super.toString());
       return temp.toString();
     }
   }
-  final protected static class PersistenceWithIntOffset extends PersistenceWithIntOffsetNoLL {
+  protected static final class PersistenceWithIntOffset extends PersistenceWithIntOffsetNoLL {
     /**
      * Used by DiskRegion for compaction
      * 
@@ -603,28 +573,28 @@ public abstract class DiskId {
     private long keyId;
 
     @Override
-    long getKeyId() {
+    public long getKeyId() {
       return keyId;
     }
 
     @Override
-    void setKeyId(long keyId) {
+    public void setKeyId(long keyId) {
       this.keyId = keyId;
     }
 
     @Override
-    void markForWriting() {
+    public void markForWriting() {
       throw new IllegalStateException("Should not be used for persistent region");
     }
 
     @Override
-    void unmarkForWriting() {
+    public void unmarkForWriting() {
       // Do nothing
     }
 
     @Override
     public String toString() {
-      StringBuffer temp = new StringBuffer("Oplog Key ID = ");
+      StringBuilder temp = new StringBuilder("Oplog Key ID = ");
       temp.append(this.keyId);
       temp.append("; ");
       temp.append(super.toString());
@@ -633,11 +603,11 @@ public abstract class DiskId {
     }
 
     @Override
-    boolean needsToBeWritten() {
+    public boolean needsToBeWritten() {
       return false;
     }
   }
-  final protected static class PersistenceWithLongOffset extends PersistenceWithLongOffsetNoLL {
+  protected static final class PersistenceWithLongOffset extends PersistenceWithLongOffsetNoLL {
     /**
      * Used by DiskRegion for compaction
      * 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskRegion.java
index 7624399..f37db6b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskRegion.java
@@ -21,7 +21,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.geode.CancelCriterion;
 import org.apache.geode.cache.RegionAttributes;
 import org.apache.geode.compression.Compressor;
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
 import org.apache.geode.internal.cache.DiskInitFile.DiskRegionFlag;
 import org.apache.geode.internal.cache.DiskStoreImpl.AsyncDiskEntry;
 import org.apache.geode.internal.cache.InitialImageOperation.GIIStatus;
@@ -345,7 +346,7 @@ public class DiskRegion extends AbstractDiskRegion {
    *         completed successfully, resulting in the put operation to abort.
    * @throws IllegalArgumentException If <code>id</code> is less than zero
    */
-  void put(DiskEntry entry, LocalRegion region, ValueWrapper value, boolean async)
+  public void put(DiskEntry entry, LocalRegion region, ValueWrapper value, boolean async)
       throws RegionClearedException {
     getDiskStore().put(region, entry, value, async);
   }
@@ -379,7 +380,7 @@ public class DiskRegion extends AbstractDiskRegion {
     return getBytesAndBits(id, true);
   }
 
-  BytesAndBits getBytesAndBits(DiskId id, boolean faultingIn) {
+  public BytesAndBits getBytesAndBits(DiskId id, boolean faultingIn) {
     return getDiskStore().getBytesAndBits(this, id, faultingIn);
   }
 
@@ -417,7 +418,7 @@ public class DiskRegion extends AbstractDiskRegion {
     getDiskStore().remove(region, entry, false, false);
   }
 
-  void remove(LocalRegion region, DiskEntry entry, boolean async, boolean isClear)
+  public void remove(LocalRegion region, DiskEntry entry, boolean async, boolean isClear)
       throws RegionClearedException {
     getDiskStore().remove(region, entry, async, isClear);
   }
@@ -623,13 +624,13 @@ public class DiskRegion extends AbstractDiskRegion {
     return result;
   }
 
-  void removeClearCountReference() {
+  public void removeClearCountReference() {
     // releaseReadLock();
     // TODO: After Java 1.5 transition use .remove
     childReference.set(null);
   }
 
-  void setClearCountReference() {
+  public void setClearCountReference() {
     // acquireReadLock();
     if (LocalRegion.ISSUE_CALLBACKS_TO_CACHE_OBSERVER) {
       CacheObserverHolder.getInstance().beforeSettingDiskRef();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index ac285fe..6059b1c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -15,6 +15,7 @@
 package org.apache.geode.internal.cache;
 
 import static org.apache.geode.distributed.ConfigurationProperties.*;
+import static org.apache.geode.internal.cache.entries.DiskEntry.Helper.readRawValue;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -78,8 +79,9 @@ import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.i18n.StringId;
 import org.apache.geode.internal.Version;
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
-import org.apache.geode.internal.cache.DiskEntry.RecoveredEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry.RecoveredEntry;
 import org.apache.geode.internal.cache.ExportDiskRegion.ExportWriter;
 import org.apache.geode.internal.cache.lru.LRUAlgorithm;
 import org.apache.geode.internal.cache.lru.LRUStatistics;
@@ -748,7 +750,7 @@ public class DiskStoreImpl implements DiskStore {
     }
   }
 
-  void putVersionTagOnly(LocalRegion region, VersionTag tag, boolean async) {
+  public void putVersionTagOnly(LocalRegion region, VersionTag tag, boolean async) {
     DiskRegion dr = region.getDiskRegion();
     // this method will only be called by backup oplog
     assert dr.isBackup();
@@ -881,7 +883,7 @@ public class DiskStoreImpl implements DiskStore {
     } else if (EntryBits.isTombstone(bb.getBits())) {
       value = Token.TOMBSTONE;
     } else {
-      value = DiskEntry.Helper.readRawValue(bytes, bb.getVersion(), null);
+      value = readRawValue(bytes, bb.getVersion(), null);
     }
     return value;
   }
@@ -903,7 +905,7 @@ public class DiskStoreImpl implements DiskStore {
     } else if (EntryBits.isTombstone(bb.getBits())) {
       value = Token.TOMBSTONE;
     } else {
-      value = DiskEntry.Helper.readRawValue(bytes, bb.getVersion(), null);
+      value = readRawValue(bytes, bb.getVersion(), null);
     }
     return value;
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
index 7111c83..c2fdb9b 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java
@@ -2356,7 +2356,7 @@ public class DistributedRegion extends LocalRegion implements InternalDistribute
    * @return true if cacheWrite was performed
    */
   @Override
-  boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
+  public boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
       throws CacheWriterException, EntryNotFoundException, TimeoutException {
 
     boolean result = false;
@@ -2874,7 +2874,7 @@ public class DistributedRegion extends LocalRegion implements InternalDistribute
 
     DiskPosition() {}
 
-    void setPosition(long oplogId, long offset) {
+    public void setPosition(long oplogId, long offset) {
       this.oplogId = oplogId;
       this.offset = offset;
     }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/EntriesSet.java b/geode-core/src/main/java/org/apache/geode/internal/cache/EntriesSet.java
index 6d26c08..d0a873f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/EntriesSet.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/EntriesSet.java
@@ -24,9 +24,9 @@ import java.util.NoSuchElementException;
 
 import org.apache.geode.cache.EntryDestroyedException;
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.query.internal.QueryExecutionContext;
 import org.apache.geode.internal.cache.LocalRegion.IteratorType;
 import org.apache.geode.internal.cache.LocalRegion.NonTXEntry;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 
 /** Set view of entries */
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
index 69684a3..e11b50d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java
@@ -51,6 +51,7 @@ import org.apache.geode.internal.InternalDataSerializer;
 import org.apache.geode.internal.Sendable;
 import org.apache.geode.internal.Version;
 import org.apache.geode.internal.cache.FilterRoutingInfo.FilterInfo;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.cache.lru.Sizeable;
 import org.apache.geode.internal.cache.partitioned.PartitionMessage;
 import org.apache.geode.internal.cache.partitioned.PutMessage;
@@ -2291,7 +2292,7 @@ public class EntryEventImpl
    * 
    * @param notifyGateways pass the event on to WAN queues
    */
-  void invokeCallbacks(LocalRegion rgn, boolean skipListeners, boolean notifyGateways) {
+  public void invokeCallbacks(LocalRegion rgn, boolean skipListeners, boolean notifyGateways) {
     if (!callbacksInvoked()) {
       callbacksInvoked(true);
       if (this.op.isUpdate()) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/ExportDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/ExportDiskRegion.java
index 3228d0f..a77c4fe 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/ExportDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/ExportDiskRegion.java
@@ -20,7 +20,8 @@ import java.util.Map;
 
 import org.apache.geode.cache.DiskAccessException;
 import org.apache.geode.internal.Assert;
-import org.apache.geode.internal.cache.DiskEntry.RecoveredEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.RecoveredEntry;
 import org.apache.geode.internal.cache.persistence.DiskRegionView;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
index 38a76de..02a3650 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java
@@ -17,7 +17,6 @@ package org.apache.geode.internal.cache;
 
 import org.apache.geode.*;
 import org.apache.geode.cache.DiskAccessException;
-import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.RegionDestroyedException;
 import org.apache.geode.cache.query.internal.CqStateImpl;
 import org.apache.geode.cache.query.internal.DefaultQueryService;
@@ -29,6 +28,7 @@ import org.apache.geode.distributed.internal.*;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.*;
 import org.apache.geode.internal.cache.InitialImageFlowControl.FlowControlPermitMessage;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.ha.HAContainerWrapper;
 import org.apache.geode.internal.cache.persistence.DiskStoreID;
 import org.apache.geode.internal.cache.persistence.PersistenceAdvisor;
@@ -44,7 +44,6 @@ import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.logging.LoggingThreadGroup;
 import org.apache.geode.internal.logging.log4j.LocalizedMessage;
 import org.apache.geode.internal.logging.log4j.LogMarker;
-import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.sequencelog.EntryLogger;
 import org.apache.geode.internal.sequencelog.RegionLogger;
 import org.apache.geode.internal.util.ObjectIntProcedure;
@@ -2906,7 +2905,7 @@ public class InitialImageOperation {
     private VersionTag versionTag;
 
     /** Given local milliseconds, store as cache milliseconds */
-    void setLastModified(DM dm, long localMillis) {
+    public void setLastModified(DM dm, long localMillis) {
       this.lastModified = localMillis;
     }
 
@@ -2919,7 +2918,7 @@ public class InitialImageOperation {
       return EntryBits.isSerialized(this.entryBits);
     }
 
-    void setSerialized(boolean isSerialized) {
+    public void setSerialized(boolean isSerialized) {
       this.entryBits = EntryBits.setSerialized(this.entryBits, isSerialized);
     }
 
@@ -2927,7 +2926,7 @@ public class InitialImageOperation {
       return (this.value == null) && !EntryBits.isLocalInvalid(this.entryBits);
     }
 
-    void setInvalid() {
+    public void setInvalid() {
       this.entryBits = EntryBits.setLocalInvalid(this.entryBits, false);
       this.value = null;
     }
@@ -2936,12 +2935,12 @@ public class InitialImageOperation {
       return EntryBits.isLocalInvalid(this.entryBits);
     }
 
-    void setLocalInvalid() {
+    public void setLocalInvalid() {
       this.entryBits = EntryBits.setLocalInvalid(this.entryBits, true);
       this.value = null;
     }
 
-    void setTombstone() {
+    public void setTombstone() {
       this.entryBits = EntryBits.setTombstone(this.entryBits, true);
     }
 
@@ -3019,6 +3018,14 @@ public class InitialImageOperation {
     public Version[] getSerializationVersions() {
       return null;
     }
+
+    public Object getValue() {
+      return value;
+    }
+
+    public void setValue(Object value) {
+      this.value = value;
+    }
   }
 
   /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
index 6859b18..7df7da2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java
@@ -168,6 +168,7 @@ import org.apache.geode.internal.cache.control.InternalResourceManager.ResourceT
 import org.apache.geode.internal.cache.control.MemoryEvent;
 import org.apache.geode.internal.cache.control.MemoryThresholds;
 import org.apache.geode.internal.cache.control.ResourceListener;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.event.EventTracker;
 import org.apache.geode.internal.cache.event.NonDistributedEventTracker;
 import org.apache.geode.internal.cache.execute.DistributedRegionFunctionExecutor;
@@ -1796,7 +1797,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
    * {@link #isDestroyed()} this method will not return true if the cache is closing but has not yet
    * started closing this region.
    */
-  boolean isThisRegionBeingClosedOrDestroyed() {
+  public boolean isThisRegionBeingClosedOrDestroyed() {
     return this.isDestroyed;
   }
 
@@ -2899,7 +2900,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
    * @return true if cacheWrite was performed
    * @see DistributedRegion#cacheWriteBeforeDestroy(EntryEventImpl, Object)
    */
-  boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
+  public boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
       throws CacheWriterException, EntryNotFoundException, TimeoutException {
     boolean result = false;
     // copy into local var to prevent race condition
@@ -3190,7 +3191,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
   }
 
   /** regions track the number of tombstones their map holds for size calculations */
-  void incTombstoneCount(int delta) {
+  public void incTombstoneCount(int delta) {
     this.tombstoneCount.addAndGet(delta);
     this.cachePerfStats.incTombstoneCount(delta);
 
@@ -3203,7 +3204,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
     return this.tombstoneCount.get();
   }
 
-  void scheduleTombstone(RegionEntry entry, VersionTag destroyedVersion) {
+  public void scheduleTombstone(RegionEntry entry, VersionTag destroyedVersion) {
     scheduleTombstone(entry, destroyedVersion, false);
   }
 
@@ -3236,7 +3237,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
     scheduleTombstone(entry, version, true);
   }
 
-  void unscheduleTombstone(RegionEntry entry) {
+  public void unscheduleTombstone(RegionEntry entry) {
     unscheduleTombstone(entry, true);
   }
 
@@ -5929,7 +5930,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
   /**
    * generate version tag if it does not exist and set it into the event.
    */
-  void generateAndSetVersionTag(InternalCacheEvent event, RegionEntry entry) {
+  public void generateAndSetVersionTag(InternalCacheEvent event, RegionEntry entry) {
     if (entry != null && event.getOperation().isEntry()) {
       EntryEventImpl entryEvent = (EntryEventImpl) event;
       if (!entryEvent.isOriginRemote() && shouldGenerateVersionTag(entry, entryEvent)) {
@@ -7064,7 +7065,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
    *
    * @return the actual lastModifiedTime used.
    */
-  long updateStatsForPut(RegionEntry entry, long lastModified, boolean lruRecentUse) {
+  public long updateStatsForPut(RegionEntry entry, long lastModified, boolean lruRecentUse) {
     long lastAccessed = cacheTimeMillis();
     if (lruRecentUse) {
       // fix for bug 31102
@@ -7774,7 +7775,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
     }
   }
 
-  void addExpiryTaskIfAbsent(RegionEntry re) {
+  public void addExpiryTaskIfAbsent(RegionEntry re) {
     addExpiryTask(re, true);
   }
 
@@ -8142,7 +8143,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
   /**
    * get the ImageState for this region
    */
-  ImageState getImageState() {
+  public ImageState getImageState() {
     return this.imageState;
   }
 
@@ -10224,7 +10225,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
   /**
    * @return Returns the isUsedForPartitionedRegionAdmin.
    */
-  boolean isUsedForPartitionedRegionAdmin() {
+  public boolean isUsedForPartitionedRegionAdmin() {
     return this.isUsedForPartitionedRegionAdmin;
   }
 
@@ -10696,7 +10697,7 @@ public class LocalRegion extends AbstractRegion implements InternalRegion, Loade
   }
 
   // TODO: return value is never used
-  int updateSizeOnEvict(Object key, int oldSize) {
+  public int updateSizeOnEvict(Object key, int oldSize) {
     // Only needed by BucketRegion
     return 0;
   }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegionDataView.java b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegionDataView.java
index 8db979b..90289b0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegionDataView.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegionDataView.java
@@ -21,6 +21,7 @@ import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.Region.Entry;
 import org.apache.geode.cache.UnsupportedOperationInTransactionException;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
 import org.apache.geode.internal.cache.tier.sockets.VersionedObjectList;
 import org.apache.geode.internal.cache.versions.ConcurrentCacheModificationException;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/NonLocalRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/NonLocalRegionEntry.java
index 4709b7b..ba14606 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/NonLocalRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/NonLocalRegionEntry.java
@@ -31,7 +31,17 @@ import org.apache.geode.distributed.internal.membership.InternalDistributedMembe
 import org.apache.geode.internal.Assert;
 import org.apache.geode.internal.ByteArrayDataInput;
 import org.apache.geode.internal.Version;
+import org.apache.geode.internal.cache.CachedDeserializable;
+import org.apache.geode.internal.cache.CachedDeserializableFactory;
+import org.apache.geode.internal.cache.DistributedRegion;
+import org.apache.geode.internal.cache.EntryEventImpl;
+import org.apache.geode.internal.cache.EntrySnapshot;
 import org.apache.geode.internal.cache.InitialImageOperation.Entry;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionClearedException;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
@@ -213,7 +223,7 @@ public class NonLocalRegionEntry implements RegionEntry, VersionStamp {
   }
 
   /** update the value held in this non-local region entry */
-  void setCachedValue(Object newValue) {
+  public void setCachedValue(Object newValue) {
     this.value = newValue;
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java
index bece112..b0a1ea2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/OfflineCompactionDiskRegion.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache;
 
 import org.apache.geode.CancelCriterion;
 import org.apache.geode.cache.DiskAccessException;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.persistence.DiskExceptionHandler;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.cache.persistence.DiskRegionView;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/Oplog.java b/geode-core/src/main/java/org/apache/geode/internal/cache/Oplog.java
index 8975982..bf047e0 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/Oplog.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/Oplog.java
@@ -80,8 +80,9 @@ import org.apache.geode.internal.InternalDataSerializer;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.Sendable;
 import org.apache.geode.internal.Version;
-import org.apache.geode.internal.cache.DiskEntry.Helper.Flushable;
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.Flushable;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
 import org.apache.geode.internal.cache.DiskInitFile.DiskRegionFlag;
 import org.apache.geode.internal.cache.DiskStoreImpl.OplogCompactor;
 import org.apache.geode.internal.cache.DiskStoreImpl.OplogEntryIdSet;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/OplogSet.java b/geode-core/src/main/java/org/apache/geode/internal/cache/OplogSet.java
index 73c2677..5af1b93 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/OplogSet.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/OplogSet.java
@@ -14,7 +14,8 @@
  */
 package org.apache.geode.internal.cache;
 
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
 
 public interface OplogSet {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplog.java b/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplog.java
index 6098d4b..1104eb8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplog.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplog.java
@@ -32,8 +32,9 @@ import org.apache.geode.cache.DiskAccessException;
 import org.apache.geode.cache.EntryDestroyedException;
 import org.apache.geode.distributed.OplogCancelledException;
 import org.apache.geode.internal.Assert;
-import org.apache.geode.internal.cache.DiskEntry.Helper.Flushable;
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.Flushable;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
 import org.apache.geode.internal.cache.DiskStoreImpl.OplogCompactor;
 import org.apache.geode.internal.cache.Oplog.OplogDiskEntry;
 import org.apache.geode.internal.cache.persistence.BytesAndBits;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplogSet.java b/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplogSet.java
index 4074221..e91ed5a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplogSet.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/OverflowOplogSet.java
@@ -28,7 +28,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.cache.DiskAccessException;
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.LogService;
 import org.apache.geode.internal.logging.log4j.LocalizedMessage;
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 cc36617..dcb31b4 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
@@ -7794,7 +7794,7 @@ public class PartitionedRegion extends LocalRegion
    * @see BucketRegion#cacheWriteBeforeDestroy(EntryEventImpl, Object)
    */
   @Override
-  boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
+  public boolean cacheWriteBeforeDestroy(EntryEventImpl event, Object expectedOldValue)
       throws CacheWriterException, EntryNotFoundException, TimeoutException {
     // return if notifications are inhibited
     if (event.inhibitAllNotifications()) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PersistentOplogSet.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PersistentOplogSet.java
index c37eaa7..8de7caa 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PersistentOplogSet.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PersistentOplogSet.java
@@ -16,7 +16,8 @@ package org.apache.geode.internal.cache;
 
 import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
 import org.apache.geode.cache.DiskAccessException;
-import org.apache.geode.internal.cache.DiskEntry.Helper.ValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.ValueWrapper;
 import org.apache.geode.internal.cache.DiskStoreImpl.OplogEntryIdSet;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.cache.persistence.DiskRegionView;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PlaceHolderDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PlaceHolderDiskRegion.java
index a06c437..2f1db58 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PlaceHolderDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PlaceHolderDiskRegion.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache;
 import org.apache.geode.CancelCriterion;
 import org.apache.geode.InternalGemFireError;
 import org.apache.geode.cache.DiskAccessException;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.lru.LRUStatistics;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.cache.persistence.DiskRegionView;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/ProxyRegionMap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/ProxyRegionMap.java
index 70f2f7c..32de672 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/ProxyRegionMap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/ProxyRegionMap.java
@@ -35,6 +35,7 @@ import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.Version;
 import org.apache.geode.internal.cache.AbstractRegionMap.ARMLockTestHook;
 import org.apache.geode.internal.cache.InitialImageOperation.Entry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.lru.LRUEntry;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.cache.persistence.DiskRegionView;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEntry.java
index 785defa..3bf0bc0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionEntry.java
@@ -41,30 +41,20 @@ import org.apache.geode.internal.offheap.annotations.Unretained;
  * which has its own entry class. The "value" field of each of these entries will implement this
  * interface.
  *
- * @since GemFire 3.5.1
- *
- * 
- *        Implementations: (unshared) ThinEntry protected volatile long lastModified; StatsEntry
- *        extends ThinEntry private volatile long lastAccessed; private volatile int hitCount;
- *        private volatile int missCount; DiskThinEntry extends ThinEntry private volatile long id;
- *        DiskStatsEntry extends StatsEntry private volatile long id; ThinLRUEntry extends ThinEntry
- *        int bitField1; LRUClockNode nextLRU; int size; StatsLRUEntry extends StatsEntry int
- *        bitField1; LRUClockNode nextLRU; int size; DiskThinLRUEntry extends ThinLRUEntry private
- *        volatile long id; DiskStatsLRUEntry extends StatsLRUEntry private volatile long id;
+ * <p>
+ * Our RegionEntry does not need to keep a reference to the key. It is being referenced by the
+ * Map.Entry whose value field references this RegionEntry.
  *
+ * @since GemFire 3.5.1
  */
 public interface RegionEntry {
-  // Our RegionEntry does not need to keep a reference to the key.
-  // It is being referenced by the Map.Entry whose value field
-  // references this RegionEntry.
-  // Object getKey();
 
   /**
    * returns the time of last modification. Prior to v7.0 this only reflected creation time of an
    * entry or the time it was last modified with an Update. In 7.0 and later releases it also
    * reflects invalidate and destroy.
    */
-  public long getLastModified();
+  long getLastModified();
 
   /**
    * Returns true if getLastAccessed, getHitCount, and getMissCount can be called without throwing
@@ -72,27 +62,27 @@ public interface RegionEntry {
    * 
    * @since GemFire 6.0
    */
-  public boolean hasStats();
+  boolean hasStats();
 
-  public long getLastAccessed() throws InternalStatisticsDisabledException;
+  long getLastAccessed() throws InternalStatisticsDisabledException;
 
   /**
    * Sets the entry's last accessed time if it has one.
    */
-  public default void setLastAccessed(long lastAccessed) {
+  default void setLastAccessed(long lastAccessed) {
     // do nothing by default
   }
 
-  public long getHitCount() throws InternalStatisticsDisabledException;
+  long getHitCount() throws InternalStatisticsDisabledException;
 
-  public long getMissCount() throws InternalStatisticsDisabledException;
+  long getMissCount() throws InternalStatisticsDisabledException;
 
-  public void updateStatsForPut(long lastModifiedTime, long lastAccessedTime);
+  void updateStatsForPut(long lastModifiedTime, long lastAccessedTime);
 
   /**
    * @return the version information for this entry
    */
-  public VersionStamp getVersionStamp();
+  VersionStamp getVersionStamp();
 
   /**
    * @param member the member performing the change, or null if it's this member
@@ -101,7 +91,7 @@ public interface RegionEntry {
    * @param event the event causing this change
    * @return a new version tag for this entry (null if versions not supported)
    */
-  public VersionTag generateVersionTag(VersionSource member, boolean withDelta, LocalRegion region,
+  VersionTag generateVersionTag(VersionSource member, boolean withDelta, LocalRegion region,
       EntryEventImpl event);
 
   /**
@@ -111,32 +101,31 @@ public interface RegionEntry {
    * 
    * This is done within the RegionEntry synchronization lock.
    */
-  public boolean dispatchListenerEvents(EntryEventImpl event) throws InterruptedException;
+  boolean dispatchListenerEvents(EntryEventImpl event) throws InterruptedException;
 
   /**
    * Used to mark an LRU entry as having been recently used.
    */
-  public void setRecentlyUsed();
+  void setRecentlyUsed();
 
-  public void updateStatsForGet(boolean hit, long time);
+  void updateStatsForGet(boolean hit, long time);
 
   /**
    * Resets any entry state as needed for a transaction that did a destroy to this entry.
    * 
    * @param currTime Current Cache Time.
    */
-  public void txDidDestroy(long currTime);
+  void txDidDestroy(long currTime);
 
-  public void resetCounts() throws InternalStatisticsDisabledException;
+  void resetCounts() throws InternalStatisticsDisabledException;
 
   /**
    * this is done instead of removePhase2 if the entry needs to be kept for concurrency control
    * 
    * @param r the region holding the entry
    * @param version whether the operation is from another member or local
-   * @throws RegionClearedException
    */
-  public void makeTombstone(LocalRegion r, VersionTag version) throws RegionClearedException;
+  void makeTombstone(LocalRegion r, VersionTag version) throws RegionClearedException;
 
   /**
    * Mark this entry as being in the process of removal from the map that contains it by setting its
@@ -148,81 +137,80 @@ public interface RegionEntry {
    * @throws RegionClearedException If operation got aborted due to a clear
    * 
    */
-  public void removePhase1(LocalRegion r, boolean clear) throws RegionClearedException;
+  void removePhase1(LocalRegion r, boolean clear) throws RegionClearedException;
 
   /**
    * Mark this entry as having been removed from the map that contained it by setting its value to
    * Token.REMOVED_PHASE2
    */
-  public void removePhase2();
+  void removePhase2();
 
   /**
    * Returns true if this entry does not exist. This is true if removal has started (value ==
    * Token.REMOVED_PHASE1) or has completed (value == Token.REMOVED_PHASE2).
    */
-  public boolean isRemoved();
+  boolean isRemoved();
 
   /**
    * Returns true if this entry does not exist and will not be resurrected (value ==
    * Token.REMOVED_PHASE2)
    */
-  public boolean isRemovedPhase2();
+  boolean isRemovedPhase2();
 
   /**
    * Returns true if this entry is a tombstone, meaning that it has been removed but is being
    * retained for concurrent modification detection. Tombstones may be resurrected just like an
    * entry that is in REMOVED_PHASE1 state.
    */
-  public boolean isTombstone();
+  boolean isTombstone();
 
   /**
    * Fill in value, and isSerialized fields in this entry object (used for getInitialImage and sync
    * recovered) Also sets the lastModified time in cacheTime. Only called for DistributedRegions.
+   *
    * <p>
-   * 
    * This method returns tombstones so that they can be transferred with the initial image.
    *
+   * @return false if map entry not found
+   *
    * @see InitialImageOperation.RequestImageMessage#chunkEntries
    *
-   * @return false if map entry not found
    * @since GemFire 3.2.1
    */
-  public boolean fillInValue(LocalRegion r,
-      @Retained(ABSTRACT_REGION_ENTRY_FILL_IN_VALUE) Entry entry, ByteArrayDataInput in, DM mgr,
-      final Version version);
+  boolean fillInValue(LocalRegion r, @Retained(ABSTRACT_REGION_ENTRY_FILL_IN_VALUE) Entry entry,
+      ByteArrayDataInput in, DM mgr, final Version version);
 
   /**
    * Returns true if this entry has overflowed to disk.
    * 
    * @param dp if overflowed then the position of the value is set in dp
    */
-  public boolean isOverflowedToDisk(LocalRegion r, DistributedRegion.DiskPosition dp);
+  boolean isOverflowedToDisk(LocalRegion r, DistributedRegion.DiskPosition dp);
 
   /**
    * Gets the key for this entry.
    */
-  public Object getKey();
+  Object getKey();
 
   /**
    * Gets the value for this entry. For DiskRegions, faults in value and returns it
    */
-  public Object getValue(RegionEntryContext context);
+  Object getValue(RegionEntryContext context);
 
   /**
    * Just like getValue but the result may be a retained off-heap reference.
    */
   @Retained
-  public Object getValueRetain(RegionEntryContext context);
+  Object getValueRetain(RegionEntryContext context);
 
   @Released
-  public void setValue(RegionEntryContext context, @Unretained Object value)
-      throws RegionClearedException;
+  void setValue(RegionEntryContext context, @Unretained Object value) throws RegionClearedException;
 
   /**
    * This flavor of setValue was added so that the event could be passed down to Helper.writeToDisk.
    * The event can be used to cache the serialized form of the value we are writing. See bug 43781.
    */
-  public void setValue(RegionEntryContext context, Object value, EntryEventImpl event)
+  void setValue(RegionEntryContext context, Object value, EntryEventImpl event)
       throws RegionClearedException;
 
   /**
@@ -237,18 +225,18 @@ public interface RegionEntry {
    * @return possible OFF_HEAP_OBJECT (caller must release)
    */
   @Retained
-  public Object _getValueRetain(RegionEntryContext context, boolean decompress);
+  Object _getValueRetain(RegionEntryContext context, boolean decompress);
 
   /** Gets the value field of this entry. */
 
   @Unretained
-  public Object _getValue();
+  Object _getValue();
 
   /**
    * Returns a tokenized form of the value. If the value can not be represented as a token then
    * Token.NOT_A_TOKEN is returned.
    */
-  public Token getValueAsToken();
+  Token getValueAsToken();
 
   /**
    * Set the value of this entry and perform checks to see if a GC task needs to be scheduled.
@@ -257,7 +245,7 @@ public interface RegionEntry {
    * @param event the cache event that caused this change
    * @throws RegionClearedException thrown if the region is concurrently cleared
    */
-  public void setValueWithTombstoneCheck(@Unretained Object value, EntryEvent event)
+  void setValueWithTombstoneCheck(@Unretained Object value, EntryEvent event)
       throws RegionClearedException;
 
   /**
@@ -267,7 +255,7 @@ public interface RegionEntry {
    * @since GemFire 8.0
    */
   @Retained
-  public Object getTransformedValue();
+  Object getTransformedValue();
 
   /**
    * Returns the value of an entry as it resides in the VM.
@@ -277,14 +265,14 @@ public interface RegionEntry {
    *
    * @see LocalRegion#getValueInVM
    */
-  public Object getValueInVM(RegionEntryContext context);
+  Object getValueInVM(RegionEntryContext context);
 
   /**
    * Returns the value of an entry as it resides on disk. For testing purposes only.
    *
    * @see LocalRegion#getValueOnDisk
    */
-  public Object getValueOnDisk(LocalRegion r) throws EntryNotFoundException;
+  Object getValueOnDisk(LocalRegion r) throws EntryNotFoundException;
 
   /**
    * Returns the value of an entry as it resides on buffer or disk. For asynch mode a value is not
@@ -294,7 +282,7 @@ public interface RegionEntry {
    * @see LocalRegion#getValueOnDisk
    */
 
-  public Object getValueOnDiskOrBuffer(LocalRegion r) throws EntryNotFoundException;
+  Object getValueOnDiskOrBuffer(LocalRegion r) throws EntryNotFoundException;
 
 
 
@@ -302,21 +290,31 @@ public interface RegionEntry {
    * Used to modify an existing RegionEntry when processing the values obtained during a
    * getInitialImage.
    */
-  public boolean initialImagePut(LocalRegion region, long lastModified, Object newValue,
+  boolean initialImagePut(LocalRegion region, long lastModified, Object newValue,
       boolean wasRecovered, boolean acceptedVersionTag) throws RegionClearedException;
 
   /**
    * Used to initialize a created RegionEntry when processing the values obtained during a
-   * getInitialImage. // put if LOCAL_INVALID and nonexistant // put if INVALID and nonexistant,
-   * recovered, or LOCAL_INVALID // put if valid and nonexistant, recovered, or LOCAL_INVALID // //
-   * REGION_INVALIDATED: (special case) // If the region itself has been invalidated since
-   * getInitialImage // started, and newValue is LOCAL_INVALID or valid, // then force creation of
-   * INVALID key if currently nonexistant // or invalidate if current recovered. // // must
-   * write-synchronize to protect agains puts from other // threads running this method
-   */
-  public boolean initialImageInit(LocalRegion region, long lastModified, Object newValue,
-      boolean create, boolean wasRecovered, boolean acceptedVersionTag)
-      throws RegionClearedException;
+   * getInitialImage.
+   *
+   * <p>
+   * put if LOCAL_INVALID and nonexistant<br>
+   * put if INVALID and nonexistant, recovered, or LOCAL_INVALID<br>
+   * put if valid and nonexistant, recovered, or LOCAL_INVALID
+   *
+   * <p>
+   * REGION_INVALIDATED: (special case)<br>
+   * If the region itself has been invalidated since getInitialImage<br>
+   * started, and newValue is LOCAL_INVALID or valid,<br>
+   * then force creation of INVALID key if currently nonexistent<br>
+   * or invalidate if current recovered.<br>
+   *
+   * <p>
+   * must write-synchronize to protect against puts from other<br>
+   * threads running this method
+   */
+  boolean initialImageInit(LocalRegion region, long lastModified, Object newValue, boolean create,
+      boolean wasRecovered, boolean acceptedVersionTag) throws RegionClearedException;
 
   /**
    * @param expectedOldValue only succeed with destroy if current value is equal to expectedOldValue
@@ -325,22 +323,21 @@ public interface RegionEntry {
    * @return true if destroy was done; false if not
    */
   @Released
-  public boolean destroy(LocalRegion region, EntryEventImpl event, boolean inTokenMode,
-      boolean cacheWrite, @Unretained Object expectedOldValue, boolean forceDestroy,
-      boolean removeRecoveredEntry)
+  boolean destroy(LocalRegion region, EntryEventImpl event, boolean inTokenMode, boolean cacheWrite,
+      @Unretained Object expectedOldValue, boolean forceDestroy, boolean removeRecoveredEntry)
       throws CacheWriterException, EntryNotFoundException, TimeoutException, RegionClearedException;
 
   /**
    * @return true if entry's value came from a netsearch
    * @since GemFire 6.5
    */
-  public boolean getValueWasResultOfSearch();
+  boolean getValueWasResultOfSearch();
 
   /**
    * @param v true if entry's value should be marked as having been the result of a netsearch.
    * @since GemFire 6.5
    */
-  public void setValueResultOfSearch(boolean v);
+  void setValueResultOfSearch(boolean v);
 
   /**
    * Get the serialized bytes from disk. This method only looks for the value on the disk, ignoring
@@ -350,13 +347,13 @@ public interface RegionEntry {
    * @return the serialized value from disk
    * @since GemFire 5.7
    */
-  public Object getSerializedValueOnDisk(LocalRegion localRegion);
+  Object getSerializedValueOnDisk(LocalRegion localRegion);
 
   /**
    * Gets the value for this entry. For DiskRegions, unlike {@link #getValue(RegionEntryContext)}
    * this will not fault in the value rather return a temporary copy.
    */
-  public Object getValueInVMOrDiskWithoutFaultIn(LocalRegion owner);
+  Object getValueInVMOrDiskWithoutFaultIn(LocalRegion owner);
 
   /**
    * Gets the value for this entry. For DiskRegions, unlike {@link #getValue(RegionEntryContext)}
@@ -364,7 +361,7 @@ public interface RegionEntry {
    * kept off heap (and compressed) if possible.
    */
   @Retained
-  public Object getValueOffHeapOrDiskWithoutFaultIn(LocalRegion owner);
+  Object getValueOffHeapOrDiskWithoutFaultIn(LocalRegion owner);
 
   /**
    * RegionEntry is underUpdate as soon as RegionEntry lock is help by an update thread to put a new
@@ -373,15 +370,13 @@ public interface RegionEntry {
    *
    * @return true if RegionEntry is under update during cache put operation.
    */
-  public boolean isUpdateInProgress();
+  boolean isUpdateInProgress();
 
   /**
    * Sets RegionEntry updateInProgress flag when put is happening for an existing Region.Entry.
    * Called ONLY in {@link AbstractRegionMap}.
-   *
-   * @param underUpdate
    */
-  public void setUpdateInProgress(final boolean underUpdate);
+  void setUpdateInProgress(final boolean underUpdate);
 
   /**
    * Event containing this RegionEntry is being passed through dispatchListenerEvent for
@@ -390,82 +385,80 @@ public interface RegionEntry {
    * 
    * @return true if Event is being dispatched to CacheListeners.
    */
-  public boolean isCacheListenerInvocationInProgress();
+  boolean isCacheListenerInvocationInProgress();
 
   /**
    * Sets RegionEntry isCacheListenerInvoked flag when put is happening for a Region.Entry. Called
    * ONLY in {@link LocalRegion#dispatchListenerEvent}.
-   * 
-   * @param isListenerInvoked
    */
-  public void setCacheListenerInvocationInProgress(final boolean isListenerInvoked);
+  void setCacheListenerInvocationInProgress(final boolean isListenerInvoked);
 
   /**
    * Returns true if the entry value is null.
    */
-  public boolean isValueNull();
+  boolean isValueNull();
 
   /**
    * Returns true if the entry value is equal to {@link Token#INVALID} or
    * {@link Token#LOCAL_INVALID}.
    */
-  public boolean isInvalid();
+  boolean isInvalid();
 
   /**
    * Returns true if the entry value is equal to {@link Token#DESTROYED}.
    */
-  public boolean isDestroyed();
+  boolean isDestroyed();
 
   /**
    * Returns true if the entry value is equal to {@link Token#DESTROYED} or
    * {@link Token#REMOVED_PHASE1} or {@link Token#REMOVED_PHASE2} or {@link Token#TOMBSTONE}.
    */
-  public boolean isDestroyedOrRemoved();
+  boolean isDestroyedOrRemoved();
 
   /**
    * Returns true if the entry value is equal to {@link Token#DESTROYED} or
    * {@link Token#REMOVED_PHASE1} or {@link Token#REMOVED_PHASE2}.
    */
-  public boolean isDestroyedOrRemovedButNotTombstone();
+  boolean isDestroyedOrRemovedButNotTombstone();
 
   /**
    * @see Token#isInvalidOrRemoved(Object)
    */
-  public boolean isInvalidOrRemoved();
+  boolean isInvalidOrRemoved();
 
   /**
    * Sets the entry value to null.
    */
-  public void setValueToNull();
+  void setValueToNull();
 
-  public void returnToPool();
+  void returnToPool();
 
-  public boolean isInUseByTransaction();
+  boolean isInUseByTransaction();
 
-  public void setInUseByTransaction(final boolean v);
+  void setInUseByTransaction(final boolean v);
 
   /**
    * Increments the number of transactions that are currently referencing this node.
    */
-  public void incRefCount();
+  void incRefCount();
 
   /**
    * Decrements the number of transactions that are currently referencing this node.
    * 
    * @param lr the local region that owns this region entry; null if no local region owner
    */
-  public void decRefCount(NewLRUClockHand lruList, LocalRegion lr);
+  void decRefCount(NewLRUClockHand lruList, LocalRegion lr);
 
   /**
    * Clear the number of transactions that are currently referencing this node and returns to LRU
    * list
    */
-  public void resetRefCount(NewLRUClockHand lruList);
+  void resetRefCount(NewLRUClockHand lruList);
 
   @Retained(ABSTRACT_REGION_ENTRY_PREPARE_VALUE_FOR_CACHE)
-  public Object prepareValueForCache(RegionEntryContext r, Object val, boolean isEntryUpdate);
+  Object prepareValueForCache(RegionEntryContext r, Object val, boolean isEntryUpdate);
 
   @Retained(ABSTRACT_REGION_ENTRY_PREPARE_VALUE_FOR_CACHE)
-  public Object prepareValueForCache(RegionEntryContext r, Object val, EntryEventImpl event,
+  Object prepareValueForCache(RegionEntryContext r, Object val, EntryEventImpl event,
       boolean isEntryUpdate);
 }
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionMap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionMap.java
index 7ecabd7..d10d3c6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionMap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionMap.java
@@ -26,6 +26,7 @@ import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.TimeoutException;
 import org.apache.geode.cache.TransactionId;
 import org.apache.geode.internal.cache.AbstractRegionMap.ARMLockTestHook;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.lru.LRUMapCallbacks;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
index f35e4ea..88ab5dd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXManagerImpl.java
@@ -58,6 +58,7 @@ import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.distributed.internal.MembershipListener;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.SystemTimer.SystemTimerTask;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.tier.sockets.Message;
 import org.apache.geode.internal.concurrent.ConcurrentHashSet;
 import org.apache.geode.internal.i18n.LocalizedStrings;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java b/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
index 2d109d8..e81efb8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/TXState.java
@@ -52,6 +52,7 @@ import org.apache.geode.distributed.TXManagerCancelledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.Assert;
 import org.apache.geode.internal.cache.control.MemoryThresholds;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.partitioned.PutAllPRMessage;
 import org.apache.geode.internal.cache.partitioned.RemoveAllPRMessage;
 import org.apache.geode.internal.cache.tier.sockets.ClientProxyMembershipID;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java
index 5b36b52..27dd75a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/ValidatingDiskRegion.java
@@ -30,6 +30,7 @@ import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.Version;
 import org.apache.geode.internal.cache.DistributedRegion.DiskPosition;
 import org.apache.geode.internal.cache.InitialImageOperation.Entry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.cache.persistence.DiskExceptionHandler;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractDiskRegionEntry.java
similarity index 83%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractDiskRegionEntry.java
index ea2c148..185d22c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractDiskRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractDiskRegionEntry.java
@@ -12,8 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.BucketRegionQueue;
+import org.apache.geode.internal.cache.EntryEventImpl;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionClearedException;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.wan.GatewaySenderEventImpl;
 import org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractLRURegionEntry.java
similarity index 89%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractLRURegionEntry.java
index 1cf5de2..2e36181 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractLRURegionEntry.java
@@ -13,9 +13,11 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.lru.LRUEntry;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractOplogDiskRegionEntry.java
similarity index 90%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractOplogDiskRegionEntry.java
index 45d1b14..6a70521 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractOplogDiskRegionEntry.java
@@ -12,14 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import org.apache.geode.cache.EntryEvent;
 import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.distributed.internal.DM;
 import org.apache.geode.internal.ByteArrayDataInput;
 import org.apache.geode.internal.Version;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DistributedRegion;
+import org.apache.geode.internal.cache.EntryBits;
 import org.apache.geode.internal.cache.InitialImageOperation.Entry;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionClearedException;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.cache.versions.VersionTag;
 import org.apache.geode.internal.offheap.annotations.Retained;
 
@@ -34,7 +42,7 @@ public abstract class AbstractOplogDiskRegionEntry extends AbstractDiskRegionEnt
     super(context, value);
   }
 
-  abstract void setDiskId(RegionEntry oldRe);
+  public abstract void setDiskId(RegionEntry oldRe);
 
   @Override
   public void removePhase1(LocalRegion r, boolean isClear) throws RegionClearedException {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractRegionEntry.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractRegionEntry.java
index 01f51d7..dfe8148 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/AbstractRegionEntry.java
@@ -12,13 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import static org.apache.geode.internal.offheap.annotations.OffHeapIdentifier.*;
 
 import java.io.IOException;
 import java.util.Arrays;
 
+import org.apache.geode.internal.cache.CachedDeserializable;
+import org.apache.geode.internal.cache.CachedDeserializableFactory;
+import org.apache.geode.internal.cache.DistributedRegion;
+import org.apache.geode.internal.cache.EntryEventImpl;
+import org.apache.geode.internal.cache.FilterProfile;
+import org.apache.geode.internal.cache.GemFireCacheImpl;
+import org.apache.geode.internal.cache.ImageState;
 import org.apache.geode.internal.cache.InitialImageOperation.Entry;
 import org.apache.logging.log4j.Logger;
 
@@ -45,6 +52,17 @@ import org.apache.geode.internal.HeapDataOutputStream;
 import org.apache.geode.internal.InternalDataSerializer;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.Version;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.InternalCacheEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionClearedException;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionQueue;
+import org.apache.geode.internal.cache.TXManagerImpl;
+import org.apache.geode.internal.cache.TimestampedEntryEventImpl;
+import org.apache.geode.internal.cache.Token;
+import org.apache.geode.internal.cache.TombstoneService;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.cache.persistence.DiskStoreID;
@@ -186,7 +204,7 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
    * 
    * @param lastModified the time of last modification of the entry
    */
-  protected void setLastModified(long lastModified) {
+  public void setLastModified(long lastModified) {
     setLastModifiedAndAccessedTimes(lastModified, lastModified);
   }
 
@@ -356,17 +374,17 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
       // don't serialize here if it is not already serialized
       CachedDeserializable cd = (CachedDeserializable) v;
       if (!cd.isSerialized()) {
-        entry.value = cd.getDeserializedForReading();
+        entry.setValue(cd.getDeserializedForReading());
       } else {
         Object tmp = cd.getValue();
         if (tmp instanceof byte[]) {
-          entry.value = tmp;
+          entry.setValue(tmp);
         } else {
           try {
             HeapDataOutputStream hdos = new HeapDataOutputStream(version);
             BlobHelper.serializeTo(tmp, hdos);
             hdos.trim();
-            entry.value = hdos;
+            entry.setValue(hdos);
           } catch (IOException e) {
             throw new IllegalArgumentException(
                 LocalizedStrings.AbstractRegionEntry_AN_IOEXCEPTION_WAS_THROWN_WHILE_SERIALIZING
@@ -377,7 +395,7 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
         entry.setSerialized(true);
       }
     } else if (v instanceof byte[]) {
-      entry.value = v;
+      entry.setValue(v);
     } else {
       Object preparedValue = v;
       if (preparedValue != null) {
@@ -390,7 +408,7 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
         HeapDataOutputStream hdos = new HeapDataOutputStream(version);
         BlobHelper.serializeTo(preparedValue, hdos);
         hdos.trim();
-        entry.value = hdos;
+        entry.setValue(hdos);
         entry.setSerialized(true);
       } catch (IOException e) {
         throw new IllegalArgumentException(
@@ -869,7 +887,7 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
 
       boolean removeEntry = false;
       VersionTag v = event.getVersionTag();
-      if (region.concurrencyChecksEnabled && !removeRecoveredEntry
+      if (region.isConcurrencyChecksEnabled() && !removeRecoveredEntry
           && !event.isFromRILocalDestroy()) {
         // bug #46780, don't retain tombstones for entries destroyed for register-interest
         // Destroy will write a tombstone instead
@@ -908,7 +926,7 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
     }
   }
 
-  static boolean checkExpectedOldValue(@Unretained Object expectedOldValue,
+  public static boolean checkExpectedOldValue(@Unretained Object expectedOldValue,
       @Unretained Object actualValue, LocalRegion lr) {
 
     if (Token.isInvalid(expectedOldValue)) {
@@ -1707,9 +1725,8 @@ public abstract class AbstractRegionEntry implements RegionEntry, HashEntry<Obje
           StringBuilder verbose = null;
           if (logger.isTraceEnabled(LogMarker.TOMBSTONE)) {
             verbose = new StringBuilder();
-            verbose.append(
-                "processing tag for key " + getKey() + ", stamp=" + stamp.asVersionTag() + ", tag=")
-                .append(tag);
+            verbose.append("processing tag for key ").append(getKey()).append(", stamp=")
+                .append(stamp.asVersionTag()).append(", tag=").append(tag);
           }
           long stampTime = stamp.getVersionTimeStamp();
           long tagTime = tag.getVersionTimeStamp();
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/DiskEntry.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/DiskEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/DiskEntry.java
index 6b0871e..210d76b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/DiskEntry.java
@@ -12,7 +12,7 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -26,7 +26,25 @@ import org.apache.geode.internal.Assert;
 import org.apache.geode.internal.ByteArrayDataInput;
 import org.apache.geode.internal.HeapDataOutputStream;
 import org.apache.geode.internal.Version;
+import org.apache.geode.internal.cache.AbstractDiskRegion;
+import org.apache.geode.internal.cache.AbstractLRURegionMap;
+import org.apache.geode.internal.cache.BucketRegion;
+import org.apache.geode.internal.cache.CachedDeserializable;
+import org.apache.geode.internal.cache.CachedDeserializableFactory;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskRegion;
 import org.apache.geode.internal.cache.DiskStoreImpl.AsyncDiskEntry;
+import org.apache.geode.internal.cache.DistributedRegion;
+import org.apache.geode.internal.cache.EntryBits;
+import org.apache.geode.internal.cache.EntryEventImpl;
+import org.apache.geode.internal.cache.InitialImageOperation;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionClearedException;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionMap;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.LRUEntry;
@@ -122,7 +140,7 @@ public interface DiskEntry extends RegionEntry {
      * 
      * @since GemFire 3.2.1
      */
-    static Object getValueOnDisk(DiskEntry entry, DiskRegion dr) {
+    public static Object getValueOnDisk(DiskEntry entry, DiskRegion dr) {
       DiskId id = entry.getDiskId();
       if (id == null) {
         return null;
@@ -180,7 +198,7 @@ public interface DiskEntry extends RegionEntry {
      * 
      * @since GemFire 5.1
      */
-    static Object getValueOnDiskOrBuffer(DiskEntry entry, DiskRegion dr,
+    public static Object getValueOnDiskOrBuffer(DiskEntry entry, DiskRegion dr,
         RegionEntryContext context) {
       @Released
       Object v = getOffHeapValueOnDiskOrBuffer(entry, dr, context);
@@ -315,7 +333,7 @@ public interface DiskEntry extends RegionEntry {
             if (logger.isDebugEnabled()) {
               logger.debug(
                   "DiskEntry.Helper.fillInValue, key={}; getting value from disk, disk id={}",
-                  entry.key, did);
+                  entry.getKey(), did);
             }
             BytesAndBits bb = null;
             try {
@@ -330,7 +348,7 @@ public interface DiskEntry extends RegionEntry {
             } else if (EntryBits.isTombstone(bb.getBits())) {
               entry.setTombstone();
             } else {
-              entry.value = bb.getBytes();
+              entry.setValue(bb.getBytes());
               entry.setSerialized(EntryBits.isSerialized(bb.getBits()));
             }
             return true;
@@ -349,21 +367,21 @@ public interface DiskEntry extends RegionEntry {
         try {
           if (!cd.isSerialized()) {
             entry.setSerialized(false);
-            entry.value = cd.getDeserializedForReading();
+            entry.setValue(cd.getDeserializedForReading());
 
           } else {
             // don't serialize here if it is not already serialized
 
             Object tmp = cd.getValue();
             if (tmp instanceof byte[]) {
-              entry.value = (byte[]) tmp;
+              entry.setValue((byte[]) tmp);
               entry.setSerialized(true);
             } else {
               try {
                 HeapDataOutputStream hdos = new HeapDataOutputStream(version);
                 BlobHelper.serializeTo(tmp, hdos);
                 hdos.trim();
-                entry.value = hdos;
+                entry.setValue(hdos);
                 entry.setSerialized(true);
               } catch (IOException e) {
                 throw new IllegalArgumentException(
@@ -377,12 +395,12 @@ public interface DiskEntry extends RegionEntry {
           // If v == entry.value then v is assumed to be an OffHeapByteSource
           // and release() will be called on v after the bytes have been read from
           // off-heap.
-          if (v != entry.value) {
+          if (v != entry.getValue()) {
             OffHeapHelper.releaseWithNoTracking(v);
           }
         }
       } else if (v instanceof byte[]) {
-        entry.value = v;
+        entry.setValue(v);
         entry.setSerialized(false);
       } else if (v == Token.INVALID) {
         entry.setInvalid();
@@ -404,7 +422,7 @@ public interface DiskEntry extends RegionEntry {
             HeapDataOutputStream hdos = new HeapDataOutputStream(version);
             BlobHelper.serializeTo(preparedValue, hdos);
             hdos.trim();
-            entry.value = hdos;
+            entry.setValue(hdos);
             entry.setSerialized(true);
           } catch (IOException e) {
             RuntimeException e2 = new IllegalArgumentException(
@@ -421,7 +439,7 @@ public interface DiskEntry extends RegionEntry {
     /**
      * Used to initialize a new disk entry
      */
-    static void initialize(DiskEntry entry, DiskRecoveryStore r, Object newValue) {
+    public static void initialize(DiskEntry entry, DiskRecoveryStore r, Object newValue) {
       DiskRegionView drv = null;
       if (r instanceof LocalRegion) {
         drv = ((LocalRegion) r).getDiskRegion();
@@ -918,7 +936,7 @@ public interface DiskEntry extends RegionEntry {
           } else {
             // If we have concurrency checks enabled for a persistent region, we need
             // to add an entry to the async queue for every update to maintain the RVV
-            boolean maintainRVV = region.concurrencyChecksEnabled;
+            boolean maintainRVV = region.isConcurrencyChecksEnabled();
 
             if (!did.isPendingAsync() || maintainRVV) {
               // if the entry is not async, we need to schedule it
@@ -1239,8 +1257,8 @@ public interface DiskEntry extends RegionEntry {
       return preparedValue;
     }
 
-    static Object readSerializedValue(byte[] valueBytes, Version version, ByteArrayDataInput in,
-        boolean forceDeserialize) {
+    public static Object readSerializedValue(byte[] valueBytes, Version version,
+        ByteArrayDataInput in, boolean forceDeserialize) {
       if (forceDeserialize) {
         // deserialize checking for product version change
         return EntryEventImpl.deserialize(valueBytes, version, in);
@@ -1252,7 +1270,7 @@ public interface DiskEntry extends RegionEntry {
       }
     }
 
-    static Object readRawValue(byte[] valueBytes, Version version, ByteArrayDataInput in) {
+    public static Object readRawValue(byte[] valueBytes, Version version, ByteArrayDataInput in) {
       return valueBytes;
     }
 
@@ -1546,7 +1564,7 @@ public interface DiskEntry extends RegionEntry {
       } else {
         // If we have concurrency checks enabled for a persistent region, we need
         // to add an entry to the async queue for every update to maintain the RVV
-        boolean maintainRVV = region.concurrencyChecksEnabled && dr.isBackup();
+        boolean maintainRVV = region.isConcurrencyChecksEnabled() && dr.isBackup();
         if (!did.isPendingAsync() || maintainRVV) {
           did.setPendingAsync(true);
           VersionTag tag = null;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/LeafRegionEntry.cpp b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/LeafRegionEntry.cpp
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/LeafRegionEntry.cpp
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/LeafRegionEntry.cpp
index 1ad1fd0..b01773a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/LeafRegionEntry.cpp
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/LeafRegionEntry.cpp
@@ -12,7 +12,7 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 #if defined(KEY_OBJECT)
@@ -38,17 +38,24 @@ import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 #if defined(VERSIONED)
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
 #endif
+import org.apache.geode.internal.cache.RegionEntryContext;
 #if defined(DISK) || defined(LRU)
 import org.apache.geode.internal.cache.lru.EnableLRU;
 #endif
 #ifdef DISK
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 #endif
 #ifdef STATS
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 #endif
 #ifdef LRU
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 #endif
@@ -59,6 +66,7 @@ import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
 #endif
 #ifdef OFFHEAP
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -337,7 +345,7 @@ public class LEAF_CLASS extends PARENT_CLASS {
     return this.id;
   }
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry)old).getDiskId();
   }
 #endif
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/OffHeapRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/OffHeapRegionEntry.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/OffHeapRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/OffHeapRegionEntry.java
index 34109f4..98fa479 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/OffHeapRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/OffHeapRegionEntry.java
@@ -13,8 +13,9 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.offheap.Releasable;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntry.java
similarity index 88%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntry.java
index 1256100..76a78fa 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntry.java
@@ -13,7 +13,10 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
+
+import org.apache.geode.internal.cache.AbstractDiskLRURegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
 
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Stats -> extra
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeap.java
index b53d498..622dc7c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsDiskLRURegionEntryHeap extends VMStatsDiskLRURegionEntry {
 
   public VMStatsDiskLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapIntKey.java
index 82e4373..14c3b90 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapIntKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -150,7 +156,7 @@ public class VMStatsDiskLRURegionEntryHeapIntKey extends VMStatsDiskLRURegionEnt
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapLongKey.java
index 001be3f..2004c6a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapLongKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -150,7 +156,7 @@ public class VMStatsDiskLRURegionEntryHeapLongKey extends VMStatsDiskLRURegionEn
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapObjectKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapObjectKey.java
index aac0beb..bd40056 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapObjectKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -152,7 +158,7 @@ public class VMStatsDiskLRURegionEntryHeapObjectKey extends VMStatsDiskLRURegion
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapStringKey1.java
index 4747686..5e40c3a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapStringKey1.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -169,7 +175,7 @@ public class VMStatsDiskLRURegionEntryHeapStringKey1 extends VMStatsDiskLRURegio
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapStringKey2.java
index 2af8f53..df6bd14 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapStringKey2.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -181,7 +187,7 @@ public class VMStatsDiskLRURegionEntryHeapStringKey2 extends VMStatsDiskLRURegio
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapUUIDKey.java
index 5307f60..4391cf9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryHeapUUIDKey.java
@@ -12,15 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -152,7 +158,7 @@ public class VMStatsDiskLRURegionEntryHeapUUIDKey extends VMStatsDiskLRURegionEn
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeap.java
index c14b15a..cfeef4f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsDiskLRURegionEntryOffHeap extends VMStatsDiskLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapIntKey.java
index c194890..0123a3d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapIntKey.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -206,7 +213,7 @@ public class VMStatsDiskLRURegionEntryOffHeapIntKey extends VMStatsDiskLRURegion
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapLongKey.java
index c05f189..1db2dd9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapLongKey.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -206,7 +213,7 @@ public class VMStatsDiskLRURegionEntryOffHeapLongKey extends VMStatsDiskLRURegio
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapObjectKey.java
index f7c73cf..2b450f3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapObjectKey.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -207,7 +214,7 @@ public class VMStatsDiskLRURegionEntryOffHeapObjectKey extends VMStatsDiskLRUReg
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapStringKey1.java
index c019bf8..0840ef5 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapStringKey1.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -224,7 +231,7 @@ public class VMStatsDiskLRURegionEntryOffHeapStringKey1 extends VMStatsDiskLRURe
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapStringKey2.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapStringKey2.java
index d56af51..1ba56ed 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapStringKey2.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -236,7 +243,7 @@ public class VMStatsDiskLRURegionEntryOffHeapStringKey2 extends VMStatsDiskLRURe
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapUUIDKey.java
index 0565109..65bf26a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskLRURegionEntryOffHeapUUIDKey.java
@@ -12,17 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -208,7 +215,7 @@ public class VMStatsDiskLRURegionEntryOffHeapUUIDKey extends VMStatsDiskLRURegio
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntry.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntry.java
index 8e445fd..a8ae74a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntry.java
@@ -12,7 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
+
+import org.apache.geode.internal.cache.RegionEntryContext;
 
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Stats -> extra
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeap.java
index 554268a..eaa77fe 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsDiskRegionEntryHeap extends VMStatsDiskRegionEntry {
 
   public VMStatsDiskRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapIntKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapIntKey.java
index 09d3951..a083182 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapIntKey.java
@@ -12,12 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -133,7 +138,7 @@ public class VMStatsDiskRegionEntryHeapIntKey extends VMStatsDiskRegionEntryHeap
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapLongKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapLongKey.java
index bf3ce32..1089f71 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapLongKey.java
@@ -12,12 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -133,7 +138,7 @@ public class VMStatsDiskRegionEntryHeapLongKey extends VMStatsDiskRegionEntryHea
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapObjectKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapObjectKey.java
index 34eeebf..616c093 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapObjectKey.java
@@ -12,12 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -133,7 +138,7 @@ public class VMStatsDiskRegionEntryHeapObjectKey extends VMStatsDiskRegionEntryH
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapStringKey1.java
index 735eefe..6908bd8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapStringKey1.java
@@ -12,12 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -151,7 +156,7 @@ public class VMStatsDiskRegionEntryHeapStringKey1 extends VMStatsDiskRegionEntry
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapStringKey2.java
index 29a745a..f1844a2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapStringKey2.java
@@ -12,12 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -163,7 +168,7 @@ public class VMStatsDiskRegionEntryHeapStringKey2 extends VMStatsDiskRegionEntry
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapUUIDKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapUUIDKey.java
index 5057232..a1a101b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryHeapUUIDKey.java
@@ -12,13 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -135,7 +140,7 @@ public class VMStatsDiskRegionEntryHeapUUIDKey extends VMStatsDiskRegionEntryHea
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeap.java
index cfe8fef..e08776e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsDiskRegionEntryOffHeap extends VMStatsDiskRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapIntKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapIntKey.java
index e6f50c1..85e6daf 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapIntKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -188,7 +194,7 @@ public class VMStatsDiskRegionEntryOffHeapIntKey extends VMStatsDiskRegionEntryO
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapLongKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapLongKey.java
index fa19898..40efae9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapLongKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -188,7 +194,7 @@ public class VMStatsDiskRegionEntryOffHeapLongKey extends VMStatsDiskRegionEntry
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapObjectKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapObjectKey.java
index af43ec4..ef638d3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapObjectKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -189,7 +195,7 @@ public class VMStatsDiskRegionEntryOffHeapObjectKey extends VMStatsDiskRegionEnt
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapStringKey1.java
index 22e4090..ee7b340 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapStringKey1.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -206,7 +212,7 @@ public class VMStatsDiskRegionEntryOffHeapStringKey1 extends VMStatsDiskRegionEn
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapStringKey2.java
index aa1b463..1e571b7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapStringKey2.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -218,7 +224,7 @@ public class VMStatsDiskRegionEntryOffHeapStringKey2 extends VMStatsDiskRegionEn
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapUUIDKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapUUIDKey.java
index 57963e3..1c677af 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsDiskRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsDiskRegionEntryOffHeapUUIDKey.java
@@ -12,15 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -190,7 +196,7 @@ public class VMStatsDiskRegionEntryOffHeapUUIDKey extends VMStatsDiskRegionEntry
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntry.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntry.java
index 8311119..158befe 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntry.java
@@ -12,23 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
+package org.apache.geode.internal.cache.entries;
 
-package org.apache.geode.internal.cache;
+import org.apache.geode.internal.cache.RegionEntryContext;
 
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Stats -> extra
  * statistics LRU -> entries maintain LRU information
  *
  * @since GemFire 3.5.1
- *
- *
  */
 public abstract class VMStatsLRURegionEntry extends AbstractLRURegionEntry {
   protected VMStatsLRURegionEntry(RegionEntryContext context, Object value) {
     super(context, value);
   }
 
-
   //////////////////////////////////////////////////////////////////////
   // Stats fields and methods
   // Do not add any instance fields to this class.
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeap.java
index 1d474fa..fe5997e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsLRURegionEntryHeap extends VMStatsLRURegionEntry {
 
   public VMStatsLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapIntKey.java
index 1bf274e..f6a96fd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapIntKey.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapLongKey.java
index 91daafb..c926d28 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapLongKey.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapObjectKey.java
index 86f27a6..054b2e3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapObjectKey.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapStringKey1.java
index 3df8fb0..3185c06 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapStringKey1.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapStringKey2.java
index a9966b0..1df514f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapStringKey2.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapUUIDKey.java
index 77cb60d..c389078 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryHeapUUIDKey.java
@@ -12,14 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeap.java
index 95487d0..1b936a0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsLRURegionEntryOffHeap extends VMStatsLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapIntKey.java
index cadb2ee..024bc5a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapIntKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapLongKey.java
index a1e79ee..2f6afb3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapLongKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapObjectKey.java
index c7c2e7f..5a1f42e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapObjectKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapStringKey1.java
index ea326b5..4990425 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapStringKey1.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapStringKey2.java
index 8439998..8b94a01 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapStringKey2.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapUUIDKey.java
index 7ffddd5..c6dd20a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsLRURegionEntryOffHeapUUIDKey.java
@@ -12,16 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntry.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntry.java
index 395aa85..1a3c537 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntry.java
@@ -13,7 +13,9 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
+
+import org.apache.geode.internal.cache.RegionEntryContext;
 
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Stats -> extra
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeap.java
index 082b645..2ec1941 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsRegionEntryHeap extends VMStatsRegionEntry {
 
   public VMStatsRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapIntKey.java
index a48ff98..c9df2d7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapIntKey.java
@@ -12,11 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapLongKey.java
index 93a470d..32c2d84 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapLongKey.java
@@ -12,11 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapObjectKey.java
index e2a70d9..154c549 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapObjectKey.java
@@ -12,11 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapStringKey1.java
index 63bb9a6..29c1044 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapStringKey1.java
@@ -12,11 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapStringKey2.java
index 6c217c4..212b35b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapStringKey2.java
@@ -12,11 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapUUIDKey.java
index 2e62df2..e81fe77 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryHeapUUIDKey.java
@@ -12,12 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeap.java
index 03fd31d..ed40f98 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMStatsRegionEntryOffHeap extends VMStatsRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapIntKey.java
index 7ba3ef0..02d9d1f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapIntKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapLongKey.java
index f349001..3ab9c1f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapLongKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapObjectKey.java
index 36b218f..e0c2f93 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapObjectKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapStringKey1.java
index 2c4d7a7..46f1093 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapStringKey1.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapStringKey2.java
index 2578cfd..da17d00 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapStringKey2.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapUUIDKey.java
index c6dbf34..b5f1a45 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMStatsRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMStatsRegionEntryOffHeapUUIDKey.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntry.java
similarity index 87%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntry.java
index 6ad72f7..35c0bde 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntry.java
@@ -13,9 +13,12 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 
+import org.apache.geode.internal.cache.AbstractDiskLRURegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Thin -> no extra
  * statistics Disk -> entries can be on disk LRU -> entries maintain LRU information
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeap.java
index 56d5414..885c0ea 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinDiskLRURegionEntryHeap extends VMThinDiskLRURegionEntry {
 
   public VMThinDiskLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapIntKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapIntKey.java
index d1c462f..39b5236 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapIntKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -149,7 +155,7 @@ public class VMThinDiskLRURegionEntryHeapIntKey extends VMThinDiskLRURegionEntry
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapLongKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapLongKey.java
index 77e4dac..80f0a07 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapLongKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -149,7 +155,7 @@ public class VMThinDiskLRURegionEntryHeapLongKey extends VMThinDiskLRURegionEntr
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapObjectKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapObjectKey.java
index 3fc108a..b9a08f9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapObjectKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -151,7 +157,7 @@ public class VMThinDiskLRURegionEntryHeapObjectKey extends VMThinDiskLRURegionEn
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapStringKey1.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapStringKey1.java
index 69944cf..688d25f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapStringKey1.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -168,7 +174,7 @@ public class VMThinDiskLRURegionEntryHeapStringKey1 extends VMThinDiskLRURegionE
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapStringKey2.java
index 8a5d844..734871b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapStringKey2.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -180,7 +186,7 @@ public class VMThinDiskLRURegionEntryHeapStringKey2 extends VMThinDiskLRURegionE
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapUUIDKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapUUIDKey.java
index 6c76394..f165a39 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryHeapUUIDKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
@@ -151,7 +157,7 @@ public class VMThinDiskLRURegionEntryHeapUUIDKey extends VMThinDiskLRURegionEntr
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeap.java
index c9d2eca..46d840d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinDiskLRURegionEntryOffHeap extends VMThinDiskLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapIntKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapIntKey.java
index 19e5f91..0a6324f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapIntKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -205,7 +212,7 @@ public class VMThinDiskLRURegionEntryOffHeapIntKey extends VMThinDiskLRURegionEn
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapLongKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapLongKey.java
index 0dd7e17..bceb9b4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapLongKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -205,7 +212,7 @@ public class VMThinDiskLRURegionEntryOffHeapLongKey extends VMThinDiskLRURegionE
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapObjectKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapObjectKey.java
index d2a166e..906cc13 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapObjectKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -206,7 +213,7 @@ public class VMThinDiskLRURegionEntryOffHeapObjectKey extends VMThinDiskLRURegio
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapStringKey1.java
index 89120fb..8b51b26 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapStringKey1.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -223,7 +230,7 @@ public class VMThinDiskLRURegionEntryOffHeapStringKey1 extends VMThinDiskLRURegi
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapStringKey2.java
index 191256f..54ce3f2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapStringKey2.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -235,7 +242,7 @@ public class VMThinDiskLRURegionEntryOffHeapStringKey2 extends VMThinDiskLRURegi
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapUUIDKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapUUIDKey.java
index e8e80b7..9a6a89e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskLRURegionEntryOffHeapUUIDKey.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -207,7 +214,7 @@ public class VMThinDiskLRURegionEntryOffHeapUUIDKey extends VMThinDiskLRURegionE
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntry.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntry.java
index a58be6f..ec6cc27 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntry.java
@@ -13,12 +13,14 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 
 // import org.apache.geode.cache.*;
 // import org.apache.geode.distributed.internal.DM;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
+
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Thin -> no extra
  * statistics Disk -> entries can be on disk
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeap.java
index 6018f50..b6ff294 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinDiskRegionEntryHeap extends VMThinDiskRegionEntry {
 
   public VMThinDiskRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapIntKey.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapIntKey.java
index ace5633..291709c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapIntKey.java
@@ -12,11 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
@@ -131,7 +136,7 @@ public class VMThinDiskRegionEntryHeapIntKey extends VMThinDiskRegionEntryHeap {
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapLongKey.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapLongKey.java
index 230cb6a..2260bf1 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapLongKey.java
@@ -12,11 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
@@ -131,7 +136,7 @@ public class VMThinDiskRegionEntryHeapLongKey extends VMThinDiskRegionEntryHeap
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapObjectKey.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapObjectKey.java
index f84c83b..ea33176 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapObjectKey.java
@@ -12,11 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
@@ -131,7 +136,7 @@ public class VMThinDiskRegionEntryHeapObjectKey extends VMThinDiskRegionEntryHea
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapStringKey1.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapStringKey1.java
index 94c3c87..90f87d1 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapStringKey1.java
@@ -12,11 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
@@ -149,7 +154,7 @@ public class VMThinDiskRegionEntryHeapStringKey1 extends VMThinDiskRegionEntryHe
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapStringKey2.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapStringKey2.java
index c1508b8..9454a48 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapStringKey2.java
@@ -12,11 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
@@ -161,7 +166,7 @@ public class VMThinDiskRegionEntryHeapStringKey2 extends VMThinDiskRegionEntryHe
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapUUIDKey.java
similarity index 93%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapUUIDKey.java
index 49bea68..6d6276c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryHeapUUIDKey.java
@@ -12,12 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
@@ -133,7 +138,7 @@ public class VMThinDiskRegionEntryHeapUUIDKey extends VMThinDiskRegionEntryHeap
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeap.java
index 60c1628..d5193d3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinDiskRegionEntryOffHeap extends VMThinDiskRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapIntKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapIntKey.java
index 7a8bdd3..4313f29 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapIntKey.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -186,7 +192,7 @@ public class VMThinDiskRegionEntryOffHeapIntKey extends VMThinDiskRegionEntryOff
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapLongKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapLongKey.java
index 64cfbdc..bd6e361 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapLongKey.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -186,7 +192,7 @@ public class VMThinDiskRegionEntryOffHeapLongKey extends VMThinDiskRegionEntryOf
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapObjectKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapObjectKey.java
index a7d481d..5d6988c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapObjectKey.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -187,7 +193,7 @@ public class VMThinDiskRegionEntryOffHeapObjectKey extends VMThinDiskRegionEntry
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapStringKey1.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapStringKey1.java
index 706a30b..3d3589f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapStringKey1.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -204,7 +210,7 @@ public class VMThinDiskRegionEntryOffHeapStringKey1 extends VMThinDiskRegionEntr
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapStringKey2.java
index f99a800..05d71c8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapStringKey2.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -216,7 +222,7 @@ public class VMThinDiskRegionEntryOffHeapStringKey2 extends VMThinDiskRegionEntr
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapUUIDKey.java
similarity index 94%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapUUIDKey.java
index 4304dc3..80df2fe 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinDiskRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinDiskRegionEntryOffHeapUUIDKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -188,7 +194,7 @@ public class VMThinDiskRegionEntryOffHeapUUIDKey extends VMThinDiskRegionEntryOf
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntry.java
index 6e8deda..80a6f18 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntry.java
@@ -13,7 +13,9 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
+
+import org.apache.geode.internal.cache.RegionEntryContext;
 
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Thin -> no extra
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeap.java
index dacba73..a0c8da9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinLRURegionEntryHeap extends VMThinLRURegionEntry {
 
   public VMThinLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapIntKey.java
index a2bcbed..8960f20 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapIntKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapLongKey.java
index 72d2687..469caa6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapLongKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapObjectKey.java
index 2a1976c..1526c31 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapObjectKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapStringKey1.java
index 68a8aea..3ed315f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapStringKey1.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapStringKey2.java
index 4b4efb4..ced5d82 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapStringKey2.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapUUIDKey.java
index 7d1abbc..db57376 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryHeapUUIDKey.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeap.java
index 9e6a611..38dd7e5 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinLRURegionEntryOffHeap extends VMThinLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapIntKey.java
index d37994f..e754b1f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapIntKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapLongKey.java
index f69050e..5411fb2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapLongKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapObjectKey.java
index b255cd1..9a2540b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapObjectKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapStringKey1.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapStringKey1.java
index 3084dd9..2923cac 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapStringKey1.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapStringKey2.java
index 649058a..fd5057e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapStringKey2.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapUUIDKey.java
index 716283b..544da6a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinLRURegionEntryOffHeapUUIDKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntry.java
index 4229aba..47d8eee 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntry.java
@@ -13,7 +13,9 @@
  * the License.
  */
 
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
+
+import org.apache.geode.internal.cache.RegionEntryContext;
 
 /**
  * Implementation class of RegionEntry interface. VM -> entries stored in VM memory Thin -> no extra
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeap.java
index d995852..a2c605d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinRegionEntryHeap extends VMThinRegionEntry {
 
   public VMThinRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapIntKey.java
index 12a4c86..6c4a38c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapIntKey.java
@@ -12,10 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
 // macros whose definition changes this class:
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapLongKey.java
index 1b08c69..24b19d9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapLongKey.java
@@ -12,10 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
 // macros whose definition changes this class:
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapObjectKey.java
index 8322d9a..e167fc9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapObjectKey.java
@@ -12,10 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
 // macros whose definition changes this class:
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapStringKey1.java
index d545a8a..efb28ed 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapStringKey1.java
@@ -12,10 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
 // macros whose definition changes this class:
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapStringKey2.java
index d58b2a5..dbaf1f8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapStringKey2.java
@@ -12,10 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
 // macros whose definition changes this class:
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapUUIDKey.java
index c6b228c..db2fc06 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryHeapUUIDKey.java
@@ -12,11 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
 
 // macros whose definition changes this class:
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeap.java
index 64c305e..043d3c5 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VMThinRegionEntryOffHeap extends VMThinRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapIntKey.java
index 07a70a1..de5e6e6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapIntKey.java
@@ -12,10 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapLongKey.java
index b6ca55f..61ad59c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapLongKey.java
@@ -12,10 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapObjectKey.java
index 3b16cd0..49a609d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapObjectKey.java
@@ -12,10 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapStringKey1.java
index 4d137fc..abbc705 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapStringKey1.java
@@ -12,10 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapStringKey2.java
index da0a048..d376ccd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapStringKey2.java
@@ -12,10 +12,12 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapUUIDKey.java
index 6b27fdc..b3f5a17 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VMThinRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VMThinRegionEntryOffHeapUUIDKey.java
@@ -12,11 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntry.java
index 9367053..71d3a51 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntry.java
@@ -12,8 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeap.java
index 1f7b878..f6f1837 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsDiskLRURegionEntryHeap
     extends VersionedStatsDiskLRURegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapIntKey.java
index ae524f7..92db4b4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapIntKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -158,7 +165,7 @@ public class VersionedStatsDiskLRURegionEntryHeapIntKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapLongKey.java
index 8be0c3f..9c0dbd0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapLongKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -158,7 +165,7 @@ public class VersionedStatsDiskLRURegionEntryHeapLongKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapObjectKey.java
index 9b829d3..a77a382 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapObjectKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -158,7 +165,7 @@ public class VersionedStatsDiskLRURegionEntryHeapObjectKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapStringKey1.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapStringKey1.java
index a7bf1ff..fdcc8a8 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapStringKey1.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -175,7 +182,7 @@ public class VersionedStatsDiskLRURegionEntryHeapStringKey1
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapStringKey2.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapStringKey2.java
index 7adf88b..82e0ece 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapStringKey2.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -187,7 +194,7 @@ public class VersionedStatsDiskLRURegionEntryHeapStringKey2
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapUUIDKey.java
index 2b39488..3d466b1 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryHeapUUIDKey.java
@@ -12,16 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -160,7 +167,7 @@ public class VersionedStatsDiskLRURegionEntryHeapUUIDKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeap.java
index 808a0e5..4a405a9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsDiskLRURegionEntryOffHeap
     extends VersionedStatsDiskLRURegionEntry implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapIntKey.java
index 7618bad..0c9e923 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapIntKey.java
@@ -12,21 +12,29 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -213,7 +221,7 @@ public class VersionedStatsDiskLRURegionEntryOffHeapIntKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapLongKey.java
index 4207026..fc1ebf6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapLongKey.java
@@ -12,21 +12,29 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -213,7 +221,7 @@ public class VersionedStatsDiskLRURegionEntryOffHeapLongKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapObjectKey.java
index 166c33b..abb9bbc 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapObjectKey.java
@@ -12,21 +12,29 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -213,7 +221,7 @@ public class VersionedStatsDiskLRURegionEntryOffHeapObjectKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapStringKey1.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapStringKey1.java
index 38e9495..f46ee2d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapStringKey1.java
@@ -12,21 +12,29 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -230,7 +238,7 @@ public class VersionedStatsDiskLRURegionEntryOffHeapStringKey1
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapStringKey2.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapStringKey2.java
index 9922420..9f41845 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapStringKey2.java
@@ -12,21 +12,29 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -242,7 +250,7 @@ public class VersionedStatsDiskLRURegionEntryOffHeapStringKey2
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapUUIDKey.java
index a65b91f..c57c1e3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskLRURegionEntryOffHeapUUIDKey.java
@@ -12,22 +12,30 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -215,7 +223,7 @@ public class VersionedStatsDiskLRURegionEntryOffHeapUUIDKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntry.java
index 64858ce..64c11fc 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntry.java
@@ -12,8 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeap.java
index 3e440ff..979ea68 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsDiskRegionEntryHeap extends VersionedStatsDiskRegionEntry {
 
   public VersionedStatsDiskRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapIntKey.java
index 9dd509a..085221a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapIntKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -140,7 +146,7 @@ public class VersionedStatsDiskRegionEntryHeapIntKey extends VersionedStatsDiskR
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapLongKey.java
index 7234639..787b306 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapLongKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -140,7 +146,7 @@ public class VersionedStatsDiskRegionEntryHeapLongKey extends VersionedStatsDisk
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapObjectKey.java
index e27955b..b10f407 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapObjectKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -140,7 +146,7 @@ public class VersionedStatsDiskRegionEntryHeapObjectKey extends VersionedStatsDi
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapStringKey1.java
index a1b15fa..2b9bde6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapStringKey1.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -157,7 +163,7 @@ public class VersionedStatsDiskRegionEntryHeapStringKey1 extends VersionedStatsD
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapStringKey2.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapStringKey2.java
index 5fd38b7..761250e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapStringKey2.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -169,7 +175,7 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapUUIDKey.java
index 7bff6e1..2a34483 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryHeapUUIDKey.java
@@ -12,14 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -142,7 +148,7 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeap.java
index b5e0395..6a493ec 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsDiskRegionEntryOffHeap extends VersionedStatsDiskRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapIntKey.java
index eea2af0..30ba2eb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapIntKey.java
@@ -12,19 +12,26 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -196,7 +203,7 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapLongKey.java
index 606742a..33a0934 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapLongKey.java
@@ -12,19 +12,26 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -196,7 +203,7 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
index 385e05a..903165c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
@@ -12,19 +12,26 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -196,7 +203,7 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapStringKey1.java
index 54159d7..e8c2d9c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapStringKey1.java
@@ -12,19 +12,26 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -213,7 +220,7 @@ public class VersionedStatsDiskRegionEntryOffHeapStringKey1
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapStringKey2.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapStringKey2.java
index 13250b1..cef9d6e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapStringKey2.java
@@ -12,19 +12,26 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -225,7 +232,7 @@ public class VersionedStatsDiskRegionEntryOffHeapStringKey2
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapUUIDKey.java
index 26c4468..e6e8607 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsDiskRegionEntryOffHeapUUIDKey.java
@@ -12,20 +12,27 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -198,7 +205,7 @@ public class VersionedStatsDiskRegionEntryOffHeapUUIDKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntry.java
index c94e228..a7d9b17 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntry.java
@@ -12,8 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeap.java
index c698e63..167b0bd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsLRURegionEntryHeap extends VersionedStatsLRURegionEntry {
 
   public VersionedStatsLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapIntKey.java
index 9a8c481..6d099d9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapIntKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapLongKey.java
index 8016766..9080b94 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapLongKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapObjectKey.java
index e7b8ba8..75ce129 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapObjectKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapStringKey1.java
index 98c5fe2..d71c924 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapStringKey1.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapStringKey2.java
index 0be92b7..bd1f299 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapStringKey2.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapUUIDKey.java
index 49bc7ed..aa5021f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryHeapUUIDKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeap.java
index 124d03a..d60cd62 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsLRURegionEntryOffHeap extends VersionedStatsLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapIntKey.java
index cb67874..3875e66 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapIntKey.java
@@ -12,20 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapLongKey.java
index b6153a5..8626e67 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapLongKey.java
@@ -12,20 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapObjectKey.java
index 4cf5aa6..e6e81fb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapObjectKey.java
@@ -12,20 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapStringKey1.java
index 6c883fc..575aeae 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapStringKey1.java
@@ -12,20 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapStringKey2.java
index ca0c1ae..5fd7838 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapStringKey2.java
@@ -12,20 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapUUIDKey.java
index 9fa6b04..54cfdd3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsLRURegionEntryOffHeapUUIDKey.java
@@ -12,21 +12,25 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntry.java
index 99166c9..eea3a6c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntry.java
@@ -12,13 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
-/**
- *
- */
 public abstract class VersionedStatsRegionEntry extends VMStatsRegionEntry implements VersionStamp {
 
   protected VersionedStatsRegionEntry(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeap.java
index bc33c35..796c8dd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsRegionEntryHeap extends VersionedStatsRegionEntry {
 
   public VersionedStatsRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapIntKey.java
index 9c7a9ff..87cceeb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapIntKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapLongKey.java
index 8075a6d..3756de6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapLongKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapObjectKey.java
index d176609..8de813a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapObjectKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapStringKey1.java
index 7e4ebc4..64d61ef 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapStringKey1.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapStringKey2.java
index 7017e5b..7960f87 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapStringKey2.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapUUIDKey.java
index a8db8f1..ea9c60e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryHeapUUIDKey.java
@@ -12,13 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeap.java
index e272a5b..550bef6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedStatsRegionEntryOffHeap extends VersionedStatsRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapIntKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapIntKey.java
index 33e0edc..0994865 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapIntKey.java
@@ -12,17 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapLongKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapLongKey.java
index 37fdfc7..ee3741e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapLongKey.java
@@ -12,17 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapObjectKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapObjectKey.java
index c5f7268..c240e9b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapObjectKey.java
@@ -12,17 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapStringKey1.java
index fbc233b..daa4a3f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapStringKey1.java
@@ -12,17 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapStringKey2.java
index ffd62aa..b927e3f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapStringKey2.java
@@ -12,17 +12,20 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapUUIDKey.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapUUIDKey.java
index 19b3bc2..23fec03 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedStatsRegionEntryOffHeapUUIDKey.java
@@ -12,18 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.InternalStatisticsDisabledException;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntry.java
index 80556dc..43d8ea2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntry.java
@@ -12,8 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeap.java
index af7c5cb..9f1c431 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinDiskLRURegionEntryHeap extends VersionedThinDiskLRURegionEntry {
 
   public VersionedThinDiskLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapIntKey.java
index 349782b..c567021 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapIntKey.java
@@ -12,14 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -156,7 +163,7 @@ public class VersionedThinDiskLRURegionEntryHeapIntKey extends VersionedThinDisk
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapLongKey.java
index 859264a..0659fffd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapLongKey.java
@@ -12,14 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -157,7 +164,7 @@ public class VersionedThinDiskLRURegionEntryHeapLongKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapObjectKey.java
index bbf8f7d..d5db7b7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapObjectKey.java
@@ -12,14 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -157,7 +164,7 @@ public class VersionedThinDiskLRURegionEntryHeapObjectKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapStringKey1.java
index 115b271..10e400e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapStringKey1.java
@@ -12,14 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -174,7 +181,7 @@ public class VersionedThinDiskLRURegionEntryHeapStringKey1
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapStringKey2.java
index 87b1cf8..d6e7ed0 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapStringKey2.java
@@ -12,14 +12,21 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -186,7 +193,7 @@ public class VersionedThinDiskLRURegionEntryHeapStringKey2
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapUUIDKey.java
index 690dee7..c7aa4cd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryHeapUUIDKey.java
@@ -12,15 +12,22 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -159,7 +166,7 @@ public class VersionedThinDiskLRURegionEntryHeapUUIDKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeap.java
index 746ddc4..72833ee 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinDiskLRURegionEntryOffHeap extends VersionedThinDiskLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapIntKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapIntKey.java
index d4f6d2e..9d62cef 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapIntKey.java
@@ -12,20 +12,28 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -212,7 +220,7 @@ public class VersionedThinDiskLRURegionEntryOffHeapIntKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapLongKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapLongKey.java
index 9c3d76e..81668e3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapLongKey.java
@@ -12,20 +12,28 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -212,7 +220,7 @@ public class VersionedThinDiskLRURegionEntryOffHeapLongKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapObjectKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapObjectKey.java
index 317f9b3..e24ff03 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapObjectKey.java
@@ -12,20 +12,28 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -212,7 +220,7 @@ public class VersionedThinDiskLRURegionEntryOffHeapObjectKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapStringKey1.java
index 504789f..5afbd09 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapStringKey1.java
@@ -12,20 +12,28 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -229,7 +237,7 @@ public class VersionedThinDiskLRURegionEntryOffHeapStringKey1
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapStringKey2.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapStringKey2.java
index 39c1bd8..2b2ed00 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapStringKey2.java
@@ -12,20 +12,28 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -241,7 +249,7 @@ public class VersionedThinDiskLRURegionEntryOffHeapStringKey2
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapUUIDKey.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapUUIDKey.java
index 3f1e30d..d178495 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskLRURegionEntryOffHeapUUIDKey.java
@@ -12,21 +12,29 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -214,7 +222,7 @@ public class VersionedThinDiskLRURegionEntryOffHeapUUIDKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntry.java
index cf30875..09e8dd2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntry.java
@@ -12,13 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
-/**
- *
- */
 public abstract class VersionedThinDiskRegionEntry extends VMThinDiskRegionEntry
     implements VersionStamp {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeap.java
index bfa0428..b116af2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinDiskRegionEntryHeap extends VersionedThinDiskRegionEntry {
 
   public VersionedThinDiskRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapIntKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapIntKey.java
index 5bb731c..b5a2d59 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapIntKey.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
@@ -137,7 +143,7 @@ public class VersionedThinDiskRegionEntryHeapIntKey extends VersionedThinDiskReg
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapLongKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapLongKey.java
index 7ec8f0e..be35452 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapLongKey.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
@@ -138,7 +144,7 @@ public class VersionedThinDiskRegionEntryHeapLongKey extends VersionedThinDiskRe
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapObjectKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapObjectKey.java
index 0a2f0af..61e58a9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapObjectKey.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
@@ -138,7 +144,7 @@ public class VersionedThinDiskRegionEntryHeapObjectKey extends VersionedThinDisk
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapStringKey1.java
index 0256ae4..807c514 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapStringKey1.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
@@ -155,7 +161,7 @@ public class VersionedThinDiskRegionEntryHeapStringKey1 extends VersionedThinDis
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapStringKey2.java
index f2dc6d6..df9c9a7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapStringKey2.java
@@ -12,12 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
@@ -167,7 +173,7 @@ public class VersionedThinDiskRegionEntryHeapStringKey2 extends VersionedThinDis
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapUUIDKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapUUIDKey.java
index 4a8915f..f30f17e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryHeapUUIDKey.java
@@ -12,13 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
@@ -140,7 +146,7 @@ public class VersionedThinDiskRegionEntryHeapUUIDKey extends VersionedThinDiskRe
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeap.java
index 3d47afe..916d7d2 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinDiskRegionEntryOffHeap extends VersionedThinDiskRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapIntKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapIntKey.java
index 2151af0..3e3daec 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapIntKey.java
@@ -12,17 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -193,7 +200,7 @@ public class VersionedThinDiskRegionEntryOffHeapIntKey extends VersionedThinDisk
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapLongKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapLongKey.java
index 02e94c0..c35af99 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapLongKey.java
@@ -12,17 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -194,7 +201,7 @@ public class VersionedThinDiskRegionEntryOffHeapLongKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapObjectKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapObjectKey.java
index c1bad59..f01a205 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapObjectKey.java
@@ -12,17 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -194,7 +201,7 @@ public class VersionedThinDiskRegionEntryOffHeapObjectKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapStringKey1.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapStringKey1.java
index da9ae30..0bd43d1 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapStringKey1.java
@@ -12,17 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -211,7 +218,7 @@ public class VersionedThinDiskRegionEntryOffHeapStringKey1
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapStringKey2.java
similarity index 96%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapStringKey2.java
index 96878c0..34942fb 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapStringKey2.java
@@ -12,17 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -223,7 +230,7 @@ public class VersionedThinDiskRegionEntryOffHeapStringKey2
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapUUIDKey.java
similarity index 95%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapUUIDKey.java
index 082cf75..5493c53 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinDiskRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinDiskRegionEntryOffHeapUUIDKey.java
@@ -12,18 +12,25 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.DiskId;
+import org.apache.geode.internal.cache.DiskStoreImpl;
+import org.apache.geode.internal.cache.PlaceHolderDiskRegion;
+import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
@@ -196,7 +203,7 @@ public class VersionedThinDiskRegionEntryOffHeapUUIDKey
   }
 
   @Override
-  void setDiskId(RegionEntry old) {
+  public void setDiskId(RegionEntry old) {
     this.id = ((AbstractDiskRegionEntry) old).getDiskId();
   }
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntry.java
similarity index 80%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntry.java
index 7368e58..6c3127f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntry.java
@@ -12,17 +12,11 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
-import org.apache.geode.cache.EntryEvent;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.cache.versions.VersionSource;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
-import org.apache.geode.internal.cache.versions.VersionTag;
 
-/**
- *
- */
 public abstract class VersionedThinLRURegionEntry extends VMThinLRURegionEntry
     implements VersionStamp {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeap.java
index 49e205b..702c9d6 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinLRURegionEntryHeap extends VersionedThinLRURegionEntry {
 
   public VersionedThinLRURegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapIntKey.java
index 9e18b16..008d26e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapIntKey.java
@@ -12,13 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapLongKey.java
index 2cf7beb..a53081b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapLongKey.java
@@ -12,13 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapObjectKey.java
index 75510e3..225c3be 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapObjectKey.java
@@ -12,13 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapStringKey1.java
index 4917c8f..e9e287a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapStringKey1.java
@@ -12,13 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapStringKey2.java
index 185f5b6..0755cfd 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapStringKey2.java
@@ -12,13 +12,16 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapUUIDKey.java
index d5a3170..d47a73e 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryHeapUUIDKey.java
@@ -12,14 +12,17 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeap.java
similarity index 92%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeap.java
index 0aa2c5f..623412c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinLRURegionEntryOffHeap extends VersionedThinLRURegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapIntKey.java
index 6f42686..4c76612 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapIntKey.java
@@ -12,19 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapLongKey.java
index dbf9a15..b618546 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapLongKey.java
@@ -12,19 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapObjectKey.java
index 45e7f25..679cc5a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapObjectKey.java
@@ -12,19 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapStringKey1.java
index b9bfb25..3b731e7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapStringKey1.java
@@ -12,19 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapStringKey2.java
index 7a23a4b..ca943c4 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapStringKey2.java
@@ -12,19 +12,23 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapUUIDKey.java
index 854eb0d..7650283 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinLRURegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinLRURegionEntryOffHeapUUIDKey.java
@@ -12,20 +12,24 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.lru.EnableLRU;
+import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.lru.LRUClockNode;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntry.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntry.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntry.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntry.java
index c0392c0..64dfbf7 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntry.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntry.java
@@ -12,8 +12,9 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 
 /**
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeap.java
index 3364a6e..cfcd30d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinRegionEntryHeap extends VersionedThinRegionEntry {
 
   public VersionedThinRegionEntryHeap(RegionEntryContext context, Object value) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapIntKey.java
index 4a15ca6..73d9169 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapIntKey.java
@@ -12,11 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapLongKey.java
index 54825e6..d36b80c 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapLongKey.java
@@ -12,11 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapObjectKey.java
index d7bc006..5d36295 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapObjectKey.java
@@ -12,11 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapStringKey1.java
index 188a2e0..fe44c9a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapStringKey1.java
@@ -12,11 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapStringKey2.java
index dd256e6..88ca121 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapStringKey2.java
@@ -12,11 +12,13 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapUUIDKey.java
index a6423ac..afec803 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryHeapUUIDKey.java
@@ -12,12 +12,14 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeap.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeap.java
similarity index 91%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeap.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeap.java
index f225bac..6b41259 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeap.java
@@ -12,10 +12,15 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import java.util.UUID;
 
+import org.apache.geode.internal.cache.InlineKeyHelper;
+import org.apache.geode.internal.cache.RegionEntry;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.RegionEntryFactory;
+
 public abstract class VersionedThinRegionEntryOffHeap extends VersionedThinRegionEntry
     implements OffHeapRegionEntry {
 
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapIntKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapIntKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapIntKey.java
index db7615d..7f69c0a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapIntKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapLongKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapLongKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapLongKey.java
index ca5a684..b33514b 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapLongKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapObjectKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapObjectKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapObjectKey.java
index ad9f990..3ad5e86 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapObjectKey.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapStringKey1.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapStringKey1.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapStringKey1.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapStringKey1.java
index 30683d0..c42c860 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapStringKey1.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapStringKey1.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapStringKey2.java
similarity index 98%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapStringKey2.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapStringKey2.java
index ce7fd00..77e767a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapStringKey2.java
@@ -12,15 +12,18 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapUUIDKey.java
similarity index 97%
rename from geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapUUIDKey.java
rename to geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapUUIDKey.java
index b6dc466..171f642 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedThinRegionEntryOffHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/entries/VersionedThinRegionEntryOffHeapUUIDKey.java
@@ -12,16 +12,19 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicLongFieldUpdater;
 import org.apache.geode.cache.EntryEvent;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionStamp;
 import org.apache.geode.internal.cache.versions.VersionTag;
+import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLIFOClockHand.java b/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLIFOClockHand.java
index 3d83b39..702b663 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLIFOClockHand.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLIFOClockHand.java
@@ -16,7 +16,7 @@ package org.apache.geode.internal.cache.lru;
 
 import org.apache.geode.cache.Region;
 import org.apache.geode.internal.cache.InternalRegionArguments;
-import org.apache.geode.internal.cache.AbstractRegionEntry;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 
 /**
  * NewLIFOClockHand holds the behavior for LIFO logic , Overwriting getLRUEntry() to return most
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLRUClockHand.java b/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLRUClockHand.java
index ccab3c7..4588757 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLRUClockHand.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/lru/NewLRUClockHand.java
@@ -19,6 +19,7 @@ import org.apache.geode.StatisticsFactory;
 import org.apache.geode.cache.Region;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.internal.cache.*;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.versions.RegionVersionVector;
 import org.apache.geode.internal.i18n.LocalizedStrings;
 import org.apache.geode.internal.logging.LogService;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/DiskRecoveryStore.java b/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/DiskRecoveryStore.java
index f898df4..ab39c4f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/DiskRecoveryStore.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/persistence/DiskRecoveryStore.java
@@ -16,13 +16,11 @@ package org.apache.geode.internal.cache.persistence;
 
 import org.apache.geode.cache.DiskAccessException;
 import org.apache.geode.cache.EvictionAttributes;
-import org.apache.geode.internal.cache.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.DiskStoreImpl;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.RegionMap;
-import org.apache.geode.internal.cache.DiskEntry.RecoveredEntry;
-import org.apache.geode.internal.cache.LocalRegion.RegionEntryCallback;
 import org.apache.geode.internal.cache.versions.RegionVersionHolder;
 import org.apache.geode.internal.cache.versions.VersionSource;
 import org.apache.geode.internal.cache.versions.VersionTag;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/properties.html b/geode-core/src/main/java/org/apache/geode/internal/cache/properties.html
index 1f9db63..31cf184 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/properties.html
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/properties.html
@@ -1998,7 +1998,7 @@ TBA
 <p>
 <em>Boolean</em> (default is false)
 <p>
-See <code>org.apache.geode.internal.cache.AbstractRegionEntry.#DISABLE_ACCESS_TIME_UPDATE_ON_PUT</code>
+See <code>org.apache.geode.internal.cache.entries.AbstractRegionEntry.#DISABLE_ACCESS_TIME_UPDATE_ON_PUT</code>
 <p>
 Disable access time updates on put event
 </dd>
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/region/entry/RegionEntryFactoryBuilder.java b/geode-core/src/main/java/org/apache/geode/internal/cache/region/entry/RegionEntryFactoryBuilder.java
index 025247a..c9a2cef 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/region/entry/RegionEntryFactoryBuilder.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/region/entry/RegionEntryFactoryBuilder.java
@@ -15,6 +15,38 @@
 package org.apache.geode.internal.cache.region.entry;
 
 import org.apache.geode.internal.cache.*;
+import org.apache.geode.internal.cache.entries.VMStatsDiskLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMStatsDiskLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMStatsDiskRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMStatsDiskRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMStatsLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMStatsLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMStatsRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMStatsRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMThinDiskLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMThinDiskLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMThinDiskRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMThinDiskRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMThinLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMThinLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsDiskLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsDiskLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsDiskRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsDiskRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinDiskLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinDiskLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinDiskRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinDiskRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinLRURegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinLRURegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinRegionEntryOffHeap;
 
 public class RegionEntryFactoryBuilder {
   public RegionEntryFactory getRegionEntryFactoryOrNull(boolean statsEnabled, boolean isLRU,
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetEntry70.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetEntry70.java
index e99b485..17dca62 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetEntry70.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/GetEntry70.java
@@ -15,7 +15,6 @@
 package org.apache.geode.internal.cache.tier.sockets.command;
 
 import org.apache.geode.cache.Region;
-import org.apache.geode.cache.Region.Entry;
 import org.apache.geode.internal.cache.EntrySnapshot;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.NonLocalRegionEntry;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java
index 58966bd..39a569a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelper.java
@@ -16,10 +16,10 @@ package org.apache.geode.internal.offheap;
 
 import org.apache.geode.internal.DSCODE;
 import org.apache.geode.internal.cache.CachedDeserializableFactory;
-import org.apache.geode.internal.cache.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.DiskId;
 import org.apache.geode.internal.cache.EntryEventImpl;
-import org.apache.geode.internal.cache.OffHeapRegionEntry;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.offheap.annotations.Released;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/sequencelog/EntryLogger.java b/geode-core/src/main/java/org/apache/geode/internal/sequencelog/EntryLogger.java
index af40fec..73ecb5a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/sequencelog/EntryLogger.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/sequencelog/EntryLogger.java
@@ -17,7 +17,7 @@ package org.apache.geode.internal.sequencelog;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.internal.cache.*;
-import org.apache.geode.internal.cache.DiskEntry.RecoveredEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry.RecoveredEntry;
 import org.apache.geode.internal.cache.persistence.DiskStoreID;
 import org.apache.geode.internal.offheap.StoredObject;
 import org.apache.geode.internal.offheap.annotations.Unretained;
diff --git a/geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java b/geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java
index 00a7c69..a6230d3 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java
@@ -60,7 +60,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.geode.CancelException;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.internal.cache.wan.GatewaySenderEventImpl;
-import org.apache.geode.internal.cache.OffHeapRegionEntry;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
 import org.apache.geode.internal.size.SingleObjectSizer;
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/MapIndexStoreJUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/MapIndexStoreJUnitTest.java
index da85fa3..f3def10 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/MapIndexStoreJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/MapIndexStoreJUnitTest.java
@@ -37,7 +37,7 @@ import org.apache.geode.cache.query.internal.index.IndexStore.IndexStoreEntry;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.RegionEntry;
 import org.apache.geode.internal.cache.RegionEntryContext;
-import org.apache.geode.internal.cache.VMThinRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeap;
 import org.apache.geode.internal.cache.persistence.query.CloseableIterator;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 
diff --git a/geode-core/src/test/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java b/geode-core/src/test/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
index bb46bae..412a4c6 100644
--- a/geode-core/src/test/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
@@ -62,7 +62,7 @@ import org.apache.geode.distributed.internal.DistributionManager;
 import org.apache.geode.distributed.internal.DistributionMessage;
 import org.apache.geode.distributed.internal.DistributionMessageObserver;
 import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.internal.cache.AbstractRegionEntry;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.DistributedTombstoneOperation.TombstoneMessage;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.ha.HARegionQueue;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/InlineKeyJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/InlineKeyJUnitTest.java
index de94c49..526750d 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/InlineKeyJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/InlineKeyJUnitTest.java
@@ -19,6 +19,12 @@ import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.cache.util.ObjectSizer;
 import org.apache.geode.internal.cache.*;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeapIntKey;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeapLongKey;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeapObjectKey;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeapStringKey1;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeapStringKey2;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryHeapUUIDKey;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntryTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntryTest.java
index 5043f09..5bb60ed 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntryTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractOplogDiskRegionEntryTest.java
@@ -18,6 +18,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import org.apache.geode.internal.cache.entries.AbstractOplogDiskRegionEntry;
 import org.apache.geode.test.junit.categories.UnitTest;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/Bug37377DUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/Bug37377DUnitTest.java
index 5718055..0cb5396 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/Bug37377DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/Bug37377DUnitTest.java
@@ -19,6 +19,7 @@ import org.junit.Test;
 
 import static org.junit.Assert.*;
 
+import org.apache.geode.internal.cache.entries.VersionedThinDiskRegionEntryHeapObjectKey;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
 import org.apache.geode.test.junit.categories.DistributedTest;
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/Bug39079DUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/Bug39079DUnitTest.java
index 1a4e51e..c86fba9 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/Bug39079DUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/Bug39079DUnitTest.java
@@ -38,6 +38,7 @@ import org.apache.geode.cache.client.internal.PoolImpl;
 import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.cache30.CacheSerializableRunnable;
 import org.apache.geode.internal.AvailablePort;
+import org.apache.geode.internal.cache.entries.VMThinDiskRegionEntryHeapObjectKey;
 import org.apache.geode.internal.cache.persistence.UninterruptibleFileChannel;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.NetworkUtils;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentFlushingAndRegionOperationsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentFlushingAndRegionOperationsJUnitTest.java
index 7b816d1..36f5352 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentFlushingAndRegionOperationsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentFlushingAndRegionOperationsJUnitTest.java
@@ -21,6 +21,7 @@ import org.junit.experimental.categories.Category;
 
 import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.cache.Region;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 
 /**
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentRollingAndRegionOperationsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentRollingAndRegionOperationsJUnitTest.java
index 88e999c..538a000 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentRollingAndRegionOperationsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/ConcurrentRollingAndRegionOperationsJUnitTest.java
@@ -26,6 +26,7 @@ import org.junit.experimental.categories.Category;
 import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.Scope;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.dunit.ThreadUtils;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/ConflationJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/ConflationJUnitTest.java
index b3f1ab8..f80dfa7 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/ConflationJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/ConflationJUnitTest.java
@@ -22,13 +22,12 @@ package org.apache.geode.internal.cache;
 
 import java.util.Collection;
 
-import org.junit.After;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.*;
 
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 
 /**
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegByteArrayDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegByteArrayDUnitTest.java
index e3dd4c2..390575e 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegByteArrayDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegByteArrayDUnitTest.java
@@ -19,8 +19,8 @@ import org.junit.Test;
 
 import static org.junit.Assert.*;
 
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.junit.categories.DistributedTest;
 
 import java.io.File;
@@ -35,7 +35,6 @@ import org.apache.geode.cache.DataPolicy;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.RegionAttributes;
 import org.apache.geode.cache.Scope;
-import org.apache.geode.cache30.CacheTestCase;
 import org.apache.geode.distributed.DistributedSystem;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.Invoke;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java
index 889c7c6..0c4e3de 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java
@@ -35,6 +35,7 @@ import org.apache.geode.cache.EntryNotFoundException;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.Scope;
 import org.apache.geode.internal.Assert;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 
 /**
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java
index a71b847..0899e78 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java
@@ -38,6 +38,7 @@ import org.apache.geode.cache.Region;
 import org.apache.geode.cache.Scope;
 import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.cache.util.CacheListenerAdapter;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.lru.LRUStatistics;
 import org.apache.geode.internal.cache.lru.NewLRUClockHand;
 import org.apache.geode.internal.cache.persistence.UninterruptibleFileChannel;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/EvictionObjectSizerDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/EvictionObjectSizerDUnitTest.java
index 6c140e2..8cdbd6d 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/EvictionObjectSizerDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/EvictionObjectSizerDUnitTest.java
@@ -19,8 +19,8 @@ import org.junit.Test;
 
 import static org.junit.Assert.*;
 
+import org.apache.geode.internal.cache.entries.AbstractLRURegionEntry;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
-import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase;
 import org.apache.geode.test.junit.categories.DistributedTest;
 
 import java.io.File;
@@ -37,7 +37,6 @@ import org.apache.geode.cache.EvictionAttributes;
 import org.apache.geode.cache.PartitionAttributesFactory;
 import org.apache.geode.cache.Region;
 import org.apache.geode.cache.util.ObjectSizer;
-import org.apache.geode.cache30.CacheTestCase;
 import org.apache.geode.distributed.DistributedSystem;
 import org.apache.geode.internal.OSProcess;
 import org.apache.geode.internal.SharedLibrary;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/GIIDeltaDUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/GIIDeltaDUnitTest.java
index 1152186..54c73c2 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/GIIDeltaDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/GIIDeltaDUnitTest.java
@@ -22,6 +22,7 @@ import org.junit.Test;
 
 import static org.junit.Assert.*;
 
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
 import org.apache.geode.test.junit.categories.DistributedTest;
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/OffHeapValueWrapperJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/OffHeapValueWrapperJUnitTest.java
index ae3b12c..04b2524 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/OffHeapValueWrapperJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/OffHeapValueWrapperJUnitTest.java
@@ -24,8 +24,8 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import org.apache.geode.internal.cache.DiskEntry.Helper.Flushable;
-import org.apache.geode.internal.cache.DiskEntry.Helper.OffHeapValueWrapper;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.Flushable;
+import org.apache.geode.internal.cache.entries.DiskEntry.Helper.OffHeapValueWrapper;
 import org.apache.geode.internal.offheap.MemoryAllocatorImpl;
 import org.apache.geode.internal.offheap.NullOffHeapMemoryStats;
 import org.apache.geode.internal.offheap.NullOutOfOffHeapMemoryListener;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/OplogJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/OplogJUnitTest.java
index 7801107..a47ecfb 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/OplogJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/OplogJUnitTest.java
@@ -48,6 +48,7 @@ import org.apache.geode.cache.Scope;
 import org.apache.geode.cache.util.CacheWriterAdapter;
 import org.apache.geode.internal.InternalDataSerializer;
 import org.apache.geode.internal.cache.Oplog.OPLOG_TYPE;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.test.dunit.ThreadUtils;
 import org.apache.geode.test.junit.categories.FlakyTest;
 import org.apache.geode.test.junit.categories.IntegrationTest;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/TombstoneCreationJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/TombstoneCreationJUnitTest.java
index 72212a7..754e2b4 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/TombstoneCreationJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/TombstoneCreationJUnitTest.java
@@ -19,6 +19,8 @@ import org.apache.geode.distributed.DistributedSystem;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
 import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
 import org.apache.geode.internal.Assert;
+import org.apache.geode.internal.cache.entries.VersionedThinRegionEntryHeap;
+import org.apache.geode.internal.cache.entries.VersionedThinRegionEntryHeapObjectKey;
 import org.apache.geode.internal.cache.versions.VersionTag;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.After;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionEntryTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/entries/AbstractRegionEntryTest.java
similarity index 91%
rename from geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionEntryTest.java
rename to geode-core/src/test/java/org/apache/geode/internal/cache/entries/AbstractRegionEntryTest.java
index 5f01962..3c1c5e1 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionEntryTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/entries/AbstractRegionEntryTest.java
@@ -12,7 +12,7 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-package org.apache.geode.internal.cache;
+package org.apache.geode.internal.cache.entries;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -24,10 +24,18 @@ import java.io.DataInputStream;
 import java.io.IOException;
 
 import org.assertj.core.api.Assertions;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.DataSerializer;
+import org.apache.geode.internal.cache.EntryEventImpl;
+import org.apache.geode.internal.cache.LocalRegion;
+import org.apache.geode.internal.cache.RegionClearedException;
+import org.apache.geode.internal.cache.RegionEntryContext;
+import org.apache.geode.internal.cache.Token;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.cache.versions.RegionVersionVector;
 import org.apache.geode.internal.cache.versions.VersionTag;
 import org.apache.geode.internal.offheap.MemoryAllocatorImpl;
@@ -54,7 +62,7 @@ public class AbstractRegionEntryTest {
     assertEquals(value, re.getValueField());
     Assertions.assertThatThrownBy(() -> re.makeTombstone(lr, vt))
         .isInstanceOf(RuntimeException.class).hasMessage("throw exception on setValue(TOMBSTONE)");
-    assertEquals(Token.REMOVED_PHASE2, re.getValueField());
+    Assert.assertEquals(Token.REMOVED_PHASE2, re.getValueField());
   }
 
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/InlineKeyJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/InlineKeyJUnitTest.java
index de070cd..c1c57a2 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/offheap/InlineKeyJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/InlineKeyJUnitTest.java
@@ -20,6 +20,12 @@ import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.cache.util.ObjectSizer;
 import org.apache.geode.distributed.ConfigurationProperties;
 import org.apache.geode.internal.cache.*;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeapIntKey;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeapLongKey;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeapObjectKey;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeapStringKey1;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeapStringKey2;
+import org.apache.geode.internal.cache.entries.VMThinRegionEntryOffHeapUUIDKey;
 import org.apache.geode.test.junit.categories.IntegrationTest;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java
index 63d0ca9..52d71b0 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java
@@ -24,6 +24,7 @@ import org.apache.geode.compression.Compressor;
 import org.apache.geode.compression.SnappyCompressor;
 import org.apache.geode.distributed.ConfigurationProperties;
 import org.apache.geode.internal.cache.*;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.offheap.annotations.OffHeapIdentifier;
 import org.apache.geode.internal.offheap.annotations.Released;
 import org.apache.geode.internal.offheap.annotations.Retained;
diff --git a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java
index add00f1..f7b7335 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/offheap/OffHeapRegionEntryHelperJUnitTest.java
@@ -35,14 +35,14 @@ import org.powermock.modules.junit4.PowerMockRunner;
 import org.apache.geode.compression.Compressor;
 import org.apache.geode.internal.DSCODE;
 import org.apache.geode.internal.cache.CachePerfStats;
-import org.apache.geode.internal.cache.DiskEntry;
+import org.apache.geode.internal.cache.entries.DiskEntry;
 import org.apache.geode.internal.cache.DiskId;
 import org.apache.geode.internal.cache.EntryEventImpl;
-import org.apache.geode.internal.cache.OffHeapRegionEntry;
+import org.apache.geode.internal.cache.entries.OffHeapRegionEntry;
 import org.apache.geode.internal.cache.RegionEntryContext;
 import org.apache.geode.internal.cache.Token;
 import org.apache.geode.internal.cache.VMCachedDeserializable;
-import org.apache.geode.internal.cache.VersionedStatsDiskRegionEntryOffHeap;
+import org.apache.geode.internal.cache.entries.VersionedStatsDiskRegionEntryOffHeap;
 import org.apache.geode.test.junit.categories.UnitTest;
 
 @Category(UnitTest.class)
diff --git a/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java b/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
index a41a720..6ebdd91 100644
--- a/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
+++ b/geode-core/src/test/java/org/apache/geode/security/ClientAuthorizationTestCase.java
@@ -53,7 +53,7 @@ import org.apache.geode.cache.query.SelectResults;
 import org.apache.geode.cache.query.Struct;
 import org.apache.geode.internal.AvailablePort.*;
 import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.internal.cache.AbstractRegionEntry;
+import org.apache.geode.internal.cache.entries.AbstractRegionEntry;
 import org.apache.geode.internal.cache.LocalRegion;
 import org.apache.geode.internal.cache.tier.sockets.ServerConnection;
 import org.apache.geode.security.generator.AuthzCredentialGenerator;

-- 
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].